[
  {
    "path": ".babelrc",
    "content": "{\n  \t\"presets\": [\"es2015\", \"stage-2\"],\n  \t\"plugins\": [\"transform-runtime\"],\n  \t\"comments\": false\n}\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nnode_modules/\ndist/\nnpm-debug.log\ntest/unit/coverage\ntest/e2e/reports\nselenium-debug.log\nnode_modules/\n.idea/\n"
  },
  {
    "path": ".npmrc",
    "content": "sass_binary_site=https://npm.taobao.org/mirrors/node-sass/\nphantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/\nregistry=https://registry.npm.taobao.org\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2016 \n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# vux-2.0\n根据vux-https://github.com/airyland/vux 修改升级的2.0\n\n## Docs\n\n+ [中文文档](https://jinhuiwong.gitbooks.io/vuxx/content/)\n\n## Demo\n\n<p align=\"center\">\n  <a href=\"http://jhwong.cn/vux2\">http://jhwong.cn/vux2</a><br/>\n  (You can view the demos' codes in <a href=\"https://github.com/jinhuiWong/vux-2.0/tree/master/src/demos\"><strong>/src/demos</strong></a>)<br/>\n  <img src=\"http://og1rlwcj8.bkt.clouddn.com/1485876811.png\" width=\"300\">\n</p>\n\n## Use\n``` bash\n# install \nnpm install vuxx\n\n#vue-cli项目引用\n#在webpack.base.conf.js添加loader\n\n{\n  test: /vuxx.src.*?js$/,\n  loader: 'babel'\n}\n\n#使用组件\n<template>\n  <div>\n    <group>\n      <cell title=\"示例\"></cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport Cell from 'vuxx/src/components/Cell'\nimport Group from 'vuxx/src/components/Group'\nexport default {\n  components: {\n    Group,\n    Cell\n  }\n}\n</script>\n\n```\n\n## Development Setup\n\n``` bash\n# install dependencies\nnpm install\n\n# serve with hot reload at localhost:8080\nnpm run dev\n\n# build for production with minification\nnpm run build\n\n```\n交流qq群：537322257\n![alt text]( http://og1rlwcj8.bkt.clouddn.com/7f4c4fe1gw1evv8bc0r3tj20go0ghjs3.jpg \"Title\")\n"
  },
  {
    "path": "build/build.js",
    "content": "// https://github.com/shelljs/shelljs\nrequire('./check-versions')()\nrequire('shelljs/global')\nenv.NODE_ENV = 'production'\n\nvar path = require('path')\nvar config = require('../config')\nvar ora = require('ora')\nvar webpack = require('webpack')\nvar webpackConfig = require('./webpack.prod.conf')\n\nconsole.log(\n  '  Tip:\\n' +\n  '  Built files are meant to be served over an HTTP server.\\n' +\n  '  Opening index.html over file:// won\\'t work.\\n'\n)\n\nvar spinner = ora('打包中...')\nspinner.start()\n\nvar assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)\nrm('-rf', assetsPath)\nmkdir('-p', assetsPath)\ncp('-R', 'static/*', assetsPath)\n\nwebpack(webpackConfig, function (err, stats) {\n  spinner.stop()\n  if (err) throw err\n  process.stdout.write(stats.toString({\n    colors: true,\n    modules: false,\n    children: false,\n    chunks: false,\n    chunkModules: false\n  }) + '\\n')\n})\n"
  },
  {
    "path": "build/check-versions.js",
    "content": "var semver = require('semver')\nvar chalk = require('chalk')\nvar packageConfig = require('../package.json')\nvar exec = function (cmd) {\n  return require('child_process')\n    .execSync(cmd).toString().trim()\n}\n\nvar versionRequirements = [\n  {\n    name: 'node',\n    currentVersion: semver.clean(process.version),\n    versionRequirement: packageConfig.engines.node\n  },\n  {\n    name: 'npm',\n    currentVersion: exec('npm --version'),\n    versionRequirement: packageConfig.engines.npm\n  }\n]\n\nmodule.exports = function () {\n  var warnings = []\n  for (var i = 0; i < versionRequirements.length; i++) {\n    var mod = versionRequirements[i]\n    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {\n      warnings.push(mod.name + ': ' +\n        chalk.red(mod.currentVersion) + ' should be ' +\n        chalk.green(mod.versionRequirement)\n      )\n    }\n  }\n\n  if (warnings.length) {\n    console.log('')\n    console.log(chalk.yellow('To use this template, you must update following to modules:'))\n    console.log()\n    for (var i = 0; i < warnings.length; i++) {\n      var warning = warnings[i]\n      console.log('  ' + warning)\n    }\n    console.log()\n    process.exit(1)\n  }\n}\n"
  },
  {
    "path": "build/dev-client.js",
    "content": "/* eslint-disable */\nrequire('eventsource-polyfill')\nvar hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')\n\nhotClient.subscribe(function (event) {\n  if (event.action === 'reload') {\n    window.location.reload()\n  }\n})\n"
  },
  {
    "path": "build/dev-server.js",
    "content": "require('./check-versions')();\nvar config = require('../config');\nif (!process.env.NODE_ENV) process.env.NODE_ENV = config.dev.env\nvar path = require('path');\nvar fs = require('fs');\nvar http = require('http');\nvar https = require('https');\nvar express = require('express');\nvar webpack = require('webpack');\nvar opn = require('opn');\nvar proxyMiddleware = require('http-proxy-middleware')\nvar webpackConfig = process.env.NODE_ENV === 'testing' ? require('./webpack.prod.conf') : require('./webpack.dev.conf')\n    // 定义监听端口\n    // default port where dev server listens for incoming traffic\nvar port = process.env.PORT || config.dev.port;\n    // Define HTTP proxies to your custom API backend\n    // https://github.com/chimurai/http-proxy-middleware\nvar proxyTable = config.dev.proxyTable;\n\nvar app = express()\nvar compiler = webpack(webpackConfig);\n\nvar devMiddleware = require('webpack-dev-middleware')(compiler, {\n    publicPath: webpackConfig.output.publicPath,\n    stats: {\n        colors: true,\n        chunks: false\n    }\n});\n\nvar hotMiddleware = require('webpack-hot-middleware')(compiler);\n    // force page reload when html-webpack-plugin template changes\ncompiler.plugin('compilation', function(compilation) {\n    compilation.plugin('html-webpack-plugin-after-emit', function(data, cb) {\n        hotMiddleware.publish({ action: 'reload' })\n        cb()\n    })\n});\n\n// proxy api requests\n// Object.keys(proxyTable).forEach(function (context) {\n//   var options = proxyTable[context]\n//   if (typeof options === 'string') {\n//     options = { target: options }\n//   }\n//   app.use(proxyMiddleware(context, options))\n// })\n\n// 设置反向代理地址\n// Object.keys(proxyTable).forEach(function(context) {\n//     var options = proxyTable[context];\n//     if (typeof options === 'string') {\n//         options = { target: options, changeOrigin: true }\n//     }\n//     //var apiProxy =proxyMiddleware(context, options);\n//     //console.log(apiProxy);\n//     //app.use('/biz',apiProxy);\n//     app.use(context, proxyMiddleware(options));\n// });\n\n\n// handle fallback for HTML5 history API\napp.use(require('connect-history-api-fallback')())\n\n// serve webpack bundle output\napp.use(devMiddleware)\n\n// enable hot-reload and state-preserving\n// compilation error display\napp.use(hotMiddleware)\n\n\nmodule.exports = app.listen(port, function(err) {\n    if (err) {\n        console.log(err)\n        return\n    }\n    var uri = 'http://localhost:' + port + config.build.assetsPublicPath\n    console.log('Listening at ' + uri + '\\n')\n    opn(uri)\n})\n"
  },
  {
    "path": "build/utils.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\n\nexports.assetsPath = function (_path) {\n  var assetsSubDirectory = process.env.NODE_ENV === 'production'\n    ? config.build.assetsSubDirectory\n    : config.dev.assetsSubDirectory\n  return path.posix.join(assetsSubDirectory, _path)\n}\n\nexports.cssLoaders = function (options) {\n  options = options || {}\n  // generate loader string to be used with extract text plugin\n  function generateLoaders (loaders) {\n    var sourceLoader = loaders.map(function (loader) {\n      var extraParamChar\n      if (/\\?/.test(loader)) {\n        loader = loader.replace(/\\?/, '-loader?')\n        extraParamChar = '&'\n      } else {\n        loader = loader + '-loader'\n        extraParamChar = '?'\n      }\n      return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '')\n    }).join('!')\n\n    // Extract CSS when that option is specified\n    // (which is the case during production build)\n    if (options.extract) {\n      return ExtractTextPlugin.extract('vue-style-loader', sourceLoader)\n    } else {\n      return ['vue-style-loader', sourceLoader].join('!')\n    }\n  }\n\n  // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html\n  return {\n    css: generateLoaders(['css']),\n    postcss: generateLoaders(['css']),\n    less: generateLoaders(['css', 'less']),\n    sass: generateLoaders(['css', 'sass?indentedSyntax']),\n    scss: generateLoaders(['css', 'sass']),\n    stylus: generateLoaders(['css', 'stylus']),\n    styl: generateLoaders(['css', 'stylus'])\n  }\n}\n\n// Generate loaders for standalone style files (outside of .vue)\nexports.styleLoaders = function (options) {\n  var output = []\n  var loaders = exports.cssLoaders(options)\n  for (var extension in loaders) {\n    var loader = loaders[extension]\n    output.push({\n      test: new RegExp('\\\\.' + extension + '$'),\n      loader: loader\n    })\n  }\n  return output\n}\n"
  },
  {
    "path": "build/webpack.base.conf.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar utils = require('./utils')\nvar projectRoot = path.resolve(__dirname, '../')\n\nvar env = process.env.NODE_ENV\n// check env & config/index.js to decide weither to enable CSS Sourcemaps for the\n// various preprocessor loaders added to vue-loader at the end of this file\nvar cssSourceMapDev = (env === 'development' && config.dev.cssSourceMap)\nvar cssSourceMapProd = (env === 'production' && config.build.productionSourceMap)\nvar useCssSourceMap = cssSourceMapDev || cssSourceMapProd\n\nmodule.exports = {\n  entry: {\n    app: './src/main.js',\n    fetch : 'whatwg-fetch'\n  },\n  //entry: [\"whatwg-fetch\",\"./src/main.js\"],\n  output: {\n    path: config.build.assetsRoot,\n    publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath,\n    filename: '[name].js'\n  },\n  resolve: {\n    extensions: ['', '.js', '.vue'],\n    fallback: [path.join(__dirname, '../node_modules')],\n    alias: {\n      'vue$': 'vue/dist/vue',\n      'src': path.resolve(__dirname, '../src'),\n      'assets': path.resolve(__dirname, '../src/assets'),\n      'components': path.resolve(__dirname, '../src/components'),\n      'pages' : path.resolve(__dirname,'../src/pages'),\n      'store' : path.resolve(__dirname,'../src/store')\n    }\n  },\n  resolveLoader: {\n    fallback: [path.join(__dirname, '../node_modules')]\n  },\n  module: {\n    loaders: [\n      {\n        test: /\\.vue$/,\n        loader: 'vue'\n      },\n      {\n        test: /\\.js$/,\n        loader: 'babel',\n        include: projectRoot,\n        exclude: /node_modules/\n      },\n      {\n        test: /\\.json$/,\n        loader: 'json'\n      },\n      {\n        test: /\\.(png|jpe?g|gif|svg)(\\?.*)?$/,\n        loader: 'url',\n        query: {\n          limit: 1,\n          // name: utils.assetsPath('img/[name].[hash:7].[ext]')\n          name: utils.assetsPath('img/[name].[ext]')\n        }\n      },\n      {\n        test: /\\.(woff2?|eot|ttf|otf)(\\?.*)?$/,\n        loader: 'url',\n        query: {\n          limit: 10000,\n          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')\n        }\n      }\n    ]\n  },\n  vue: {\n    loaders: utils.cssLoaders({ sourceMap: useCssSourceMap }),\n    postcss: [\n      require('autoprefixer')({\n        browsers: ['last 2 versions']\n      })\n    ]\n  }\n}\n"
  },
  {
    "path": "build/webpack.dev.conf.js",
    "content": "var config = require('../config')\nvar webpack = require('webpack')\nvar merge = require('webpack-merge')\nvar utils = require('./utils')\nvar baseWebpackConfig = require('./webpack.base.conf')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\n\n// add hot-reload related code to entry chunks\nObject.keys(baseWebpackConfig.entry).forEach(function (name) {\n  baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])\n})\n\nmodule.exports = merge(baseWebpackConfig, {\n  module: {\n    loaders: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })\n  },\n  // eval-source-map is faster for development\n  devtool: '#eval-source-map',\n  plugins: [\n    new webpack.DefinePlugin({\n      'process.env': config.dev.env\n    }),\n    // https://github.com/glenjamin/webpack-hot-middleware#installation--usage\n    new webpack.optimize.OccurenceOrderPlugin(),\n    new webpack.HotModuleReplacementPlugin(),\n    new webpack.NoErrorsPlugin(),\n    // https://github.com/ampedandwired/html-webpack-plugin\n    new HtmlWebpackPlugin({\n      filename: 'index.html',\n      template: 'index.html',\n      inject: true\n    })\n  ]\n})\n"
  },
  {
    "path": "build/webpack.prod.conf.js",
    "content": "var path = require('path')\nvar config = require('../config')\nvar utils = require('./utils')\nvar webpack = require('webpack')\nvar merge = require('webpack-merge')\nvar baseWebpackConfig = require('./webpack.base.conf')\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\nvar env = process.env.NODE_ENV === 'testing'\n  ? require('../config/test.env')\n  : config.build.env\n\nvar webpackConfig = merge(baseWebpackConfig, {\n  module: {\n    loaders: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true })\n  },\n  devtool: config.build.productionSourceMap ? '#source-map' : false,\n  output: {\n    path: config.build.assetsRoot,\n    filename: utils.assetsPath('js/[name].[chunkhash].js'),\n    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')\n  },\n  vue: {\n    loaders: utils.cssLoaders({\n      sourceMap: config.build.productionSourceMap,\n      extract: true\n      // extract: false\n    })\n  },\n  plugins: [\n    // http://vuejs.github.io/vue-loader/en/workflow/production.html\n    new webpack.DefinePlugin({\n      'process.env': env\n    }),\n    new webpack.optimize.UglifyJsPlugin({\n      compress: {\n        warnings: false\n      }\n    }),\n    new webpack.optimize.OccurenceOrderPlugin(),\n    // extract css into its own file\n    new ExtractTextPlugin(utils.assetsPath('css/[name].[contenthash].css')),\n    // generate dist index.html with correct asset hash for caching.\n    // you can customize output by editing /index.html\n    // see https://github.com/ampedandwired/html-webpack-plugin\n    new HtmlWebpackPlugin({\n      filename: process.env.NODE_ENV === 'testing'\n        ? 'index.html'\n        : config.build.index,\n      template: 'index.html',\n      inject: true,\n      minify: {\n        removeComments: true,\n        collapseWhitespace: true,\n        removeAttributeQuotes: true\n        // more options:\n        // https://github.com/kangax/html-minifier#options-quick-reference\n      },\n      // necessary to consistently work with multiple chunks via CommonsChunkPlugin\n      chunksSortMode: 'dependency'\n    }),\n    // split vendor js into its own file\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'vendor',\n      minChunks: function (module, count) {\n        // any required modules inside node_modules are extracted to vendor\n        return (\n          module.resource &&\n          /\\.js$/.test(module.resource) &&\n          module.resource.indexOf(\n            path.join(__dirname, '../node_modules')\n          ) === 0\n        )\n      }\n    }),\n    // extract webpack runtime and module manifest to its own file in order to\n    // prevent vendor hash from being updated whenever app bundle is updated\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'manifest',\n      chunks: ['vendor']\n    })\n  ]\n})\n\nif (config.build.productionGzip) {\n  var CompressionWebpackPlugin = require('compression-webpack-plugin')\n\n  webpackConfig.plugins.push(\n    new CompressionWebpackPlugin({\n      asset: '[path].gz[query]',\n      algorithm: 'gzip',\n      test: new RegExp(\n        '\\\\.(' +\n        config.build.productionGzipExtensions.join('|') +\n        ')$'\n      ),\n      threshold: 10240,\n      minRatio: 0.8\n    })\n  )\n}\n\nmodule.exports = webpackConfig\n"
  },
  {
    "path": "config/dev.env.js",
    "content": "var merge = require('webpack-merge')\nvar prodEnv = require('./prod.env')\n\nmodule.exports = merge(prodEnv, {\n  NODE_ENV: '\"development\"'\n})\n"
  },
  {
    "path": "config/index.js",
    "content": "// see http://vuejs-templates.github.io/webpack for documentation.\nvar path = require('path')\n\nmodule.exports = {\n  build: {\n    env: require('./prod.env'),\n    index: path.resolve(__dirname, '../dist/index.html'),\n    assetsRoot: path.resolve(__dirname, '../dist'),\n    assetsSubDirectory: 'static',\n    assetsPublicPath: '/vux2/',\n    productionSourceMap: true,\n    // Gzip off by default as many popular static hosts such as\n    // Surge or Netlify already gzip all static assets for you.\n    // Before setting to `true`, make sure to:\n    // npm install --save-dev compression-webpack-plugin\n    productionGzip: false,\n    productionGzipExtensions: ['js', 'css']\n  },\n  dev: {\n    env: require('./dev.env'),\n    port: 8080,\n    assetsSubDirectory: 'static',\n    assetsPublicPath: '/',\n    //反向代理配置\n    proxyTable: {},\n    // CSS Sourcemaps off by default because relative paths are \"buggy\"\n    // with this option, according to the CSS-Loader README\n    // (https://github.com/webpack/css-loader#sourcemaps)\n    // In our experience, they generally work as expected,\n    // just be aware of this issue when enabling this option.\n    cssSourceMap: false\n  }\n}\n"
  },
  {
    "path": "config/prod.env.js",
    "content": "module.exports = {\n  NODE_ENV: '\"production\"'\n}\n"
  },
  {
    "path": "config/test.env.js",
    "content": "var merge = require('webpack-merge')\nvar devEnv = require('./dev.env')\n\nmodule.exports = merge(devEnv, {\n  NODE_ENV: '\"testing\"'\n})\n"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1,user-scalable=0\">\n    <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n    <link rel=\"icon\" href=\"http://og1rlwcj8.bkt.clouddn.com/favicon.ico\" type=\"image/x-icon\">\n    <title>Vux2.0</title>\n  </head>\n  <body>\n    <div id=\"app\"></div>\n    <!-- built files will be auto injected -->\n  </body>\n</html>\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"vuxx\",\n  \"version\": \"0.1.7\",\n  \"description\": \"vux2.0 project\",\n  \"author\": \"wong <405176029@qq.com>\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/jinhuiWong/vux-2.0\"\n  },\n  \"homepage\": \"https://github.com/jinhuiWong/vux-2.0\",\n  \"bugs\": {\n    \"url\": \"https://github.com/jinhuiWong/vux-2.0/issues\"\n  },\n  \"license\": \"MIT\",\n  \"keywords\": [\n    \"vux\",\n    \"vue\",\n    \"weui\",\n    \"weex\",\n    \"vue-components\",\n    \"web-components\",\n    \"component\",\n    \"components\",\n    \"mobile ui\",\n    \"framework\",\n    \"frontend\"\n  ],\n  \"scripts\": {\n    \"dev\": \"node build/dev-server.js\",\n    \"build\": \"node build/build.js\",\n    \"unit\": \"karma start test/unit/karma.conf.js --single-run\",\n    \"e2e\": \"node test/e2e/runner.js\",\n    \"test\": \"npm run unit && npm run e2e\"\n  },\n  \"dependencies\": {\n    \"array-filter\": \"^1.0.0\",\n    \"array-find\": \"^1.0.0\",\n    \"array-from\": \"^2.1.1\",\n    \"array-map\": \"0.0.0\",\n    \"array-shuffle\": \"^1.0.1\",\n    \"autosize\": \"^3.0.20\",\n    \"countup\": \"^1.6.2\",\n    \"fastclick\": \"^1.0.6\",\n    \"less\": \"^2.7.1\",\n    \"less-loader\": \"^2.2.3\",\n    \"node-sass\": \"^3.13.0\",\n    \"object-assign\": \"^4.1.0\",\n    \"photoswipe\": \"^4.1.1\",\n    \"qr.js\": \"0.0.0\",\n    \"sass-loader\": \"^4.0.2\",\n    \"shake.js\": \"^1.2.2\",\n    \"validator\": \"^6.2.0\",\n    \"vue\": \"^2.0.1\",\n    \"vue-router\": \"^2.0.1\",\n    \"vuex\": \"^2.0.0\",\n    \"vuex-router-sync\": \"^3.0.0\",\n    \"vux-blazy\": \"^1.6.4\",\n    \"vux-xscroll\": \"^3.1.8\",\n    \"webp-support\": \"^1.0.3\",\n    \"whatwg-fetch\": \"^1.0.0\"\n  },\n  \"devDependencies\": {\n    \"autoprefixer\": \"^6.4.0\",\n    \"babel-core\": \"^6.0.0\",\n    \"babel-loader\": \"^6.0.0\",\n    \"babel-plugin-component\": \"^0.5.1\",\n    \"babel-plugin-transform-runtime\": \"^6.0.0\",\n    \"babel-preset-es2015\": \"^6.0.0\",\n    \"babel-preset-stage-2\": \"^6.0.0\",\n    \"babel-register\": \"^6.0.0\",\n    \"chai\": \"^3.5.0\",\n    \"chalk\": \"^1.1.3\",\n    \"chromedriver\": \"^2.21.2\",\n    \"connect-history-api-fallback\": \"^1.1.0\",\n    \"cross-spawn\": \"^4.0.2\",\n    \"css-loader\": \"^0.25.0\",\n    \"eventsource-polyfill\": \"^0.9.6\",\n    \"express\": \"^4.13.3\",\n    \"extract-text-webpack-plugin\": \"^1.0.1\",\n    \"file-loader\": \"^0.9.0\",\n    \"function-bind\": \"^1.0.2\",\n    \"html-webpack-plugin\": \"^2.8.1\",\n    \"http-proxy-middleware\": \"^0.17.2\",\n    \"inject-loader\": \"^2.0.1\",\n    \"isparta-loader\": \"^2.0.0\",\n    \"json-loader\": \"^0.5.4\",\n    \"karma\": \"^1.3.0\",\n    \"karma-coverage\": \"^1.1.1\",\n    \"karma-mocha\": \"^1.2.0\",\n    \"karma-phantomjs-launcher\": \"^1.0.0\",\n    \"karma-sinon-chai\": \"^1.2.0\",\n    \"karma-sourcemap-loader\": \"^0.3.7\",\n    \"karma-spec-reporter\": \"0.0.26\",\n    \"karma-webpack\": \"^1.7.0\",\n    \"less-loader\": \"^2.2.3\",\n    \"lolex\": \"^1.4.0\",\n    \"mocha\": \"^3.1.0\",\n    \"nightwatch\": \"^0.9.8\",\n    \"opn\": \"^4.0.2\",\n    \"ora\": \"^0.3.0\",\n    \"phantomjs-prebuilt\": \"^2.1.3\",\n    \"selenium-server\": \"2.53.1\",\n    \"semver\": \"^5.3.0\",\n    \"shelljs\": \"^0.7.4\",\n    \"sinon\": \"^1.17.3\",\n    \"sinon-chai\": \"^2.8.0\",\n    \"url-loader\": \"^0.5.7\",\n    \"vue-loader\": \"^9.4.0\",\n    \"vue-style-loader\": \"^1.0.0\",\n    \"webpack\": \"^1.13.2\",\n    \"webpack-dev-middleware\": \"^1.8.3\",\n    \"webpack-hot-middleware\": \"^2.12.2\",\n    \"webpack-merge\": \"^0.14.1\"\n  },\n  \"engines\": {\n    \"node\": \">= 4.0.0\",\n    \"npm\": \">= 3.0.0\"\n  }\n}\n"
  },
  {
    "path": "src/App.vue",
    "content": "<template>\n  <div style=\"height:100%;\">\n    <!-- <loading :show=\"isLoading\" position=\"absolute\"></loading> -->\n    <loading :show=\"isLoading\" position=\"absolute\" text=\"加载中\"></loading>\n    <view-box ref=\"viewbox\">\n      <!--header slot-->\n      <div class=\"vux-demo-header-box\" slot=\"header\">\n        <x-header :left-options=\"leftOptions\" :transition=\"headerTransition\" :title=\"title\" @on-click-title=\"scrollTop\"></x-header>\n      </div>\n      <!--default slot-->\n      <router-view\n      :transition=\"'vux-pop-' + (direction === 'forward' ? 'in' : 'out')\"\n      ></router-view>\n      <!--bottom slot-->\n      <tabbar class=\"vux-demo-tabbar\" icon-class=\"vux-center\" v-show=\"!isTabbarDemo\" slot=\"bottom\">\n        <tabbar-item :link=\"{path:'/'}\" :selected=\"route.path === '/'\">\n          <span class=\"demo-icon-22 vux-demo-tabbar-icon-home\" slot=\"icon\">&#xe637;</span>\n          <span slot=\"label\">Home</span>\n        </tabbar-item>\n        <tabbar-item :link=\"{path:'/demo'}\" :selected=\"isDemo\" badge=\"9\">\n          <span class=\"demo-icon-22\" slot=\"icon\">&#xe633;</span>\n          <span slot=\"label\"><span v-if=\"componentName\" class=\"vux-demo-tabbar-component\">{{componentName}}</span><span v-else>Demos</span></span>\n        </tabbar-item>\n        <tabbar-item :link=\"{path:'/project/donate'}\" :selected=\"route.path === '/project/donate'\" show-dot>\n          <span class=\"demo-icon-22\" slot=\"icon\">&#xe630;</span>\n          <span slot=\"label\">Donate</span>\n        </tabbar-item>\n      </tabbar>\n    </view-box>\n  </div>\n</template>\n\n<script>\nimport { Tabbar, TabbarItem, Loading, ViewBox, XHeader } from './components'\n\nexport default {\n  components: {\n    Tabbar,\n    TabbarItem,\n    Loading,\n    ViewBox,\n    XHeader\n  },\n  data () {\n    return {\n      routerTransition: {\n        forward: 'slideRL',\n        back: 'slideLR'\n      }\n    }\n  },\n  methods: {\n    scrollTop () {\n      this.$refs.viewbox.$refs.viewboxbody.scrollTop = 0\n    }\n  },\n  computed: {\n    route(){\n        return this.$store.state.route\n    },\n    leftOptions () {\n      return {\n        showBack: this.route.path !== '/'\n      }\n    },\n    headerTransition () {\n      return this.direction === 'forward' ? 'vux-header-fade-in-right' : 'vux-header-fade-in-left'\n    },\n    componentName () {\n      if(!this.route.path) return false\n      const parts = this.route.path.split('/');\n      if (/component/.test(this.route.path) && parts[2]) return parts[2]\n    },\n    isDemo () {\n      return /component|demo/.test(this.route.path)\n    },\n    isTabbarDemo () {\n      return /tabbar/.test(this.route.path)\n    },\n    title () {\n      if (this.route.path === '/') return 'Home'\n      if (this.route.path === '/project/donate') return 'Donate'\n      if (this.route.path === '/demo') return 'Demo list'\n      return this.componentName ? `Demo/${this.componentName}` : 'Demo/~~'\n    }\n  },\n  mounted(){\n    console.log(this.route);\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import 'styles/index.less';\n@import './styles/weui/base/reset';\n\nhtml, body {\n  height: 100%;\n  width: 100%;\n  overflow-x: hidden;\n}\nbody {\n  background-color: #fbf9fe;\n}\n/* v-r-transition, default is {forward: 'forward', back: 'back'}*/\n.forward-enter, .forward-leave {\n  transform: translate3d(-100%, 0, 0);\n}\n.back-enter, .back-leave {\n  transform: translate3d(100%, 0, 0);\n}\n.demo-icon-22 {\n  font-family: 'vux-demo';\n  font-size: 22px;\n  color: #888;\n}\n.weui_tabbar.vux-demo-tabbar {\n  backdrop-filter: blur(10px);\n  background-color: none;\n  background: rgba(247, 247, 250, 0.5);\n}\n.vux-demo-tabbar .weui_bar_item_on .demo-icon-22 {\n  color: #F70968;\n}\n.vux-demo-tabbar .weui_tabbar_item.weui_bar_item_on .weui_tabbar_label {\n  color: #35495e;\n}\n.vux-demo-tabbar .weui_tabbar_item.weui_bar_item_on .vux-demo-tabbar-icon-home {\n  color: rgb(53, 73, 94);\n}\n.demo-icon-22:before {\n  content: attr(icon);\n}\n.vux-demo-tabbar-component {\n  background-color: #F70968;\n  color: #fff;\n  border-radius: 7px;\n  padding: 0 4px;\n  line-height: 14px;\n}\n.weui_tabbar_icon + .weui_tabbar_label {\n  margin-top: 0!important;\n}\n.vux-demo-header-box {\n  z-index: 100;\n  position: absolute;\n  width: 100%;\n  left: 0;\n  top: 0;\n}\n.weui_tab_bd {\n  padding-top: 46px;\n}\n\n/**\n* vue-router transition\n*/\n.vux-pop-out-transition,\n.vux-pop-in-transition {\n  width: 100%;\n  animation-duration: 0.5s;\n  animation-fill-mode: both;\n  backface-visibility: hidden;\n}\n.vux-pop-out-enter,\n.vux-pop-out-leave,\n.vux-pop-in-enter,\n.vux-pop-in-leave {\n  will-change: transform;\n  height: 100%;\n  position: absolute;\n  left: 0;\n}\n.vux-pop-out-enter {\n  animation-name: popInLeft;\n}\n.vux-pop-out-leave {\n  animation-name: popOutRight;\n}\n.vux-pop-in-enter {\n  perspective: 1000;\n  animation-name: popInRight;\n}\n.vux-pop-in-leave {\n  animation-name: popOutLeft;\n}\n@keyframes popInLeft {\n  from {\n    transform: translate3d(-100%, 0, 0);\n  }\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n@keyframes popOutLeft {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n  to {\n    transform: translate3d(-100%, 0, 0);\n  }\n}\n@keyframes popInRight {\n  from {\n    transform: translate3d(100%, 0, 0);\n  }\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n}\n@keyframes popOutRight {\n  from {\n    transform: translate3d(0, 0, 0);\n  }\n  to {\n    transform: translate3d(100%, 0, 0);\n  }\n}\n</style>\n"
  },
  {
    "path": "src/Home.vue",
    "content": "<template>\n  <div>\n    <div class=\"center\">\n      <svg style=\"width:60px;height:60px;\" version=\"1.1\" id=\"图形\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"1024px\" height=\"1024px\" viewBox=\"0 0 1024 1024\" enable-background=\"new 0 0 1024 1024\" xml:space=\"preserve\"><path class=\"svgpath\" data-index=\"path_0\" fill=\"#35495e\" d=\"M512 816.64 51.2 985.6l460.8-947.2 460.8 947.2L512 816.64 512 816.64zM509.44 207.36 189.44 862.72l317.44-117.76L506.88 207.36 509.44 207.36zM509.44 207.36\" /></svg>\n\n      <h1 class=\"vux-title\" style=\"display:none;\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"font-size:60px;color:#35495e;display: block;\">&#xe637;</span>\n      </h1>\n      <p class=\"vux-notice\">v{{version}}</p>\n    </div>\n    <group>\n      <cell title=\"Demo\" link=\"/demo\" value=\"演示\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:#F70968\">&#xe633;</span>\n      </cell>\n    </group>\n    <group>\n      <cell title=\"Buy me a coffee\" link=\"project/donate\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:red;\">&#xe630;</span>\n        <div class=\"badge-value vux-center-v\" slot=\"value\" >\n          <badge text=\"捐赠\"></badge>\n        </div>\n      </cell>\n      <cell title=\"Github\" link=\"https://github.com/jinhuiWong/vux-2.0\" value=\"Star me\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:#35495e;\">&#xe62f;</span>\n      </cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Cell, Group, Badge } from './components'\nconst version = require('../package.json').version\nexport default {\n  components: {\n    Cell,\n    Group,\n    Badge\n  },\n  data () {\n    return {\n      version: '2.0.0'\n    }\n  }\n}\n</script>\n\n<style>\n@import './demos/style.css';\n.badge-value{\n  display: inline-block;\n}\n.center {\n  margin-top: 15px;\n  text-align: center;\n}\n.vux-notice {\n  color: #666;\n  line-height: 40px;\n}\n.vux-title {\n  vertical-align: middle;\n  text-align: center;\n  color: #04BE02;\n  display: inline-block;\n  width: 75px;\n  height: 75px;\n  line-height: 75px;\n  border-radius: 50%;\n}\nbody {\n  font-family: Helvetica, sans-serif;\n  background-color: #fbf9fe;\n}\n</style>\n"
  },
  {
    "path": "src/Wechat.vue",
    "content": "<template>\n  <div>\n    <group>\n      <cell title=\"接收新消息通知\" value=\"已启用\"></cell>\n    </group>\n    <tip>如果你要关闭或开启微信的新消息通知，请在iPhone的\"设置\"-\"通知\"功能中，找到应用程序\"微信\"更改。</tip>\n\n    <group>\n      <x-switch title=\"通知显示消息详情\" :value=\"true\"></x-switch>\n    </group>\n    <tip>关闭后，当收到微信消息时，通知提示将不再显示发信人和内容摘要。</tip>\n\n    <group>\n      <cell title=\"功能消息免打扰\" is-link></cell>\n    </group>\n    <tip>设置系统功能消息提示声音和振动的时段。</tip>\n\n    <group>\n      <x-switch title=\"声音\" :value=\"false\"></x-switch>\n      <x-switch title=\"振动\" :value=\"true\"></x-switch>\n    </group>\n    <tip>当微信在运行时，你可以设置是否需要声音或者振动。</tip>\n\n    <group>\n      <x-switch title=\"朋友圈照片更新\" :value=\"true\"></x-switch>\n    </group>\n    <tip>关闭后，有朋友更新照片时，界面下面的\"发现\"切换按钮上不再出现红点提示。</tip>\n  </div>\n</template>\n\n<script>\nimport { DevTip, Number, Selector, Group, GroupTitle, Button as Btn, Tip, XSwitch, Radio, Checklist, Cell, Xinput } from './components'\n\nexport default {\n  components: {\n    Number,\n    Selector,\n    Group,\n    Btn,\n    Tip,\n    XSwitch,\n    GroupTitle,\n    Radio,\n    DevTip,\n    Checklist,\n    Cell,\n    Xinput\n  },\n  data () {\n    return {\n    }\n  },\n  methods: {\n    change (value) {\n      console.log('change:', value)\n    }\n  }\n}\n</script>\n\n<style>\n</style>\n"
  },
  {
    "path": "src/components/actionsheet/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/actionsheet/index.vue",
    "content": "<template>\n  <div class=\"vux-actionsheet\">\n    <div class=\"weui_mask_transition\" :class=\"{'weui_fade_toggle': props_show}\" :style=\"{display: props_show ? 'block' : 'none'}\" @click=\"props_show=false\"></div>\n    <div class=\"weui_actionsheet\" :class=\"{'weui_actionsheet_toggle': props_show}\">\n      <div class=\"weui_actionsheet_menu\">\n        <div class=\"actionsheet_cell_container\">\n          <div class=\"weui_actionsheet_cell\" v-for=\"(text, key) in menus\" @click=\"emitEvent('on-click-menu', key)\" v-html=\"text\">\n          </div>\n        </div>\n        <!-- <div class=\"vux-actionsheet-gap\" v-if=\"showCancel\"></div> -->\n        <div class=\"weui_actionsheet_cell vux-actionsheet-cancel\" @click=\"emitEvent('on-click-menu', 'cancel')\" v-if=\"showCancel\">{{cancelText}}</div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  created(){\n    this.props_show=this.show\n    if(this.value) this.props_show=this.value\n  },\n  mounted () {\n    this.$tabbar = document.querySelector('.weui_tabbar')\n  },\n  props: {\n    show: Boolean,\n    value: {\n      type:Boolean,\n      default:false\n    },\n    showCancel: Boolean,\n    cancelText: {\n      type: String,\n      default: 'cancel'\n    },\n    menus: {\n      type: Object,\n      default: () => {}\n    }\n  },\n  data(){\n    return{\n      props_show:false\n    }\n  },\n  methods: {\n    emitEvent (event, menu) {\n      if (event === 'on-click-menu' && !/.noop/.test(menu)) {\n        this.$emit(event, menu)\n        this.$emit(`${event}-${menu}`)\n        this.props_show = false\n      }\n    },\n    fixIos (zIndex) {\n      if (this.$tabbar && /iphone/i.test(navigator.userAgent)) {\n        this.$tabbar.style.zIndex = zIndex\n      }\n    }\n  },\n  watch: {\n    value(val){\n      this.props_show=val\n    },\n    props_show(val){\n      if (val) {\n        this.fixIos(-1)\n      } else {\n        setTimeout(() => {\n          this.fixIos(100)\n        }, 200)\n      }\n      this.$emit('input',val)\n    },\n    show (val) {\n      this.props_show=val\n    }\n  },\n  beforeDestroy () {\n    this.fixIos(100)\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/widget/weui_tips/weui_actionsheet';\n\n.vux-actionsheet-gap {\n  height: 8px;\n  width: 100%;\n  background-color: #eee;\n}\n\n.vux-actionsheet-cancel{\n  border-radius: 15px;\n  margin:0px 15px;\n  margin-bottom:13px;\n}\n\n.vux-actionsheet-cancel:before {\n  border-top: none;\n}\n\n// css hack\n.weui_fade_toggle {\n  background: rgba(0, 0, 0, 0.3);\n}\n\n.weui_actionsheet {\n    background-color: inherit ;\n}\n\n.weui_actionsheet_menu {\n    background-color: inherit;\n}\n\n.weui_actionsheet_cell {\n    background-color: #fff;\n    padding: 15px 0;\n}\n\n.actionsheet_cell_container{\n  border-radius: 15px;\n  margin:15px;\n  margin-bottom:5px;\n  overflow:hidden\n}\n</style>\n"
  },
  {
    "path": "src/components/actionsheet/metas.yml",
    "content": "props:\n  show:\n    en: if show the component\n    zh-CN: 是否显示\n  show-cancel:\n    en: if show the cancel menu\n    zh-CN: 是否显示取消菜单\n  cancel-text:\n    en: text of cancel menu\n    zh-CN: 取消菜单文字\n  menus:\n    en: \"menu items, for example: `{menu1: 'some text'}`, menu name with `.noop` will not trigger click events\"\n    zh-CN: \"菜单项列表，举例：`{menu1: '删除'}`，如果名字上带有`.noop`表明这是纯文本展示，不会触发事件，用于展示描述\"\nevents:\n  on-click-menu:\n    en: triggers when clicking on the menu\n    zh-CN: 点击菜单时触发，参数为当前菜单项对象\n  on-click-menu-{menuName}:\n    en: shortcut event for easily listening, you can listen on `on-click-menu-delete` if you have a menu named `delete`\n    zh-CN: 点击事件的快捷方式, 如果你有一个菜单名字为`delete`, 那么你可以监听 `on-click-menu-delete`\n  on-click-menu-cancel:\n    en: triggers when click on cancel menu\n    zh-CN: 点击取消菜单时触发\n"
  },
  {
    "path": "src/components/alert/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/alert/index.vue",
    "content": "<template>\n  <div class=\"vux-alert\">\n    <input style=\"display:none\" v-model=\"props_show\">\n    <x-dialog\n    class=\"weui_dialog_alert\"\n    :show=\"props_show\"\n    :mask-transition=\"maskTransition\"\n    :dialog-transition=\"dialogTransition\"\n    @on-hide=\"$emit('on-hide')\"\n    @on-show=\"$emit('on-show')\">\n      <div class=\"weui_dialog_hd\"><strong class=\"weui_dialog_title\">{{title}}</strong></div>\n      <div class=\"weui_dialog_bd\"><slot></slot></div>\n      <div class=\"weui_dialog_ft\">\n        <a href=\"javascript:\" class=\"weui_btn_dialog primary\" @click=\"onHide\">{{buttonText}}</a>\n      </div>\n    </x-dialog>\n  </div>\n</template>\n\n<script>\nimport XDialog from '../dialog'\n\nexport default {\n  components: {\n    XDialog\n  },\n  props: {\n    value: {\n      type: Boolean,\n      default: false\n    },\n    show: Boolean,\n    title: String,\n    buttonText: {\n      type: String,\n      default: 'OK'\n    },\n    maskTransition: {\n      type: String,\n      default: 'vux-fade'\n    },\n    dialogTransition: {\n      type: String,\n      default: 'vux-dialog'\n    }\n  },\n  created(){\n    this.props_show=this.show\n    if(this.value) this.props_show=this.value\n  },\n  methods: {\n    onHide () {\n      this.props_show = false\n    }\n  },\n  watch: {\n    value(val){\n      this.props_show=val\n    },\n    props_show(val){\n      this.$emit('input',val)\n    },\n    show (val) {\n      this.props_show=val\n    }\n  },\n  data(){\n    return{\n      props_show:false\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/transition.less';\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/widget/weui_tips/weui_dialog';\n</style>\n"
  },
  {
    "path": "src/components/alert/metas.yml",
    "content": "extends:\n  - Dialog\nwhen:\n  -\n    - en: Show some information that user should pay attention to and should be closed only after user has clicked the close button\n    - zh-CN: 显示一个用户必须注意到并且必须点击按钮确认才能关闭的信息\nprops:\n  show:\n    en: visibility of the component\n    zh-CN: 是否显示\n  title:\n    en: title\n    zh-CN: 弹窗标题\n  button-text:\n    en: button text\n    zh-CN: 按钮文字\n  mask-transition:\n    en: mask transition\n    zh-CN: 遮罩动画\n  dialog-transition:\n    en: dialog transition\n    zh-CN: 弹窗主体动画\n"
  },
  {
    "path": "src/components/badge/index.vue",
    "content": "<template>\n  <span v-text=\"text\" :class=\"['vux-badge', {'vux-badge-single': text.length === 1}]\"></span>\n</template>\n\n<script>\nexport default {\n  props: {\n    text: [String, Number]\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-badge {\n  display: inline-block;\n  text-align: center;\n  background: @badge-bg-color;\n  color: #fff;\n  font-size: 12px;\n  height: 16px;\n  line-height: 16px;\n  border-radius: 8px;\n  padding: 0 6px;\n  background-clip: padding-box;\n}\n.vux-badge-single {\n  padding: 0;\n  width: 16px;\n}\n</style>\n"
  },
  {
    "path": "src/components/badge/metas.yml",
    "content": "props:\n  text:\n    en: text of the Badge\n    zh-CN: 显示的文字\n"
  },
  {
    "path": "src/components/blur/blur.js",
    "content": "/* Image Blur plugin, author @msurguy\n\n Usage:\n\n Create a set of elements that follows the following HTML structure:\n\n <div class=\"container\">\n   <div class=\"content\">\n   ...\n   </div>\n </div>\n\n Add the following css:\n\n .container {\n   overflow: hidden\n   width: 100%\n   position: relative\n }\n\n .container .bg-blur-overlay {\n   z-index: -1\n   position: absolute\n   width: 100%\n   height: 100%\n   background-image: url('data:image/svg+xmlbase64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSI0NiUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wOCIvPjxzdG9wIG9mZnNldD0iNTklIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMDgiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC45Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g')\n   background-size: 100%\n   background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(46%, rgba(0, 0, 0, 0.08)), color-stop(59%, rgba(0, 0, 0, 0.08)), color-stop(100%, rgba(0, 0, 0, 0.9)))\n   background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.08) 59%, rgba(0, 0, 0, 0.9) 100%)\n   background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.08) 59%, rgba(0, 0, 0, 0.9) 100%)\n   background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.08) 46%, rgba(0, 0, 0, 0.08) 59%, rgba(0, 0, 0, 0.9) 100%)\n }\n\n .container .bg-blur {\n   z-index: -2\n   opacity: 0\n   position: absolute\n   width: 100%\n   min-height: 100%\n   height: auto\n   display: block\n   top: 0\n   left: 0\n }\n\n .container .content {\n  z-index: 1\n }\n\n */\n\nimport Eventor from '../../libs/eventor'\n\n// Random ID generator\nvar randomID = function () {\n  return '_' + Math.random().toString(36).substr(2, 9)\n}\n\n// micro lib that creates SVG elements and adds attributes to it\nvar SVG = {\n\n  // namespaces\n  svgns: 'http://www.w3.org/2000/svg',\n  xlink: 'http://www.w3.org/1999/xlink',\n\n  // creating of SVG element\n  createElement (name, attrs) {\n    var element = document.createElementNS(SVG.svgns, name)\n\n    if (attrs) {\n      SVG.setAttr(element, attrs)\n    }\n    return element\n  },\n\n  // setting attributes\n  setAttr (element, attrs) {\n    for (var i in attrs) {\n      if (i === 'href') { // path of an image should be stored as xlink:href attribute\n        element.setAttributeNS(SVG.xlink, i, attrs[i])\n      } else { // other common attribute\n        element.setAttribute(i, attrs[i])\n      }\n    }\n    return element\n  }\n}\n\n// backgroundBlur PUBLIC CLASS DEFINITION\n// ================================\n\nvar Blur = function (element, options) {\n  this.internalID = randomID()\n  this.element = element\n  this.width = element.offsetWidth\n  this.height = element.offsetHeight\n  this.element = element\n  this.parent = this.element.parentNode\n  this.options = Object.assign({}, Blur.DEFAULTS, options)\n  this.overlayEl = this.createOverlay()\n  this.blurredImage = null\n  this.attachListeners()\n  this.generateBlurredImage(this.options.url)\n}\n\nBlur.VERSION = '0.0.1'\n\nEventor.mixTo(Blur)\n\nBlur.DEFAULTS = {\n  url: '', // URL to the image\n  blurAmount: 10, // Amount of blurrines\n  imageClass: '', // CSS class that will be applied to the image and to the SVG element,\n  overlayClass: '', // CSS class of the element that will overlay the blur image\n  duration: false, // If the image needs to be faded in, how long should that take\n  opacity: 1 // Specify the final opacity\n}\n\nBlur.prototype.setBlurAmount = function (blurAmount) {\n  this.options.blurAmount = blurAmount\n}\n\nBlur.prototype.attachListeners = function () {\n  this.on('ui.blur.loaded', this.fadeIn.bind(this))\n  this.on('ui.blur.unload', this.fadeOut.bind(this))\n}\n\nBlur.prototype.fadeIn = function () {\n}\n\nBlur.prototype.fadeOut = function () {\n}\n\nBlur.prototype.generateBlurredImage = function (url) {\n  const previousImage = this.blurredImage\n  this.internalID = randomID()\n\n  if (previousImage) {\n    previousImage.parentNode.removeChild(previousImage)\n  }\n\n  this.blurredImage = this.createSVG(url, this.width, this.height)\n}\n\nBlur.prototype.createOverlay = function () {\n  if (this.options.overlayClass && this.options.overlayClass !== '') {\n    const div = document.createElement('div')\n    div.classList.add(this.options.overlayClass)\n    this.parent.insertBefore(div, this.element)\n    return div\n  }\n\n  return false\n}\n\nBlur.prototype.createSVG = function (url, width, height) {\n  var that = this\n  var svg = SVG.createElement('svg', { // our SVG element\n    xmlns: SVG.svgns,\n    version: '1.1',\n    width: width,\n    height: height,\n    id: 'blurred' + this.internalID,\n    'class': this.options.imageClass,\n    viewBox: '0 0 ' + width + ' ' + height,\n    preserveAspectRatio: 'none'\n  })\n\n  var filterId = 'blur' + this.internalID // id of the filter that is called by image element\n  var filter = SVG.createElement('filter', { // filter\n    id: filterId\n  })\n\n  var gaussianBlur = SVG.createElement('feGaussianBlur', { // gaussian blur element\n    'in': 'SourceGraphic', // \"in\" is keyword. Opera generates an error if we don't put quotes\n    stdDeviation: this.options.blurAmount // intensity of blur\n  })\n\n  var image = SVG.createElement('image', { // The image that uses the filter of blur\n    x: 0,\n    y: 0,\n    width: width,\n    height: height,\n    'externalResourcesRequired': 'true',\n    href: url,\n    style: 'filter:url(#' + filterId + ')', // filter link\n    preserveAspectRatio: 'none'\n  })\n\n  image.addEventListener('load', function () {\n    that.emit('ui.blur.loaded')\n  }, true)\n\n  image.addEventListener('SVGLoad', function () {\n    that.emit('ui.blur.loaded')\n  }, true)\n\n  filter.appendChild(gaussianBlur) // adding the element of blur into the element of filter\n  svg.appendChild(filter) // adding the filter into the SVG\n  svg.appendChild(image) // adding an element of an image into the SVG\n\n  // Ensure that the image is shown after duration + 100 msec in case the SVG load event didn't fire or took too long\n  if (that.options.duration && that.options.duration > 0) {\n    svg.style.opacity = 0\n    window.setTimeout(function () {\n      if (getStyle(svg, 'opacity') === '0') {\n        svg.style.opacity = 1\n      }\n    }, this.options.duration + 100)\n  }\n  this.element.insertBefore(svg, this.element.firstChild)\n  return svg\n}\n\nBlur.prototype.createIMG = function (url, width, height) {\n  var that = this\n  var originalImage = this.prependImage(url)\n  var newBlurAmount = ((this.options.blurAmount * 2) > 100) ? 100 : (this.options.blurAmount * 2)\n  // apply special CSS attributes to the image to blur it\n  const styles = {\n    // filter property here the intensity of blur multipied by two is around equal to the intensity in common browsers.\n    filter: 'progid:DXImageTransform.Microsoft.Blur(pixelradius=' + newBlurAmount + ') ',\n    // aligning of the blurred image by vertical and horizontal\n    top: -this.options.blurAmount * 2.5,\n    left: -this.options.blurAmount * 2.5,\n    width: width + (this.options.blurAmount * 2.5),\n    height: height + (this.options.blurAmount * 2.5)\n  }\n  for (var i in styles) {\n    originalImage.style[i] = styles[i]\n  }\n  originalImage.setAttribute('id', this.internalID)\n\n  originalImage.onload = function () {\n    that.trigger('ui.blur.loaded')\n  }\n  // Ensure that the image is shown after duration + 100 msec in case the image load event didn't fire or took too long\n  if (this.options.duration && this.options.duration > 0) {\n    window.setTimeout(function () {\n      if (getStyle(originalImage, 'opacity') === '0') {\n        originalImage.style.opacity = 1\n      }\n    }, this.options.duration + 100)\n  }\n  return originalImage\n}\n\nBlur.prototype.prependImage = function (url) {\n  const img = document.createElement('img')\n  img.url = url\n  img.setAttribute('id', this.internalID)\n  img.classList.add(this.options.imageClass)\n  if (this.overlayEl) {\n    this.parent.insertBefore(img, this.overlayEl)\n  } else {\n    this.parent.insertBefore(img, this.parent.firstChild)\n  }\n  return img\n}\n\nexport default Blur\n\nfunction getStyle (ele, prop) {\n  return window.getComputedStyle(ele, null).getPropertyValue(prop)\n}\n"
  },
  {
    "path": "src/components/blur/index.vue",
    "content": "<template>\n  <div :style=\"{height: height + 'px',position: 'relative', overflow: 'hidden'}\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nimport Blur from './blur'\n\nexport default {\n  mounted () {\n    this._blur = new Blur(this.$el, {\n      url: this.url,\n      blurAmount: this.blurAmount,\n      imageClass: 'vux-bg-blur',\n      duration: 100, // If the image needs to be faded in, how long that should take\n      opacity: 1 // Specify the final opacity that the image will have\n    })\n  },\n  props: {\n    blurAmount: {\n      type: Number,\n      default: 10\n    },\n    url: {\n      type: String,\n      required: true\n    },\n    height: {\n      type: Number,\n      default: 200\n    }\n  },\n  watch: {\n    blurAmount (blurAmount) {\n      this._blur.setBlurAmount(blurAmount)\n      this._blur.generateBlurredImage(this.url)\n    },\n    url (url) {\n      this._blur.generateBlurredImage(url)\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n.vux-bg-blur {\n  z-index: -2;\n  opacity: 0;\n  position: absolute;\n  min-height: 100%;\n  display: block;\n  top: 0;\n  max-height: none;\n  /* Add this CSS to remove transparent border around the image */\n  left: -20%;\n  top: -20%;\n  width: 140%;\n  height: 140%;\n  transition: opacity linear 0.8s;\n}\n/*\nAn element with this class is added by the plugin to provide an overlay above the blurred image\nIt could drastically improve the appearance of the blurred image for content readability\n*/\n.vux-bg-blur-overlay {\n  z-index: -1;\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  background: linear-gradient(to bottom,  rgba(0,0,0,0.15) 0%,rgba(0,0,0,1) 100%);\n}\n</style>\n"
  },
  {
    "path": "src/components/blur/metas.yml",
    "content": "tips:\n  -\n    - en: If the component renders slowly on your target platform, you can try `css3 blur filter`\n    - zh-CN: 如果在手机上渲染过慢，可以尝试使用css3的`blur filter`\nprops:\n  blur-amount:\n    en: blur amount of the effect\n    zh-CN: 模糊程度\n  url:\n    en: url of the image\n    zh-CN: 图片地址\n  height:\n    en: height of the container\n    zh-CN: 容器高度\nslots:\n  default:\n    en: content of the container, above the blur image\n    zh-CN: 容器内容，显示在模糊内容上面\n"
  },
  {
    "path": "src/components/box/index.vue",
    "content": "<template>\n  <div :style=\"{margin:gap}\"><slot></slot></div>\n</template>\n\n<script>\nexport default {\n  props: {\n    gap: String\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/box/metas.yml",
    "content": "intro:\n  en: a small component for lazy persons who don't want to write less code\n  zh-CN: 为div设置margin值，懒人才需要的组件\nprops:\n  gap:\n    en: margin value\n    zh-CN: margin值\n"
  },
  {
    "path": "src/components/button-tab/button-tab-item.vue",
    "content": "<template>\n  <a class=\"vux-button-tab-item\" :class=\"classes\" href=\"javascript:\" :style=\"style\" @click=\"onItemClick\">\n    <slot></slot>\n  </a>\n</template>\n\n<script>\n\nexport default {\n  mounted() {\n    this.$parent.updateIndex()\n    this.props_selected=this.selected\n  },\n  computed: {\n    classes () {\n      return {\n        'vux-button-group-current': this.index === this.$parent.props_index,\n        'no-border-right': this.shouldRemoveBorder\n      }\n    },\n    style () {\n      if (this.$parent.height) {\n        return {\n          height: `${this.$parent.height}px`,\n          lineHeight: `${this.$parent.height}px`\n        }\n      }\n    }\n  },\n  props: {\n    selected: {\n      type: Boolean,\n      default: false\n    }\n  },\n  mounted() {\n    this.$parent.updateIndex()\n  },\n  beforeDestroy() {\n    const $parent = this.$parent\n    this.$nextTick(() => {\n      $parent.updateIndex()\n    })\n  },\n  methods: {\n    onItemClick() {\n      if (typeof this.disabled === 'undefined' || this.disabled === false) {\n          this.props_selected = true;\n          this.$parent.$emit('onTabItemClick',this.index);\n      }\n    }\n  },\n  watch: {\n    props_selected(val){\n      if (val) {\n          this.$parent.$emit('onTabItemClick',this.index);\n        }\n    },\n    selected (val) {\n      console.log('selected');\n      this.props_selected=val;\n    }\n  },\n  data() {\n    return {\n      index: -1,\n      shouldRemoveBorder: false,\n      props_selected:false\n    }\n  }\n\n\n}\n</script>\n"
  },
  {
    "path": "src/components/button-tab/button-tab.vue",
    "content": "<template>\n  <div class=\"vux-button-group\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\n\nexport default {\n  mounted() {\n    this.updateIndex()\n    this.$on('onTabItemClick',function(index){\n        this.props_index = index;\n        this.$emit('on-index-change', this.props_index);\n    });\n  },\n  methods: {\n    updateIndex() {\n      if (!this.$children) return\n      this.number = this.$children.length\n      let children = this.$children\n      for (let i = 0; i < children.length; i++) {\n        children[i].index = i\n        if (children[i]=== this.index) {\n            this.props_index = i\n        }\n      }\n    }\n  },\n  props: {\n    index: {\n      type: Number,\n      default: -1\n    },\n    value: {\n      type: Number,\n      default: 0\n    },\n    height: Number\n  },\n  watch: {\n    props_index(newIndex, oldIndex) {\n      oldIndex > -1 && this.$children[oldIndex] && (this.$children[oldIndex].props_selected = false)\n      newIndex > -1 && (this.$children[newIndex].props_selected = true)\n      this.$emit('input',newIndex);\n    },\n    value(val){\n      this.props_index=val\n    },\n    index : function(newIndex, oldIndex){\n        this.props_index=newIndex;\n    },\n  },\n  data() {\n    return {\n      number: this.$children.length,\n      props_index:0\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-button-group {\n  & {\n    display: box;\n    display: flex;\n  }\n\n  & > a  {\n    display: block;\n    flex: 1;\n    width: 100%;\n    height: 30px;\n    padding: 0;\n    font-size: 14px;\n    line-height: 31px;\n    text-align: center;\n    border: 1px solid #d2d2d2;\n    border-width: 1px 1px 1px 0;\n    color: #999;\n    white-space: nowrap;\n    background: #fdfdfd\n  }\n\n  & > a.vux-button-group-current,\n  & > a.hover,\n  & > a:active {\n    border-color: @color-wechat-green;\n    color: #FFF;\n    background: @color-wechat-green\n  }\n\n  & > a:first-child {\n    border-width: 1px;\n    border-top-left-radius: 16px;\n    border-bottom-left-radius: 16px;\n    background-clip: padding-box\n  }\n\n  & > a:last-child {\n    border-top-right-radius: 16px;\n    border-bottom-right-radius: 16px;\n    background-clip: padding-box;\n  }\n\n  & > a.vux-button-group-current:disabled,\n  & > a:disabled {\n    border-color: #CDCDCD;\n    background: #e5e5e5;\n    box-shadow: 0 1px 0 rgba(255,255,255,.6);\n    text-shadow: 0 1px 0 rgba(255,255,255,.8);\n    color: #aaa\n  }\n  & .no-border-right {\n    border-right-width: 0!important;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/button-tab/index.js",
    "content": "import ButtonTab from './button-tab'\nimport ButtonTabItem from './button-tab-item'\n\nexport {\n  ButtonTab,\n  ButtonTabItem\n}\n"
  },
  {
    "path": "src/components/button-tab/metas.yml",
    "content": "button-tab:\n  props:\n    index:\n      zh-CN: 当前选中索引值，从0开始\n    height:\n      zh-CN: 高度值\nbutton-tab-item:\n  props:\n    selected:\n      zh-CN: 是否选中\n  events:\n    on-item-click:\n      zh-CN: 当前按钮点击时触发\n"
  },
  {
    "path": "src/components/calendar/index.vue",
    "content": "<template>\n<div>\n  <cell :title=\"title\" primary=\"content\" :value=\"props_value\" @click=\"onClick\" is-link></cell>\n  <popup v-model=\"show\">\n    <inline-calendar\n    :value=\"props_value\"\n    @on-change=\"onSelect\"\n    :render-month=\"renderMonth\"\n    :start-date=\"startDate\"\n    :end-date=\"endDate\"\n    :show-last-month=\"showLastMonth\"\n    :show-next-month=\"showNextMonth\"\n    :highlight-weekend=\"highlightWeekend\"\n    :return-six-rows=\"returnSixRows\"\n    :hide-header=\"hideHeader\"\n    :hide-week-list=\"hideWeekList\"\n    :replace-text-list=\"replaceTextList\"\n    :weeks-list=\"weeksList\"\n    :custom-slot-fn=\"customSlotFn\"\n    :render-on-value-change=\"renderOnValueChange\"\n    :disable-past=\"disablePast\"\n    :disable-future=\"disableFuture\"\n    ></inline-calendar>\n  </popup>\n</div>\n</template>\n\n<script>\nimport InlineCalendar from '../inline-calendar'\nimport Popup from '../popup'\nimport Cell from '../cell'\nimport props from '../inline-calendar/props'\n\nconst Props = props()\nProps.title = {\n  type: String,\n  required: true\n}\n\nexport default {\n  components: {\n    InlineCalendar,\n    Popup,\n    Cell\n  },\n  created(){\n    this.props_value=this.value\n  },\n  props: Props,\n  methods: {\n    onClick () {\n      this.show = true\n    },\n    onSelect (val) {\n      this.show = false\n      this.props_value=val\n      this.$emit('on-change',val)\n    }\n  },\n  watch:{\n    value(val){\n      this.props_value=val\n    }\n  },\n  data () {\n    return {\n      show: false,\n      props_value:''\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/calendar/metas.yml",
    "content": "extends:\n  - inline-calendar\n  - popup\n  - cell\nintro:\n  zh-CN: 扩展自inline-calendar, 相关属性可查看inline-calendar文档\nprops:\n  value:\n    zh-CN: 选中值\n  title:\n    zh-CN: label文字\nevents:\n  on-change:\n    zh-CN: 值改变时触发\n"
  },
  {
    "path": "src/components/card/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/card/index.vue",
    "content": "<template>\n\t<div class=\"weui_panel weui_panel_access\">\n    <div class=\"weui_panel_hd\" v-if=\"header && header.title\" v-html=\"header.title\" @click=\"$emit('on-click-header')\"></div>\n    <slot name=\"header\"></slot>\n    <div class=\"weui_panel_bd\">\n      <div class=\"vux-card-content\"><slot name=\"content\"></slot></div>\n    </div>\n    <a class=\"weui_panel_ft\" href=\"javascript:\" v-if=\"footer && footer.title\" v-html=\"footer.title\" @click=\"onClickFooter\"></a>\n    <slot name=\"footer\"></slot>\n  </div>\n</template>\n\n<script>\nimport { go } from '../../libs/router'\n\nexport default {\n  props: {\n    header: Object,\n    footer: Object\n  },\n  methods: {\n    onClickFooter () {\n      this.footer.link && go(this.footer.link, this.$router)\n      this.$emit('on-click-footer')\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_panel/weui_panel';\n</style>\n"
  },
  {
    "path": "src/components/card/metas.yml",
    "content": "props:\n  header.title:\n    zh-CN: 头部标题，不指定则不显示\n  footer.title:\n    zh-CN: 底部标题，不指定则不显示\n  footer.link:\n    zh-CN: 底部链接，普通url或者v-link参数\nevents:\n  on-click-footer:\n    zh-CN: 点击底部时触发\n  on-click-header:\n    zh-CN: 点击头部时触发\nslots:\n  header:\n    zh-CN: 头部位置\n  content:\n    zh-CN: 中间主体位置\n  footer:\n    zh-CN: 底部位置\n"
  },
  {
    "path": "src/components/cell/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/cell/index.vue",
    "content": "<template>\n  <div class=\"weui_cell\" :class=\"{'vux-tap-active': isLink || !!link}\" @click=\"onClick\">\n    <div class=\"weui_cell_hd\">\n      <slot name=\"icon\"></slot>\n    </div>\n    <div class=\"weui_cell_bd\" :class=\"{'weui_cell_primary':primary==='title'}\">\n      <p>\n        {{title}}\n        <slot name=\"after-title\"></slot>\n      </p>\n      <inline-desc>{{inlineDesc}}</inline-desc>\n    </div>\n    <div class=\"weui_cell_ft\" :class=\"{'weui_cell_primary':primary==='content', 'with_arrow': isLink || !!link}\">\n      {{value}}\n      <slot name=\"value\"></slot>\n      <slot></slot>\n    </div>\n    <slot name=\"child\"></slot>\n  </div>\n</template>\n\n<script>\nimport InlineDesc from '../inline-desc'\n// import { go } from '../../libs/router'\n\nexport default {\n  components: {\n    InlineDesc\n  },\n  props: {\n    title: String,\n    value: [String, Number],\n    isLink: Boolean,\n    inlineDesc: [String, Number],\n    primary: {\n      type: String,\n      default: 'title'\n    },\n    link: {\n      type: [String, Object]\n    }\n  },\n  methods: {\n    onClick () {\n      // go(this.link, this.$router);\n      this.link ? this.$router.push(this.link) : false\n      this.$emit(\"click\")\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n@import '../../styles/tap.less';\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n\n.weui_cell_bd > p {\n  color: @cell-body-label-color;\n}\n\n.weui_cell_ft.with_arrow:after {\n  content: \" \";\n  display: inline-block;\n  transform: rotate(45deg);\n  height: 6px;\n  width: 6px;\n  border-width: 2px 2px 0 0;\n  border-color: #C8C8CD;\n  border-style: solid;\n  position: relative;\n  top: -1px;\n  margin-left: .3em;\n}\n</style>\n"
  },
  {
    "path": "src/components/cell/metas.yml",
    "content": "props:\n  title:\n    en: label text\n    zh-CN: 左边标题文字\n  value:\n    en: right text\n    zh-CN: 右侧文字，复杂的样式布局请使用slot\n  inline-desc:\n    en: the text below title\n    zh-CN: 标题下面文字，一般为说明文字\n  is-link:\n    en: if this is a link, if true, there will be an arrow on the right\n    zh-CN: 是否为链接，如果是，右侧将会出现指引点击的右箭头\n  primary:\n    en: \"main content area, can be in ['title', 'content']\"\n    zh-CN: \"可选值为 ['title', 'content']，对应的div会加上weui_cell_primary类名实现内容宽度自适应\"\nslots:\n  default:\n    en: \"right area, you can use default slot instead of prop:value so you can use complexed layout\"\n    zh-CN: 右侧内容，相比于value的优点是可以用复杂的样式或者调用组件\n  value:\n    en: \"[deprecated] the same as default slot\"\n    zh-CN: \"[废弃] 同默认slot\"\n  icon:\n    en: icon area before title\n    zh-CN: 标题左侧的图像位置\n  after-title:\n    en: after title\n    zh-CN: 标题右侧位置\n  child:\n    en: the child element of the cell, you can add an element with absolute position\n    zh-CN: cell的直接子元素，因此可以添加一个相对于cell绝对定位的元素\n"
  },
  {
    "path": "src/components/check-icon/index.vue",
    "content": "<template>\n  <div class=\"vux-check-icon\" @click=\"value = !value\">\n    <icon type=\"success\" v-show=\"type === 'default' && value\"></icon>\n    <icon type=\"success_circle\" v-show=\"type === 'plain' && value\"></icon>\n    <icon type=\"circle\" v-show=\"!value\"></icon>\n    <span><slot></slot></span>\n  </div>\n</template>\n\n<script>\nimport Icon from '../icon'\n\nexport default {\n  components: {\n    Icon\n  },\n  props: {\n    value: Boolean,\n    type: {\n      type: String,\n      default: 'default'\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-check-icon {\n  display: inline-block;\n}\n.vux-check-icon span {\n  line-height: 20px;\n  color: #222;\n  vertical-align: bottom;\n}\n.vux-check-icon > .weui_icon_success:before, .vux-check-icon > .weui_icon_success_circle:before {\n  color: @check-icon-color-checked;\n}\n</style>\n\n\n"
  },
  {
    "path": "src/components/checker/checker-item.vue",
    "content": "<template>\n  <div class=\"vux-checker-item\" :class=\"classNames\" @click=\"select\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    value: {\n      type: [String, Number],\n      required: true\n    },\n    disabled: Boolean\n  },\n  computed: {\n    classNames () {\n      const names = {\n        'vux-tap-active': !this.disabled\n      }\n      if (this.$parent.defaultItemClass) {\n        names[this.$parent.defaultItemClass] = true\n      }\n      if (this.$parent.selectedItemClass) {\n        names[this.$parent.selectedItemClass] = this.$parent.type === 'radio' ? (this.$parent.props_value[0] === this.value) : (this.$parent.props_value.indexOf(this.value) > -1)\n      }\n      if (this.$parent.disabledItemClass) {\n        names[this.$parent.disabledItemClass] = this.disabled\n      }\n      return names\n    }\n  },\n  methods: {\n    select () {\n      if (this.$parent.type === 'radio') {\n        this.selectRadio()\n      } else {\n        this.selectCheckbox()\n      }\n    },\n    selectRadio () {\n      if (!this.disabled) {\n        if(this.$parent.props_value.length === 0){\n          this.$parent.props_value.push(this.value)\n        }else{\n          this.$parent.props_value.splice(0,1, this.value)\n        }\n        // this.$parent.$set(this.$parent,'props_value', this.value)\n        this.$emit('on-item-click', this.value, this.disabled)\n      }\n    },\n    selectCheckbox () {\n      if (!this.disabled) {\n        const index = this.$parent.props_value.indexOf(this.value)\n        if (index > -1) {\n          this.$parent.props_value.splice(index, 1)\n        } else {\n          if (!this.$parent.max || (this.$parent.max && this.$parent.props_value.length < this.$parent.max)) {\n            this.$parent.props_value.push(this.value)\n          }\n        }\n        this.$emit('on-item-click', this.value, this.disabled)\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/tap.less';\n</style>\n"
  },
  {
    "path": "src/components/checker/checker.vue",
    "content": "<template>\n  <div class=\"vux-checker-box\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    defaultItemClass: String,\n    selectedItemClass: String,\n    disabledItemClass: String,\n    type: {\n      type: String,\n      default: 'radio'\n    },\n    value: [Array],\n    max: Number\n  },\n  data(){\n    return {\n      props_value:[]\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  watch: {\n    props_value(val){\n      this.$emit('on-change', val)\n    },\n    value (newValue) {\n      this.props_value=this.value\n    }\n  }\n}\n</script>\n\n<style>\n.vux-checker-item {\n  display: inline-block;\n}\n</style>\n"
  },
  {
    "path": "src/components/checker/index.js",
    "content": "import Checker from './checker'\nimport CheckerItem from './checker-item'\n\nexport {\n  Checker,\n  CheckerItem\n}\n"
  },
  {
    "path": "src/components/checker/metas.yml",
    "content": "checker:\n  props:\n    default-item-class:\n      zh-CN: 默认class\n    selected-item-class:\n      zh-CN: 选中样式\n    disabled-item-class:\n      zh-CN: 不可选样式\n    type:\n      zh-CN: 类型，单选为radio, 多选为checkbox\n    value:\n      zh-CN: 表单值\n    max:\n      zh-CN: 最多可选个数，多选时可用\n  events:\n    on-change:\n      zh-CN: value值变化时触发\nchecker-item:\n  props:\n    value:\n      zh-CN: 当前项的值\n    disabled:\n      zh-CN: 是否为不可选\n  events:\n    on-item-click:\n      zh-CN: 当前项被点击时触发，参数为(itemValue, itemDisabled)\n"
  },
  {
    "path": "src/components/checklist/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/checklist/index.vue",
    "content": "<template>\n<div>\n  <div v-show=\"title\" class=\"weui_cells_title\">{{title}}</div>\n  <div class=\"weui_cells weui_cells_checkbox\">\n    <label class=\"weui_cell weui_check_label\" :for=\"'checkbox_'+uuid+'_'+index\" v-for=\"(one, index) in props_options\">\n      <div class=\"weui_cell_hd\">\n        <input type=\"checkbox\" class=\"weui_check\" :value=\"getItemKey(one)\" v-model=\"props_value\" :id=\"'checkbox_'+uuid+'_'+index\">\n        <i class=\"weui_icon_checked\"></i>\n      </div>\n      <div class=\"weui_cell_bd weui_cell_primary\">\n        <p v-html=\"getItemValue(one)\"></p>\n      </div>\n    </label>\n  </div>\n  <tip v-show=\"!valid && dirty\"><icon type=\"warn\" class=\"icon_small\"></icon>{{error}}</tip>\n</div>\n\n</template>\n\n<script>\nimport Tip from '../tip'\nimport Icon from '../icon'\nimport { getValue, getKey } from './object-filter'\nimport shuffle from 'array-shuffle'\n\nexport default {\n  components: {\n    Tip,\n    Icon\n  },\n  props: {\n    title: String,\n    required: {\n      type: Boolean,\n      default: true\n    },\n    options: {\n      type: Array,\n      required: true\n    },\n    value: {\n      type: Array,\n      default: () => []\n    },\n    required: {\n      type: Boolean,\n      default: true\n    },\n    max: Number,\n    min: Number,\n    fillMode: Boolean,\n    randomOrder: Boolean\n  },\n  data(){\n    return {\n      errors: {},\n      prisine: true,\n      touched: false,\n      // valid: true,\n      props_options:[],\n      props_value:[]\n    }\n  },\n  created(){\n    this.handleChangeEvent = false\n    this.uuid = Math.random().toString(36).substring(3, 8)\n    this.props_options=this.options\n    this.props_value=this.value\n  },\n  mounted () {\n    this.handleChangeEvent = true\n    if (this.randomOrder) {\n      this.props_options = shuffle(this.props_options)\n    }\n  },\n  computed: {\n    _total () {\n      return this.fillMode ? (this.props_options.length + 1) : this.props_options.length\n    },\n    _min () {\n      if (!this.required) {\n        return 0\n      }\n      if (this.min) {\n        if (this.min < 0) {\n          return 1\n        }\n        if (this.min >= this._total) {\n          return this._total\n        }\n        return this.min\n      } else {\n        return 1\n      }\n    },\n    _max () {\n      if (!this.required) {\n        return this._total\n      }\n      if (this.max) {\n        if (this.max > this._total) {\n          return this._total\n        }\n        return this.max\n      } else {\n        return this._total\n      }\n    },\n    valid () {\n      return this.props_value.length >= this._min && this.props_value.length <= this._max\n    },\n    error () {\n      let err = []\n      if (this.props_value.length < this._min) {\n        err.push('最少要选择'+this._min+'个哦')\n      }\n      if (this.props_value.length > this._max) {\n        err.push('最多只能选择'+this._max+'个哦')\n      }\n      return err.join('')\n    },\n    dirty () {\n      return !this.prisine\n    },\n    invalid () {\n      return !this.valid\n    }\n  },\n  methods:{\n    setTouched () {\n      this.touched = true\n    },\n    getItemKey(item){\n      return getKey(item)\n    },\n    getItemValue(item){\n      return getValue(item)\n    }\n  },\n  watch: {\n    props_value(newVal){\n      if (this.prisine === true) {\n        this.prisine = false\n      }\n      if (!this.handleChangeEvent) {\n        this.$emit('on-change', newVal)\n      }\n      this.$emit('on-change', JSON.parse(JSON.stringify(newVal)))\n      this.$emit('input',newVal)\n    },\n    value (newVal) {\n      this.props_value=newVal\n    },\n    options(val){\n      this.props_options=val\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n@import '../../styles/weui/widget/weui_cell/weui_check';\n\n.weui_cells_checkbox > label > * {\n  pointer-events: none;\n}\n.weui_cells > a {\n  color:#000;\n}\n</style>\n"
  },
  {
    "path": "src/components/checklist/metas.yml",
    "content": "props:\n  value:\n    zh-CN: 表单值\n  title:\n    zh-CN: 标题\n  required:\n    zh-CN: 是否为必填\n  options:\n    zh-CN: 选项列表，可以为`[{name:'name',value:'value'}]`的形式\n  max:\n    zh-CN: 最多可选个数\n  min:\n    zh-CN: 最少可选个数\n  fill-mode:\n    zh-CN: 是否允许填写值\n  random-order:\n    zh-CN: 是否随机打乱选项顺序\nevents:\n  on-change:\n    zh-CN: 值变化时触发，参数为 (value)\n"
  },
  {
    "path": "src/components/checklist/object-filter.js",
    "content": "export const getValue = function (item) {\n  return typeof item === 'object' ? item.value : item\n}\n\nexport const getKey = function (item) {\n  return typeof item === 'object' ? item.key : item\n}\n"
  },
  {
    "path": "src/components/circle/index.vue",
    "content": "<template>\n  <div class=\"vux-circle\">\n    <svg viewBox=\"0 0 100 100\">\n      <path :d=\"pathString\" :stroke=\"trailColor\" :stroke-width=\"trailWidth\" :fill-opacity=\"0\"/>\n      <path :d=\"pathString\" stroke-linecap=\"round\" :stroke=\"strokeColor\" :stroke-width=\"strokeWidth\" fill-opacity=\"0\" :style=\"pathStyle\"/>\n    </svg>\n    <div class=\"vux-circle-content\"><slot></slot></div>\n  </div>\n</template>\n\n<script>\n/**\n* Fork from https://github.com/react-component/progress\n* MIT license\n*/\n\nexport default {\n  props: {\n    strokeWidth: {\n      type: Number,\n      default: 1\n    },\n    strokeColor: {\n      type: String,\n      default: '#3FC7FA'\n    },\n    trailWidth: {\n      type: Number,\n      default: 1\n    },\n    trailColor: {\n      type: String,\n      default: '#D9D9D9'\n    },\n    percent: {\n      type: Number,\n      default: 0\n    }\n  },\n  computed: {\n    radius () {\n      return 50 - this.strokeWidth / 2\n    },\n    pathString () {\n      return `M 50,50 m 0,-${this.radius}\n      a ${this.radius},${this.radius} 0 1 1 0,${2 * this.radius}\n      a ${this.radius},${this.radius} 0 1 1 0,-${2 * this.radius}`\n    },\n    len () {\n      return Math.PI * 2 * this.radius\n    },\n    pathStyle () {\n      return {\n        'stroke-dasharray': `${this.len}px ${this.len}px`,\n        'stroke-dashoffset': `${((100 - this.percent) / 100 * this.len)}px`,\n        'transition': 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'\n      }\n    }\n  }\n}\n</script>\n\n<style>\n.vux-circle {\n  position: relative;\n  width: 100%;\n  height: 100%;\n}\n.vux-circle-content {\n  width: 100%;\n  text-align: center;\n  position: absolute;\n  left: 0;\n  top: 50%;\n  transform: translateY(-50%);\n}\n</style>\n"
  },
  {
    "path": "src/components/circle/metas.yml",
    "content": "props:\n  stroke-width:\n    zh-CN: 线条宽度\n  stoke-color:\n    zh-CN: 线条颜色\n  trail-width:\n    zh-CN: 背景线条宽度\n  trail-color:\n    zh-CN: 背景线条颜色\n  percent:\n    zh-CN: 进度百分比\n"
  },
  {
    "path": "src/components/clocker/clocker.js",
    "content": "// https://github.com/MoeKit/clocker\nvar instances = []\nvar matchers = []\n// Miliseconds\nmatchers.push(/^[0-9]*$/.source)\n// Month/Day/Year [hours:minutes:seconds]\nmatchers.push(/([0-9]{1,2}\\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/\n  .source)\n// Year/Day/Month [hours:minutes:seconds] and\n// Year-Day-Month [hours:minutes:seconds]\nmatchers.push(/[0-9]{4}([\\/\\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/\n  .source)\n// Cast the matchers to a regular expression object\nmatchers = new RegExp(matchers.join('|'))\n// Parse a Date formatted has String to a native object\n\nfunction parseDateString (dateString) {\n  // Pass through when a native object is sent\n  if (dateString instanceof Date) {\n    return dateString\n  }\n  // Caste string to date object\n  if (String(dateString).match(matchers)) {\n    // If looks like a milisecond value cast to number before\n    // final casting (Thanks to @msigley)\n    if (String(dateString).match(/^[0-9]*$/)) {\n      dateString = Number(dateString)\n    }\n    // Replace dashes to slashes\n    if (String(dateString).match(/\\-/)) {\n      dateString = String(dateString).replace(/\\-/g, '/')\n    }\n    return new Date(dateString)\n  } else {\n    throw new Error('Couldn\\'t cast `' + dateString +\n      '` to a date object.')\n  }\n}\n// Map to convert from a directive to offset object property\nvar DIRECTIVE_KEY_MAP = {\n  'Y': 'years',\n  'm': 'months',\n  'w': 'weeks',\n  'D': 'days',\n  'H': 'hours',\n  'M': 'minutes',\n  'S': 'seconds'\n}\n// Returns an escaped regexp from the string\n\nfunction escapedRegExp (str) {\n  var sanitize = str.toString().replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1')\n  return new RegExp(sanitize)\n}\n// Time string formatter\n\nfunction strftime (offsetObject) {\n  return function (format) {\n    var directives = format.match(/%(-|!)?[A-Z]{1}(:[^]+)?/gi)\n    if (directives) {\n      for (var i = 0, len = directives.length; i < len; ++i) {\n        var directive = directives[i].match(/%(-|!)?([a-zA-Z]{1})(:[^]+)?/)\n        var regexp = escapedRegExp(directive[0])\n        var modifier = directive[1] || ''\n        var plural = directive[3] || ''\n        var value = null\n        // Get the key\n        directive = directive[2]\n        // Swap shot-versions directives\n        if (DIRECTIVE_KEY_MAP.hasOwnProperty(directive)) {\n          value = DIRECTIVE_KEY_MAP[directive]\n          value = Number(offsetObject[value])\n        }\n        if (value !== null) {\n          // Pluralize\n          if (modifier === '!') {\n            value = pluralize(plural, value)\n          }\n          // Add zero-padding\n          if (modifier === '') {\n            if (value < 10) {\n              value = '0' + value.toString()\n            }\n          }\n          // Replace the directive\n          format = format.replace(regexp, value.toString())\n        }\n      }\n    }\n    format = format.replace('%_M1', offsetObject.minutes_1)\n      .replace('%_M2', offsetObject.minutes_2)\n      .replace('%_S1', offsetObject.seconds_1)\n      .replace('%_S2', offsetObject.seconds_2)\n      .replace('%_H1', offsetObject.hours_1)\n      .replace('%_H2', offsetObject.hours_2)\n      .replace('%_D1', offsetObject.days_1)\n      .replace('%_D2', offsetObject.days_2)\n    format = format.replace(/%%/, '%')\n    return format\n  }\n}\n// Pluralize\n\nfunction pluralize (format, count) {\n  var plural = 's'\n  var singular = ''\n  if (format) {\n    format = format.replace(/(:||\\s)/gi, '').split(/,/)\n    if (format.length === 1) {\n      plural = format[0]\n    } else {\n      singular = format[0]\n      plural = format[1]\n    }\n  }\n  if (Math.abs(count) === 1) {\n    return singular\n  } else {\n    return plural\n  }\n}\n\nfunction splitNumber (number) {\n  number = number + ''\n  number = (number.length === 1 ? ('0' + number) : number) + ''\n  return number.split('')\n}\n\n// The Final Countdown\nvar Countdown = function (finalDate, option) {\n  option = option || {}\n  this.PRECISION = option.precision || 100 // 0.1 seconds, used to update the DOM\n  this.interval = null\n  this.offset = {}\n  // Register this instance\n  this.instanceNumber = instances.length\n  instances.push(this)\n  // Set the final date and start\n  this.setFinalDate(finalDate)\n}\nvar Eventor = require('../../libs/eventor')\nEventor.mixTo(Countdown)\nvar pro = Countdown.prototype\n\nvar fns = {\n  start () {\n    if (this.interval !== null) {\n      clearInterval(this.interval)\n    }\n    var self = this\n    this.update()\n    this.interval = setInterval(function () {\n      self.update()\n    }, this.PRECISION)\n    return this\n  },\n  stop () {\n    clearInterval(this.interval)\n    this.interval = null\n    this._dispatchEvent('stoped')\n    return this\n  },\n  toggle () {\n    if (this.interval) {\n      this.stop()\n    } else {\n      this.start()\n    }\n    return this\n  },\n  pause () {\n    return this.stop()\n  },\n  resume () {\n    return this.start()\n  },\n  remove () {\n    this.stop()\n    instances[this.instanceNumber] = null\n  },\n  setFinalDate (value) {\n    this.finalDate = parseDateString(value) // Cast the given date\n    return this\n  },\n  getOffset () {\n    this.totalSecsLeft = this.finalDate.getTime() - new Date().getTime() // In miliseconds\n    this.totalSecsLeft = Math.ceil(this.totalSecsLeft / 1000)\n    this.totalSecsLeft = this.totalSecsLeft < 0 ? 0 : this.totalSecsLeft\n    // Calculate the offsets\n    return {\n      seconds: this.totalSecsLeft % 60,\n      minutes: Math.floor(this.totalSecsLeft / 60) % 60,\n      hours: Math.floor(this.totalSecsLeft / 60 / 60) % 24,\n      days: Math.floor(this.totalSecsLeft / 60 / 60 / 24),\n      weeks: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 7),\n      months: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 30),\n      years: Math.floor(this.totalSecsLeft / 60 / 60 / 24 / 365)\n    }\n  },\n  update () {\n    // Calculate the offsets\n    this.offset = this.getOffset()\n    // split offset only for days, hours, minutes, seconds and two number like 45, do not support 100\n\n    var list = ['days', 'hours', 'minutes', 'seconds']\n\n    for (var i = 0; i < list.length; i++) {\n      var key = list[i]\n      var numbers = splitNumber(this.offset[key])\n      this.offset[key + '_1'] = numbers[0]\n      this.offset[key + '_2'] = numbers[1]\n    }\n    // Dispatch an event\n    if (this.totalSecsLeft === 0) {\n      this.stop()\n      this._dispatchEvent('finish')\n    } else {\n      this._dispatchEvent('update')\n    }\n    return this\n  },\n  _dispatchEvent (eventName) {\n    var event = {}\n    event.finalDate = this.finalDate\n    event.offset = this.offset\n    event.strftime = strftime(this.offset)\n    this.emit(eventName, event)\n    this.emit('tick', event)\n  }\n}\n\nfor (var i in fns) {\n  pro[i] = fns[i]\n}\n\nmodule.exports = Countdown\n"
  },
  {
    "path": "src/components/clocker/index.vue",
    "content": "<template>\n  <div style=\"display:inline-block;\">\n    <span v-if=\"showTimeString\">{{timeString}}</span>\n    <div class=\"vux-clocker-tpl\"><slot></slot></div>\n  </div>\n</template>\n\n<script>\nconst Clocker = require('./clocker')\nexport default {\n  mounted () {\n    this.slot = this.$el.querySelector('.vux-clocker-tpl')\n    this.slotString = this.slot.innerHTML\n    if (this.slotString !== '') {\n      this.showTimeString = false\n    }\n    this.render()\n  },\n  methods: {\n    render () {\n      if (!this.time) return\n      this.clocker = new Clocker(this.time)\n      .on('tick', event => {\n        this.update(event)\n        this.$emit('on-tick', event)\n      })\n      .on('finish', () => {\n        this.timeString = '00:00:00'\n        this.$emit('on-finish')\n      })\n      .start()\n    },\n    update (event) {\n      if (this.showTimeString) {\n        this.timeString = event.strftime(this.format)\n      } else {\n        let string = event.strftime(this.slotString)\n        if (string !== this.cacheSlotString) {\n          this.slot.innerHTML = this.cacheSlotString = string\n        }\n      }\n    }\n  },\n  props: {\n    time: [String, Number],\n    format: {\n      type: String,\n      default: '%D 天 %H 小时 %M 分 %S 秒'\n    }\n  },\n  watch: {\n    time () {\n      this.clocker.remove()\n      this.render()\n    }\n  },\n  data () {\n    return {\n      showTimeString: true,\n      timeString: '',\n      slotString: '',\n      cacheSlotString: ''\n    }\n  },\n  beforeDestroy () {\n    this.clocker.remove()\n    this.clocker = null\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/clocker/metas.yml",
    "content": "props:\n  time:\n    en: the end time\n    zh-CN: 结束时间\n  format:\n    en: the result format\n    zh-CN: 显示格式\nevents:\n  on-tick:\n    en: triggers on time ticking\n    zh-CN: 时间计算时触发，但非每1s触发\n  on-finish:\n    en: triggers on time end\n    zh-CN: 时间结束时触发\nslots:\n  default:\n    en: if specified, will be the format for the result\n    zh-CN: 若存在，则作为最终显示出来的结果模板\n"
  },
  {
    "path": "src/components/color-picker/index.vue",
    "content": "<template>\n  <div class=\"vux-color-picker\">\n    <input style=\"display:none\" v-model=\"props_value\">\n    <flexbox>\n      <flexbox-item v-for=\"color in colors\" class=\"vux-color-box\">\n        <span class=\"vux-color-item\" :style=\"{borderRadius: width/2 + 'px',backgroundColor: color, width: width + 'px', height: width + 'px'}\" @click=\"change(color)\" :class=\"{'vux-color-white': color === '#fff' || color === '#fff', 'vux-color-picker-small': size === 'small', 'vux-color-picker-middle': size === 'middle'}\">\n          <icon v-if=\"color === props_value\" class=\"vux-color-checked\" :style=\"{lineHeight: width + 'px'}\" type=\"success_no_circle\"></icon>\n        </span>\n      </flexbox-item>\n    </flexbox>\n  </div>\n</template>\n\n<script>\nimport Icon from '../icon'\nimport { Flexbox, FlexboxItem } from '../flexbox'\n\nconst sizeMap = {\n  'large': 40,\n  'middle': 30,\n  'small': 20\n}\nexport default {\n  components: {\n    Icon,\n    Flexbox,\n    FlexboxItem\n  },\n  props: {\n    colors: {\n      type: Array,\n      required: true\n    },\n    size: {\n      type: String,\n      default: 'large'\n    },\n    value: String\n  },\n  computed: {\n    width () {\n      return sizeMap[this.size]\n    }\n  },\n  data(){\n    return {\n      props_value : ''\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  methods: {\n    change (color) {\n      this.props_value = color\n      this.$emit('on-change', color)\n    }\n  },\n  watch:{\n    value(val){\n      this.props_value=val\n    },\n    props_value(val){\n      this.$emit('input',val);\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/icon/weui_icon_font';\n\n.vux-color-box {\n  text-align: center;\n}\n.vux-color-picker {\n  font-size: 0;\n}\n.vux-color-item {\n  display: inline-block;\n  text-align: center;\n  box-sizing: border-box;\n  position: relative\n}\n.vux-color-checked.weui_icon_success_no_circle:before {\n  color: #fff;\n}\n.vux-color-checked {\n  width: 100%;\n  position: absolute;\n  left: 0;\n  top: 50%;\n  transform: translateY(-50%);\n}\n.vux-color-white {\n  border: 1px solid #ccc;\n}\n.vux-color-white .vux-color-checked:before {\n  color: #ccc;\n}\n.vux-color-picker-small .vux-color-checked:before{\n  font-size: 10px;\n}\n.vux-color-picker-middle .vux-color-checked:before{\n  font-size: 18px;\n}\n</style>\n"
  },
  {
    "path": "src/components/confirm/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/confirm/index.vue",
    "content": "<template>\n  <div>\n    <x-dialog class=\"weui_dialog_confirm\"\n    :show=\"props_show\"\n    :mask-transition=\"maskTransition\"\n    :dialog-transition=\"dialogTransition\"\n    @on-hide=\"$emit('on-hide')\"\n    @on-show=\"$emit('on-show')\">\n      <div class=\"weui_dialog_hd\"><strong class=\"weui_dialog_title\">{{title}}</strong></div>\n      <div class=\"weui_dialog_bd\"><slot></slot></div>\n      <div class=\"weui_dialog_ft\">\n        <a href=\"javascript:;\" class=\"weui_btn_dialog default\" @click=\"onCancel\">{{cancelText}}</a>\n        <a href=\"javascript:;\" class=\"weui_btn_dialog primary\" @click=\"onConfirm\">{{confirmText}}</a>\n      </div>\n    </x-dialog>\n  </div>\n</template>\n\n<script>\nimport XDialog from '../dialog'\n\nexport default {\n  components: {\n    XDialog\n  },\n  props: {\n    value: {\n      type: Boolean,\n      default: false\n    },\n    show: Boolean,\n    title: {\n      type: String,\n      required: true\n    },\n    confirmText: {\n      type: String,\n      default: 'confirm'\n    },\n    cancelText: {\n      type: String,\n      default: 'cancel'\n    },\n    maskTransition: {\n      type: String,\n      default: 'vux-fade'\n    },\n    dialogTransition: {\n      type: String,\n      default: 'vux-dialog'\n    }\n  },\n  created(){\n    this.props_show=this.show\n    if(this.value) this.props_show=this.value\n  },\n  watch: {\n    value(val){\n      this.props_show=val\n    },\n    props_show(val){\n      this.$emit('input',val)\n    },\n    show (val) {\n      this.props_show=val\n    }\n  },\n  data(){\n    return {\n      props_show:false\n    }\n  },\n  methods: {\n    onConfirm () {\n      this.props_show = false\n      this.$emit('on-confirm')\n    },\n    onCancel () {\n      this.props_show = false\n      this.$emit('on-cancel')\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/transition.less';\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/widget/weui_tips/weui_dialog';\n</style>"
  },
  {
    "path": "src/components/confirm/metas.yml",
    "content": "tags:\n  en:\n    - message\n    - confirm\n  zh-CN:\n    - 消息提示\n    - 确认\nprops:\n  show:\n    en: visibility of the component\n    zh-CN: 是否显示\n  title:\n    en: dialog title\n    zh-CN: 弹窗标题\n  confirm-text:\n    en: confirm button text\n    zh-CN: 确认按钮文字\n  cancel-text:\n    en: cancel button text\n    zh-CN: 取消按钮文字\n  mask-transition:\n    en: mask's transition\n    zh-CN: 遮罩动画\n  dialog-transition:\n    en: dialog's transition\n    zh-CN: 弹窗动画\nslots:\n  default:\n    en: body content of the dialog\n    zh-CN: 弹窗主体内容\nevents:\n  on-cancel:\n    en: triggers when the cancel button is clicked\n    zh-CN: 点击取消按钮时触发\n  on-confirm:\n    en: triggers when the confirm button is clicked\n    zh-CN: 点击确定按钮时触发\n"
  },
  {
    "path": "src/components/countdown/index.vue",
    "content": "<template>\n  <span>{{props_time}}<input style=\"display:none\" v-model=\"props_time\"></span>\n</template>\n\n<script>\nexport default {\n  props: {\n    value: Number,\n    time: {\n      type: Number,\n      default: 60\n    },\n    start: {\n      type: Boolean,\n      default: true\n    }\n  },\n  created(){\n    this.props_time=this.time\n    if(this.value) this.props_time=this.value\n  },\n  methods: {\n    tick () {\n      let _this = this\n      this.interval = setInterval(function () {\n        if (_this.props_time > 0) {\n          _this.props_time--\n        } else {\n          _this.stop()\n          _this.index++\n          _this.$emit('on-finish', _this.index)\n        }\n      }, 1000)\n    },\n    stop () {\n      clearInterval(this.interval)\n    }\n  },\n  watch: {\n    value(val){\n      this.props_time=val\n    },\n    props_time(val){\n      this.$emit('input',val)\n    },\n    time (val) {\n      this.props_time=val\n    },\n    start (newVal, oldVal) {\n      if (newVal === true && oldVal === false && this.props_time > 0) {\n        this.tick()\n      }\n      if (newVal === false && oldVal === true) {\n        this.stop()\n      }\n    }\n  },\n  mounted () {\n    if (this.start) {\n      this.tick()\n    }\n  },\n  data () {\n    return {\n      interval: null,\n      index: 0,\n      props_time :60\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/countup/index.vue",
    "content": "<template>\n  <span>{{startVal}}</span>\n</template>\n\n<script>\nimport Countup from 'countup'\n\nexport default {\n  mounted () {\n    this._countup = new Countup(this.$el, this.startVal, this.endVal, this.decimals, this.duration, this.options)\n    this._countup.start()\n  },\n  props: {\n    startVal: {\n      type: Number,\n      default: 0\n    },\n    endVal: {\n      type: Number,\n      required: true\n    },\n    // number of decimal places in number\n    decimals: {\n      type: Number,\n      default: 0\n    },\n    // duration in seconds\n    duration: {\n      type: Number,\n      default: 2\n    },\n    options: {\n      type: Object,\n      default () {\n        return {}\n      }\n    }\n  },\n  watch: {\n    endVal (val) {\n      this._countup.update(val)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/datetime/datetimepicker.js",
    "content": "import Scroller from '../picker/scroller'\nimport { each, trimZero, addZero, getMaxDay, parseRow, parseDate, getElement, toElement, removeElement } from './util'\n\nconst MASK_TEMPLATE = '<div class=\"dp-mask\"></div>'\n\nconst TEMPLATE = `<div class=\"dp-container\">\n  <div class=\"dp-header\">\n    <div class=\"dp-item dp-left\" data-role=\"cancel\">cancel</div>\n    <div class=\"dp-item dp-center\" data-role=\"clear\"></div>\n    <div class=\"dp-item dp-right\" data-role=\"confirm\">ok</div>\n  </div>\n  <div class=\"dp-content\">\n    <div class=\"dp-item\" data-role=\"year\"></div>\n    <div class=\"dp-item\" data-role=\"month\"></div>\n    <div class=\"dp-item\" data-role=\"day\"></div>\n    <div class=\"dp-item\" data-role=\"hour\"></div>\n    <div class=\"dp-item\" data-role=\"minute\"></div>\n  </div>\n</div>`\n\nvar SHOW_ANIMATION_TIME = 100 // ms\nvar SHOW_CONTAINER_TIME = 300\n\nvar TYPE_MAP = {\n  year: ['YYYY'],\n  month: ['MM', 'M'],\n  day: ['DD', 'D'],\n  hour: ['HH', 'H'],\n  minute: ['mm', 'm']\n}\n\nvar MASK = null\n\nvar CURRENT_PICKER\n\nvar NOW = new Date()\n\nvar DEFAULT_CONFIG = {\n  template: TEMPLATE,\n  trigger: null,\n  output: null,\n  currentYear: NOW.getFullYear(),\n  currentMonth: NOW.getMonth() + 1,\n  minYear: 2000,\n  maxYear: 2030,\n  yearRow: '{value}',\n  monthRow: '{value}',\n  dayRow: '{value}',\n  hourRow: '{value}',\n  minuteRow: '{value}',\n  format: 'YYYY-MM-DD',\n  value: NOW.getFullYear() + '-' + (NOW.getMonth() + 1) + '-' + NOW.getDate(),\n  onSelect () {},\n  onConfirm () {},\n  onClear () {},\n  onShow () {},\n  onHide () {},\n  confirmText: 'ok',\n  clearText: '',\n  cancelText: 'cancel'\n}\n\nfunction renderScroller (el, data, value, fn) {\n  var scroller = new Scroller(el, {\n    data: data,\n    defaultValue: value,\n    onSelect: fn\n  })\n  return scroller\n}\n\nfunction showMask () {\n  if (!MASK) {\n    MASK = toElement(MASK_TEMPLATE)\n    document.body.appendChild(MASK)\n\n    MASK.addEventListener('click', function () {\n      CURRENT_PICKER && CURRENT_PICKER.hide()\n    }, false)\n  }\n\n  MASK.style.display = 'block'\n\n  setTimeout(function () {\n    MASK && (MASK.style.opacity = 0.5)\n  }, 0)\n}\n\nfunction hideMask () {\n  if (!MASK) {\n    return\n  }\n\n  MASK.style.opacity = 0\n\n  setTimeout(function () {\n    MASK && (MASK.style.display = 'none')\n    // hideMaskTimer = null\n  }, SHOW_ANIMATION_TIME)\n}\n\nfunction DatetimePicker (config) {\n  var self = this\n  self.config = {}\n  self.value = config.value || ''\n  each(DEFAULT_CONFIG, function (key, val) {\n    self.config[key] = config[key] || val\n  })\n\n  var trigger = self.config.trigger\n  if (trigger) {\n    var output = self.config.output || trigger\n    trigger = self.trigger = getElement(trigger)\n    output = self.output = getElement(output)\n\n    trigger.addEventListener('click', function (e) {\n      e.preventDefault()\n      self.show(self.value)\n    }, false)\n  }\n}\n\nDatetimePicker.prototype = {\n\n  _show (newValueMap) {\n    var self = this\n\n    self.container.style.display = 'block'\n\n    each(TYPE_MAP, function (type) {\n      self[type + 'Scroller'] && self[type + 'Scroller'].select(trimZero(newValueMap[type]), false)\n    })\n\n    setTimeout(function () {\n      self.container.style['-webkit-transform'] = 'translateY(0)'\n      self.container.style.transform = 'translateY(0)'\n    }, 0)\n  },\n  show (value) {\n    var self = this\n    var config = self.config\n    CURRENT_PICKER = self\n    var valueMap = self.valueMap = parseDate(config.format, value || config.value)\n    var newValueMap = {}\n\n    each(TYPE_MAP, function (type, list) {\n      newValueMap[type] = list.length === 1 ? valueMap[list[0]] : (valueMap[list[0]] || valueMap[list[1]])\n    })\n\n    if (self.container) {\n      self._show(newValueMap)\n    } else {\n      var container = self.container = toElement(config.template)\n      document.body.appendChild(container)\n\n      self.container.style.display = 'block'\n\n      container.addEventListener('touchstart', function (e) {\n        // e.preventDefault()\n      }, false)\n\n      each(TYPE_MAP, function (type) {\n        // 清除格式里没有列\n        var div = self.find('[data-role=' + type + ']')\n        if (newValueMap[type] === undefined) {\n          removeElement(div)\n          return\n        }\n        var data\n        if (type === 'day') {\n          data = self._makeData(type, trimZero(newValueMap.year), trimZero(newValueMap.month))\n        } else {\n          data = self._makeData(type)\n        }\n\n        self[type + 'Scroller'] = renderScroller(div, data, trimZero(newValueMap[type]), function (currentValue) {\n          config.onSelect.call(self, type, currentValue)\n          var currentDay\n          if (!self.dayScroller) {\n            return\n          }\n          if (type === 'year') {\n            var currentMonth = self.monthScroller ? self.monthScroller.value : config.currentMonth\n            currentDay = self.dayScroller.value\n            self._setDayScroller(currentValue, currentMonth, currentDay)\n          } else if (type === 'month') {\n            var currentYear = self.yearScroller ? self.yearScroller.value : config.currentYear\n            currentDay = self.dayScroller.value\n            self._setDayScroller(currentYear, currentValue, currentDay)\n          }\n        })\n      })\n\n      if (!self.renderText) {\n        if (self.config.confirmText) {\n          self.find('[data-role=confirm]').innerText = self.config.confirmText\n        }\n\n        if (self.config.cancelText) {\n          self.find('[data-role=cancel]').innerText = self.config.cancelText\n        }\n        if (self.config.clearText) {\n          self.find('[data-role=clear]').innerText = self.config.clearText\n        }\n        self.renderText = true\n      }\n\n      this._show(newValueMap)\n\n      self.find('[data-role=cancel]').addEventListener('click', function (e) {\n        e.preventDefault()\n        self.hide()\n      }, false)\n\n      self.find('[data-role=confirm]').addEventListener('click', function (e) {\n        e.preventDefault()\n        self.confirm()\n      }, false)\n\n      if (self.config.clearText) {\n        self.find('[data-role=clear]').addEventListener('click', function (e) {\n          e.preventDefault()\n          self.clear()\n        }, false)\n      }\n    }\n\n    showMask()\n    config.onShow.call(self)\n  },\n\n  _makeData (type, year, month) {\n    var config = this.config\n    var valueMap = this.valueMap\n    var list = TYPE_MAP[type]\n    var data = []\n    var min\n    var max\n    if (type === 'year') {\n      min = config.minYear\n      max = config.maxYear\n    } else if (type === 'month') {\n      min = 1\n      max = 12\n    } else if (type === 'day') {\n      min = 1\n      max = getMaxDay(year, month)\n    } else if (type === 'hour') {\n      min = 0\n      max = 23\n    } else if (type === 'minute') {\n      min = 0\n      max = 59\n    }\n    for (var i = min; i <= max; i++) {\n      var name\n      if (type === 'year') {\n        name = parseRow(config.yearRow, i)\n      } else {\n        var val = valueMap[list[0]] ? addZero(i) : i\n        name = parseRow(config[type + 'Row'], val)\n      }\n      data.push({\n        name: name,\n        value: i\n      })\n    }\n    return data\n  },\n\n  _setDayScroller (year, month, day) {\n    var self = this\n    var maxDay = getMaxDay(year, month)\n    if (day > maxDay) {\n      day = maxDay\n    }\n    self.dayScroller.destroy()\n    var div = self.find('[data-role=day]')\n    self.dayScroller = renderScroller(div, self._makeData('day', year, month), day, function (currentValue) {\n      self.config.onSelect.call(self, 'day', currentValue)\n    })\n  },\n\n  find (selector) {\n    return this.container.querySelector(selector)\n  },\n\n  hide () {\n    var self = this\n    self.container.style.removeProperty('transform')\n    self.container.style.removeProperty('-webkit-transform')\n\n    setTimeout(function () {\n      self.container.style.display = 'none'\n    }, SHOW_CONTAINER_TIME)\n\n    hideMask()\n\n    self.config.onHide.call(self)\n  },\n\n  select (type, value) {\n    this[type + 'Scroller'].select(value, false)\n  },\n\n  destroy () {\n    var self = this\n    removeElement(MASK)\n    removeElement(self.container)\n    MASK = null\n    self.container = null\n  },\n\n  getValue () {\n    var self = this\n    var config = self.config\n\n    var value = config.format\n\n    function formatValue (scroller, expr1, expr2) {\n      if (scroller) {\n        var val = scroller.value\n        if (expr1) {\n          value = value.replace(new RegExp(expr1, 'g'), addZero(val))\n        }\n        if (expr2) {\n          value = value.replace(new RegExp(expr2, 'g'), trimZero(val))\n        }\n      }\n    }\n\n    each(TYPE_MAP, function (key, list) {\n      formatValue(self[key + 'Scroller'], list[0], list[1])\n    })\n\n    return value\n  },\n\n  confirm () {\n    var self = this\n    var value = self.getValue()\n    this.value = value\n\n    if (self.config.onConfirm.call(self, value) === false) {\n      return\n    }\n\n    self.hide()\n  },\n\n  clear () {\n    var self = this\n    var value = self.getValue()\n\n    if (self.config.onClear.call(self, value) === false) {\n      return\n    }\n\n    self.hide()\n  }\n}\n\nexport default DatetimePicker\n"
  },
  {
    "path": "src/components/datetime/format.js",
    "content": "module.exports = function (date, fmt = 'YYYY-MM-DD HH:mm:ss') {\n  var o = {\n    'M+': date.getMonth() + 1,\n    'D+': date.getDate(),\n    'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,\n    'H+': date.getHours(),\n    'm+': date.getMinutes(),\n    's+': date.getSeconds(),\n    'q+': Math.floor((date.getMonth() + 3) / 3),\n    'S': date.getMilliseconds()\n  }\n  var week = {\n    '0': '/u65e5',\n    '1': '/u4e00',\n    '2': '/u4e8c',\n    '3': '/u4e09',\n    '4': '/u56db',\n    '5': '/u4e94',\n    '6': '/u516d'\n  }\n  if (/(Y+)/.test(fmt)) {\n    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))\n  }\n  if (/(E+)/.test(fmt)) {\n    fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '/u661f/u671f' : '/u5468') : '') + week[date.getDay() + ''])\n  }\n  for (var k in o) {\n    if (new RegExp('(' + k + ')').test(fmt)) {\n      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))\n    }\n  }\n  return fmt\n}\n"
  },
  {
    "path": "src/components/datetime/index.vue",
    "content": "<template>\n  <a class=\"weui_cell\" href=\"javascript:\">\n    <input style=\"display:none\" v-model=\"props_value\">\n    <div class=\"weui_cell_bd weui_cell_primary\">\n      <p>{{title}}</p>\n      <inline-desc v-if=\"inlineDesc\">{{inlineDesc}}</inline-desc>\n    </div>\n    <div class=\"weui_cell_ft with_arrow vux-datetime-value\">{{ props_value || placeholder}}</div>\n  </a>\n</template>\n\n<script>\nimport Picker from './datetimepicker'\nimport Group from '../group'\nimport InlineDesc from '../inline-desc'\nimport Base from '../../libs/base'\n\nexport default {\n  mixins: [Base],\n  components: {\n    Group,\n    InlineDesc\n  },\n  props: {\n    format: {\n      type: String,\n      default: 'YYYY-MM-DD'\n    },\n    title: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: String,\n      default: ''\n    },\n    inlineDesc: String,\n    placeholder: String,\n    minYear: Number,\n    maxYear: Number,\n    confirmText: {\n      type: String,\n      default: 'ok'\n    },\n    cancelText: {\n      type: String,\n      default: 'cancel'\n    },\n    clearText: {\n      type: String,\n      default: ''\n    },\n    yearRow: {\n      type: String,\n      default: '{value}'\n    },\n    monthRow: {\n      type: String,\n      default: '{value}'\n    },\n    dayRow: {\n      type: String,\n      default: '{value}'\n    },\n    hourRow: {\n      type: String,\n      default: '{value}'\n    },\n    minuteRow: {\n      type: String,\n      default: '{value}'\n    }\n  },\n  created () {\n    this.props_value=this.value\n    this.handleChangeEvent = true\n  },\n  data(){\n    return{\n      props_value:''\n    }\n  },\n  mounted () {\n    const uuid = this.uuid\n    this.$el.setAttribute('id', 'vux-datetime-' + uuid)\n    this.render()\n  },\n  computed: {\n    pickerOptions () {\n      const _this = this\n      const options = {\n        trigger: '#vux-datetime-' + this.uuid,\n        format: this.format,\n        value: this.props_value,\n        output: '.vux-datetime-value',\n        confirmText: this.confirmText,\n        cancelText: _this.cancelText,\n        clearText: _this.clearText,\n        yearRow: this.yearRow,\n        monthRow: this.monthRow,\n        dayRow: this.dayRow,\n        hourRow: this.hourRow,\n        minuteRow: this.minuteRow,\n        onConfirm (value) {\n          _this.props_value = value\n        },\n        onClear (value) {\n          _this.$emit('on-clear', value)\n        }\n      }\n      if (this.minYear) {\n        options.minYear = this.minYear\n      }\n      if (this.maxYear) {\n        options.maxYear = this.maxYear\n      }\n      return options\n    }\n  },\n  methods: {\n    render () {\n      if (this.picker) {\n        this.picker.destroy()\n      }\n      this.picker = new Picker(this.pickerOptions)\n    }\n  },\n  watch: {\n    props_value(val){\n      this.$emit('on-change', val)\n      this.$emit('input',val)\n    },\n    value (val) {\n      this.props_value=val\n    }\n  },\n  beforeDestroy () {\n    this.picker.destroy()\n  }\n}\n</script>\n\n<style>\n.weui_cell_ft.with_arrow:after {\n  content: \" \";\n  display: inline-block;\n  transform: rotate(45deg);\n  height: 6px;\n  width: 6px;\n  border-width: 2px 2px 0 0;\n  border-color: #C8C8CD;\n  border-style: solid;\n  position: relative;\n  top: -1px;\n  margin-left: .3em;\n}\n.scroller-component {\n  display: block;\n  position: relative;\n  height: 238px;\n  overflow: hidden;\n  width: 100%;\n}\n\n.scroller-content {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  z-index: -1;\n}\n\n.scroller-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 100%;\n  margin: 0 auto;\n  width: 100%;\n  z-index: 3;\n  background-image:\n    linear-gradient(to bottom, rgba(255,255,255,0.95), rgba(255,255,255,0.6)),\n    linear-gradient(to top, rgba(255,255,255,0.95), rgba(255,255,255,0.6));\n  background-position: top, bottom;\n  background-size: 100% 102px;\n  background-repeat: no-repeat;\n}\n\n.scroller-item {\n  text-align: center;\n  font-size: 16px;\n  height: 34px;\n  line-height: 34px;\n  color: #000;\n}\n\n.scroller-indicator {\n  width: 100%;\n  height: 34px;\n  position: absolute;\n  left: 0;\n  top: 102px;\n  z-index: 3;\n  background-image:\n    linear-gradient(to bottom, #d0d0d0, #d0d0d0, transparent, transparent),\n    linear-gradient(to top, #d0d0d0, #d0d0d0, transparent, transparent);\n  background-position: top, bottom;\n  background-size: 100% 1px;\n  background-repeat: no-repeat;\n}\n\n.dp-container {\n  position: fixed;\n  width: 100%;\n  left: 0;\n  bottom: 0;\n  z-index: 10000;\n  background-color: #fff;\n  display: none;\n  transition: transform 0.3s ease;\n  transform: translateY(100%);\n}\n\n.dp-mask {\n  z-index: 998;\n  position: fixed;\n  width: 100%;\n  height: 100%;\n  left: 0px;\n  top: 0px;\n  opacity: 0;\n  transition: opacity 0.1s ease;\n  background-color: #000;\n  z-index: 9999;\n}\n\n.dp-header {\n  display: flex;\n  width: 100%;\n  box-align: center;\n  align-items: center;\n  background-image: linear-gradient(to bottom, #e7e7e7, #e7e7e7, transparent, transparent);\n  background-position: bottom;\n  background-size: 100% 1px;\n  background-repeat: no-repeat;\n}\n\n.dp-header .dp-item {\n  color: #04BE02;\n  font-size: 18px;\n  height: 44px;\n  line-height: 44px;\n  cursor: pointer;\n}\n\n.dp-content {\n  display: flex;\n  width: 100%;\n  box-align: center;\n  align-items: center;\n  padding: 10px 0;\n}\n\n.dp-header .dp-item,\n.dp-content .dp-item {\n  box-sizing: border-box;\n  flex: 1;\n  text-align: center;\n}\n</style>\n"
  },
  {
    "path": "src/components/datetime/util.js",
    "content": "import formater from './format'\n\nexport function each (obj, fn) {\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      if (fn.call(obj[key], key, obj[key]) === false) {\n        break\n      }\n    }\n  }\n}\n\nexport function trimZero (val) {\n  val = String(val)\n  val = val ? parseFloat(val.replace(/^0+/g, '')) : ''\n  val = val || 0\n  val = val + ''\n  return val\n}\n\nexport function addZero (val) {\n  val = String(val)\n  return val.length < 2 ? '0' + val : val\n}\n\nexport function isLeapYear (year) {\n  return year % 100 !== 0 && year % 4 === 0 || year % 400 === 0\n}\n\nexport function getMaxDay (year, month) {\n  year = parseFloat(year)\n  month = parseFloat(month)\n  if (month === 2) {\n    return isLeapYear(year) ? 29 : 28\n  }\n  return [4, 6, 9, 11].indexOf(month) >= 0 ? 30 : 31\n}\n\nexport function parseRow (tmpl, value) {\n  return tmpl.replace(/\\{value\\}/g, value)\n}\n\n// parse Date String\nexport function parseDate (format, value) {\n  var formatParts = format.split(/[^A-Za-z]+/)\n  var valueParts = value.split(/\\D+/)\n  if (formatParts.length !== valueParts.length) {\n    // if it is error date, use current date\n    var date = formater(new Date(), format)\n    valueParts = date.split(/\\D+/)\n  }\n\n  var result = {}\n\n  for (var i = 0; i < formatParts.length; i++) {\n    if (formatParts[i]) {\n      result[formatParts[i]] = valueParts[i]\n    }\n  }\n  return result\n}\n\nexport function getElement (expr) {\n  return (typeof expr === 'string') ? document.querySelector(expr) : expr\n}\n\nexport function toElement (html) {\n  var tempContainer = document.createElement('div')\n  tempContainer.innerHTML = html\n  return tempContainer.firstElementChild\n}\n\nexport function removeElement (el) {\n  el && el.parentNode.removeChild(el)\n}\n"
  },
  {
    "path": "src/components/dev-tip/index.vue",
    "content": "<template>\n  <div class=\"vux-dev-tip\">\n    <slot></slot>\n  </div>\n</template>\n\n<style>\n.vux-dev-tip {\n  padding:5px 10px;\n  background-color: #FFCC00;\n  color:#000;\n  margin-bottom:0.3em;\n  font-size:12px;\n}\n</style>\n"
  },
  {
    "path": "src/components/dialog/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/dialog/index.vue",
    "content": "<template>\n  <div class=\"weui_dialog_alert fix_ios_fixed\" @touchmove=\"onTouchMove\" v-show=\"props_show\">\n    <transition name=\"vux-mask\">\n      <div class=\"weui_mask\" @click=\"hideOnBlur && (props_show = false)\" v-show=\"props_show\"></div>\n    </transition>\n    <input style=\"display:none\" v-model=\"props_show\">\n    <transition name=\"vux-dialog\">\n      <div class=\"weui_dialog\" v-show=\"props_show\" >\n        <slot></slot>\n      </div>\n    </transition>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    show: {\n      type: Boolean,\n      default: false\n    },\n    value: {\n      type: Boolean,\n      default: false\n    },\n    maskTransition: {\n      type: String,\n      default: 'vux-fade'\n    },\n    dialogTransition: {\n      type: String,\n      default: 'vux-dialog'\n    },\n    hideOnBlur: Boolean,\n    scroll: {\n      type: Boolean,\n      default: true\n    }\n  },\n  created(){\n    this.props_show=this.show\n    if(this.value) this.props_show=this.value\n\n  },\n  watch: {\n    value(val){\n      this.props_show=val\n    },\n    props_show(val){\n      this.$emit(val ? 'on-show' : 'on-hide')\n      this.$emit('input',val)\n    },\n    show (val) {\n      this.props_show=val\n    }\n  },\n  data(){\n    return {\n      props_show:false\n    }\n  },\n  methods:{\n    onTouchMove:function(event){\n      !this.scroll && event.preventDefault()\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/transition.less';\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/widget/weui_tips/weui_dialog';\n</style>\n"
  },
  {
    "path": "src/components/divider/index.vue",
    "content": "<template>\n  <p class=\"vux-divider\">\n    <slot></slot>\n  </p>\n</template>\n\n<style>\n.vux-divider {\n  display: table;\n  white-space: nowrap;\n  height: auto;\n  overflow: hidden;\n  line-height: 1;\n  text-align: center;\n  padding: 10px 0;\n  color: #666;\n}\n\n.vux-divider:after,.vux-divider:before {\n  content: '';\n  display: table-cell;\n  position: relative;\n  top: 50%;\n  width: 50%;\n  background-repeat: no-repeat;\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)\n}\n\n.vux-divider:before {\n  background-position: right 1em top 50%\n}\n\n.vux-divider:after {\n  background-position: left 1em top 50%\n}\n</style>\n"
  },
  {
    "path": "src/components/divider/metas.yml",
    "content": "tips:\n  -\n    en: cannot custom line color for the moment\n    zh-CN: 暂时不可定义分割线颜色\nslots:\n  default:\n    en: divider title\n    zh-CN: 分隔线标题\nreferences:\n  - http://www.daqianduan.com/4258.html\n"
  },
  {
    "path": "src/components/flexbox/flexbox-item.vue",
    "content": "<template>\n  <div class=\"vux-flexbox-item\" :style=\"style\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nconst prefixList = ['-moz-box-', '-webkit-box-', '']\n\nexport default {\n  props: {\n    span: [Number, String],\n    order: [Number, String]\n  },\n  methods: {\n    buildWidth (width) {\n      if (typeof width === 'number') {\n        if (width < 1) {\n          return width\n        } else {\n          return width / 12\n        }\n      } else if (typeof width === 'string') {\n        return width.replace('px', '') / this.bodyWidth\n      }\n    }\n  },\n  computed: {\n    style () {\n      let styles = {}\n      let marginName = this.$parent.orient === 'horizontal' ? 'marginLeft' : 'marginTop'\n      styles[marginName] = `${this.$parent.gutter}px`\n\n      if (this.span) {\n        for (let i = 0; i < prefixList.length; i++) {\n          styles[prefixList[i] + 'flex'] = `0 0 ${this.buildWidth(this.span) * 100}%`\n        }\n      }\n      if (typeof this.order !== 'undefined') {\n        styles.order = this.order\n      }\n      return styles\n    }\n  },\n  data () {\n    return {\n      bodyWidth: document.documentElement.offsetWidth\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/flexbox/flexbox.vue",
    "content": "<template>\n  <div class=\"vux-flexbox\" :class=\"{'vux-flex-col': orient === 'vertical', 'vux-flex-row': orient === 'horizontal'}\" :style=\"styles\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    gutter: {\n      type: Number,\n      default: 8\n    },\n    orient: {\n      type: String,\n      default: 'horizontal'\n    },\n    justify: String,\n    align: String,\n    wrap: String,\n    direction: String\n  },\n  computed: {\n    styles () {\n      return {\n        'justify-content': this.justify,\n        'align-items': this.align,\n        'flex-wrap': this.wrap,\n        'flex-direction': this.direction\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n.vux-flexbox{\n  width: 100%;\n  text-align: left;\n  display: flex;\n  box-align: center;\n  align-items: center;\n}\n.vux-flexbox .vux-flexbox-item {\n  flex: 1;\n  min-width: 20px;\n  width: 0%;\n}\n.vux-flexbox-item > .vux-flexbox {\n  width: 100%;\n}\n\n.vux-flexbox .vux-flexbox-item:first-child{\n  margin-left: 0!important;\n  margin-top: 0!important;\n}\n.vux-flex-col {\n  box-orient: vertical;\n  flex-direction: column;\n}\n.vux-flex-col > .vux-flexbox-item {\n  width: 100%;\n}\n.vux-flex-row {\n  box-direction: row;\n  box-orient: horizontal;\n  flex-direction: row;\n}\n</style>\n"
  },
  {
    "path": "src/components/flexbox/index.js",
    "content": "import Flexbox from './flexbox'\nimport FlexboxItem from './flexbox-item'\n\nexport {\n  Flexbox,\n  FlexboxItem\n}\n"
  },
  {
    "path": "src/components/fullpage/DemoBasic.vue",
    "content": "<template>\n  <div>\n    <fullpage\n    class=\"fullpage-demo\"\n    drag\n    :start=\"0\"\n    :duration=\"100\"\n    @on-change=\"onChange\"\n    @on-before-change=\"onBeforeChange\"\n    @on-after-change=\"onAfterChange\">\n      <div><div>1</div></div>\n      <div><div>2</div></div>\n      <div><div>3</div></div>\n      <div><div>4</div></div>\n    </fullpage>\n  </div>\n</template>\n\n<script>\nimport Fullpage from './'\n\nexport default {\n  components: {\n    Fullpage\n  },\n  methods: {\n    onChange (data) {\n      console.log('chage', data)\n    },\n    onBeforeChange (data) {\n      console.log('before change', data)\n    },\n    onAfterChange (data) {\n      console.log('after change', data)\n    }\n  }\n}\n</script>\n\n<style scoped>\n.fullpage-demo {\n  background-color:yellow;\n  font-size: 72px;\n  line-height: 320px;\n  text-align: center;\n}\n</style>"
  },
  {
    "path": "src/components/fullpage/index.vue",
    "content": "<template>\n  <div>\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nimport Fullpage from './lib'\n\nexport default {\n  ready () {\n    const self = this\n    this._fullpage = new Fullpage(this.$el, {\n      dir: self.dir,\n      loop: self.loop,\n      drag: self.drag,\n      start: self.start,\n      duration: self.duration,\n      page: self.page,\n      der: self.der,\n      change: function (data) {\n        self.$emit('on-change', data)\n      },\n      beforeChange: function (data) {\n        self.$emit('on-before-change', data)\n      },\n      afterChange: function (data) {\n        self.$emit('on-after-change', data)\n      },\n      orientationchange: function (orientation) {\n        self.$emit('on-orientation-change', orientation)\n      }\n    })\n  },\n  props: {\n    page: String,\n    start: {\n      type: Number,\n      default: 0\n    },\n    duration: {\n      type: Number,\n      default: 500\n    },\n    loop: Boolean,\n    drag: Boolean,\n    dir: {\n      type: String,\n      default: 'v'\n    },\n    der: {\n      type: Number,\n      default: 0.1\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n.vux-fullpage-box {\n  transform: translate3d(0, 0, 0);\n}\n\n.vux-fullpage-box:after {\n  display: block;\n  content: ' ';\n  height: 0;\n  clear: both;\n}\n\n.vux-fullpage-box.vux-fullpage-box-anim {\n  transition: all 500ms ease-out 0s;\n}\n\n.vux-fullpage-item {\n  display: block;\n  overflow: hidden;\n}\n\n.vux-fullpage-dir-h {\n  float: left;\n}\n</style>\n"
  },
  {
    "path": "src/components/fullpage/lib.js",
    "content": "/*!\n * zepto.fullpage.js v0.5.0 (https://github.com/yanhaijing/zepto.fullpage)\n * API https://github.com/yanhaijing/zepto.fullpage/blob/master/doc/api.md\n * Copyright 2014 yanhaijing. All Rights Reserved\n * Licensed under MIT (https://github.com/yanhaijing/zepto.fullpage/blob/master/LICENSE)\n */\n\nconst BOX_CLASS = 'vux-fullpage-box'\nconst ANIM_CLASS = 'vux-fullpage-box-anim'\nconst ITEM_CLASS = 'vux-fullpage-item'\nconst DIR_CLASS = 'vux-fullpage-dir'\n\nvar d = {\n  page: null,\n  start: 0,\n  duration: 500,\n  loop: false,\n  drag: false,\n  dir: 'v',\n  der: 0.1,\n  change: function (data) {},\n  beforeChange: function (data) {},\n  afterChange: function (data) {},\n  orientationchange: function (orientation) {}\n}\n\nfunction touchmove (e) {\n  e.preventDefault()\n}\n\nfunction fix (cur, pagesLength, loop) {\n  if (cur < 0) {\n    return loop ? pagesLength - 1 : 0\n  }\n\n  if (cur >= pagesLength) {\n    return loop ? 0 : pagesLength - 1\n  }\n\n  return cur\n}\n\nfunction move (ele, dir, dist) {\n  var xPx = '0px'\n  var yPx = '0px'\n  if (dir === 'v') yPx = dist + 'px'\n  else xPx = dist + 'px'\n  ele.style.cssText += ('-webkit-transform : translate3d(' + xPx + ', ' + yPx + ', 0px);' +\n    'transform : translate3d(' + xPx + ', ' + yPx + ', 0px)')\n}\n\nfunction init (option) {\n  var o = option || {}\n  for (var key in d) {\n    if (!o.hasOwnProperty(key)) {\n      o[key] = d[key]\n    }\n  }\n\n  var that = this\n  that.curIndex = -1\n  that.o = o\n\n  that.startY = 0\n  that.movingFlag = false\n\n  that.ele.classList.add(BOX_CLASS)\n  that.parentEle = that.ele.parentNode\n\n  var query = o.page\n  if (query && query.indexOf('.') === 0) {\n    query = query.substring(1, query.length)\n    that.pageEles = that.ele.getElementsByClassName(query)\n  }\n\n  if (!query) {\n    that.pageEles = that.ele.children\n  }\n\n  for (var i = 0; i < that.pageEles.length; i++) {\n    var pageEle = that.pageEles[i]\n    pageEle.classList.add(ITEM_CLASS)\n    pageEle.classList.add(DIR_CLASS + o.dir)\n  }\n\n  that.pagesLength = that.pageEles.length\n  that.update()\n  that.initEvent()\n  that.start()\n}\n\nfunction Fullpage (ele, option) {\n  this.ele = ele\n  init.call(this, option)\n}\n\nFullpage.prototype.update = function () {\n  let pageEle\n  if (this.o.dir === 'h') {\n    this.width = this.parentEle.offsetWidth\n    for (let i = 0; i < this.pageEles.length; i++) {\n      pageEle = this.pageEles[i]\n      pageEle.style.width = this.width + 'px'\n    }\n    this.ele.style.width = (this.width * this.pagesLength) + 'px'\n  }\n\n  this.height = this.parentEle.offsetHeight\n  for (let i = 0; i < this.pageEles.length; i++) {\n    pageEle = this.pageEles[i]\n    pageEle.style.height = this.height + 'px'\n  }\n\n  this.moveTo(this.curIndex < 0 ? this.o.start : this.curIndex)\n}\n\nFullpage.prototype.initEvent = function () {\n  var that = this\n  var ele = that.ele\n\n  ele.addEventListener('touchstart', function (e) {\n    if (!that.status) {\n      return 1\n    }\n    // e.preventDefault()\n    if (that.movingFlag) {\n      return 0\n    }\n\n    that.startX = e.targetTouches[0].pageX\n    that.startY = e.targetTouches[0].pageY\n  })\n  ele.addEventListener('touchend', function (e) {\n    if (!that.status) {\n      return 1\n    }\n    // e.preventDefault()\n    if (that.movingFlag) {\n      return 0\n    }\n\n    var sub = that.o.dir === 'v' ? (e.changedTouches[0].pageY - that.startY) / that.height : (e.changedTouches[0].pageX - that.startX) / that.width\n    var der = (sub > that.o.der || sub < -that.o.der) ? sub > 0 ? -1 : 1 : 0\n\n    that.moveTo(that.curIndex + der, true)\n  })\n  if (that.o.drag) {\n    ele.addEventListener('touchmove', function (e) {\n      if (!that.status) {\n        return 1\n      }\n      // e.preventDefault()\n      if (that.movingFlag) {\n        that.startX = e.targetTouches[0].pageX\n        that.startY = e.targetTouches[0].pageY\n        return 0\n      }\n\n      var y = e.changedTouches[0].pageY - that.startY\n      if ((that.curIndex === 0 && y > 0) || (that.curIndex === that.pagesLength - 1 && y < 0)) y /= 2\n      var x = e.changedTouches[0].pageX - that.startX\n      if ((that.curIndex === 0 && x > 0) || (that.curIndex === that.pagesLength - 1 && x < 0)) x /= 2\n      var dist = (that.o.dir === 'v' ? (-that.curIndex * that.height + y) : (-that.curIndex * that.width + x))\n      ele.classList.remove(ANIM_CLASS)\n      move(ele, that.o.dir, dist)\n    })\n  }\n\n  window.addEventListener('orientationchange', function () {\n    if (window.orientation === 180 || window.orientation === 0) {\n      that.o.orientationchange('portrait')\n    }\n    if (window.orientation === 90 || window.orientation === -90) {\n      that.o.orientationchange('landscape')\n    }\n  }, false)\n\n  window.addEventListener('resize', function () {\n    that.update()\n  }, false)\n}\n\nFullpage.prototype.holdTouch = function () {\n  document.addEventListener('touchmove', touchmove)\n}\n\nFullpage.prototype.unholdTouch = function () {\n  document.removeEventListener('touchmove', touchmove)\n}\n\nFullpage.prototype.start = function () {\n  this.status = 1\n  this.holdTouch()\n}\n\nFullpage.prototype.stop = function () {\n  this.status = 0\n  this.unholdTouch()\n}\n\nFullpage.prototype.getCurIndex = function () {\n  return this.curIndex\n}\n\nFullpage.prototype.moveTo = function (next, anim) {\n  var that = this\n  var ele = that.ele\n  var cur = that.curIndex\n  next = fix(next, that.pagesLength, that.o.loop)\n\n  if (anim) {\n    ele.classList.add(ANIM_CLASS)\n  } else {\n    ele.classList.remove(ANIM_CLASS)\n  }\n\n  if (next !== cur) {\n    var flag = that.o.beforeChange({\n      next: next,\n      cur: cur\n    })\n\n    // beforeChange return false to stop scrolling\n    if (flag === false) {\n      return 1\n    }\n  }\n\n  that.movingFlag = true\n  that.curIndex = next\n  move(ele, that.o.dir, -next * (that.o.dir === 'v' ? that.height : that.width))\n\n  if (next !== cur) {\n    that.o.change({\n      prev: cur,\n      cur: next\n    })\n  }\n\n  window.setTimeout(function () {\n    that.movingFlag = false\n    if (next !== cur) {\n      that.o.afterChange({\n        prev: cur,\n        cur: next\n      })\n      for (var i = 0; i < that.pageEles.length; i++) {\n        var pageEle = that.pageEles[i]\n        if (i === next) {\n          pageEle.classList.add('cur')\n        } else {\n          pageEle.classList.remove('cur')\n        }\n      }\n    }\n  }, that.o.duration)\n}\n\nFullpage.prototype.movePrev = function (anim) {\n  this.moveTo(this.curIndex - 1, anim)\n}\n\nFullpage.prototype.moveNext = function (anim) {\n  this.moveTo(this.curIndex + 1, anim)\n}\n\nexport default Fullpage\n\n"
  },
  {
    "path": "src/components/group/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/group/index.md",
    "content": "[zh-CN]\n`Group`是一个特殊的表单`wrapper`组件，主要用于将表单分组，单个表单元素也算一组。所以常见的`行内`组件都`必须`作为`Group`的子组件。\n\n包括：\n\n+ Cell\n+ XInput\n+ XTextarea\n+ Switch\n+ Calendar\n+ XNumber\n+ Radio\n+ Address\n+ Datetime\n+ Selector\n"
  },
  {
    "path": "src/components/group/index.vue",
    "content": "<template>\n  <div>\n    <div class=\"weui_cells_title\" v-if=\"title\" :style=\"{color:titleColor}\" v-html=\"title\"></div>\n    <div class=\"weui_cells\" :class=\"{'vux-no-group-title':!title}\" :style=\"{marginTop: gutter}\">\n      <slot name=\"after-title\"></slot>\n      <slot></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    title: String,\n    titleColor: String,\n    labelWidth: String,\n    labelAlign: String,\n    labelMarginRight: String,\n    gutter: String\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_access';\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n\n.vux-no-group-title {\n  margin-top:15px;\n}\n.weui_cells > a {\n  color:#000;\n}\n</style>\n"
  },
  {
    "path": "src/components/group/metas.yml",
    "content": "props:\n  title:\n    en: group title\n    zh-CN:分组标题\n  titleColor:\n    en: group title's color\n    zh-CN: 分组标题文字颜色\n  labelWidth:\n    en: common label width for child components\n    zh-CN: 为子元素设定统一label宽度\n  labelAlign:\n    en: common label text-align for child components\n    zh-CN: 为子元素设定统一对齐方式\n  labelMarginRight:\n    en: common margin right value for child components\n    zh-CN: 为子元素设定统一的右边margin\n  gutter:\n    en: set the marginTop value when there is no title\n    zh-CN: 设定group的上边距，只能用于没有标题时\nslot:\n  default:\n    en: content body for child components\n    zh-CN: 子组件插槽\n"
  },
  {
    "path": "src/components/group-title/index.vue",
    "content": "<template>\n  <div class=\"weui_cells_title\">\n    <slot></slot>\n  </div>\n</template>\n"
  },
  {
    "path": "src/components/icon/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/icon/index.md",
    "content": "```\n<template>\n  <div>\n    <icon type=\"success\"></icon>\n    <icon type=\"info\"></icon>\n    <icon type=\"info_circle\"></icon>\n    <icon type=\"warn\"></icon>\n    <icon type=\"waiting\"></icon>\n    <icon type=\"waiting_circle\"></icon>\n    <icon type=\"safe_success\"></icon>\n    <icon type=\"safe_warn\"></icon>\n    <icon type=\"success_circle\"></icon>\n    <icon type=\"success_no_circle\"></icon>\n    <icon type=\"circle\"></icon>\n    <icon type=\"download\"></icon>\n    <icon type=\"cancel\"></icon>\n    <icon type=\"search\"></icon>\n    <icon type=\"clear\"></icon>\n    <br/>\n    <icon type=\"success\" class=\"icon_big\"></icon>\n    <icon type=\"info\" class=\"icon_big\"></icon>\n    <icon type=\"safe_success\" class=\"icon_big\"></icon>\n    <icon type=\"safe_warn\" class=\"icon_big\"></icon>\n  </div>\n</template>\n```\n"
  },
  {
    "path": "src/components/icon/index.vue",
    "content": "<template>\n  <i :class=\"className\"></i>\n</template>\n\n<script>\nexport default {\n  props: {\n    type: String\n  },\n  computed: {\n    className () {\n      return `weui_icon weui_icon_${this.type}`\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/icon/weui_icon_font';\n\n.icon_big:before {\n  font-size: 104px;\n}\n\n.icon_small:before {\n  font-size: 12px;\n}\n</style>\n"
  },
  {
    "path": "src/components/icon/metas.yml",
    "content": "props:\n  type:\n    en: icon name\n    zh-CN: 图标名字，可选值见demo\n"
  },
  {
    "path": "src/components/index.js",
    "content": "/* only for building vux.css */\nimport Style from '../styles/index.vue' // eslint-disable-line\n\nimport Radio from './radio'\nimport DevTip from './dev-tip'\nimport XInput from './x-input'\nimport XNumber from './x-number'\nimport Cell from './cell'\nimport InlineDesc from './inline-desc'\nimport Checklist from './checklist'\nimport XSwitch from './x-switch'\nimport XTextarea from './x-textarea'\nimport Group from './group'\nimport GroupTitle from './group-title'\nimport Box from './box'\nimport Tip from './tip'\nimport Selector from './selector'\nimport XButton from './x-button'\nimport Swiper from './swiper'\nimport SwiperItem from './swiper-item'\nimport Sticky from './sticky'\nimport Picker from './picker'\nimport Datetime from './datetime'\nimport Popup from './popup'\nimport Range from './range'\nimport Actionsheet from './actionsheet'\nimport Clocker from './clocker'\nimport Rater from './rater'\nimport PopupPicker from './popup-picker'\nimport XAddress from './x-address'\nimport Toast from './toast'\nimport Loading from './loading'\nimport Alert from './alert'\nimport Confirm from './confirm'\nimport XProgress from './progress'\nimport XImg from './x-img'\nimport Spinner from './spinner'\nimport Calendar from './calendar'\nimport Icon from './icon'\nimport XCircle from './circle'\nimport ColorPicker from './color-picker'\nimport AddressChinaData from './x-address/list.json'\nimport Divider from './divider'\nimport Blur from './blur'\nimport Countup from './countup'\nimport Scroller from './scroller'\nimport Shake from './shake'\nimport WechatEmotion from './wechat-emotion'\nimport Search from './search'\nimport DateFormatter from './datetime/format'\nimport Masker from './masker'\nimport Countdown from './countdown'\nimport FriendlyTime from '../filters/friendly-time'\nimport XHeader from './x-header'\nimport Panel from './panel'\nimport InlineCalendar from './inline-calendar'\nimport Badge from './badge'\nimport XDialog from './dialog'\nimport Card from './card'\nimport Previewer from './previewer'\nimport NumberRoller from './number-roller'\nimport ViewBox from './view-box'\nimport Popover from './popover'\n\nimport { ButtonTab, ButtonTabItem } from './button-tab'\nimport { Checker, CheckerItem } from './checker'\nimport { Flexbox, FlexboxItem } from './flexbox'\nimport { Step, StepItem } from './step'\nimport { Timeline, TimelineItem } from './timeline'\nimport { Tabbar, TabbarItem } from './tabbar'\nimport { Tab, TabItem } from './tab'\n\nconst vux = {\n  Radio,\n  Group,\n  DevTip,\n  XInput,\n  GroupTitle,\n  XNumber,\n  Checklist,\n  XSwitch,\n  Box,\n  Tip,\n  Selector,\n  Cell,\n  InlineDesc,\n  XButton,\n  XTextarea,\n  Flexbox,\n  FlexboxItem,\n  Tab,\n  TabItem,\n  Swiper,\n  SwiperItem,\n  Sticky,\n  Picker,\n  Datetime,\n  Popup,\n  Range,\n  Actionsheet,\n  Clocker,\n  Rater,\n  PopupPicker,\n  XAddress,\n  Toast,\n  Loading,\n  Alert,\n  Confirm,\n  XProgress,\n  XImg,\n  Spinner,\n  Calendar,\n  Icon,\n  XCircle,\n  ColorPicker,\n  AddressChinaData,\n  Divider,\n  Blur,\n  Countup,\n  Scroller,\n  Shake,\n  WechatEmotion,\n  Search,\n  DateFormatter,\n  Masker,\n  Countdown,\n  FriendlyTime,\n  XHeader,\n  Checker,\n  CheckerItem,\n  Timeline,\n  TimelineItem,\n  Step,\n  StepItem,\n  Tabbar,\n  TabbarItem,\n  Panel,\n  ButtonTab,\n  ButtonTabItem,\n  InlineCalendar,\n  Badge,\n  XDialog,\n  Card,\n  Previewer,\n  NumberRoller,\n  ViewBox,\n  Popover\n}\n\n// if (DEV) { // eslint-disable-line\n//   const { getMetas } = require('../../build/build-metas')\n//   const metas = getMetas(vux)\n//   if (window.fetch) {\n//     window.fetch(`http://${window.location.hostname}:8899/api/doc`, {\n//       method: 'POST',\n//       body: JSON.stringify(metas),\n//       headers: {\n//         'Accept': 'application/json',\n//         'Content-Type': 'application/json'\n//       }\n//     })\n//   }\n// }\n\nmodule.exports = vux\n"
  },
  {
    "path": "src/components/inline-calendar/index.vue",
    "content": "<template>\n  <div class=\"inline-calendar\" :class=\"{'is-weekend-highlight': highlightWeekend}\">\n    <div class=\"calendar-header\" v-show=\"!hideHeader\">\n      <div class=\"calendar-year\">\n        <a class=\"year-prev vux-prev-icon\" href=\"javascript:\" @click=\"go(year - 1, month)\"></a>\n        <a class=\"calendar-year-txt calendar-title\" href=\"javascript:\">{{year}}</a>\n        <a class=\"year-next vux-next-icon\" href=\"javascript:\" @click=\"go(year + 1, month)\"></a>\n      </div>\n\n      <div class=\"calendar-month\">\n        <a @click=\"prev\" class=\"month-prev vux-prev-icon\" href=\"javascript:\"></a>\n        <a class=\"calendar-month-txt calendar-title\" href=\"javascript:\">{{months[month]}}</a>\n        <a @click=\"next\" class=\"month-next vux-next-icon\" href=\"javascript:\"></a>\n      </div>\n    </div>\n\n    <table>\n      <thead v-show=\"!hideWeekList\">\n        <tr>\n          <th v-for=\"(week, index) in weeksList\" class=\"week\" :class=\" 'is-week-list-' + index \">{{week}}</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr v-for=\"(day,k1) in days\">\n          <td\n          :data-date=\"formatDate(year, month, child)\"\n          :data-current=\"props_value\"\n          v-for=\"(child,k2) in day\"\n          :class=\"buildClass(k2, child, formatDate(year, month, child) === props_value && !child.isLastMonth && !child.isNextMonth)\"\n          @click=\"select(k1,k2,$event)\">\n            <span\n            v-show=\"(!child.isLastMonth && !child.isNextMonth ) || (child.isLastMonth && showLastMonth) || (child.isNextMonth && showNextMonth)\">{{replaceText(child.day, formatDate(year, month, child))}}</span>\n            <div v-html=\"customSlotFn(k1, k2, child)\"></div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</template>\n\n<script>\nimport format from '../datetime/format'\nimport { getDays, zero } from './util'\nimport props from './props'\n\nexport default {\n  props: props(),\n  data () {\n    return {\n      year: 0,\n      month: 0,\n      days: [],\n      current: [],\n      today: format(new Date(), 'YYYY-MM-DD'),\n      months: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n      props_value:''\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  mounted () {\n    this.props_value = this.convertDate(this.props_value)\n    this.render(this.renderMonth[0], this.renderMonth[1] - 1)\n  },\n  computed: {\n    _replaceTextList () {\n      const rs = {}\n      for (let i in this.replaceTextList) {\n        rs[this.convertDate(i)] = this.replaceTextList[i]\n      }\n      return rs\n    }\n  },\n  watch: {\n    value(val){\n      this.props_value=val\n    },\n    props_value (val) {\n      this.props_value = this.convertDate(val)\n      if (this.renderOnValueChange) {\n        this.render(null, null, val)\n      } else {\n        this.render(this.year, this.month, this.props_value)\n      }\n      this.$emit('on-change', val)\n    },\n    returnSixRows (val) {\n      this.render(this.year, this.month, this.props_value)\n    },\n    disablePast () {\n      this.render(this.year, this.month, this.props_value)\n    },\n    disableFuture () {\n      this.render(this.year, this.month, this.props_value)\n    }\n  },\n  methods: {\n    replaceText (day, formatDay) {\n      return this._replaceTextList[formatDay] || day\n    },\n    convertDate (date) {\n      return date === 'TODAY' ? this.today : date\n    },\n    buildClass (index, child, isCurrent) {\n      const className = {\n        current: child.current || isCurrent,\n        'is-disabled': child.disabled,\n        'is-today': child.isToday\n      }\n      className[`is-week-${index}`] = true\n      return className\n    },\n    render (year, month) {\n      let data = getDays({\n        year: year,\n        month: month,\n        value: this.props_value,\n        rangeBegin: this.convertDate(this.startDate),\n        rangeEnd: this.convertDate(this.endDate),\n        returnSixRows: this.returnSixRows,\n        disablePast: this.disablePast,\n        disableFuture: this.disableFuture\n      })\n      this.days = data.days\n      this.year = data.year\n      this.month = data.month\n    },\n    formatDate: (year, month, child) => {\n      return [year, zero(child.month + 1), zero(child.day)].join('-')\n    },\n    prev () {\n      if (this.month === 0) {\n        this.month = 11\n        this.year = this.year - 1\n      } else {\n        this.month = this.month - 1\n      }\n      this.render(this.year, this.month)\n    },\n    next () {\n      if (this.month === 11) {\n        this.month = 0\n        this.year = this.year + 1\n      } else {\n        this.month = this.month + 1\n      }\n      this.render(this.year, this.month)\n    },\n    go (year, month) {\n      this.render(year, month)\n    },\n    select (k1, k2) {\n      if (this.current.length > 0) {\n        this.days[this.current[0]][this.current[1]].isCurrent = false\n      }\n      this.days[k1][k2].current = true\n      this.current = [k1, k2]\n      this.props_value = [this.year, zero(this.month + 1), zero(this.days[k1][k2].day)].join('-')\n    }\n  }\n}\n</script>\n \n<style>\n.vux-prev-icon, .vux-next-icon {\n  position: absolute;\n  left: 0;\n  top: 15px;\n  display: inline-block;\n  width: 12px;\n  height: 12px;\n  border: 1px solid #04be02;\n  border-radius: 0;\n  border-top: none;\n  border-right: none;\n  transform: rotate(45deg);\n  margin-left: 15px;\n  line-height: 40px;\n}\n.vux-next-icon {\n  transform: rotate(-135deg);\n  left: auto;\n  top: 14px;\n  right: 15px;\n}\n.vux-prev-icon:before {\n  display: block;\n  width: 12px;\n  height: 12px;\n  border: 1px solid #04be02;\n  border-width: 1px 0 0 1px;\n  transform: rotate(315deg)\n}\n.is-weekend-highlight td.is-week-list-0,\n.is-weekend-highlight td.is-week-list-6,\n.is-weekend-highlight td.is-week-0,\n.is-weekend-highlight td.is-week-6 {\n  color: #E59313;\n}\n.inline-calendar a {\n  text-decoration: none;\n  tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.calendar-year, .calendar-month {\n  position: relative;\n}\n.calendar-header {\n  line-height: 40px;\n  font-size: 1.2em;\n  overflow: hidden;\n}\n.calendar-header > div {\n  float: left;\n  width: 50%;\n  text-align: center;\n  overflow: hidden;\n}\n.calendar-header a:last-of-type {\n  float: right;\n  vertical-align: bottom;\n}\n.switch-btn, .calendar-title {\n  display: inline-block;\n  border-radius: 4px;\n  line-height: 30px;\n}\n.switch-btn {\n  width: 30px;\n  margin: 5px;\n  color: #39b5b8;\n  font-family: \"SimSun\";\n}\n.calendar-title {\n  padding: 0 6%;\n  color: #333;\n}\n.switch-btn:active, .calendar-title:active, .calendar-header a.active {\n  background-color: #39b5b8;\n  color: #fff;\n}\n.calendar-week {\n  overflow: hidden;\n}\n.calendar-week span {\n  float: left;\n  width: 14.28%;\n  font-size: 1.6em;\n  line-height: 34px;\n  text-align: center;\n}\n.inline-calendar {\n  width: 100%;\n  background: #fff;\n  border-radius: 2px;\n  transition: all .5s ease;\n}\n.inline-calendar td.is-today, .inline-calendar td.is-today.is-disabled {\n  color: #04be02;\n}\n.calendar-enter, .calendar-leave {\n  opacity: 0;\n  transform: translate3d(0,-10px, 0);\n}\n.calendar:before {\n  position: absolute;\n  left:30px;\n  top: -10px;\n  content: \"\";\n  border:5px solid rgba(0, 0, 0, 0);\n  border-bottom-color: #DEDEDE;\n}\n.calendar:after {\n  position: absolute;\n  left:30px;\n  top: -9px;\n  content: \"\";\n  border:5px solid rgba(0, 0, 0, 0);\n  border-bottom-color: #fff;\n}\n.calendar-tools{\n  height:32px;\n  font-size: 20px;\n  line-height: 32px;\n  color: #04be02;\n}\n.calendar-tools .float.left{\n  float:left;\n}\n.calendar-tools .float.right{\n  float:right;\n}\n.calendar-tools input{\n  font-size: 20px;\n  line-height: 32px;\n  color: #04be02;\n  width: 70px;\n  text-align: center;\n  border:none;\n  background-color: transparent;\n}\n.calendar-tools>i{\n  margin:0 16px;\n  line-height: 32px;\n  cursor: pointer;\n  color:#707070;\n}\n.calendar-tools>i:hover{\n  color:#5e7a88;\n}\n.inline-calendar table {\n  clear: both;\n  width: 100%;\n  border-collapse: collapse;\n  color: #444444;\n}\n.inline-calendar td {\n  padding:5px 0;\n  text-align: center;\n  vertical-align: middle;\n  font-size:16px;\n  position: relative;\n}\n.inline-calendar td.week{\n  pointer-events:none !important;\n  cursor: default !important;\n}\n.inline-calendar td.is-disabled {\n  color: #c0c0c0;\n  pointer-events:none !important;\n  cursor: default !important;\n}\n.inline-calendar td > span {\n  display: inline-block;\n  width: 26px;\n  height: 26px;\n  line-height: 26px;\n  border-radius: 50%;\n  text-align: center;\n}\n.inline-calendar td.placeholder {\n\n}\n.vux-calendar-range.inline-calendar td.current {\n  background-color: #04be02;\n}\n.vux-calendar-range table {\n  margin-bottom: 10px;\n}\n.inline-calendar td.current > span {\n  background-color: #04be02;\n  color: #fff;\n}\n.inline-calendar .timer{\n  margin:10px 0;\n  text-align: center;\n}\n.inline-calendar .timer input{\n  border-radius: 2px;\n  padding:5px;\n  font-size: 14px;\n  line-height: 18px;\n  color: #5e7a88;\n  width: 50px;\n  text-align: center;\n  border:1px solid #efefef;\n}\n.inline-calendar .timer input:focus{\n  border:1px solid #5e7a88;\n}\n.calendar-button{\n  text-align: center;\n}\n.calendar-button button{\n  border:none;\n  cursor: pointer;\n  display: inline-block;\n  min-height: 1em;\n  min-width: 8em;\n  vertical-align: baseline;\n  background:#5e7a88;\n  color:#fff;\n  margin: 0 .25em 0 0;\n  padding: .8em 2.5em;\n  font-size: 1em;\n  line-height: 1em;\n  text-align: center;\n  border-radius: .3em;\n}\n.calendar-button button.cancel{\n  background:#efefef;\n  color:#666;\n}\n</style>\n"
  },
  {
    "path": "src/components/inline-calendar/metas.yml",
    "content": "props:\n  value:\n    en:\n    zh-CN: 当前选中日期，双向绑定，默认为空，即选中当天日期\n  render-month:\n    en:\n    zh-CN: 指定渲染日期，如 [2018, 8]\n  start-date:\n    en:\n    zh-CN: 起始日期，格式为'YYYY-MM-dd'\n  end-date:\n    en:\n    zh-CN: 结束日期，格式为'YYYY-MM-dd'\n  show-last-month:\n    en:\n    zh-CN: 是否显示上个月的日期\n  show-next-month:\n    en:\n    zh-CN: 是否显示下个月的日期\n  highlight-weekend:\n    en:\n    zh-CN: 是否高亮周末\n  return-six-rows:\n    en:\n    zh-CN: 是否总是渲染6行日期\n  hide-header:\n    en:\n    zh-CN: 是否隐藏日历头部\n  hide-week-list:\n    en:\n    zh-CN: 是否隐藏星期列表\n  replace-text-list:\n    en:\n    zh-CN: \"替换列表，可以将默认的日期换成文字，比如今天的日期替换成今，{'TODAY':'今'}\"\n  weeks-list:\n    en:\n    zh-CN: 星期列表，从周日开始\n  custom-slot-fn:\n    en:\n    zh-CN: 用于为特定日期添加额外的html内容，参数为(行index,列index,日期详细属性)\n  render-on-value-change:\n    en:\n    zh-CN: 当日期变化时是否重新渲染日历，如果是渲染了多个日历的话需要设为false\n  disable-past:\n    en:\n    zh-CN: 禁止选择过去的日期，该选项可以与start-date同时使用\n  disable-future:\n    en:\n    zh-CN: 禁止选择未来的日期，该选项可以end-date同时使用\n"
  },
  {
    "path": "src/components/inline-calendar/props.js",
    "content": "export default () => ({\n  value: {\n    type: String,\n    default: ''\n  },\n  renderMonth: {\n    type: Array, // [2018, 8]\n    default () {\n      return [null, null]\n    }\n  },\n  startDate: {\n    type: String\n  },\n  endDate: {\n    type: String\n  },\n  showLastMonth: {\n    type: Boolean,\n    default: true\n  },\n  showNextMonth: {\n    type: Boolean,\n    default: true\n  },\n  highlightWeekend: {\n    type: Boolean,\n    default: false\n  },\n  returnSixRows: {\n    type: Boolean,\n    default: true\n  },\n  hideHeader: {\n    type: Boolean,\n    default: false\n  },\n  hideWeekList: {\n    type: Boolean,\n    default: false\n  },\n  replaceTextList: {\n    type: Object,\n    default () {\n      return {}\n    }\n  },\n  weeksList: {\n    type: Array,\n    default: () => ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n  },\n  customSlotFn: {\n    type: Function,\n    default: () => ''\n  },\n  renderOnValueChange: {\n    type: Boolean,\n    default: true\n  },\n  disablePast: {\n    type: Boolean,\n    default: false\n  },\n  disableFuture: {\n    type: Boolean,\n    default: false\n  }\n})\n"
  },
  {
    "path": "src/components/inline-calendar/util.js",
    "content": "import format from '../datetime/format'\n\nexport function zero (n) {\n  return n < 10 ? '0' + n : n\n}\n\nexport function splitValue (value) {\n  let split = value.split('-')\n  return {\n    year: parseInt(split[0], 10),\n    month: parseInt(split[1], 10) - 1,\n    day: parseInt(split[2], 10)\n  }\n}\n\nexport function getPrevTime (year, month) {\n  if (month === 0) {\n    return {\n      month: 11,\n      year: year - 1\n    }\n  } else {\n    return {\n      year,\n      month: month - 1\n    }\n  }\n}\n\nexport function getNextTime (year, month) {\n  if (month === 11) {\n    return {\n      month: 0,\n      year: year + 1\n    }\n  } else {\n    return {\n      year,\n      month: month + 1\n    }\n  }\n}\n\nfunction getTime (str) {\n  if (typeof str === 'number') {\n    return str\n  }\n  return typeof str === 'string' ? new Date(str.replace(/-/g, '/')).getTime() : str.getTime()\n}\n\nfunction isBetween (value, start, end) {\n  value = getTime(value)\n  let isGte = start ? value >= getTime(start) : true\n  let isLte = end ? value <= getTime(end) : true\n  return isGte && isLte\n}\n\nexport function getDays ({year, month, value, isRange = false, rangeBegin, rangeEnd, returnSixRows = true, disablePast = false, disableFuture = false}) {\n  let today = format(new Date(), 'YYYY-MM-DD')\n  let startOfToday = new Date()\n  startOfToday.setHours(0, 0, 0, 0)\n\n  let _splitValue = splitValue(value || today)\n\n  // if year or month is not specified, get them from value\n  if (typeof year !== 'number' || typeof month !== 'number' || month < 0) {\n    year = _splitValue.year\n    month = _splitValue.month\n  }\n\n  // if disablePast === true\n  if (disablePast) {\n    if (!rangeBegin) {\n      rangeBegin = startOfToday\n    } else {\n      rangeBegin = Math.max(startOfToday.getTime(), getTime(rangeBegin))\n    }\n  }\n\n  // if disableFuture === true\n  if (disableFuture) {\n    if (!rangeEnd) {\n      rangeEnd = startOfToday\n    } else {\n      rangeEnd = Math.min(startOfToday.getTime(), getTime(rangeEnd))\n    }\n  }\n\n  var firstDayOfMonth = new Date(year, month, 1).getDay()\n  var lastDateOfMonth = new Date(year, month + 1, 0).getDate()\n  var lastDayOfLastMonth = new Date(year, month, 0).getDate()\n\n  var i\n  var line = 0\n  var temp = []\n  for (i = 1; i <= lastDateOfMonth; i++) {\n    var dow = new Date(year, month, i).getDay()\n      // 第一行\n    if (dow === 0) {\n      temp[line] = []\n    } else if (i === 1) {\n      temp[line] = []\n\n      var k = lastDayOfLastMonth - firstDayOfMonth + 1\n      for (let j = 0; j < firstDayOfMonth; j++) {\n        let rs = getPrevTime(year, month)\n        temp[line].push({\n          year: rs.year,\n          month: rs.month,\n          month_str: rs.month + 1,\n          day: k,\n          disabled: true,\n          isLastMonth: true\n        })\n        k++\n      }\n    }\n\n    let _format = format(new Date(year + '/' + (month + 1) + '/' + i), 'YYYY/MM/DD')\n    let options = {\n      year: year,\n      month: month,\n      month_str: month + 1,\n      day: i,\n      isCurrent: value && format(new Date(value), 'YYYY/MM/DD') === _format,\n      disabled: !isBetween(_format, rangeBegin, rangeEnd),\n      isToday: format(new Date(), 'YYYY/MM/DD') === _format\n    }\n    temp[line].push(options)\n\n    if (dow === 6) {\n      line++\n    } else if (i === lastDateOfMonth) {\n      let k = 1\n      for (dow; dow < 6; dow++) {\n        let rs = getNextTime(year, month)\n        temp[line].push({\n          year: rs.year,\n          month: rs.month,\n          month_str: rs.month + 1,\n          day: k,\n          disabled: true,\n          isNextMonth: true\n        })\n        k++\n      }\n    }\n  }\n\n  if (returnSixRows && temp.length === 5) {\n    let rs = getNextTime(year, month)\n    let start = temp[4][6].isNextMonth ? temp[4][6].day : 0\n    temp[6] = []\n    for (let i = 0; i < 7; i++) {\n      temp[6].push({\n        year: rs.year,\n        month: rs.month,\n        month_str: rs.month + 1,\n        day: ++start,\n        disabled: true,\n        isNextMonth: true\n      })\n    }\n  }\n\n  // 2026-02, there is only 4 lines\n  if (returnSixRows && temp.length === 4) {\n    let rs = getNextTime(year, month)\n    let start = 0\n    temp[5] = []\n    temp[6] = []\n    for (let i = 0; i < 7; i++) {\n      temp[5].push({\n        year: rs.year,\n        month: rs.month,\n        month_str: rs.month + 1,\n        day: ++start,\n        disabled: true,\n        isNextMonth: true\n      })\n      temp[6].push({\n        year: rs.year,\n        month: rs.month,\n        month_str: rs.month + 1,\n        day: ++start,\n        disabled: true,\n        isNextMonth: true\n      })\n    }\n  }\n\n  return {\n    year: year,\n    month: month,\n    month_str: month + 1,\n    days: temp\n  }\n}\n"
  },
  {
    "path": "src/components/inline-desc/index.vue",
    "content": "<template>\n  <span class=\"vux-label-desc\"><slot></slot></span>\n</template>\n\n<style>\n.vux-label-desc {\n  font-size:14px;\n  color:#666;\n}\n</style>\n"
  },
  {
    "path": "src/components/inline-desc/metas.yml",
    "content": "intro:\n  en: it is the child component of cell, you cannot use it alone\n  zh-CN: cell的子组件，不能单独使用\nslots:\n  default:\n    en: text content\n    zh-CN: 文字内容\n"
  },
  {
    "path": "src/components/inline-x-number/index.vue",
    "content": "<template>\n  <div>\n    <a @click=\"sub\" class=\"vux-number-selector vux-number-selector-sub\":class=\"{'vux-number-disabled':disabledMin}\">-</a>\n    <input v-model=\"value\" :name=\"name\" class=\"vux-number-input\" :style=\"{width: width+'px'}\" number :readonly=\"!fillable\" pattern=\"[0-9]*\"/>\n    <a @click=\"add\" class=\"vux-number-selector vux-number-selector-plus\" :class=\"{'vux-number-disabled':disabledMax}\">+</a>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    min: Number,\n    max: Number,\n    step: {\n      type: Number,\n      default: 1\n    },\n    value: {\n      type: Number,\n      default: 0\n    },\n    name: String,\n    title: String,\n    fillable: {\n      type: Boolean,\n      default: true\n    },\n    width: {\n      type: Number,\n      default: 50\n    }\n  },\n  computed: {\n    disabledMin () {\n      return typeof this.min === 'undefined' ? false : this.value <= this.min\n    },\n    disabledMax () {\n      return typeof this.max === 'undefined' ? false : this.value >= this.max\n    }\n  },\n  ready () {\n  },\n  watch: {\n    value (newValue, old) {\n      if (this.min && this.value < this.min) {\n        this.value = this.min\n      }\n      if (this.max && this.value > this.max) {\n        this.value = this.max\n      }\n      this.$emit('on-change', this.value)\n    }\n  },\n  methods: {\n    add () {\n      if (!this.disabledMax) {\n        this.value += this.step\n      }\n    },\n    sub () {\n      if (!this.disabledMin) {\n        this.value -= this.step\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n\n.vux-number-input {\n  float:left;\n  height:20px;\n  font-size:20px;\n  color: @x-number-number-color;\n  appearance: none;\n  border:1px solid #ececec;\n  padding:3px 0;\n  text-align:center;\n  border-radius: 1px;\n}\n.vux-number-selector {\n  float:left;\n  height:20px;\n  font-size:25px;\n  line-height:18px;\n  color: @x-number-button-color;\n  border:1px solid #ececec;\n}\n.vux-number-selector.vux-number-disabled{\n  color:#ccc;\n}\n.vux-number-selector-sub {\n  border-right:none;\n  padding:3px 10px;\n  border-radius:2px 0 0 2px;\n}\n.vux-number-selector-plus {\n  border-left:none;\n  margin-right: 5px;\n  padding:3px 8px;\n  border-radius:0 2px 2px 0;\n}\n</style>\n"
  },
  {
    "path": "src/components/loading/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/loading/index.vue",
    "content": "<template>\n  <div class=\"weui_loading_toast\" v-show=\"show\">\n    <div class=\"weui_mask_transparent\"></div>\n    <div class=\"weui_toast\" :style=\"{position: position}\">\n      <i class=\"weui-loading weui-icon_toast\"></i>\n      <p class=\"weui_toast_content\">{{text}}<slot></slot></p>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    show: Boolean,\n    text: {\n      type: String,\n      default: 'Loading'\n    },\n    position: String\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/widget/weui_tips/weui_toast';\n\n.weui_loading_toast .weui_toast_content{\n    margin-top: 0;\n}\n\n.weui-icon_toast.weui-loading {\n    margin: 30px 0 0;\n    width: 38px;\n    height: 38px;\n    vertical-align: baseline;\n}\n\n.weui-loading {\n  width:20px;\n  height:20px;\n  display: inline-block;\n  vertical-align: middle;\n  animation: weuiLoading 1s steps(12, end) infinite;\n  background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;\n  background-size: 100%;\n}\n\n@-webkit-keyframes weuiLoading {\n  0% {\n    transform: rotate3d(0, 0, 1, 0deg);\n  }\n\n  100% {\n    transform: rotate3d(0, 0, 1, 360deg);\n  }\n}\n\n@keyframes weuiLoading {\n  0% {\n    transform: rotate3d(0, 0, 1, 0deg);\n  }\n\n  100% {\n    transform: rotate3d(0, 0, 1, 360deg);\n  }\n}\n\n</style>\n"
  },
  {
    "path": "src/components/loading/metas.yml",
    "content": "props:\n  show:\n    en: visibility of the component\n    zh-CN: 显示状态\n  text:\n    en: loading text\n    zh-CN: 提示文字\n  position:\n    en: position, default is `fixed`, you can use `absolute`\n    zh-CN: 定位方式，默认为`fixed`，在100%的布局下用`absolute`可以避免抖动\nslots:\n  default:\n    en: content area\n    zh-CN: 提示文字区域\n"
  },
  {
    "path": "src/components/masker/converter.js",
    "content": "/*!\n * HEX <=> RGB Conversion\n * Copyright(c) 2011 Daniel Lamb <daniellmb.com>\n * MIT Licensed\n */\n\nexport function toRGB (color) {\n  let num = parseInt(color, 16)\n  return [num >> 16, num >> 8 & 255, num & 255]\n}\n\nexport function toHex (red, green, blue) {\n  return ((blue | green << 8 | red << 16) | 1 << 24).toString(16).slice(1)\n}\n"
  },
  {
    "path": "src/components/masker/index.vue",
    "content": "<template>\n  <div class=\"vux-masker-box\">\n    <slot></slot>\n    <div class=\"vux-masker\" :style=\"style\">\n      <slot name=\"content\"></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { toRGB } from './converter'\n\nexport default {\n  props: {\n    color: {\n      type: String,\n      default: '0, 0, 0'\n    },\n    opacity: {\n      type: Number,\n      default: 0.5\n    }\n  },\n  computed: {\n    style () {\n      let color = /,/.test(this.color) ? this.color : toRGB(this.color.replace('#', '')).join(',')\n      return {\n        backgroundColor: `rgba(${color},${this.opacity})`\n      }\n    }\n  }\n}\n</script>\n\n<style>\n.vux-masker-box {\n  position: relative;\n}\n.vux-masker {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  border-radius: inherit;\n}\n</style>\n"
  },
  {
    "path": "src/components/masker/metas.yml",
    "content": "props:\n  color:\n    en: the mask's color in rgb format, for example, '0, 0, 0'\n    zh-CN: 遮罩颜色，rgb值，'0, 0, 0'\n  opacity:\n    en: the opacity of the mask\n    zh-CN: 遮罩透明度\nslots:\n  default:\n    en: content below the mask\n    zh-CN: 背景内容，位于遮罩下方，一般为图片\n  content:\n    en: content above the mask\n    zh-CN: 遮罩上方内容，一般显示标题消息\n"
  },
  {
    "path": "src/components/number-roller/index.vue",
    "content": "<template>\n  <div style=\"height:100px;font-size:100px;\"></div>\n</template>\n\n<script>\nimport Roller from './lib'\n\nexport default {\n  props: {\n    number: Number,\n    width: {\n      type: Number,\n      default: 3\n    }\n  },\n  mounted () {\n    this._roller = new Roller({\n      container: this.$el,\n      width: this.width\n    })\n    this._roller.roll(this.number)\n  },\n  watch: {\n    number (newVal, oldVal) {\n      if (newVal.toString().length !== oldVal.toString().length) {\n        this._roller.width = newVal.toString().length\n        this._roller.setWidth()\n      }\n      this._roller.roll(newVal)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/number-roller/lib.js",
    "content": "const Roller = class {\n  constructor (opts) {\n    this.container = typeof opts.container === 'string' ? document.querySelector(opts.container) : opts.container\n    this.width = opts.width || 1\n    if (!this.container) {\n      throw Error('no container')\n    }\n    this.container.style.overflow = 'hidden'\n    this.rollHeight = parseInt(getComputedStyle(this.container).height)\n\n    if (this.rollHeight < 1) {\n      this.container.style.height = '20px'\n      this.rollHeight = 20\n    }\n    this.setWidth()\n  }\n\n  roll (n) {\n    var self = this\n    this.number = parseInt(n) + ''\n    if (this.number.length < this.width) {\n      this.number = new Array(this.width - this.number.length + 1).join('0') + this.number\n    } else if (this.number.length > this.width) {\n      this.width = this.number.length\n      this.setWidth()\n    }\n    Array.prototype.forEach.call(this.container.querySelectorAll('.num'), function (item, i) {\n      var currentNum = parseInt(item.querySelector('div:last-child').innerHTML)\n      var goalNum = parseInt(self.number[i])\n      var gapNum = 0\n      var gapStr = ''\n      if (currentNum === goalNum) {\n        return\n      } else if (currentNum < goalNum) {\n        gapNum = goalNum - currentNum\n        for (let j = currentNum; j < goalNum + 1; j++) {\n          gapStr += '<div>' + j + '</div>'\n        }\n      } else {\n        gapNum = 10 - currentNum + goalNum\n        for (let j = currentNum; j < 10; j++) {\n          gapStr += '<div>' + j + '</div>'\n        }\n        for (let j = 0; j < goalNum + 1; j++) {\n          gapStr += '<div>' + j + '</div>'\n        }\n      }\n      item.style.cssText += '-webkit-transition-duration:0;s-webkit-transform:translateY(0)'\n      item.innerHTML = gapStr\n      let time = gapNum * (1 / 9)\n      setTimeout(() => {\n        item.style.cssText += '-webkit-transition-duration:' + time + 's;-webkit-transform:translateY(-' + self.rollHeight * gapNum + 'px)'\n      }, 50)\n    })\n  }\n\n  setWidth (n) {\n    n = n || this.width\n    var str = ''\n    for (var i = 0; i < n; i++) {\n      str += '<div class=\"num\" style=\"float:left;height:100%;line-height:' + this.rollHeight + 'px\"><div>0</div></div>'\n    }\n    this.container.innerHTML = str\n  }\n}\n\nexport default Roller\n"
  },
  {
    "path": "src/components/orientation/index.js",
    "content": "/**\n * v-orientaion=\"landscape\" v-orientaion=\"portrait\"\n */\nimport Orientation from './orientation'\nexport default {\n  bind () {\n    const _this = this\n    const value = this.expression\n    const _value = value.toString()[0].toUpperCase() + value.toString().slice(1)\n\n    if (Orientation['is' + _value]()) {\n      this.el.style.display = 'block'\n    } else {\n      this.el.style.display = 'none'\n    }\n\n    Orientation.change(function (e) {\n      let info = Orientation.getInfo()\n      _this.el.style.display = info[value] ? 'block' : 'none'\n    })\n  },\n  update () {\n  },\n  unbind () {\n  }\n}\n"
  },
  {
    "path": "src/components/orientation/orientation.js",
    "content": "/**\n * 横竖屏切换监听器\n * @author ningzbruc@gmail.com\n * @gitbub http://gitbub.com/kingback/orientation/\n * @date 2014-01-15\n * @version 0.0.1\n */\n\n// 原生不支持用resize模拟\nvar ORIENTATION_CHANGE = 'orientationchange'\nvar RESIZE = 'resize'\nvar EVT_ORIENTATION_CHANGE = 'onorientationchange' in window ? ORIENTATION_CHANGE : RESIZE\nvar FUNCTION = 'function'\nvar ON = 'on'\nvar AFTER = 'after'\n\n/**\n * 混入对象属性\n * @method merge\n * @param {Object} s 提供对象\n * @return {Object} r 接收对象\n * @private\n */\n\nfunction merge (s) {\n  var r = {}\n  var k\n\n  if (s) {\n    for (k in s) {\n      if (s.hasOwnProperty(k)) {\n        r[k] = s[k]\n      }\n    }\n  }\n\n  return r\n}\n\n/**\n * 绑定方法上下文\n * @method bind\n * @param {Function} fn\n * @param {Object} context\n * @return {Function}\n * @private\n */\n\nfunction bind (fn, context) {\n  return fn.bind ? fn.bind(context) : function () {\n    fn.apply(context, arguments)\n  }\n}\n\n/**\n * 横竖屏切换监听器\n * @constructor Orientation\n * @class\n */\n\nfunction Orientation () {\n  this.init.apply(this, arguments)\n}\n\nOrientation.prototype = {\n\n  /**\n   * 构造器\n   * @property constructor\n   * @public\n   */\n  constructor: Orientation,\n\n  /**\n   * 初始化\n   * @method init\n   * @public\n   */\n  init: function (cfg) {\n    this._cfg = merge({\n      delay: 400\n    }, cfg)\n\n    // 事件订阅数组\n    this._subs = {\n      on: [],\n      after: []\n    }\n\n    // 当前信息\n    this.info = this.getInfo()\n\n    // 绑定事件回调上下文\n    this._onWinOrientationChange = bind(this._onWinOrientationChange, this)\n\n    // 绑定窗口切换事件\n    window.addEventListener(EVT_ORIENTATION_CHANGE, this._onWinOrientationChange, false)\n  },\n\n  /**\n   * 销毁\n   * @method destroy\n   * @public\n   */\n  destroy: function () {\n    window.removeEventListener(EVT_ORIENTATION_CHANGE, this._onWinOrientationChange, false)\n    delete this._subs\n  },\n\n  /**\n   * 创建新实例\n   * @method create\n   * @return {Orientation} Orientation实例对象\n   * @public\n   */\n  create: function (cfg) {\n    return new Orientation(cfg)\n  },\n\n  /**\n   * 获取横竖屏信息\n   * @method getInfo\n   * @return {Object} 横竖屏相关信息\n   * @public\n   */\n  getInfo: function () {\n    // 90度为横屏\n    return (EVT_ORIENTATION_CHANGE === ORIENTATION_CHANGE) ? {\n      landscape: (window.orientation === 90 || window.orientation === -90),\n      portrait: (window.orientation === 0 || window.orientation === -180),\n      orientation: window.orientation\n    } : {\n      landscape: window.screen.width > window.screen.height,\n      portrait: window.screen.width <= window.screen.height,\n      orientation: window.screen.width > window.screen.height ? 90 : 0\n    }\n  },\n\n  /**\n   * 是否是横屏\n   * @method isLandscape\n   * @return {Boolean}\n   * @public\n   */\n  isLandscape: function () {\n    return this.info.landscape\n  },\n\n  /**\n   * 是否是竖屏\n   * @method isPortrait\n   * @return {Boolean}\n   * @public\n   */\n  isPortrait: function () {\n    return this.info.portrait\n  },\n\n  /**\n   * 添加change事件\n   * @method change\n   * @param {Function} fn 回调函数\n   * @param {Boolean} after 时候绑定after事件\n   * @chainable\n   */\n  change: function (fn, after) {\n    if (typeof fn === FUNCTION) {\n      this._subs[after ? AFTER : ON].push(fn)\n    }\n\n    return this\n  },\n\n  /**\n   * 触发横竖屏事件\n   * @method _fireChange\n   * @param {EventFacade} e\n   * @protected\n   */\n  _fireChange: function (e) {\n    var self = this\n    var info = this.getInfo()\n    var subs = this._subs\n    var i\n    var l\n\n    // 如果不等于上次方向，则触发\n    if (info.landscape !== this.info.landscape) {\n      this.info = merge(info)\n      info.originEvent = e\n      info.originType = e.type\n\n      // 执行on\n      for (i = 0, l = subs.on.length; i < l; i++) {\n        subs.on[i].call(self, e)\n      }\n\n      // 执行after\n      setTimeout(function () {\n        for (i = 0, l = subs.after.length; i < l; i++) {\n          subs.after[i].call(self, e)\n        }\n      }, 0)\n    }\n  },\n\n  /**\n   * 检查旋转是否已经完成\n   * @method _checkChange\n   * @param {EventFacade} e\n   * @protected\n   */\n  _checkChange: function (e) {\n    var self = this\n\n    if (self._cfg.delay) {\n      // iPad打开键盘时旋转比较慢\n      clearTimeout(this._changeTimer)\n      self._changeTimer = setTimeout(function () {\n        self._fireChange(e)\n      }, self._cfg.delay)\n    } else {\n      self._fireChange(e)\n    }\n  },\n\n  /**\n   * 横竖屏事件回调\n   * @method _onWinOrientationChange\n   * @param {EventFacade} e 事件对象\n   * @protected\n   */\n  _onWinOrientationChange: function (e) {\n    if (e.type === RESIZE) {\n      this._fireChange(e)\n    } else {\n      this._checkChange(e)\n    }\n  }\n\n}\n\n// 返回实例\nexport default Orientation.prototype.create()\n"
  },
  {
    "path": "src/components/panel/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/panel/index.vue",
    "content": "<template>\n  <div class=\"weui_panel weui_panel_access\">\n    <div class=\"weui_panel_hd\" v-if=\"header\" @click=\"onClickHeader\" v-html=\"header\"></div>\n    <div class=\"weui_panel_bd\">\n      <!--type==='1'-->\n      <a :href=\"getUrl(item.url)\" v-for=\"item in list\" @click.prevent=\"onItemClick(item)\" class=\"weui_media_box weui_media_appmsg\" v-if=\"type === '1'\">\n        <div class=\"weui_media_hd\" v-if=\"item.src\">\n          <img class=\"weui_media_appmsg_thumb\" :src=\"item.src\" alt=\"\">\n        </div>\n        <div class=\"weui_media_bd\">\n          <h4 class=\"weui_media_title\">{{item.title}}</h4>\n          <p class=\"weui_media_desc\">{{item.desc}}</p>\n        </div>\n      </a>\n      <!--type==='2'-->\n      <div class=\"weui_media_box weui_media_text\" v-for=\"item in list\" @click.prevent=\"onItemClick(item)\" v-if=\"type === '2'\">\n          <h4 class=\"weui_media_title\">{{item.title}}</h4>\n          <p class=\"weui_media_desc\">{{item.desc}}</p>\n      </div>\n      <!--type==='3'-->\n      <div class=\"weui_media_box weui_media_small_appmsg\">\n          <div class=\"weui_cells weui_cells_access\">\n            <a class=\"weui_cell\" :href=\"getUrl(item.url)\" v-for=\"item in list\" @click.prevent=\"onItemClick(item)\" v-if=\"type === '3'\">\n              <div class=\"weui_cell_hd\">\n                <img :src=\"item.src\" alt=\"\" style=\"width:20px;margin-right:5px;display:block\">\n              </div>\n              <div class=\"weui_cell_bd weui_cell_primary\">\n                <p>{{item.title}}</p>\n              </div>\n              <span class=\"weui_cell_ft\"></span>\n            </a>\n          </div>\n      </div>\n    </div>\n    <a class=\"weui_panel_ft\" :href=\"getUrl(footer.url)\" v-if=\"footer && type !== '3'\" @click.prevent=\"onClickFooter\" v-html=\"footer.title\"></a>\n  </div>\n</template>\n\n<script>\nimport { go, getUrl } from '../../libs/router'\n\nexport default {\n  props: {\n    header: String,\n    footer: Object,\n    list: Array,\n    type: {\n      type: String,\n      default: '1'\n    }\n  },\n  methods: {\n    getUrl (url) {\n      return getUrl(url, this.$router)\n    },\n    onClickFooter () {\n      this.$emit('on-click-footer')\n      go(this.footer.url, this.$router)\n    },\n    onClickHeader () {\n      this.$emit('on-click-header')\n    },\n    onItemClick (item) {\n      this.$emit('on-click-item', item)\n      go(item.url, this.$router)\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_panel/weui_panel';\n@import '../../styles/weui/widget/weui_media_box/weui_media_box';\n</style>\n"
  },
  {
    "path": "src/components/picker/animate.js",
    "content": "const time = Date.now || function () {\n  return +new Date()\n}\n\nlet running = {}\nlet counter = 1\nlet desiredFrames = 60\nlet millisecondsPerSecond = 1000\n\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\n// requestAnimationFrame polyfill by Erik Möller\n// fixes from Paul Irish and Tino Zijdel\n;(function () {\n  var lastTime = 0\n  var vendors = ['ms', 'moz', 'webkit', 'o']\n  for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n    window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n    window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']\n  }\n\n  if (!window.requestAnimationFrame) {\n    window.requestAnimationFrame = function (callback, element) {\n      var currTime = new Date().getTime()\n      var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n      var id = window.setTimeout(function () { callback(currTime + timeToCall) },\n            timeToCall)\n      lastTime = currTime + timeToCall\n      return id\n    }\n  }\n  if (!window.cancelAnimationFrame) {\n    window.cancelAnimationFrame = function (id) {\n      clearTimeout(id)\n    }\n  }\n}())\n\nexport default {\n\n  // A requestAnimationFrame wrapper / polyfill.\n  requestAnimationFrame: (function () {\n    var requestFrame = window.requestAnimationFrame\n    return function (callback, root) {\n      requestFrame(callback, root)\n    }\n  })(),\n\n  // Stops the given animation.\n  stop (id) {\n    var cleared = running[id] != null\n    if (cleared) {\n      running[id] = null\n    }\n    return cleared\n  },\n\n  // Whether the given animation is still running.\n  isRunning (id) {\n    return running[id] != null\n  },\n\n  // Start the animation.\n  start (stepCallback, verifyCallback, completedCallback, duration, easingMethod, root) {\n    var _this = this\n    var start = time()\n    var lastFrame = start\n    var percent = 0\n    var dropCounter = 0\n    var id = counter++\n\n    if (!root) {\n      root = document.body\n    }\n\n    // Compacting running db automatically every few new animations\n    if (id % 20 === 0) {\n      var newRunning = {}\n      for (var usedId in running) {\n        newRunning[usedId] = true\n      }\n      running = newRunning\n    }\n\n    // This is the internal step method which is called every few milliseconds\n    var step = function (virtual) {\n      // Normalize virtual value\n      var render = virtual !== true\n      // Get current time\n      var now = time()\n\n      // Verification is executed before next animation step\n      if (!running[id] || (verifyCallback && !verifyCallback(id))) {\n        running[id] = null\n        completedCallback && completedCallback(desiredFrames - (dropCounter / ((now - start) / millisecondsPerSecond)), id, false)\n        return\n      }\n\n      // For the current rendering to apply let's update omitted steps in memory.\n      // This is important to bring internal state variables up-to-date with progress in time.\n      if (render) {\n        var droppedFrames = Math.round((now - lastFrame) / (millisecondsPerSecond / desiredFrames)) - 1\n        for (var j = 0; j < Math.min(droppedFrames, 4); j++) {\n          step(true)\n          dropCounter++\n        }\n      }\n\n      // Compute percent value\n      if (duration) {\n        percent = (now - start) / duration\n        if (percent > 1) {\n          percent = 1\n        }\n      }\n\n      // Execute step callback, then...\n      var value = easingMethod ? easingMethod(percent) : percent\n      if ((stepCallback(value, now, render) === false || percent === 1) && render) {\n        running[id] = null\n        completedCallback && completedCallback(desiredFrames - (dropCounter / ((now - start) / millisecondsPerSecond)), id, percent === 1 || duration == null)\n      } else if (render) {\n        lastFrame = now\n        _this.requestAnimationFrame(step, root)\n      }\n    }\n\n    // Mark as running\n    running[id] = true\n    // Init first step\n    _this.requestAnimationFrame(step, root)\n    // Return unique animation ID\n    return id\n  }\n}\n"
  },
  {
    "path": "src/components/picker/chain.js",
    "content": "import filter from 'array-filter'\n\nconst Manager = class {\n  constructor (data, count, fixedColumns) {\n    this.data = data\n    this.count = count\n    if (fixedColumns) {\n      this.fixedColumns = fixedColumns\n    }\n  }\n\n  getChildren (value) {\n    return filter(this.data, one => {\n      return one.parent === value\n    })\n  }\n\n  getFirstColumn () {\n    return filter(this.data, one => {\n      return !one.parent || one.parent === 0 || one.parent === '0'\n    })\n  }\n\n  getPure (obj) {\n    return JSON.parse(JSON.stringify(obj))\n  }\n\n  getColumns (value) {\n    // check is data contains the values\n    if (value.length > 0) {\n      const matchCount = this.getPure(this.data).filter((item) => {\n        return this.getPure(value).indexOf(item.value) > -1\n      }).length\n      if (matchCount < this.getPure(value).length) {\n        value = []\n      }\n    }\n    var datas = []\n    const max = this.fixedColumns || 8\n    for (var i = 0; i < max; i++) {\n      if (i === 0) {\n        datas.push(this.getFirstColumn())\n      } else {\n        // 没有数据时，取得上一级的第一个\n        if (!value[i]) {\n          if (typeof datas[i - 1][0] === 'undefined') {\n            break\n          } else {\n            const topValue = datas[i - 1][0].value\n            datas.push(this.getChildren(topValue))\n          }\n        } else {\n          datas.push(this.getChildren(value[i - 1]))\n        }\n      }\n    }\n    const list = datas.filter((item) => {\n      return item.length > 0\n    })\n    // correct the column\n    this.count = list.length\n    return list\n  }\n}\n\nexport default Manager\n"
  },
  {
    "path": "src/components/picker/index.vue",
    "content": "<template>\n  <div class=\"vux-picker\">\n    <flexbox :gutter=\"0\">\n      <flexbox-item v-for=\"(one, index) in props_data\" style=\"margin-left:0;\">\n        <div class=\"vux-picker-item\" :id=\"'vux-picker-' + uuid + '-' + index\"></div>\n      </flexbox-item>\n    </flexbox>\n  </div>\n</template>\n\n<script>\nimport Scroller from './scroller'\nimport { Flexbox, FlexboxItem } from '../flexbox'\nimport Manager from './chain'\n\nexport default {\n  components: {\n    Flexbox,\n    FlexboxItem\n  },\n  created () {\n    this.props_data=this.data\n    this.props_value=this.value\n    if (this.columns !== 0) {\n      const length = this.columns\n      this.store = new Manager(this.props_data, length, this.fixedColumns)\n      this.props_data = this.store.getColumns(this.props_value)\n    }\n  },\n  mounted () {\n    this.$nextTick(() => {\n      this.render(this.props_data, this.value)\n    })\n  },\n  props: {\n    data: {\n      type: Array\n    },\n    columns: {\n      type: Number,\n      default: 0\n    },\n    fixedColumns: {\n      type: Number,\n      default: 0\n    },\n    value: Array,\n    itemClass: {\n      type: String,\n      default: 'scroller-item'\n    }\n  },\n  methods: {\n    getId (i) {\n      return `#vux-picker-${this.uuid}-${i}`\n    },\n    render (data, value) {\n      this.count = this.props_data.length\n      const _this = this\n      if (!data || !data.length) {\n        return\n      }\n      let count = this.props_data.length\n      // set first item as value\n      if (value.length < count) {\n        for (let i = 0; i < count; i++) {\n          // _this.value.$set(i, data[i][0].value || data[i][0])\n          _this.$set( _this.value, i, data[i][0].value || data[i][0] )\n        }\n      }\n\n      for (let i = 0; i < data.length; i++) {\n        /**\n        * Still don't know why this happens\n        */\n        if (!document.querySelector(_this.getId(i))) {\n          return\n        }\n\n        _this.scroller[i] && _this.scroller[i].destroy()\n        _this.scroller[i] = new Scroller(_this.getId(i), {\n          data: data[i],\n          defaultValue: value[i] || data[i][0].value,\n          itemClass: _this.item_class,\n          onSelect (value) {\n            // _this.value.$set(i, value)\n            _this.$set(_this.value,i,value)\n            if (!this.columns || (this.columns && _this.getValue().length === _this.store.count)) {\n              _this.$emit('on-change', _this.getValue())\n            }\n            if (_this.columns !== 0) {\n              _this.renderChain(i + 1)\n            }\n          }\n        })\n        if (_this.value) {\n          _this.scroller[i].select(value[i])\n        }\n      }\n    },\n    renderChain (i) {\n      if (!this.columns) {\n        return\n      }\n\n      // do not render for last scroller\n      if (i > this.count - 1) {\n        return\n      }\n\n      const _this = this\n      let ID = this.getId(i)\n      // destroy old one\n      this.scroller[i].destroy()\n      let list = this.store.getChildren(_this.getValue()[i - 1])\n      this.scroller[i] = new Scroller(ID, {\n        data: list,\n        itemClass: _this.item_class,\n        onSelect (value) {\n          // _this.value.$set(i, value)\n          _this.$set(_this.props_value,i,value)\n          _this.$emit('on-change', _this.getValue())\n          _this.renderChain(i + 1)\n        }\n      })\n      // this.value.$set(i, list[0].value)\n      this.$set(this.props_value,i,list[0].value)\n      this.renderChain(i + 1)\n    },\n    getValue () {\n      let data = []\n      for (let i = 0; i < this.props_data.length; i++) {\n        if (this.scroller[i]) {\n          data.push(this.scroller[i].value)\n        } else {\n          return []\n        }\n      }\n      return data\n    },\n    emitValueChange (val) {\n      if (!this.columns || (this.columns && val.length === this.store.count)) {\n        this.$emit('on-change', val)\n      }\n    }\n  },\n  data () {\n    return {\n      scroller: [],\n      count: 0,\n      uuid: Math.random().toString(36).substring(3, 8),\n      props_data:[],\n      props_value:[]\n    }\n  },\n  watch: {\n    value(val){\n      this.props_value=val\n    },\n    props_value (val, oldVal) {\n      // render all the scroller for chain datas\n      if (this.columns !== 0) {\n        if (val.length > 0) {\n          if (JSON.stringify(val) !== JSON.stringify(oldVal)) {\n            this.props_data = this.store.getColumns(val)\n            this.$nextTick(function () {\n              this.render(this.props_data, val)\n            })\n          }\n        }\n      } else {\n        for (let i = 0; i < val.length; i++) {\n          if (this.scroller[i] && this.scroller[i].value !== val[i]) {\n            this.scroller[i].select(val[i])\n          }\n        }\n      }\n    },\n    data(newData){\n      this.props_data=newData\n    },\n    props_data (newData) {\n      if (Object.prototype.toString.call(newData[0]) === '[object Array]') {\n        this.$nextTick(() => {\n          this.render(newData, this.props_value)\n          // emit on-change after rerender\n          this.$nextTick(() => {\n            this.emitValueChange(this.getValue())\n\n            if (JSON.stringify(this.getValue()) !== JSON.stringify(this.props_value)) {\n              if (!this.columns || (this.columns && this.getValue().length === this.store.count)) {\n                this.props_value = this.getValue()\n              }\n            }\n          })\n        })\n      } else {\n        if (this.columns !== 0) {\n          if (!newData.length) {\n            return\n          }\n          const length = this.columns\n          this.store = new Manager(newData, length, this.fixedColumns)\n          this.props_data = this.store.getColumns(this.props_value)\n        }\n      }\n    }\n  },\n  beforeDestroy () {\n    for (let i = 0; i < this.count; i++) {\n      this.scroller[i].destroy()\n      this.scroller[i] = null\n    }\n  }\n}\n</script>\n\n<style>\n@import './scroller.css';\n</style>\n\n"
  },
  {
    "path": "src/components/picker/metas.yml",
    "content": ""
  },
  {
    "path": "src/components/picker/scroller.css",
    "content": ".scroller-component {\n  display: block;\n  position: relative;\n  height: 238px;\n  overflow: hidden;\n  width: 100%;\n}\n\n.scroller-content {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  z-index: 1;\n}\n\n.scroller-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  height: 100%;\n  margin: 0 auto;\n  width: 100%;\n  z-index: 3;\n  background-image:\n    -webkit-linear-gradient(top, rgba(255,255,255,0.95), rgba(255,255,255,0.6)),\n    -webkit-linear-gradient(bottom, rgba(255,255,255,0.95), rgba(255,255,255,0.6));\n  background-image:\n    linear-gradient(to bottom, rgba(255,255,255,0.95), rgba(255,255,255,0.6)),\n    linear-gradient(to top, rgba(255,255,255,0.95), rgba(255,255,255,0.6));\n  background-position: top, bottom;\n  background-size: 100% 102px;\n  background-repeat: no-repeat;\n}\n\n.scroller-item {\n  text-align: center;\n  font-size: 16px;\n  height: 34px;\n  line-height: 34px;\n  color: #000;\n}\n\n.scroller-indicator {\n  width: 100%;\n  height: 34px;\n  position: absolute;\n  left: 0;\n  top: 102px;\n  z-index: 3;\n  background-image:\n    -webkit-linear-gradient(top, #d0d0d0, #d0d0d0, transparent, transparent),\n    -webkit-linear-gradient(bottom, #d0d0d0, #d0d0d0, transparent, transparent);\n  background-image:\n    linear-gradient(to bottom, #d0d0d0, #d0d0d0, transparent, transparent),\n    linear-gradient(to top, #d0d0d0, #d0d0d0, transparent, transparent);\n  background-position: top, bottom;\n  background-size: 100% 1px;\n  background-repeat: no-repeat;\n}\n.scroller-item {\n  line-clamp: 1;\n  -webkit-line-clamp: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}"
  },
  {
    "path": "src/components/picker/scroller.js",
    "content": "/*\n * Anima Scroller\n * Based Zynga Scroller (http://github.com/zynga/scroller)\n * Copyright 2011, Zynga Inc.\n * Licensed under the MIT License.\n * https://raw.github.com/zynga/scroller/master/MIT-LICENSE.txt\n */\nconst TEMPLATE = `\n<div class=\"scroller-component\" data-role=\"component\">\n  <div class=\"scroller-mask\" data-role=\"mask\"></div>\n  <div class=\"scroller-indicator\" data-role=\"indicator\"></div>\n  <div class=\"scroller-content\" data-role=\"content\"></div>\n</div>\n`\n\nimport Animate from './animate'\nimport { getElement, getComputedStyle, easeOutCubic, easeInOutCubic } from './util'\n\nvar Scroller = function (container, options) {\n  var self = this\n\n  options = options || {}\n\n  self.options = {\n    itemClass: 'scroller-item',\n    onSelect () {},\n    defaultValue: 0,\n    data: []\n  }\n\n  for (var key in options) {\n    if (options[key] !== undefined) {\n      self.options[key] = options[key]\n    }\n  }\n\n  self.__container = getElement(container)\n\n  var tempContainer = document.createElement('div')\n  tempContainer.innerHTML = options.template || TEMPLATE\n\n  var component = self.__component = tempContainer.querySelector('[data-role=component]')\n  var content = self.__content = component.querySelector('[data-role=content]')\n  var indicator = component.querySelector('[data-role=indicator]')\n\n  var data = self.options.data\n  var html = ''\n  if (data.length && data[0].constructor === Object) {\n    data.forEach(function (row) {\n      html += '<div class=\"' + self.options.itemClass + '\" data-value=\"' + row.value + '\">' + row.name + '</div>'\n    })\n  } else {\n    data.forEach(function (val) {\n      html += '<div class=\"' + self.options.itemClass + '\" data-value=\"' + val + '\">' + val + '</div>'\n    })\n  }\n  content.innerHTML = html\n\n  self.__container.appendChild(component)\n\n  self.__itemHeight = parseInt(getComputedStyle(indicator, 'height'), 10)\n\n  self.__callback = options.callback || function (top) {\n    content.style.webkitTransform = 'translate3d(0, ' + (-top) + 'px, 0)'\n  }\n\n  var rect = component.getBoundingClientRect()\n\n  self.__clientTop = (rect.top + component.clientTop) || 0\n\n  self.__setDimensions(component.clientHeight, content.offsetHeight)\n\n  if (component.clientHeight === 0) {\n    self.__setDimensions(parseInt(getComputedStyle(component, 'height'), 10), 204)\n  }\n  self.select(self.options.defaultValue, false)\n\n  component.addEventListener('touchstart', function (e) {\n    if (e.target.tagName.match(/input|textarea|select/i)) {\n      return\n    }\n    e.preventDefault()\n    self.__doTouchStart(e.touches, e.timeStamp)\n  }, false)\n\n  component.addEventListener('touchmove', function (e) {\n    self.__doTouchMove(e.touches, e.timeStamp)\n  }, false)\n\n  component.addEventListener('touchend', function (e) {\n    self.__doTouchEnd(e.timeStamp)\n  }, false)\n}\n\nvar members = {\n  value: null,\n  __prevValue: null,\n  __isSingleTouch: false,\n  __isTracking: false,\n  __didDecelerationComplete: false,\n  __isGesturing: false,\n  __isDragging: false,\n  __isDecelerating: false,\n  __isAnimating: false,\n  __clientTop: 0,\n  __clientHeight: 0,\n  __contentHeight: 0,\n  __itemHeight: 0,\n  __scrollTop: 0,\n  __minScrollTop: 0,\n  __maxScrollTop: 0,\n  __scheduledTop: 0,\n  __lastTouchTop: null,\n  __lastTouchMove: null,\n  __positions: null,\n  __minDecelerationScrollTop: null,\n  __maxDecelerationScrollTop: null,\n  __decelerationVelocityY: null,\n\n  __setDimensions (clientHeight, contentHeight) {\n    var self = this\n\n    self.__clientHeight = clientHeight\n    self.__contentHeight = contentHeight\n\n    var totalItemCount = self.options.data.length\n    var clientItemCount = Math.round(self.__clientHeight / self.__itemHeight)\n\n    self.__minScrollTop = -self.__itemHeight * (clientItemCount / 2)\n    self.__maxScrollTop = self.__minScrollTop + totalItemCount * self.__itemHeight - 0.1\n  },\n\n  selectByIndex (index, animate) {\n    var self = this\n    if (index < 0 || index > self.__content.childElementCount - 1) {\n      return\n    }\n    self.__scrollTop = self.__minScrollTop + index * self.__itemHeight\n\n    self.scrollTo(self.__scrollTop, animate)\n\n    self.__selectItem(self.__content.children[index])\n  },\n\n  select (value, animate) {\n    var self = this\n\n    var children = self.__content.children\n    for (var i = 0, len = children.length; i < len; i++) {\n      if (children[i].dataset.value === value) {\n        self.selectByIndex(i, animate)\n        return\n      }\n    }\n\n    self.selectByIndex(0, animate)\n  },\n\n  getValue () {\n    return this.value\n  },\n\n  scrollTo (top, animate) {\n    var self = this\n\n    animate = (animate === undefined) ? true : animate\n\n    if (self.__isDecelerating) {\n      Animate.stop(self.__isDecelerating)\n      self.__isDecelerating = false\n    }\n\n    top = Math.round(top / self.__itemHeight) * self.__itemHeight\n    top = Math.max(Math.min(self.__maxScrollTop, top), self.__minScrollTop)\n\n    if (top === self.__scrollTop || !animate) {\n      self.__publish(top)\n      self.__scrollingComplete()\n      return\n    }\n    self.__publish(top, 250)\n  },\n\n  destroy () {\n    this.__component.parentNode && this.__component.parentNode.removeChild(this.__component)\n  },\n\n  __selectItem (selectedItem) {\n    var self = this\n\n    var selectedItemClass = self.options.itemClass + '-selected'\n    var lastSelectedElem = self.__content.querySelector('.' + selectedItemClass)\n    if (lastSelectedElem) {\n      lastSelectedElem.classList.remove(selectedItemClass)\n    }\n    selectedItem.classList.add(selectedItemClass)\n\n    if (self.value !== null) {\n      self.__prevValue = self.value\n    }\n\n    self.value = selectedItem.dataset.value\n  },\n\n  __scrollingComplete () {\n    var self = this\n\n    var index = Math.round((self.__scrollTop - self.__minScrollTop - self.__itemHeight / 2) / self.__itemHeight)\n\n    self.__selectItem(self.__content.children[index])\n\n    if (self.__prevValue !== null && self.__prevValue !== self.value) {\n      self.options.onSelect(self.value)\n    }\n  },\n\n  __doTouchStart (touches, timeStamp) {\n    var self = this\n\n    if (touches.length == null) {\n      throw new Error('Invalid touch list: ' + touches)\n    }\n    if (timeStamp instanceof Date) {\n      timeStamp = timeStamp.valueOf()\n    }\n    if (typeof timeStamp !== 'number') {\n      throw new Error('Invalid timestamp value: ' + timeStamp)\n    }\n\n    self.__interruptedAnimation = true\n\n    if (self.__isDecelerating) {\n      Animate.stop(self.__isDecelerating)\n      self.__isDecelerating = false\n      self.__interruptedAnimation = true\n    }\n\n    if (self.__isAnimating) {\n      Animate.stop(self.__isAnimating)\n      self.__isAnimating = false\n      self.__interruptedAnimation = true\n    }\n\n    // Use center point when dealing with two fingers\n    var currentTouchTop\n    var isSingleTouch = touches.length === 1\n    if (isSingleTouch) {\n      currentTouchTop = touches[0].pageY\n    } else {\n      currentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2\n    }\n\n    self.__initialTouchTop = currentTouchTop\n    self.__lastTouchTop = currentTouchTop\n    self.__lastTouchMove = timeStamp\n    self.__lastScale = 1\n    self.__enableScrollY = !isSingleTouch\n    self.__isTracking = true\n    self.__didDecelerationComplete = false\n    self.__isDragging = !isSingleTouch\n    self.__isSingleTouch = isSingleTouch\n    self.__positions = []\n  },\n\n  __doTouchMove (touches, timeStamp, scale) {\n    var self = this\n\n    if (touches.length == null) {\n      throw new Error('Invalid touch list: ' + touches)\n    }\n    if (timeStamp instanceof Date) {\n      timeStamp = timeStamp.valueOf()\n    }\n    if (typeof timeStamp !== 'number') {\n      throw new Error('Invalid timestamp value: ' + timeStamp)\n    }\n\n    // Ignore event when tracking is not enabled (event might be outside of element)\n    if (!self.__isTracking) {\n      return\n    }\n\n    var currentTouchTop\n\n    // Compute move based around of center of fingers\n    if (touches.length === 2) {\n      currentTouchTop = Math.abs(touches[0].pageY + touches[1].pageY) / 2\n    } else {\n      currentTouchTop = touches[0].pageY\n    }\n\n    var positions = self.__positions\n\n    // Are we already is dragging mode?\n    if (self.__isDragging) {\n      var moveY = currentTouchTop - self.__lastTouchTop\n      var scrollTop = self.__scrollTop\n\n      if (self.__enableScrollY) {\n        scrollTop -= moveY\n\n        var minScrollTop = self.__minScrollTop\n        var maxScrollTop = self.__maxScrollTop\n\n        if (scrollTop > maxScrollTop || scrollTop < minScrollTop) {\n          // Slow down on the edges\n          if (scrollTop > maxScrollTop) {\n            scrollTop = maxScrollTop\n          } else {\n            scrollTop = minScrollTop\n          }\n        }\n      }\n\n      // Keep list from growing infinitely (holding min 10, max 20 measure points)\n      if (positions.length > 40) {\n        positions.splice(0, 20)\n      }\n\n      // Track scroll movement for decleration\n      positions.push(scrollTop, timeStamp)\n\n      // Sync scroll position\n      self.__publish(scrollTop)\n\n      // Otherwise figure out whether we are switching into dragging mode now.\n    } else {\n      var minimumTrackingForScroll = 0\n      var minimumTrackingForDrag = 5\n\n      var distanceY = Math.abs(currentTouchTop - self.__initialTouchTop)\n\n      self.__enableScrollY = distanceY >= minimumTrackingForScroll\n\n      positions.push(self.__scrollTop, timeStamp)\n\n      self.__isDragging = self.__enableScrollY && (distanceY >= minimumTrackingForDrag)\n\n      if (self.__isDragging) {\n        self.__interruptedAnimation = false\n      }\n    }\n\n    // Update last touch positions and time stamp for next event\n    self.__lastTouchTop = currentTouchTop\n    self.__lastTouchMove = timeStamp\n    self.__lastScale = scale\n  },\n\n  __doTouchEnd (timeStamp) {\n    var self = this\n\n    if (timeStamp instanceof Date) {\n      timeStamp = timeStamp.valueOf()\n    }\n    if (typeof timeStamp !== 'number') {\n      throw new Error('Invalid timestamp value: ' + timeStamp)\n    }\n\n    // Ignore event when tracking is not enabled (no touchstart event on element)\n    // This is required as this listener ('touchmove') sits on the document and not on the element itself.\n    if (!self.__isTracking) {\n      return\n    }\n\n    // Not touching anymore (when two finger hit the screen there are two touch end events)\n    self.__isTracking = false\n\n    // Be sure to reset the dragging flag now. Here we also detect whether\n    // the finger has moved fast enough to switch into a deceleration animation.\n    if (self.__isDragging) {\n      // Reset dragging flag\n      self.__isDragging = false\n\n      // Start deceleration\n      // Verify that the last move detected was in some relevant time frame\n      if (self.__isSingleTouch && (timeStamp - self.__lastTouchMove) <= 100) {\n        // Then figure out what the scroll position was about 100ms ago\n        var positions = self.__positions\n        var endPos = positions.length - 1\n        var startPos = endPos\n\n        // Move pointer to position measured 100ms ago\n        for (var i = endPos; i > 0 && positions[i] > (self.__lastTouchMove - 100); i -= 2) {\n          startPos = i\n        }\n\n        // If start and stop position is identical in a 100ms timeframe,\n        // we cannot compute any useful deceleration.\n        if (startPos !== endPos) {\n          // Compute relative movement between these two points\n          var timeOffset = positions[endPos] - positions[startPos]\n          var movedTop = self.__scrollTop - positions[startPos - 1]\n\n          // Based on 50ms compute the movement to apply for each render step\n          self.__decelerationVelocityY = movedTop / timeOffset * (1000 / 60)\n\n          // How much velocity is required to start the deceleration\n          var minVelocityToStartDeceleration = 4\n\n          // Verify that we have enough velocity to start deceleration\n          if (Math.abs(self.__decelerationVelocityY) > minVelocityToStartDeceleration) {\n            self.__startDeceleration(timeStamp)\n          }\n        }\n      }\n    }\n\n    if (!self.__isDecelerating) {\n      self.scrollTo(self.__scrollTop)\n    }\n\n    // Fully cleanup list\n    self.__positions.length = 0\n  },\n\n  // Applies the scroll position to the content element\n  __publish (top, animationDuration) {\n    var self = this\n\n    // Remember whether we had an animation, then we try to continue based on the current \"drive\" of the animation\n    var wasAnimating = self.__isAnimating\n    if (wasAnimating) {\n      Animate.stop(wasAnimating)\n      self.__isAnimating = false\n    }\n\n    if (animationDuration) {\n      // Keep scheduled positions for scrollBy functionality\n      self.__scheduledTop = top\n\n      var oldTop = self.__scrollTop\n      var diffTop = top - oldTop\n\n      var step = function (percent, now, render) {\n        self.__scrollTop = oldTop + (diffTop * percent)\n        // Push values out\n        if (self.__callback) {\n          self.__callback(self.__scrollTop)\n        }\n      }\n\n      var verify = function (id) {\n        return self.__isAnimating === id\n      }\n\n      var completed = function (renderedFramesPerSecond, animationId, wasFinished) {\n        if (animationId === self.__isAnimating) {\n          self.__isAnimating = false\n        }\n        if (self.__didDecelerationComplete || wasFinished) {\n          self.__scrollingComplete()\n        }\n      }\n\n      // When continuing based on previous animation we choose an ease-out animation instead of ease-in-out\n      self.__isAnimating = Animate.start(step, verify, completed, animationDuration, wasAnimating ? easeOutCubic : easeInOutCubic)\n    } else {\n      self.__scheduledTop = self.__scrollTop = top\n      // Push values out\n      if (self.__callback) {\n        self.__callback(top)\n      }\n    }\n  },\n\n  // Called when a touch sequence end and the speed of the finger was high enough to switch into deceleration mode.\n  __startDeceleration (timeStamp) {\n    var self = this\n\n    self.__minDecelerationScrollTop = self.__minScrollTop\n    self.__maxDecelerationScrollTop = self.__maxScrollTop\n\n    // Wrap class method\n    var step = function (percent, now, render) {\n      self.__stepThroughDeceleration(render)\n    }\n\n    // How much velocity is required to keep the deceleration running\n    var minVelocityToKeepDecelerating = 0.5\n\n    // Detect whether it's still worth to continue animating steps\n    // If we are already slow enough to not being user perceivable anymore, we stop the whole process here.\n    var verify = function () {\n      var shouldContinue = Math.abs(self.__decelerationVelocityY) >= minVelocityToKeepDecelerating\n      if (!shouldContinue) {\n        self.__didDecelerationComplete = true\n      }\n      return shouldContinue\n    }\n\n    var completed = function (renderedFramesPerSecond, animationId, wasFinished) {\n      self.__isDecelerating = false\n      if (self.__scrollTop <= self.__minScrollTop || self.__scrollTop >= self.__maxScrollTop) {\n        self.scrollTo(self.__scrollTop)\n        return\n      }\n      if (self.__didDecelerationComplete) {\n        self.__scrollingComplete()\n      }\n    }\n\n    // Start animation and switch on flag\n    self.__isDecelerating = Animate.start(step, verify, completed)\n  },\n\n  // Called on every step of the animation\n  __stepThroughDeceleration (render) {\n    var self = this\n\n    var scrollTop = self.__scrollTop + self.__decelerationVelocityY\n\n    var scrollTopFixed = Math.max(Math.min(self.__maxDecelerationScrollTop, scrollTop), self.__minDecelerationScrollTop)\n    if (scrollTopFixed !== scrollTop) {\n      scrollTop = scrollTopFixed\n      self.__decelerationVelocityY = 0\n    }\n\n    if (Math.abs(self.__decelerationVelocityY) <= 1) {\n      if (Math.abs(scrollTop % self.__itemHeight) < 1) {\n        self.__decelerationVelocityY = 0\n      }\n    } else {\n      self.__decelerationVelocityY *= 0.95\n    }\n\n    self.__publish(scrollTop)\n  }\n}\n\n// Copy over members to prototype\nfor (var key in members) {\n  Scroller.prototype[key] = members[key]\n}\n\nmodule.exports = Scroller\n"
  },
  {
    "path": "src/components/picker/util.js",
    "content": "export function getElement (expr) {\n  return (typeof expr === 'string') ? document.querySelector(expr) : expr\n}\n\nexport function getComputedStyle (el, key) {\n  var computedStyle = window.getComputedStyle(el)\n  return computedStyle[key] || ''\n}\n\n// Easing Equations (c) 2003 Robert Penner, all rights reserved.\n// Open source under the BSD License.\nexport function easeOutCubic (pos) {\n  return (Math.pow((pos - 1), 3) + 1)\n}\n\nexport function easeInOutCubic (pos) {\n  if ((pos /= 0.5) < 1) {\n    return 0.5 * Math.pow(pos, 3)\n  }\n  return 0.5 * (Math.pow((pos - 2), 3) + 2)\n}\n"
  },
  {
    "path": "src/components/popover/DemoIndex.vue",
    "content": "<template>\n  <div>\n    <popover placement=\"top\" style=\"margin: 20px;\" @on-show=\"onShow\" @on-hide=\"onHide\">\n      <div slot=\"content\" class=\"popover-demo-content\">\n        hello world\n      </div>\n      <button class=\"btn btn-default\">Popover on top</button>\n    </popover>\n\n    <popover placement=\"bottom\" style=\"margin: 20px;\" :gutter=\"200\">\n      <div slot=\"content\" class=\"popover-demo-content\">\n        hello world\n      </div>\n      <button class=\"btn btn-default\">Popover on bottom & 设置偏移量</button>\n    </popover>\n\n    <popover placement=\"left\" style=\"margin: 20px;\">\n      <div slot=\"content\" class=\"popover-demo-content\">\n        hello world\n      </div>\n      <button class=\"btn btn-default\">Popover on left</button>\n    </popover>\n\n    <popover placement=\"right\" style=\"margin: 20px;\">\n      <div slot=\"content\" class=\"popover-demo-content\">\n        hello world\n      </div>\n      <button class=\"btn btn-default\">Popover on right</button>\n    </popover>\n  </div>\n</template>\n\n<script>\nimport Popover from './'\n\nexport default {\n  components: {\n    Popover\n  },\n  methods: {\n    onShow () {\n      console.log('on show')\n    },\n    onHide () {\n      console.log('on hide')\n    }\n  }\n}\n</script>\n\n<style scoped>\n.popover-demo-content {\n  padding: 5px 10px;\n}\n</style>\n"
  },
  {
    "path": "src/components/popover/index.vue",
    "content": "<template>\n  <div v-click-outside=\"onClickedOutside\">\n    <span ref=\"trigger\">\n      <slot>\n      </slot>\n    </span>\n    <div class=\"vux-popover\"\n      :class=\"{\n      'top':placement === 'top',\n      'left':placement === 'left',\n      'right':placement === 'right',\n      'bottom':placement === 'bottom'\n      }\"\n      ref=\"popover\"\n      v-show=\"show\">\n        <div :class=\"arrowClass\"></div>\n        <div @click=\"$emit('on-click-content')\">\n          <slot name=\"content\">\n              <div v-html=\"content\"></div>\n          </slot>\n        </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport ClickOutside from '../../directives/click-outside'\nexport default {\n  mounted () {\n    const triger = this.$refs.trigger.children[0]\n    triger.addEventListener('click', (e) => {\n      this.toggle()\n    })\n    const popover = this.$refs.popover\n    switch (this.placement) {\n      case 'top' :\n        this.position.left = triger.offsetLeft - popover.offsetWidth / 2 + triger.offsetWidth / 2\n        this.position.top = triger.getBoundingClientRect().top - popover.offsetHeight - this.gutter\n        break\n      case 'left':\n        this.position.left = triger.offsetLeft - popover.offsetWidth - this.gutter\n        this.position.top = triger.getBoundingClientRect().top + triger.offsetHeight / 2 - popover.offsetHeight / 2\n        break\n      case 'right':\n        this.position.left = triger.offsetLeft + triger.offsetWidth + this.gutter\n        this.position.top = triger.getBoundingClientRect().top + triger.offsetHeight / 2 - popover.offsetHeight / 2\n        break\n      case 'bottom':\n        this.position.left = triger.offsetLeft - popover.offsetWidth / 2 + triger.offsetWidth / 2\n        this.position.top = triger.getBoundingClientRect().top + triger.offsetHeight + this.gutter\n        break\n      default:\n        console.warn('Wrong placement prop')\n    }\n    popover.style.top = this.position.top + 'px'\n    popover.style.left = this.position.left + 'px'\n    popover.style.display = 'none'\n    this.show = false\n  },\n  directives: {\n    ClickOutside\n  },\n  props: {\n    content: String,\n    placement: String,\n    gutter: {\n      type: Number,\n      default: 5\n    }\n  },\n  methods: {\n    onClickedOutside () {\n      if (this.show) {\n        this.show = false\n        this.$emit('on-hide')\n      }\n    },\n    toggle () {\n      this.show = !this.show\n      this.$emit(`on-${this.show === true ? 'show' : 'hide'}`)\n    }\n  },\n  data () {\n    return {\n      position: {\n        top: 0,\n        left: 0\n      },\n      show: true\n    }\n  },\n  computed: {\n    arrowClass () {\n      return {\n        'vux-popover-arrow': true,\n        'vux-popover-arrow-up': this.placement === 'bottom',\n        'vux-popover-arrow-right': this.placement === 'left',\n        'vux-popover-arrow-left': this.placement === 'right',\n        'vux-popover-arrow-down': this.placement === 'top'\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-popover {\n  position: absolute;\n  left: 0;\n  top: 0;\n  background-color: @popover-bg-color;\n  color: @popover-font-color;\n  border-radius: @popover-border-radius;\n  z-index: 500;\n}\n.vux-popover-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n}\n.vux-popover-arrow-up {\n border-left: @popover-border-width solid transparent;\n border-right: @popover-border-width solid transparent;\n border-bottom: @popover-border-width solid @popover-bg-color;\n left: 50%;\n transform: translateX(-50%);\n top: -@popover-border-width;\n}\n.vux-popover-arrow-down {\n  border-left: @popover-border-width solid transparent;\n  border-right: @popover-border-width solid transparent;\n  border-top: @popover-border-width solid @popover-bg-color;\n  left: 50%;\n  transform: translateX(-50%);\n  bottom: -@popover-border-width;\n}\n.vux-popover-arrow-left {\n  border-top: @popover-border-width solid transparent;\n  border-bottom: @popover-border-width solid transparent;\n  border-right: @popover-border-width solid @popover-bg-color;\n  top: 50%;\n  transform: translateY(-50%);\n  left: -@popover-border-width;\n}\n.vux-popover-arrow-right {\n  border-top: @popover-border-width solid transparent;\n  border-bottom: @popover-border-width solid transparent;\n  border-left: @popover-border-width solid @popover-bg-color;\n  top: 50%;\n  transform: translateY(-50%);\n  right: -@popover-border-width;\n}\n</style>\n"
  },
  {
    "path": "src/components/popover/metas.yml",
    "content": "keywords:\n  - popover\n  - float menu\n  - tooltip\n  - 弹窗\n  - 菜单\nprops:\n  content:\n    en: content of the popover\n    zh-CN: 弹出窗口内容\n  placement:\n    en: position of the popover\n    zh-CN: 弹出窗口位置\n    enum:\n      - top\n      - right\n      - bottom\n      - left\n    gutter:\n      en: the gutter between trigger element and popover arrow\n      zh-CN: 箭头和触发元素之间的距离\nslots:\n  default:\n    en: trigger element\n    zh-CN: 触发元素\n  content:\n    en: content of the popover\n    zh-CN: 弹窗内容\nevents:\n  on-show:\n    en: triggers when popover shows\n    zh-CN: 弹窗显示时触发\n  on-hide:\n    en: triggers when popover hides\n    zh-CN: 弹窗隐藏时触发\n"
  },
  {
    "path": "src/components/popup/index.vue",
    "content": "<template>\n    <transition  name=\"vux-popup\" >\n      <div v-show=\"props_show\" :style=\"{height:height}\" class=\"vux-popup vux-popup-dialog\">\n        <!-- 此处input只做双向数据绑定用(props 的value 属性必须有)-->\n        <input v-model=\"props_show\" style=\"display:none\">\n        <slot></slot>\n      </div>\n    </transition>\n</template>\n\n<script>\nimport Popup from './popup'\n\nexport default {\n  props: {\n    show: Boolean,\n    value:Boolean,\n    height: {\n      type: String,\n      default: 'auto'\n    },\n    hideOnBlur: {\n      type: Boolean,\n      default: true\n    }\n  },\n  mounted () {\n    const _this = this\n    this.popup = new Popup({\n      container: _this.$el,\n      innerHTML: '',\n      hideOnBlur: _this.hideOnBlur,\n      onOpen (dialog) {\n        _this.fixSafariOverflowScrolling('auto')\n        _this.props_show = true\n      },\n      onClose (dialog) {\n        _this.props_show = false\n        if (Object.keys(window.__$vuxPopups).length >= 1) return\n        _this.fixSafariOverflowScrolling('touch')\n      }\n    })\n    this.$overflowScrollingList = document.querySelectorAll('.vux-fix-safari-overflow-scrolling')\n  },\n  methods: {\n    /**\n    * https://github.com/airyland/vux/issues/311\n    * https://benfrain.com/z-index-stacking-contexts-experimental-css-and-ios-safari/\n    */\n    fixSafariOverflowScrolling (type) {\n      if (!this.$overflowScrollingList.length) return\n      if (!/iphone/i.test(navigator.userAgent)) return\n      for (let i = 0; i < this.$overflowScrollingList.length; i++) {\n        this.$overflowScrollingList[i].style.webkitOverflowScrolling = type\n      }\n    }\n  },\n  data () {\n    return {\n      hasFirstShow: false,\n      props_show: false\n    }\n  },\n  watch: {\n    show (val) {\n      this.props_show=val\n    },\n    value(val){\n      this.props_show=val\n    },\n    props_show(val){\n      if (val) {\n        this.popup.show()\n        this.$emit('on-show')\n        if (!this.hasFirstShow) {\n          this.$emit('on-first-show')\n          this.hasFirstShow = true\n        }\n      } else {\n        this.$emit('on-hide')\n        this.show = false\n        this.popup.hide(false)\n      }\n      this.$emit('input',val);\n    }\n  },\n  beforeDestroy () {\n    this.popup.destroy()\n    this.fixSafariOverflowScrolling('touch')\n  }\n}\n</script>\n\n<style>\n.vux-popup {\n  /* border-top: 2px solid #04BE02; */\n}\n.vux-popup-dialog {\n  position: fixed;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  background: #eee;\n  z-index: 101;\n  /* transition: transform .3s */\n}\n.vux-popup-mask {\n  display: block;\n  position: fixed;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  background: rgba(0, 0, 0, 0.5);\n  opacity: 0;\n  tap-highlight-color: rgba(0,0,0,0);\n  z-index: -1;\n}\n.vux-popup-mask.vux-popup-show {\n  opacity: 1;\n  z-index: 100;\n  transition: opacity 0.3s;\n}\n\n.vux-popup-enter-active, .vux-popup-leave-active {\n  transition: transform .3s\n}\n.vux-popup-enter, .vux-popup-leave-active {\n  transform: translate3d(0, 100%, 0);\n}\n</style>\n"
  },
  {
    "path": "src/components/popup/popup.js",
    "content": "// not a good way but works well\nwindow.__$vuxPopups = window.__$vuxPopups || {}\nconst popupDialog = function (option) {\n  this.uuid = Math.random().toString(36).substring(3, 8)\n  this.params = {}\n  this.isShow = false\n  if (Object.prototype.toString.call(option) === '[object Object]') {\n    this.params = {\n      input: option.input || '',\n      container: document.querySelector(option.input) || '',\n      innerHTML: option.innerHTML || '',\n      hideOnBlur: option.hideOnBlur,\n      onOpen: option.onOpen || function () {},\n      onClose: option.onClose || function () {}\n    }\n  }\n  if (!!document.querySelectorAll('.vux-popup-mask').length <= 0) {\n    this.divMask = document.createElement('a')\n    this.divMask.className = 'vux-popup-mask'\n    this.divMask.dataset.uuid = '' // 用于多个popup共享一个mask\n    this.divMask.href = 'javascript:void(0)'\n    document.body.appendChild(this.divMask)\n  }\n  let div\n  if (!option.container) {\n    div = document.createElement('div')\n  } else {\n    div = option.container\n  }\n  div.className = 'vux-popup-dialog vux-popup-dialog-' + this.uuid\n\n  if (!option.container) {\n    document.body.appendChild(div)\n  }\n  this.container = document.querySelector('.vux-popup-dialog-' + this.uuid)\n  this.mask = document.querySelector('.vux-popup-mask')\n  this.mask.dataset.uuid += `,${this.uuid}`\n  this._bindEvents()\n  option = null\n  return this\n}\n\npopupDialog.prototype.onClickMask = function () {\n  if (this.params.hideOnBlur && this.isShow) {\n    this.hide(false)\n  }\n}\n\npopupDialog.prototype._bindEvents = function () {\n  this.params.hideOnBlur && this.mask.addEventListener('click', this.onClickMask.bind(this), false)\n}\n\npopupDialog.prototype.show = function () {\n  this.mask.classList.add('vux-popup-show')\n  this.container.classList.add('vux-popup-show')\n  this.params.onOpen && this.params.onOpen(this)\n  this.isShow = true\n  window.__$vuxPopups[this.uuid] = 1\n}\n\npopupDialog.prototype.hide = function (shouldCallback = true) {\n  this.container.classList.remove('vux-popup-show')\n  if (!document.querySelector('.vux-popup-dialog.vux-popup-show')) {\n    this.mask.classList.remove('vux-popup-show')\n  }\n  shouldCallback === false && this.params.onClose && this.params.hideOnBlur && this.params.onClose(this)\n  this.isShow = false\n  delete window.__$vuxPopups[this.uuid]\n}\n\npopupDialog.prototype.html = function (html) {\n  this.container.innerHTML = html\n}\n\npopupDialog.prototype.destroy = function () {\n  this.mask.dataset.uuid = this.mask.dataset.uuid.replace(new RegExp(`,${this.uuid}`, 'g'), '')\n  if (!this.mask.dataset.uuid) {\n    this.mask.removeEventListener('click', this.onClickMask.bind(this), false)\n    this.mask && this.mask.parentNode && this.mask.parentNode.removeChild(this.mask)\n  } else {\n    this.hide()\n  }\n  delete window.__$vuxPopups[this.uuid]\n}\n\nexport default popupDialog\n"
  },
  {
    "path": "src/components/popup-picker/index.vue",
    "content": "<template>\n  <div>\n    <cell v-show=\"showCell\" :title=\"title\" primary=\"content\" is-link :inline-desc=\"inlineDesc\" @click=\"onClick\">\n      <span class=\"vux-popup-picker-value\" v-if=\"!showName && props_value.length\">{{props_value | array2string}}</span>\n      <span class=\"vux-popup-picker-value\" v-else=\"showName && props_value.length\">{{props_value | value2name(data) }}</span>\n      <span v-if=\"!props_value.length && placeholder\" v-html=\"placeholder\"></span>\n    </cell>\n    <popup v-model=\"props_show\" class=\"vux-popup-picker\" :id=\"'vux-popup-picker-'+uuid\" @on-hide=\"onPopupHide\" @on-show=\"$emit('on-show')\">\n      <div class=\"vux-popup-picker-container\">\n        <div class=\"vux-popup-picker-header\">\n          <flexbox>\n            <flexbox-item style=\"text-align:left;padding-left:15px;line-height:44px;\" @click.native=\"onHide(false)\">取消</flexbox-item>\n            <flexbox-item style=\"text-align:right;padding-right:15px;line-height:44px;\" @click.native=\"onHide(true)\">完成</flexbox-item>\n          </flexbox>\n        </div>\n        <picker\n        :data=\"data\"\n        :value=\"tempValue\"\n        @on-change=\"onPickerChange\"\n        :columns=\"columns\"\n        :fixed-columns=\"fixedColumns\"\n        :container=\"'#vux-popup-picker-'+uuid\"></picker>\n      </div>\n    </popup>\n  </div>\n</template>\n\n<script>\nimport Picker from '../picker'\nimport Cell from '../cell'\nimport Popup from '../popup'\nimport { Flexbox, FlexboxItem } from '../flexbox'\nimport array2string from '../../filters/array2String'\nimport value2name from '../../filters/value2name'\nimport uuidMixin from '../../libs/mixin_uuid'\n\nconst getObject = function (obj) {\n  return JSON.parse(JSON.stringify(obj))\n}\n\nexport default {\n  mixins: [uuidMixin],\n  components: {\n    Picker,\n    Cell,\n    Popup,\n    Flexbox,\n    FlexboxItem\n  },\n  filters: {\n    array2string,\n    value2name\n  },\n  props: {\n    title: String,\n    data: {\n      type: Array,\n      default () {\n        return []\n      }\n    },\n    placeholder: String,\n    columns: {\n      type: Number,\n      default: 0\n    },\n    fixedColumns: {\n      type: Number,\n      default: 0\n    },\n    value: {\n      type: Array,\n      default () {\n        return []\n      }\n    },\n    showName: Boolean,\n    inlineDesc: String,\n    showCell: {\n      type: Boolean,\n      default: true\n    },\n    show: Boolean\n  },\n  created(){\n    this.props_value=this.value\n    this.props_show=this.show\n  },\n  methods: {\n    getNameValues () {\n      return value2name(this.props_value, this.data)\n    },\n    onClick () {\n      this.props_show = true\n    },\n    onHide (type) {\n      this.props_show = false\n      if (type) {\n        this.closeType = true\n        this.props_value = getObject(this.tempValue)\n        this.$emit('on-ok',this.props_value)\n      }\n      if (!type) {\n        this.closeType = false\n        if (this.props_value.length > 0) {\n          this.tempValue = getObject(this.props_value)\n        }\n        this.$emit('on-cancel')\n      }\n    },\n    onPopupHide (val) {\n      if (this.props_value.length > 0) {\n        this.tempValue = getObject(this.props_value)\n      }\n      this.$emit('on-hide', this.closeType,this.props_value)\n    },\n    onPickerChange (val) {\n      if (JSON.stringify(this.props_value) !== JSON.stringify(val)) {\n        // if has props_value, replace it\n        if (this.props_value.length) {\n          const nowData = JSON.stringify(this.data)\n          if (nowData !== this.currentData && this.currentData !== '[]') {\n            this.props_value = getObject(val)\n          }\n          this.currentData = nowData\n        } else { // if no props_value, stay quiet\n          // if set to auto update, do update the props_value\n        }\n      }\n      this.$emit('on-shadow-change', getObject(val))\n    }\n  },\n  watch: {\n    value(val){\n      this.props_value=val\n    },\n    props_value (val) {\n      if (JSON.stringify(val) !== JSON.stringify(this.tempValue)) {\n        this.tempValue = getObject(val)\n      }\n    },\n    show(val){\n      this.props_show=val\n    },\n    props_show(val){\n    }\n  },\n  data () {\n    return {\n      tempValue: getObject(this.value),\n      closeType: false,\n      currentData: JSON.stringify(this.data), // used for detecting if it is after data change\n      props_value:[],\n      props_show:false\n    }\n  }\n}\n</script>\n\n<style>\n.vux-popup-picker {\n  border-top: 1px solid #04BE02;\n}\n.vux-popup-picker-header {\n  height: 44px;\n  color: #04BE02;\n}\n.vux-popup-picker-value {\n  display: inline-block;\n}\n</style>\n"
  },
  {
    "path": "src/components/previewer/component.json",
    "content": "{\n\t\"tags\": [\"swipephoto\", \"swipe\", \"preview\"]\n}"
  },
  {
    "path": "src/components/previewer/index.vue",
    "content": "<template>\n  <!-- Root element of PhotoSwipe. Must have class pswp. -->\n  <div class=\"pswp vux-previewer\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n      <!-- Background of PhotoSwipe.\n           It's a separate element as animating opacity is faster than rgba(). -->\n      <div class=\"pswp__bg\"></div>\n      <!-- Slides wrapper with overflow:hidden. -->\n      <div class=\"pswp__scroll-wrap\">\n        <!-- Container that holds slides.\n          PhotoSwipe keeps only 3 of them in the DOM to save memory.\n          Don't modify these 3 pswp__item elements, data is added later on. -->\n        <div class=\"pswp__container\">\n          <div class=\"pswp__item\"></div>\n          <div class=\"pswp__item\"></div>\n          <div class=\"pswp__item\"></div>\n        </div>\n        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->\n        <div class=\"pswp__ui pswp__ui--hidden\">\n          <div class=\"pswp__top-bar\">\n            <!--  Controls are self-explanatory. Order can be changed. -->\n            <div class=\"pswp__counter\"></div>\n            <button class=\"pswp__button pswp__button--close\" title=\"Close (Esc)\"></button>\n            <button class=\"pswp__button pswp__button--share\" title=\"Share\"></button>\n            <button class=\"pswp__button pswp__button--fs\" title=\"Toggle fullscreen\"></button>\n            <button class=\"pswp__button pswp__button--zoom\" title=\"Zoom in/out\"></button>\n            <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->\n            <!-- element will get class pswp__preloader--active when preloader is running -->\n            <div class=\"pswp__preloader\">\n              <div class=\"pswp__preloader__icn\">\n                <div class=\"pswp__preloader__cut\">\n                  <div class=\"pswp__preloader__donut\"></div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <div class=\"pswp__share-modal pswp__share-modal--hidden pswp__single-tap\">\n            <div class=\"pswp__share-tooltip\"></div>\n          </div>\n          <button class=\"pswp__button pswp__button--arrow--left\" title=\"Previous (arrow left)\"></button>\n          <button class=\"pswp__button pswp__button--arrow--right\" title=\"Next (arrow right)\"></button>\n          <div class=\"pswp__caption\">\n            <div class=\"pswp__caption__center\"></div>\n          </div>\n        </div>\n      </div>\n  </div>\n</template>\n\n<script>\nimport PhotoSwipe from 'photoswipe/dist/photoswipe'\nimport UI from 'photoswipe/dist/photoswipe-ui-default'\n\nexport default {\n  methods: {\n    init (index) {\n      let options = Object.assign({\n        history: false,\n        shareEl: false,\n        tapToClose: true,\n        index: index\n      }, this.options)\n      this.photoswipe = new PhotoSwipe(this.$el, UI, this.list, options)\n      this.photoswipe.init()\n    },\n    show (index) {\n      this.init(index)\n    },\n    close () {\n      this.photoswipe.close()\n    }\n  },\n  props: {\n    list: {\n      type: Array,\n      required: true\n    },\n    index: {\n      type: Number,\n      default: 0\n    },\n    options: {\n      type: Object,\n      default () {\n        return {}\n      }\n    }\n  }\n}\n</script>\n\n<style>\n@import '~photoswipe/dist/photoswipe.css';\n@import '~photoswipe/dist/default-skin/default-skin.css';\n</style>\n"
  },
  {
    "path": "src/components/progress/index.vue",
    "content": "<template>\n  <div class=\"weui_progress\">\n    <div class=\"weui_progress_bar\">\n      <div class=\"weui_progress_inner_bar js_progress\" :style=\"{width: percent + '%'}\"></div>\n    </div>\n    <a href=\"javascript:;\" class=\"weui_progress_opr\" v-show=\"showCancel\">\n      <i class=\"weui_icon_cancel\" @click=\"cancel\"></i>\n    </a>\n  </div>\n</template>\n\n<script>\nimport Base from '../../libs/base'\n\nexport default {\n  mixins: [Base],\n  props: {\n    percent: {\n      type: Number,\n      default: 0\n    },\n    showCancel: {\n      type: Boolean,\n      default: true\n    }\n  },\n  methods: {\n    cancel () {\n      this.$emit('on-cancel')\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_progress/weui_progress';\n</style>\n"
  },
  {
    "path": "src/components/progress/metas.yml",
    "content": "props:\n  percent:\n    en: percent of the progress, 0-100\n    zh-CN: 进度值，0到100\n  show-cancel:\n    en: if show the cancel button\n    zh-CN: 是否显示取消按钮\nevents:\n  on-cancel:\n    en: triggers when the cancel button is clicked\n    zh-CN: 点击取消按钮时触发\n"
  },
  {
    "path": "src/components/qrcode/index.vue",
    "content": "<template>\n  <canvas\n  :style=\"{height: size, width: size}\"\n  :height=\"size\"\n  :width=\"size\"></canvas>\n</template>\n\n<script>\nimport QRCodeImpl from 'qr.js/lib/QRCode'\nimport ErrorCorrectLevel from 'qr.js/lib/ErrorCorrectLevel'\n\nexport default {\n  props: {\n    value: String,\n    size: {\n      type: Number,\n      default: 80\n    },\n    level: {\n      type: String,\n      default: 'L'\n    },\n    bgColor: {\n      type: String,\n      default: '#FFFFFF'\n    },\n    fgColor: {\n      type: String,\n      default: '#000000'\n    }\n  },\n  mounted () {\n    this.render()\n  },\n  watch: {\n    // 'value+size+level+bgColor+fgColor' () {\n    //   this.render()\n    // }\n    value(){this.render()},\n    size(){this.render()},\n    level(){this.render()},\n    bgColor(){this.render()},\n    fgColor(){this.render()},\n  },\n  methods: {\n    render () {\n      const qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[this.level])\n      qrcode.addData(this.value)\n      qrcode.make()\n\n      const canvas = this.$el\n\n      const ctx = canvas.getContext('2d')\n      const cells = qrcode.modules\n      const tileW = this.size / cells.length\n      const tileH = this.size / cells.length\n      const scale = (window.devicePixelRatio || 1) / getBackingStorePixelRatio(ctx)\n      canvas.height = canvas.width = this.size * scale\n      ctx.scale(scale, scale)\n\n      cells.forEach((row, rdx) => {\n        row.forEach((cell, cdx) => {\n          ctx.fillStyle = cell ? this.fgColor : this.bgColor\n          const w = (Math.ceil((cdx + 1) * tileW) - Math.floor(cdx * tileW))\n          const h = (Math.ceil((rdx + 1) * tileH) - Math.floor(rdx * tileH))\n          ctx.fillRect(Math.round(cdx * tileW), Math.round(rdx * tileH), w, h)\n        })\n      })\n    }\n  }\n}\n\nfunction getBackingStorePixelRatio (ctx) {\n  return (\n    ctx.webkitBackingStorePixelRatio ||\n    ctx.mozBackingStorePixelRatio ||\n    ctx.msBackingStorePixelRatio ||\n    ctx.oBackingStorePixelRatio ||\n    ctx.backingStorePixelRatio ||\n    1\n  )\n}\n</script>\n"
  },
  {
    "path": "src/components/qrcode/metas.yml",
    "content": "props:\n  value:\n    zh-CN: 编码内容，如果为链接，请保证有http(s)协议名\n  size:\n    zh-CN: 尺寸大小\n  bg-color:\n    zh-CN: 背景颜色\n  fg-color:\n    zh-CN: 二级码着色\n"
  },
  {
    "path": "src/components/radio/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/radio/index.vue",
    "content": "<template>\n  <div class=\"weui_cells_radio\">\n    <label class=\"weui_cell weui_cell_radio weui_check_label\" :for=\"'radio_'+uuid+'_'+index\" v-for=\"(one,index) in options\">\n      <div class=\"weui_cell_bd weui_cell_primary\">\n        <p>{{one | getValue}}</p>\n      </div>\n      <div class=\"weui_cell_ft\">\n        <input type=\"radio\" class=\"weui_check\" v-model=\"props_value\" :id=\"'radio_'+uuid+'_'+index\" :value=\"one | getKey\">\n        <span class=\"weui_icon_checked\"></span>\n      </div>\n    </label>\n    <div class=\"weui_cell\" v-show=\"fillMode\">\n      <div class=\"weui_cell_hd\"><label for=\"\" class=\"weui_label\">{{fillLabel}}</label></div>\n      <div class=\"weui_cell_bd weui_cell_primary\">\n        <input class=\"weui_input needsclick\" type=\"text\" v-model=\"fillValue\" :placeholder=\"fillPlaceholder\" @blur=\"isFocus=false\" @focus=\"onFocus()\">\n      </div>\n      <div class=\"weui_cell_ft\" v-show=\"props_value==='' && !isFocus\">\n        <i class=\"weui_icon_warn\"></i>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport Base from '../../libs/base'\nimport { getValue, getKey } from '../checklist/object-filter'\n\nexport default {\n  mixins: [Base],\n  filters: {\n    getValue,\n    getKey\n  },\n  props: {\n    options: {\n      type: Array,\n      required: true\n    },\n    value: String,\n    fillMode: {\n      type: Boolean,\n      default: false\n    },\n    fillPlaceholder: {\n      type: String,\n      default: '其他'\n    },\n    fillLabel: {\n      type: String,\n      default: '其他'\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  mounted () {\n    this.handleChangeEvent = true\n  },\n  methods: {\n    onFocus () {\n      this.props_value = this.fillValue || ''\n      this.isFocus = true\n    }\n  },\n  watch: {\n    props_value(newVal){\n      var isOption = contains(this.options, newVal)\n      if (newVal !== '' && isOption) {\n        this.fillValue = ''\n      }\n      this.$emit('on-change', newVal)\n      this.$emit('input',newVal)\n    },\n    value (newVal) {\n      this.props_value=newVal\n    },\n    fillValue (newVal) {\n      if (this.fillMode && this.isFocus) {\n        this.props_value = newVal\n      }\n    }\n  },\n  data () {\n    return {\n      fillValue: '',\n      props_value:'',\n      isFocus: false\n    }\n  }\n}\n\nfunction contains (a, obj) {\n  var i = a.length\n  while (i--) {\n    if (a[i] === obj) {\n      return true\n    }\n  }\n  return false\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_check';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_form_common';\n@import '../../styles/weui/icon/weui_icon_font';\n.weui_cell_radio > * {\n  pointer-events: none;\n}\n</style>\n"
  },
  {
    "path": "src/components/range/index.vue",
    "content": "<template>\n  <div class=\"vux-range-input-box\" style=\"position:relative;margin-right:30px;margin-left:50px;\">\n    <input class=\"vux-range-input\" v-model=\"props_value\" number>\n  </div>\n</template>\n\n<script>\nconst Powerange = require('./range/lib/powerange')\n\nexport default {\n  props: {\n    decimal: Boolean,\n    value: {\n      default: 0,\n      type: Number\n    },\n    min: {\n      type: Number,\n      default: 0\n    },\n    minHTML: String,\n    maxHTML: String,\n    max: {\n      type: Number,\n      default: 100\n    },\n    step: {\n      type: Number,\n      default: 0\n    },\n    disabled: Boolean,\n    disabledOpacity: Number,\n    rangeBarHeight: {\n      type: Number,\n      default: 1\n    },\n    rangeHandleHeight: {\n      type: Number,\n      default: 30\n    }\n  },\n  data(){\n    return{\n      props_value:0\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  mounted () {\n    let that=this\n    let options = {\n      decimal: this.decimal,\n      start: this.props_value,\n      min: this.min,\n      max: this.max,\n      minHTML: this.minHTML,\n      maxHTML: this.maxHTML,\n      disable: this.disabled,\n      disabledOpacity: this.disabledOpacity,\n      initialBarWidth: getComputedStyle(this.$el.parentNode).width.replace('px', '') - 80,\n      callback: function(value){\n        that.props_value=value\n      }\n    }\n    if (this.step !== 0) {\n      options.step = this.step\n    }\n    this.range = new Powerange(this.$el.querySelector('.vux-range-input'), options)\n    const handleTop = (this.rangeHandleHeight - this.rangeBarHeight) / 2\n    this.$el.querySelector('.range-handle').style.top = `-${handleTop}px`\n    this.$el.querySelector('.range-bar').style.height = `${this.rangeBarHeight}px`\n  },\n  watch: {\n    props_value(val){\n      this.range.setStart(val)\n      this.$emit('input',val)\n    },\n    value (val) {\n      this.props_value=val\n    },\n    min(){\n      this.resetRange()\n    },\n    max: function () {\n      this.resetRange()\n    }\n  },\n  methods:{\n    resetRange(){\n      let value = this.props_value\n      if (value < this.min) {\n        value = this.min\n      }\n      if (value > this.max) {\n        value = this.max\n      }\n      this.range.reInit({min: this.min, max: this.max, value: value})\n      this.props_value = value\n      this.range.setStart(this.props_value)\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n@import './powerange.less';\n</style>\n\n"
  },
  {
    "path": "src/components/range/powerange.less",
    "content": "/**\n *\n * Main stylesheet for Powerange.\n * http://abpetkov.github.io/powerange/\n *\n */\n\n/**\n * Horizontal slider style (default).\n */\n\n.range-bar {\n  background-color: @range-color-bar-default;\n  border-radius: 15px;\n  display: block;\n  height: 1px;\n  position: relative;\n  width: 100%;\n}\n\n.range-bar-disabled {\n  opacity: @range-opacity-disabled;\n}\n\n.range-quantity {\n  background-color: @range-color-bar-active;\n  border-radius: 15px;\n  display: block;\n  height: 100%;\n  width: 0;\n}\n\n.range-handle {\n  background-color: #fff;\n  border-radius: 100%;\n  cursor: move;\n  height: 30px;\n  left: 0;\n  top: -13px;\n  position: absolute;\n  width: 30px;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n}\n\n.range-min,\n.range-max {\n  color: #181819;\n  font-size: 12px;\n  position: absolute;\n  text-align: center;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 24px;\n}\n\n.range-min {\n  left: -30px;\n}\n\n.range-max {\n  right: -30px;\n}\n\n/**\n * Style for disabling text selection on handle move.\n */\n\n.unselectable {\n  user-select: none;\n}\n\n/**\n * Style for handle cursor on disabled slider.\n */\n\n.range-disabled {\n  cursor: default;\n}"
  },
  {
    "path": "src/components/range/range/lib/horizontal.js",
    "content": "/**\n * External dependencies.\n *\n */\n\nvar inherits = require('./lib/super')\nvar closest = require('./lib/closest-num')\nvar percentage = require('./lib/percentage-calc')\n\n/**\n * Require main class.\n */\n\nvar Powerange = require('./main')\n\n/**\n * Expose `Horizontal`.\n */\n\nmodule.exports = Horizontal\n\n/**\n * Create horizontal slider object.\n *\n * @api public\n */\n\nfunction getWidth (el) {\n  let width = getComputedStyle(el, null)['width']\n  if (width === '100%' || width === 'auto') {\n    return 0\n  }\n  return parseInt(width, 10)\n}\n\nfunction Horizontal () {\n  Powerange.apply(this, arguments)\n  if (this.options.step) {\n    this.step(getWidth(this.slider) || this.options.initialBarWidth, getWidth(this.handle))\n  }\n  this.setStart(this.options.start)\n}\n\n/**\n * Inherit the main class.\n */\n\ninherits(Horizontal, Powerange)\n\n/**\n * Set horizontal slider position.\n *\n * @param {Number} start\n * @api private\n */\n\nHorizontal.prototype.setStart = function (start) {\n  var begin = (start === null) ? this.options.min : start\n  var part = percentage.from(begin - this.options.min, this.options.max - this.options.min) || 0\n  var offset = percentage.of(part, this.slider.offsetWidth - this.handle.offsetWidth)\n  var position = (this.options.step) ? closest.find(offset, this.steps) : offset\n\n  this.setPosition(position)\n  this.setValue(this.handle.style.left, this.slider.offsetWidth - this.handle.offsetWidth)\n}\n\n/**\n * Set horizontal slider current position.\n *\n * @param {Number} val\n * @api private\n */\n\nHorizontal.prototype.setPosition = function (val) {\n  this.handle.style.left = val + 'px'\n  this.slider.querySelector('.range-quantity').style.width = val + 'px'\n}\n\n/**\n * On slider mouse down.\n *\n * @param {Object} e\n * @api private\n */\n\nHorizontal.prototype.onmousedown = function (e) {\n  if (e.touches) e = e.touches[0]\n  this.startX = e.clientX\n  this.handleOffsetX = this.handle.offsetLeft\n  this.restrictHandleX = this.slider.offsetWidth - this.handle.offsetWidth\n  this.unselectable(this.slider, true)\n}\n\n/**\n * On slider mouse move.\n *\n * @param {Object} e\n * @api private\n */\n\nHorizontal.prototype.onmousemove = function (e) {\n  e.preventDefault()\n  if (e.touches) e = e.touches[0]\n\n  var leftOffset = this.handleOffsetX + e.clientX - this.startX\n  var position = (this.steps) ? closest.find(leftOffset, this.steps) : leftOffset\n\n  if (leftOffset <= 0) {\n    this.setPosition(0)\n  } else if (leftOffset >= this.restrictHandleX) {\n    this.setPosition(this.restrictHandleX)\n  } else {\n    this.setPosition(position)\n  }\n\n  this.setValue(this.handle.style.left, this.slider.offsetWidth - this.handle.offsetWidth)\n}\n\n/**\n * On mouse up.\n *\n * @param {Object} e\n * @api private\n */\n\nHorizontal.prototype.onmouseup = function (e) {\n  this.unselectable(this.slider, false)\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/classes.js",
    "content": "/**\n * Module dependencies.\n */\n\nvar index = require('./indexof')\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function (el) {\n  return new ClassList(el)\n}\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList (el) {\n  if (!el || !el.nodeType) {\n    throw new Error('A DOM element reference is required')\n  }\n  this.el = el\n  this.list = el.classList\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function (name) {\n  // classList\n  if (this.list) {\n    this.list.add(name)\n    return this\n  }\n\n  // fallback\n  var arr = this.array()\n  var i = index(arr, name)\n  if (!~i) arr.push(name)\n  this.el.className = arr.join(' ')\n  return this\n}\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function (name) {\n  if (toString.call(name) === '[object RegExp]') {\n    return this.removeMatching(name)\n  }\n\n  // classList\n  if (this.list) {\n    this.list.remove(name)\n    return this\n  }\n\n  // fallback\n  var arr = this.array()\n  var i = index(arr, name)\n  if (~i) arr.splice(i, 1)\n  this.el.className = arr.join(' ')\n  return this\n}\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function (re) {\n  var arr = this.array()\n  for (var i = 0; i < arr.length; i++) {\n    if (re.test(arr[i])) {\n      this.remove(arr[i])\n    }\n  }\n  return this\n}\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function (name, force) {\n  // classList\n  if (this.list) {\n    if (typeof force !== 'undefined') {\n      if (force !== this.list.toggle(name, force)) {\n        this.list.toggle(name) // toggle again to correct\n      }\n    } else {\n      this.list.toggle(name)\n    }\n    return this\n  }\n\n  // fallback\n  if (typeof force !== 'undefined') {\n    if (!force) {\n      this.remove(name)\n    } else {\n      this.add(name)\n    }\n  } else {\n    if (this.has(name)) {\n      this.remove(name)\n    } else {\n      this.add(name)\n    }\n  }\n\n  return this\n}\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function () {\n  var className = this.el.getAttribute('class') || ''\n  var str = className.replace(/^\\s+|\\s+$/g, '')\n  var arr = str.split(re)\n  if (arr[0] === '') arr.shift()\n  return arr\n}\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function (name) {\n  return this.list\n    ? this.list.contains(name)\n    : !!~index(this.array(), name)\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/closest-num.js",
    "content": "/**\n * Closest-num 0.0.1\n * https://github.com/abpetkov/closest-num\n *\n * Author: Alexander Petkov\n * https://github.com/abpetkov\n *\n * Copyright 2014, Alexander Petkov\n * License: The MIT License (MIT)\n * http://opensource.org/licenses/MIT\n *\n */\n\n/**\n * Get closest number in array.\n *\n * @param {Number} target\n * @param {Array} points\n * @returns {Number} closest\n * @api private\n */\n\nexports.find = function (target, points) {\n  var diff = null\n  var current = null\n  var closest = points[0]\n\n  for (var i = 0; i < points.length; i++) {\n    diff = Math.abs(target - closest)\n    current = Math.abs(target - points[i])\n    if (current < diff) {\n      closest = points[i]\n    }\n  }\n\n  return closest\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/closest.js",
    "content": "/**\n * Module Dependencies\n */\n\nvar matches = require('./matches-selector')\n\n/**\n * Export `closest`\n */\n\nmodule.exports = closest\n\n/**\n * Closest\n *\n * @param {Element} el\n * @param {String} selector\n * @param {Element} scope (optional)\n */\n\nfunction closest (el, selector, scope) {\n  scope = scope || document.documentElement\n\n  // walk up the dom\n  while (el && el !== scope) {\n    if (matches(el, selector)) return el\n    el = el.parentNode\n  }\n\n  // check scope for match\n  return matches(el, selector) ? el : null\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/delegate.js",
    "content": "/**\n * Module dependencies.\n */\n\nvar closest = require('./closest')\nvar event = require('./event')\n\n/**\n * Delegate event `type` to `selector`\n * and invoke `fn(e)`. A callback function\n * is returned which may be passed to `.unbind()`.\n *\n * @param {Element} el\n * @param {String} selector\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nexports.bind = function (el, selector, type, fn, capture) {\n  return event.bind(el, type, function (e) {\n    var target = e.target || e.srcElement\n    e.delegateTarget = closest(target, selector, true, el)\n    if (e.delegateTarget) fn.call(el, e)\n  }, capture)\n}\n\n/**\n * Unbind event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\n\nexports.unbind = function (el, type, fn, capture) {\n  event.unbind(el, type, fn, capture)\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/emitter.js",
    "content": "\n/**\n * Expose `Emitter`.\n */\n\nmodule.exports = Emitter\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter (obj) {\n  if (obj) return mixin(obj)\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin (obj) {\n  for (var key in Emitter.prototype) {\n    obj[key] = Emitter.prototype[key]\n  }\n  return obj\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function (event, fn) {\n  this._callbacks = this._callbacks || {}\n  ;(this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn)\n  return this\n}\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function (event, fn) {\n  function on () {\n    this.off(event, on)\n    fn.apply(this, arguments)\n  }\n\n  on.fn = fn\n  this.on(event, on)\n  return this\n}\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function (event, fn) {\n  this._callbacks = this._callbacks || {}\n\n  // all\n  if (!arguments.length) {\n    this._callbacks = {}\n    return this\n  }\n\n  // specific event\n  var callbacks = this._callbacks['$' + event]\n  if (!callbacks) return this\n\n  // remove all handlers\n  if (arguments.length === 1) {\n    delete this._callbacks['$' + event]\n    return this\n  }\n\n  // remove specific handler\n  var cb\n  for (var i = 0; i < callbacks.length; i++) {\n    cb = callbacks[i]\n    if (cb === fn || cb.fn === fn) {\n      callbacks.splice(i, 1)\n      break\n    }\n  }\n  return this\n}\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function (event) {\n  this._callbacks = this._callbacks || {}\n  var args = [].slice.call(arguments, 1)\n  var callbacks = this._callbacks['$' + event]\n\n  if (callbacks) {\n    callbacks = callbacks.slice(0)\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\n      callbacks[i].apply(this, args)\n    }\n  }\n\n  return this\n}\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function (event) {\n  this._callbacks = this._callbacks || {}\n  return this._callbacks['$' + event] || []\n}\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function (event) {\n  return !!this.listeners(event).length\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/event.js",
    "content": "var bind = window.addEventListener ? 'addEventListener' : 'attachEvent'\nvar unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent'\nvar prefix = bind !== 'addEventListener' ? 'on' : ''\n\n/**\n * Bind `el` event `type` to `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nexports.bind = function (el, type, fn, capture) {\n  el[bind](prefix + type, fn, capture || false)\n  return fn\n}\n\n/**\n * Unbind `el` event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nexports.unbind = function (el, type, fn, capture) {\n  el[unbind](prefix + type, fn, capture || false)\n  return fn\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/events.js",
    "content": "/**\n * Module dependencies.\n */\n\nvar events = require('./event')\nvar delegate = require('./delegate')\n\n/**\n * Expose `Events`.\n */\n\nmodule.exports = Events\n\n/**\n * Initialize an `Events` with the given\n * `el` object which events will be bound to,\n * and the `obj` which will receive method calls.\n *\n * @param {Object} el\n * @param {Object} obj\n * @api public\n */\n\nfunction Events (el, obj) {\n  if (!(this instanceof Events)) return new Events(el, obj)\n  if (!el) throw new Error('element required')\n  if (!obj) throw new Error('object required')\n  this.el = el\n  this.obj = obj\n  this._events = {}\n}\n\n/**\n * Subscription helper.\n */\n\nEvents.prototype.sub = function (event, method, cb) {\n  this._events[event] = this._events[event] || {}\n  this._events[event][method] = cb\n}\n\n/**\n * Bind to `event` with optional `method` name.\n * When `method` is undefined it becomes `event`\n * with the \"on\" prefix.\n *\n * Examples:\n *\n *  Direct event handling:\n *\n *    events.bind('click') // implies \"onclick\"\n *    events.bind('click', 'remove')\n *    events.bind('click', 'sort', 'asc')\n *\n *  Delegated event handling:\n *\n *    events.bind('click li > a')\n *    events.bind('click li > a', 'remove')\n *    events.bind('click a.sort-ascending', 'sort', 'asc')\n *    events.bind('click a.sort-descending', 'sort', 'desc')\n *\n * @param {String} event\n * @param {String|function} [method]\n * @return {Function} callback\n * @api public\n */\n\nEvents.prototype.bind = function (event, method) {\n  var e = parse(event)\n  var el = this.el\n  var obj = this.obj\n  var name = e.name\n  method = method || 'on' + name\n  var args = [].slice.call(arguments, 2)\n\n  // callback\n  var cb = function () {\n    var a = [].slice.call(arguments).concat(args)\n    obj[method].apply(obj, a)\n  }\n\n  // bind\n  if (e.selector) {\n    cb = delegate.bind(el, e.selector, name, cb)\n  } else {\n    events.bind(el, name, cb)\n  }\n\n  // subscription for unbinding\n  this.sub(name, method, cb)\n\n  return cb\n}\n\n/**\n * Unbind a single binding, all bindings for `event`,\n * or all bindings within the manager.\n *\n * Examples:\n *\n *  Unbind direct handlers:\n *\n *     events.unbind('click', 'remove')\n *     events.unbind('click')\n *     events.unbind()\n *\n * Unbind delegate handlers:\n *\n *     events.unbind('click', 'remove')\n *     events.unbind('click')\n *     events.unbind()\n *\n * @param {String|Function} [event]\n * @param {String|Function} [method]\n * @api public\n */\n\nEvents.prototype.unbind = function (event, method) {\n  if (arguments.length === 0) return this.unbindAll()\n  if (arguments.length === 1) return this.unbindAllOf(event)\n\n  // no bindings for this event\n  var bindings = this._events[event]\n  if (!bindings) return\n\n  // no bindings for this method\n  var cb = bindings[method]\n  if (!cb) return\n\n  events.unbind(this.el, event, cb)\n}\n\n/**\n * Unbind all events.\n *\n * @api private\n */\n\nEvents.prototype.unbindAll = function () {\n  for (var event in this._events) {\n    this.unbindAllOf(event)\n  }\n}\n\n/**\n * Unbind all events for `event`.\n *\n * @param {String} event\n * @api private\n */\n\nEvents.prototype.unbindAllOf = function (event) {\n  var bindings = this._events[event]\n  if (!bindings) return\n\n  for (var method in bindings) {\n    this.unbind(event, method)\n  }\n}\n\n/**\n * Parse `event`.\n *\n * @param {String} event\n * @return {Object}\n * @api private\n */\n\nfunction parse (event) {\n  var parts = event.split(/ +/)\n  return {\n    name: parts.shift(),\n    selector: parts.join(' ')\n  }\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/indexof.js",
    "content": "module.exports = function (arr, obj) {\n  if (arr.indexOf) return arr.indexOf(obj)\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i\n  }\n  return -1\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/matches-selector.js",
    "content": "/**\n * Module dependencies.\n */\n\nvar query = require('./query')\n\n/**\n * Element prototype.\n */\n\nvar proto = Element.prototype\n\n/**\n * Vendor function.\n */\n\nvar vendor = proto.matches || proto.webkitMatchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector\n\n/**\n * Expose `match()`.\n */\n\nmodule.exports = match\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match (el, selector) {\n  if (!el || el.nodeType !== 1) return false\n  if (vendor) return vendor.call(el, selector)\n  var nodes = query.all(selector, el.parentNode)\n  for (var i = 0; i < nodes.length; ++i) {\n    if (nodes[i] === el) return true\n  }\n  return false\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/mouse.js",
    "content": "\n/**\n * dependencies.\n */\n\nvar emitter = require('./emitter')\nvar event = require('./event')\n\n/**\n * export `Mouse`\n */\n\nmodule.exports = function (el, obj) {\n  return new Mouse(el, obj)\n}\n\n/**\n * initialize new `Mouse`.\n *\n * @param {Element} el\n * @param {Object} obj\n */\n\nfunction Mouse (el, obj) {\n  this.obj = obj || {}\n  this.el = el\n}\n\n/**\n * mixin emitter.\n */\n\nemitter(Mouse.prototype)\n\n/**\n * bind mouse.\n *\n * @return {Mouse}\n */\n\nMouse.prototype.bind = function () {\n  var obj = this.obj\n  var self = this\n\n  // up\n  function up (e) {\n    obj.onmouseup && obj.onmouseup(e)\n    event.unbind(document, 'mousemove', move)\n    event.unbind(document, 'mouseup', up)\n    self.emit('up', e)\n  }\n\n  // move\n  function move (e) {\n    obj.onmousemove && obj.onmousemove(e)\n    self.emit('move', e)\n  }\n\n  // down\n  self.down = function (e) {\n    obj.onmousedown && obj.onmousedown(e)\n    event.bind(document, 'mouseup', up)\n    event.bind(document, 'mousemove', move)\n    self.emit('down', e)\n  }\n\n  // bind all.\n  event.bind(this.el, 'mousedown', self.down)\n\n  return this\n}\n\n/**\n * unbind mouse.\n *\n * @return {Mouse}\n */\n\nMouse.prototype.unbind = function () {\n  event.unbind(this.el, 'mousedown', this.down)\n  this.down = null\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/percentage-calc.js",
    "content": "\n/**\n * Percentage-Calc 0.0.1\n * https://github.com/abpetkov/percentage-calc\n *\n * Authored by Alexander Petkov\n * https://github.com/abpetkov\n *\n * Copyright 2014, Alexander Petkov\n * License: The MIT License (MIT)\n * http://opensource.org/licenses/MIT\n *\n */\n\n/**\n * Check if number.\n *\n * @param {Number} num\n * @returns {Boolean}\n * @api public\n */\n\nexports.isNumber = function (num) {\n  return typeof num === 'number'\n}\n\n/**\n * Calculate percentage of a number.\n *\n * @param {Number} perc\n * @param {Number} num\n * @returns {Number} result\n * @api public\n */\n\nexports.of = function (perc, num) {\n  if (exports.isNumber(perc) && exports.isNumber(num)) return (perc / 100) * num\n}\n\n/**\n * Calculate percentage of a number out ot another number.\n *\n * @param {Number} part\n * @param {Number} target\n * @returns {Number} result\n * @api public\n */\n\nexports.from = function (part, target) {\n  if (exports.isNumber(part) && exports.isNumber(target)) return (part / target) * 100\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/query.js",
    "content": "function one (selector, el) {\n  return el.querySelector(selector)\n}\n\nexports = module.exports = function (selector, el) {\n  el = el || document\n  return one(selector, el)\n}\n\nexports.all = function (selector, el) {\n  el = el || document\n  return el.querySelectorAll(selector)\n}\n\nexports.engine = function (obj) {\n  if (!obj.one) throw new Error('.one callback required')\n  if (!obj.all) throw new Error('.all callback required')\n  // one = obj.one\n  exports.all = obj.all\n  return exports\n}\n"
  },
  {
    "path": "src/components/range/range/lib/lib/super.js",
    "content": "/**\n * slice\n */\n\nvar slice = Array.prototype.slice\n\n/**\n * Primary export\n */\n\nvar exports = module.exports = super_\n\n/**\n * ### _super (dest, orig)\n *\n * Inherits the prototype methods or merges objects.\n * This is the primary export and it is recommended\n * that it be imported as `inherits` in node to match\n * the auto imported browser interface.\n *\n *     var inherits = require('super')\n *\n * @param {Object|Function} destination object\n * @param {Object|Function} source object\n * @name _super\n * @api public\n */\n\nfunction super_ () {\n  var args = slice.call(arguments)\n  if (!args.length) return\n  if (typeof args[0] !== 'function') return exports.merge(args)\n  exports.inherits.apply(null, args)\n}\n\n/**\n * ### extend (proto[, klass])\n *\n * Provide `.extend` mechanism to allow extenion without\n * needing to use dependancy.\n *\n *     function Bar () {\n *       this._konstructed = true\n *     }\n *\n *     Bar.extend = inherits.extend\n *\n *     var Fu = Bar.extend({\n *       initialize () {\n *         this._initialized = true\n *       }\n *     })\n *\n *     var fu = new Fu()\n *     fu.should.be.instanceof(Fu) // true\n *     fu.should.be.instanceof(Bar) // true\n *\n * @param {Object} properties/methods to add to new prototype\n * @param {Object} properties/methods to add to new class\n * @returns {Object} new constructor\n * @name extend\n * @api public\n */\n\nexports.extend = function (proto, klass) {\n  var self = this\n  var child = function () { return self.apply(this, arguments) }\n  exports.merge([ child, this ])\n  exports.inherits(child, this)\n  if (proto) exports.merge([ child.prototype, proto ])\n  if (klass) exports.merge([ child, klass ])\n  child.extend = this.extend // prevent overwrite\n  return child\n}\n\n/**\n * ### inherits (ctor, superCtor)\n *\n * Inherit the prototype methods from on contructor\n * to another.\n *\n * @param {Function} destination\n * @param {Function} source\n * @api private\n */\n\nexports.inherits = function (ctor, SuperCtor) {\n  ctor.super_ = SuperCtor\n  if (Object.create) {\n    ctor.prototype = Object.create(SuperCtor.prototype,\n      {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n  } else {\n    ctor.prototype = new SuperCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n\n/**\n * Extends multiple objects.\n *\n * @param {Array} array of objects\n * @api private\n */\n\nexports.merge = function (arr) {\n  var main = arr.length === 2 ? arr.shift() : {}\n  var obj = null\n\n  for (var i = 0, len = arr.length; i < len; i++) {\n    obj = arr[i]\n    for (var p in obj) {\n      if (!obj.hasOwnProperty(p)) continue\n      main[p] = obj[p]\n    }\n  }\n\n  return main\n}\n"
  },
  {
    "path": "src/components/range/range/lib/main.js",
    "content": "/**\n * External dependencies.\n *\n */\n\nvar mouse = require('./lib/mouse')\nvar events = require('./lib/events')\nvar classes = require('./lib/classes')\nvar percentage = require('./lib/percentage-calc')\n\n/**\n * Expose `Powerange`.\n */\n\nmodule.exports = Powerange\n\n/**\n * Create Powerange object.\n *\n * @constructor\n * @param {Object} element\n * @param {Object} options\n * @api public\n */\n\nfunction Powerange (element, options) {\n  if (!(this instanceof Powerange)) return new Powerange(element, options)\n\n  this.element = element\n  this.options = options || {}\n  this.slider = this.create('span', 'range-bar')\n  this.hasAppend = false\n\n  if (this.element !== null && this.element.type === 'text') this.init()\n}\n\n/**\n * Bind events on handle element.\n *\n * @api private\n */\n\nPowerange.prototype.bindEvents = function () {\n  this.handle = this.slider.querySelector('.range-handle')\n  this.touch = events(this.handle, this)\n  this.touch.bind('touchstart', 'onmousedown')\n  this.touch.bind('touchmove', 'onmousemove')\n  this.touch.bind('touchend', 'onmouseup')\n  this.mouse = mouse(this.handle, this)\n  this.mouse.bind()\n}\n\n/**\n * Hide the target element.\n *\n * @api private\n */\n\nPowerange.prototype.hide = function () {\n  this.element.style.display = 'none'\n}\n\n/**\n * Append the target after the element.\n *\n * @api private\n */\n\nPowerange.prototype.append = function () {\n  if (!this.hasAppend) {\n    var slider = this.generate()\n    this.insertAfter(this.element, slider)\n  }\n  this.hasAppend = true\n}\n\n/**\n * Generate the appropriate type of slider.\n *\n * @returns {Object} this.slider\n * @api private\n */\n\nPowerange.prototype.generate = function () {\n  var elems = {\n    'handle': {\n      'type': 'span',\n      'selector': 'range-handle'\n    },\n    'min': {\n      'type': 'span',\n      'selector': 'range-min'\n    },\n    'max': {\n      'type': 'span',\n      'selector': 'range-max'\n    },\n    'quantity': {\n      'type': 'span',\n      'selector': 'range-quantity'\n    }\n  }\n\n  for (var key in elems) {\n    if (elems.hasOwnProperty(key)) {\n      var temp = this.create(elems[key].type, elems[key].selector)\n      this.slider.appendChild(temp)\n    }\n  }\n\n  return this.slider\n}\n\n/**\n * Create HTML element.\n *\n * @param {String} type\n * @param {String} name\n * @returns {Object} elem\n * @api private\n */\n\nPowerange.prototype.create = function (type, name) {\n  var elem = document.createElement(type)\n  elem.className = name\n\n  return elem\n}\n\n/**\n * Insert element after another element.\n *\n * @param {Object} reference\n * @param {Object} target\n * @api private\n */\n\nPowerange.prototype.insertAfter = function (reference, target) {\n  reference.parentNode.insertBefore(target, reference.nextSibling)\n}\n\n/**\n * Set min and max values.\n *\n * @param {Number} min\n * @param {Number} max\n * @api private\n */\n\nPowerange.prototype.setRange = function (min, max) {\n  if (typeof min === 'number' && typeof max === 'number' && !this.options.hideRange) {\n    this.slider.querySelector('.range-min').innerHTML = this.options.minHTML || min\n    this.slider.querySelector('.range-max').innerHTML = this.options.maxHTML || max\n  }\n}\n\n/**\n * Set slider current value.\n *\n * @param {Number} offset\n * @param {Number} size\n * @api private\n */\n\nPowerange.prototype.setValue = function (offset, size) {\n  var part = percentage.from(parseFloat(offset), size)\n  if (offset === '0px' || size === 0) {\n    value = this.options.min\n  } else {\n    var value = percentage.of(part, this.options.max - this.options.min) + this.options.min\n    value = (this.options.decimal) ? (Math.round(value * 100) / 100) : Math.round(value)\n\n    if (value > this.options.max) {\n      value = this.options.max\n    }\n  }\n\n  var changed = false\n\n  changed = this.element.value !== value\n\n  this.element.value = value\n  this.options.callback(value)\n  if (changed) this.changeEvent()\n}\n\n/**\n * Set step.\n *\n * @param {Number} sliderSize\n * @param {Number} handleSize\n * @returns {Array} this.steps\n * @api private\n */\n\nPowerange.prototype.step = function (sliderSize, handleSize) {\n  var dimension = sliderSize - handleSize\n  var part = percentage.from(this.checkStep(this.options.step), this.options.max - this.options.min)\n  var interval = percentage.of(part, dimension)\n  var steps = []\n\n  for (var i = 0; i <= dimension; i += interval) {\n    steps.push(i)\n  }\n\n  this.steps = steps\n\n  return this.steps\n}\n\n/**\n * Check values.\n *\n * @param {Number} start\n * @api private\n */\n\nPowerange.prototype.checkValues = function (start) {\n  if (start < this.options.min) this.options.start = this.options.min\n  if (start > this.options.max) this.options.start = this.options.max\n  if (this.options.min >= this.options.max) this.options.min = this.options.max\n}\n\n/**\n * Make sure `step` is positive.\n *\n * @param {Number} value\n * @returns {Number} this.options.step\n * @api private\n */\n\nPowerange.prototype.checkStep = function (value) {\n  if (value < 0) value = Math.abs(value)\n  this.options.step = value\n  return this.options.step\n}\n\n/**\n * Disable range slider.\n *\n * @api private\n */\n\nPowerange.prototype.disable = function (force) {\n  if (this.options.disable || force) {\n    this.mouse.unbind()\n    this.touch.unbind()\n  }\n  if (this.options.disable) {\n    if (this.options.disableOpacity) {\n      this.slider.style.opacity = this.options.disableOpacity\n    }\n    classes(this.slider).add('range-bar-disabled')\n  }\n}\n\n/**\n * Make element unselectable.\n *\n * @param {Object} element\n * @param {Boolean} set\n * @api private\n */\n\nPowerange.prototype.unselectable = function (element, set) {\n  if (!classes(this.slider).has('unselectable') && set === true) {\n    classes(this.slider).add('unselectable')\n  } else {\n    classes(this.slider).remove('unselectable')\n  }\n}\n\n/**\n * Handle the onchange event.\n *\n * @param {Boolean} state\n * @api private\n */\n\nPowerange.prototype.changeEvent = function (state) {\n  if (typeof Event === 'function' || !document.fireEvent) {\n    var event = document.createEvent('HTMLEvents')\n    event.initEvent('change', false, true)\n    this.element.dispatchEvent(event)\n  } else {\n    this.element.fireEvent('onchange')\n  }\n}\n\n/**\n * Initialize main class.\n *\n * @api private\n */\n\nPowerange.prototype.init = function () {\n  this.hide()\n  this.append()\n  this.bindEvents()\n  this.checkValues(this.options.start)\n  this.setRange(this.options.min, this.options.max)\n  this.disable()\n}\n\nPowerange.prototype.reInit = function (opts) {\n  this.options.start = opts.value\n  this.options.min = opts.min\n  this.options.max = opts.max\n  this.disable(true)\n  this.init()\n}\n\n"
  },
  {
    "path": "src/components/range/range/lib/powerange.js",
    "content": "/**\n * Require classes.\n */\n\nvar Horizontal = require('./horizontal')\n\n/**\n * Set default values.\n *\n * @api public\n */\n\nvar defaults = {\n  callback () {},\n  decimal: false,\n  disable: false,\n  disableOpacity: null,\n  hideRange: false,\n  min: 0,\n  max: 100,\n  start: null,\n  step: null,\n  vertical: false\n}\n\n/**\n * Expose proper type of `Powerange`.\n */\n\nmodule.exports = function (element, options) {\n  options = options || {}\n\n  for (var i in defaults) {\n    if (options[i] == null) {\n      options[i] = defaults[i]\n    }\n  }\n\n  return new Horizontal(element, options)\n}\n"
  },
  {
    "path": "src/components/rater/index.vue",
    "content": "<template>\n  <div class=\"vux-rater\">\n    <input v-model=\"props_value\" style=\"display:none\">\n    <a class=\"vux-rater-box\" v-for=\"i in max\" @click=\"handleClick(i-1)\" :class=\"{'is-active':props_value > i-1}\" :style=\"{color: colors && colors[i-1] ? colors[i-1] : '#ccc',marginRight:margin+'px',fontSize: fontSize + 'px', width: fontSize + 'px', height: fontSize + 'px', lineHeight: fontSize + 'px'}\">\n      <span class=\"vux-rater-inner\">{{star}}<span class=\"vux-rater-outer\" :style=\"{color: activeColor, width: cutPercent + '%'}\" v-if=\"cutPercent > 0 && cutIndex === i-1\">{{star}}</span></span>\n    </a>\n  </div>\n</template>\n\n<script>\nexport default {\n  created(){\n    this.props_value=this.value\n  },\n  mounted () {\n    this.updateStyle()\n  },\n  props: {\n    max: {\n      type: Number,\n      default: 5\n    },\n    value: {\n      type: Number,\n      default: 0\n    },\n    disabled: Boolean,\n    star: {\n      type: String,\n      default: '★'\n    },\n    activeColor: {\n      type: String,\n      default: '#fc6'\n    },\n    margin: {\n      type: Number,\n      default: 2\n    },\n    fontSize: {\n      type: Number,\n      default: 25\n    }\n  },\n  computed: {\n    sliceValue () {\n      const _val = this.props_value.toString().split('.')\n      return _val.length === 1 ? [_val[0], 0] : _val\n    },\n    cutIndex () {\n      return this.sliceValue[0] * 1\n    },\n    cutPercent () {\n      return this.sliceValue[1] * 10\n    }\n  },\n  methods: {\n    handleClick (i, force) {\n      if (!this.disabled || force) {\n        if (this.props_value === i +1 ) {\n          this.props_value = i\n          this.updateStyle()\n        } else {\n          this.props_value = i +1\n        }\n      }\n    },\n    updateStyle () {\n      for (var j = 0; j < this.max; j++) {\n        if (j <= this.props_value - 1) {\n          this.$set(this.colors,j, this.activeColor)\n        } else {\n          this.$set(this.colors,j, '#ccc')\n        }\n      }\n    }\n  },\n  data () {\n    return {\n      colors: [],\n      cutIndex: -1,\n      cutPercent: 0,\n      props_value:0\n    }\n  },\n  watch: {\n    props_value(val){\n      this.updateStyle()\n      this.$emit('input',val)\n    },\n    value (val) {\n      this.props_value=val\n    }\n  }\n}\n</script>\n\n<style>\n.vux-rater {\n  text-align: left;\n  display: inline-block;\n  line-height: normal;\n}\n.vux-rater a {\n  display: inline-block;\n  text-align: center;\n  cursor: pointer;\n  color: #ccc;\n}\n.vux-rater a:last-child {\n  padding-right: 2px!important;\n  margin-right: 0px!important;\n}\n.vux-rater a:hover {\n  color: #ffdd99;\n}\n.vux-rater a.is-disabled {\n  color: #ccc !important;\n  cursor: not-allowed;\n}\n.vux-rater-box {\n  position: relative;\n}\n.vux-rater-inner {\n  position: relative;\n  display: inline-block;\n}\n.vux-rater-outer {\n  position: absolute;\n  left: 0;\n  top: 0;\n  display: inline-block;\n  overflow: hidden;\n}\n</style>\n\n"
  },
  {
    "path": "src/components/scroller/index.vue",
    "content": "<template>\n  <div :style=\"styles\">\n    <div class=\"xs-container\">\n      <slot></slot>\n      <slot name=\"pulldown\"></slot>\n      <slot name=\"pullup\"></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nimport XScroll from 'vux-xscroll/build/cmd/xscroll.js'\nimport Pulldown from 'vux-xscroll/build/cmd/plugins/pulldown'\nimport Pullup from 'vux-xscroll/build/cmd/plugins/pullup'\n\nconst pulldownDefaultConfig = () => ({\n  content: 'Pull Down To Refresh',\n  height: 60,\n  autoRefresh: false,\n  downContent: 'Pull Down To Refresh',\n  upContent: 'Release To Refresh',\n  loadingContent: 'Loading...',\n  clsPrefix: 'xs-plugin-pulldown-'\n})\n\nconst pullupDefaultConfig = () => ({\n  content: 'Pull Up To Refresh',\n  pullUpHeight: 60,\n  height: 40,\n  autoRefresh: false,\n  downContent: 'Release To Refresh',\n  upContent: 'Pull Up To Refresh',\n  loadingContent: 'Loading...',\n  clsPrefix: 'xs-plugin-pullup-'\n})\n\nexport default {\n  props: {\n    height: String,\n    lockX: Boolean,\n    lockY: Boolean,\n    scrollbarX: Boolean,\n    scrollbarY: Boolean,\n    bounce: {\n      type: Boolean,\n      default: true\n    },\n    useOriginScroll: {\n      type: Boolean,\n      default: false\n    },\n    useTransition: {\n      type: Boolean,\n      default: true\n    },\n    preventDefault: {\n      type: Boolean,\n      default: true\n    },\n    stopPropagation: Boolean,\n    boundryCheck: {\n      type: Boolean,\n      default: true\n    },\n    gpuAcceleration: {\n      type: Boolean,\n      default: true\n    },\n    usePulldown: {\n      type: Boolean,\n      default: false\n    },\n    usePullup: {\n      type: Boolean,\n      default: false\n    },\n    /**\n    * refer to: http://xscroll.github.io/node_modules/xscroll/doc/PullDown.html\n    */\n    pulldownConfig: {\n      type: Object,\n      default () {\n        return {}\n      }\n    },\n    pullupConfig: {\n      type: Object,\n      default () {\n        return {}\n      }\n    },\n    pulldownStatus: {\n      type: String,\n      default: 'default'\n    },\n    pullupStatus: {\n      type: String,\n      default: 'default'\n    },\n    enableHorizontalSwiping: {\n      type: Boolean,\n      default: false\n    },\n    pullStatus: {\n      type: Object,\n      default () {\n        return {\n          down : 'default',\n          up : 'default'\n        }\n      }\n    }\n  },\n  methods: {\n    reset (scrollPosition) {\n      if (scrollPosition) {\n        if (typeof scrollPosition.left !== 'undefined') {\n          this._xscroll.scrollLeft(scrollPosition.left)\n        }\n        if (typeof scrollPosition.top !== 'undefined') {\n          this._xscroll.scrollTop(scrollPosition.top)\n        }\n      }\n      setTimeout(() => {\n        this._xscroll && this._xscroll.render()\n      })\n    }\n  },\n  compiled () {\n    this.uuid = Math.random().toString(36).substring(3, 8)\n  },\n  computed: {\n    styles () {\n      if (!this.props_height && this.elHeight===\"\" && this.lockX) {\n        this.props_height = `${document.documentElement.clientHeight}px`\n        this.reset()\n      }\n\n      if (this.props_height && this.props_height.indexOf('-') === 0) {\n        this.props_height = `${document.documentElement.clientHeight + parseInt(this.props_height)}px`\n      }\n\n      return {\n        height: `${this.props_height}`\n      }\n    }\n  },\n    beforeMount() {\n    this.uuid = Math.random().toString(36).substring(3, 8);\n    //fix2.0\n    this.props_height=this.height;\n    this.props_pulldownStatus=this.pulldownStatus;\n    //on事件\n    this.$on('pulldown:reset',function(uuid) {\n      // set pulldown status to default\n      this.props_pulldownStatus = 'default'\n      if (uuid === this.uuid) {\n        this.pulldown.reset(() => {\n          // repaint\n          this.reset()\n        })\n      }\n    });\n    this.$on('pullup:reset',function(uuid) {\n      // set pulldown status to default\n      this.props_pullupStatus = 'default'\n      if (uuid === this.uuid) {\n        this.pullup.complete()\n        this.reset()\n      }\n    });\n    this.$on('pullup:done' ,function(uuid) {\n      if (uuid === this.uuid) {\n        this._xscroll.unplug(this.pullup)\n      }\n    });\n    this.$on('scroller:reset' ,function(uuid) {\n      if (uuid === this.uuid) {\n        this.reset()\n      }\n    });\n    this.$on('pullup:disable',function(uuid) {\n      if (uuid === this.uuid) {\n        this.pullup.stop()\n      }\n    });\n    this.$on('pullup:enable',function(uuid) {\n      if (uuid === this.uuid) {\n        this.pullup.restart()\n      }\n    });\n  },\n  mounted () {\n    this.elHeight=this.$el.style.height\n    this.$el.setAttribute('id', `vux-scroller-${this.uuid}`)\n    let content = null\n    const slotChildren = this.$el.querySelector('.xs-container').childNodes\n    for (let i = 0; i < slotChildren.length; i++) {\n      if (slotChildren[i].nodeType === 1) {\n        content = slotChildren[i]\n        break\n      }\n    }\n    if (!content) {\n      throw new Error('no content is found')\n    }\n\n    this._xscroll = new XScroll({\n      renderTo: `#vux-scroller-${this.uuid}`,\n      lockX: this.lockX,\n      lockY: this.lockY,\n      scrollbarX: this.scrollbarX,\n      scrollbarY: this.scrollbarY,\n      content: content,\n      bounce: this.bounce,\n      useOriginScroll: this.useOriginScroll,\n      useTransition: this.useTransition,\n      preventDefault: this.preventDefault,\n      boundryCheck: this.boundryCheck,\n      gpuAcceleration: this.gpuAcceleration,\n      stopPropagation: this.stopPropagation\n    })\n\n    if (this.usePulldown) {\n      // if use slot=pulldown\n      //vue1.0\n      // let container = this.$el.querySelector('div[slot=\"pulldown\"]')\n      // fix2.0\n      let container = this.$slots.pulldown ? this.$slots.pulldown[0].elm : false;\n      let config = Object.assign(pulldownDefaultConfig(), this.pulldownConfig)\n      if (container) {\n        config.container = container\n      }\n      this.pulldown = new Pulldown(config)\n      this._xscroll.plug(this.pulldown)\n      this.pulldown.on('loading', (e) => {\n        this.$emit('pulldown:loading', this)\n      })\n      this.pulldown.on('statuschange', (val) => {\n        this.props_pulldownStatus = val.newVal\n        this.pullStatus.down= val.newVal\n      })\n    }\n\n    if (this.usePullup) {\n      // if use slot=pullup\n      // let container = this.$el.querySelector('div[slot=\"pullup\"]')\n      let container = this.$slots.pullup ? this.$slots.pullup[0].elm : false;\n      let config = Object.assign(pullupDefaultConfig(), this.pullupConfig)\n      if (container) {\n        config.container = container\n      }\n      this.pullup = new Pullup(config)\n      this._xscroll.plug(this.pullup)\n      this.pullup.on('loading', (e) => {\n        this.$emit('pullup:loading', this)\n      })\n      this.pullup.on('statuschange', (val) => {\n        this.props_pullupStatus = val.newVal\n        this.pullStatus.up= val.newVal\n      })\n    }\n\n    if (this.enableHorizontalSwiping) {\n      this._xscroll.on('panstart', (e) => {\n        if (e.direction === 2 || e.direction === 4) {\n          e.preventDefault()\n          if (this.scrollbarY) {\n            this._xscroll.userConfig.scrollbarY = false\n          }\n          this._xscroll.userConfig.lockY = true\n        }\n      })\n      this._xscroll.on('panend', () => {\n        if (this.scrollbarY) {\n          this._xscroll.userConfig.scrollbarY = true\n        }\n        this._xscroll.userConfig.lockY = false\n      })\n    }\n\n    this._xscroll.render()\n  },\n  watch:{\n    height:function(newVal, oldVal){\n      this.props_height=newVal\n    },\n    pulldownStatus:function(newVal, oldVal){\n      this.props_pulldownStatus=newVal\n    },\n    pullupStatus:function(newVal, oldVal){\n      this.props_pullupStatus=newVal\n    }\n  },\n  beforeDestroy () {\n    if (this.pullup) {\n      this._xscroll.unplug(this.pullup)\n      this.pullup.pluginDestructor()\n    }\n    if (this.pulldown) {\n      this._xscroll.unplug(this.pulldown)\n      this.pulldown.pluginDestructor()\n    }\n    this._xscroll.destroy()\n    this._xscroll = null\n  },\n  data(){\n    return {\n      elHeight:\"\",\n      props_height:\"\",\n      props_pulldownStatus:\"default\",\n      props_pullupStatus:\"default\"\n    }\n  }\n}\n</script>\n\n<style>\n.xs-plugin-pullup-container {\n  text-align: center;\n}\n</style>\n"
  },
  {
    "path": "src/components/search/index.vue",
    "content": "<template>\n  <div class=\"vux-search-box\" :class=\"{'vux-search-fixed':isFixed}\" :style=\"{top: isFixed ? top : ''}\">\n    <div class=\"weui_search_bar\" id=\"search_bar\" :class=\"{weui_search_focusing: !isCancel}\">\n      <form class=\"weui_search_outer\" @submit.prevent=\"$emit('on-submit', props_value)\">\n        <div class=\"vux-search-mask\" @click=\"touch\" v-show=\"!isFixed && autoFixed\"></div>\n        <div class=\"weui_search_inner\">\n          <i class=\"weui_icon_search\"></i>\n          <input type=\"search\" class=\"weui_search_input\" id=\"search_input\" :placeholder=\"placeholder\" autocomplete=\"off\" :required=\"required\" v-model=\"props_value\" ref=\"input\"\n          @focus=\"isFocus = true\"\n          @blur=\"isFocus = false\"/>\n          <a href=\"javascript:\" class=\"weui_icon_clear\" id=\"search_clear\" @click=\"clear\"></a>\n        </div>\n        <label for=\"search_input\" class=\"weui_search_text\" id=\"search_text\" v-show=\"!isFocus && !props_value\">\n          <i class=\"weui_icon_search\"></i>\n          <span>{{placeholder}}</span>\n        </label>\n      </form>\n      <a href=\"javascript:\" class=\"weui_search_cancel\" id=\"search_cancel\" @click=\"cancel\">{{cancelText}}</a>\n    </div>\n    <div class=\"weui_cells weui_cells_access vux-search_show\" id=\"search_show\" v-show=\"isFixed\">\n      <slot></slot>\n      <div class=\"weui_cell\" v-for=\"item in results\" @click=\"handleResultClick(item)\">\n        <div class=\"weui_cell_bd weui_cell_primary\">\n          <p>{{item.title}}</p>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    required: {\n      type: Boolean,\n      default: true\n    },\n    placeholder: {\n      type: String,\n      default: 'Search'\n    },\n    cancelText: {\n      type: String,\n      default: 'cancel'\n    },\n    value: {\n      type: String,\n      default: ''\n    },\n    results: {\n      type: Array,\n      default () {\n        return []\n      }\n    },\n    autoFixed: {\n      type: Boolean,\n      default: true\n    },\n    top: {\n      type: String,\n      default: '0px'\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  methods: {\n    clear () {\n      this.props_value = ''\n      this.isFocus = true\n      this.setFocus()\n    },\n    cancel () {\n      this.props_value = ''\n      this.isCancel = true\n      this.isFixed = false\n      this.$emit('on-cancel')\n    },\n    handleResultClick (item) {\n      this.$emit('result-click', item)\n      this.isCancel = true\n      this.isFixed = false\n    },\n    touch () {\n      this.isCancel = false\n      if (this.autoFixed) {\n        this.isFixed = true\n      }\n    },\n    setFocus () {\n      this.$refs.input.focus()\n    }\n  },\n  data () {\n    return {\n      isCancel: true,\n      isFocus: false,\n      isFixed: false,\n      props_value:''\n    }\n  },\n  watch: {\n    isFixed (val) {\n      if (val === true) {\n        this.setFocus()\n        this.isFocus = true\n      } else {\n      }\n    },\n    props_value(val){\n      this.$emit('on-change', val)\n      this.$emit('input',val)\n    },\n    value (val) {\n      this.props_value=val\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/icon/weui_icon_font';\n@import '../../styles/weui/widget/weui_searchbar/weui_searchbar';\n\n.vux-search-fixed {\n  position: fixed;\n  left: 0;\n  top: 0;\n  z-index: 5;\n  background: rgba(255, 255, 255, 0.8);\n  backdrop-filter: blur(5px);\n}\n.vux-search-box {\n  width: 100%;\n}\n.weui_cells.vux-search_show {\n  margin-top: 0;\n  overflow-y: auto;\n}\n.vux-search-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 5;\n}\n.vux-search-box .weui_cells:after {\n  display: none;\n}\n</style>\n"
  },
  {
    "path": "src/components/selector/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/selector/index.vue",
    "content": "<template>\n  <div class=\"weui_cell\" :class=\"{'weui_select_after':title, 'weui_cell_select':!readonly}\">\n    <div class=\"weui_cell_hd\" v-if=\"title\" :class=\"{'weui_cell_primary':readonly}\">\n      <label for=\"\" class=\"weui_label\" :style=\"{width: $parent.labelWidth, textAlign: $parent.labelAlign, marginRight: $parent.labelMarginRight}\">{{title}}</label>\n    </div>\n    <div class=\"weui_cell_bd weui_cell_primary\" v-if=\"!readonly\">\n      <select class=\"weui_select\" :class=\"{'vux-selector-no-padding':!title}\" :name=\"name\" v-model=\"props_value\" :style=\"{direction: direction}\">\n        <option value=\"\" v-if=\"placeholder\" :selected=\"placeholder && !props_value\">{{placeholder}}</option>\n        <option :value=\"one.key\" v-for=\"one in processOptions\">{{one.value}}</option>\n      </select>\n    </div>\n    <div class=\"weui_cell_ft\" v-else>\n      {{value | findByKey(processOptions)}}\n    </div>\n  </div>\n</template>\n\n<script>\nimport find from 'array-find'\n\nconst findByKey = function (key, options) {\n  const _rs = find(options, function (item) {\n    return item.key === key\n  })\n  return _rs ? _rs.value : key\n}\n\nexport default {\n  computed: {\n    processOptions () {\n      if (this.options.length && {}.hasOwnProperty.call(this.options[0], 'key')) {\n        return this.options\n      } else {\n        return this.options.map(function (item) {\n          return {\n            key: item,\n            value: item\n          }\n        })\n      }\n    }\n  },\n  filters: {\n    findByKey\n  },\n  created(){\n    this.props_value=this.value\n  },\n  watch: {\n    props_value(newValue){\n      this.$emit('on-change', newValue)\n      this.$emit('input',newValue)\n    },\n    value (newValue) {\n      this.props_value=newValue\n    }\n  },\n  props: {\n    title: String,\n    direction: String,\n    options: {\n      type: Array,\n      required: true\n    },\n    name: String,\n    placeholder: String,\n    readonly: Boolean,\n    value: String\n  },\n  data(){\n    return {\n      props_value:''\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_access';\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_form_common';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_select_after';\n.vux-selector-no-padding {\n  padding-left: 0;\n}\n</style>\n"
  },
  {
    "path": "src/components/selector/metas.yml",
    "content": "tips:\n  -\n    - en: key should be a `String` if you use key=>value\n    - zh-CN: 选项的key必须是字符串，使用数字会出现问题\n"
  },
  {
    "path": "src/components/shake/index.vue",
    "content": "<template>\n  <div style=\"display:none\"></div>\n</template>\n\n<script>\nimport Shake from 'shake.js'\nexport default {\n  props: {\n    stop: Boolean,\n    threshold: {\n      type: Number,\n      default: 15\n    },\n    timeout: {\n      type: Number,\n      default: 1000\n    }\n  },\n  mounted () {\n    const _this = this\n    this._shake = new Shake({\n      threshold: _this.threshold, // optional shake strength threshold\n      timeout: _this.timeout // optional, determines the frequency of event generation\n    })\n    this._handler = function () {\n      if (!_this.stop) {\n        _this.$emit('on-shake')\n      }\n    }\n    window.addEventListener('shake', this._handler, false)\n    this._shake.start()\n  },\n  beforeDestroy () {\n    window.removeEventListener('shake', this._handler, false)\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/spinner/index.vue",
    "content": "<template>\n  <span class=\"vux-spinner\" :class=\"className\"></span>\n</template>\n\n<script>\nimport Spinner from './spinner'\nconst types = ['android', 'ios', 'ios-small', 'bubbles', 'circles', 'crescent', 'dots', 'lines', 'ripple', 'spiral']\n\nexport default {\n  mounted () {\n    Spinner(this.$el, this.type)\n  },\n  props: {\n    type: {\n      type: String,\n      default: 'ios'\n    }\n  },\n  computed: {\n    className () {\n      let rs = {}\n      for (let i = 0; i < types.length; i++) {\n        rs[`vux-spinner-${types[i]}`] = this.type === types[i]\n      }\n      return rs\n    }\n  }\n}\n</script>\n\n<style>\n.vux-spinner {\n  stroke: #444;\n  fill: #444;\n  vertical-align: middle;\n  display: inline-block;\n  width: 28px;\n  height: 28px;\n}\n\n.vux-spinner svg {\n  width: 28px;\n  height: 28px;\n}\n\n.vux-spinner.vux-spinner-inverse {\n  stroke: #fff;\n  fill: #fff;\n}\n\n.vux-spinner-android {\n  stroke: #4b8bf4;\n}\n\n.vux-spinner-ios, .vux-spinner-ios-small {\n  stroke: #69717d;\n}\n\n.vux-spinner-spiral .stop1 {\n  stop-color: #fff;\n  stop-opacity: 0;\n}\n\n.vux-spinner-spiral.vux-spinner-inverse .stop1 {\n  stop-color: #000;\n}\n\n.vux-spinner-spiral.vux-spinner-inverse .stop2 {\n  stop-color: #fff;\n}\n</style>\n"
  },
  {
    "path": "src/components/spinner/requestAnimationFrame.js",
    "content": "var lastTime = 0\nvar vendors = ['webkit', 'moz']\nfor (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n  window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n  window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']\n}\n\nif (!window.requestAnimationFrame) {\n  window.requestAnimationFrame = function (callback, element) {\n    var currTime = new Date().getTime()\n    var timeToCall = Math.max(0, 16 - (currTime - lastTime))\n    var id = window.setTimeout(function () {\n      callback(currTime + timeToCall)\n    }, timeToCall)\n    lastTime = currTime + timeToCall\n    return id\n  }\n}\nif (!window.cancelAnimationFrame) {\n  window.cancelAnimationFrame = function (id) {\n    clearTimeout(id)\n  }\n}\n"
  },
  {
    "path": "src/components/spinner/spinner.js",
    "content": "/**\n* http://ionicframework.com/docs/api/directive/ionSpinner/\n*/\n\nimport './requestAnimationFrame'\n\nvar TRANSLATE32 = 'translate(32,32)'\nvar STROKE_OPACITY = 'stroke-opacity'\nvar ROUND = 'round'\nvar INDEFINITE = 'indefinite'\nvar DURATION = '750ms'\nvar NONE = 'none'\nvar SHORTCUTS = {\n  a: 'animate',\n  an: 'attributeName',\n  at: 'animateTransform',\n  c: 'circle',\n  da: 'stroke-dasharray',\n  os: 'stroke-dashoffset',\n  f: 'fill',\n  lc: 'stroke-linecap',\n  rc: 'repeatCount',\n  sw: 'stroke-width',\n  t: 'transform',\n  v: 'values'\n}\n\nvar SPIN_ANIMATION = {\n  v: '0,32,32;360,32,32',\n  an: 'transform',\n  type: 'rotate',\n  rc: INDEFINITE,\n  dur: DURATION\n}\n\nfunction createSvgElement (tagName, data, parent, spinnerName) {\n  var ele = document.createElement(SHORTCUTS[tagName] || tagName)\n  var k, x, y\n\n  for (k in data) {\n    if (Object.prototype.toString.call(data[k]) === '[object Array]') {\n      for (x = 0; x < data[k].length; x++) {\n        if (data[k][x].fn) {\n          for (y = 0; y < data[k][x].t; y++) {\n            createSvgElement(k, data[k][x].fn(y, spinnerName), ele, spinnerName)\n          }\n        } else {\n          createSvgElement(k, data[k][x], ele, spinnerName)\n        }\n      }\n    } else {\n      setSvgAttribute(ele, k, data[k])\n    }\n  }\n\n  parent.appendChild(ele)\n}\n\nfunction setSvgAttribute (ele, k, v) {\n  ele.setAttribute(SHORTCUTS[k] || k, v)\n}\n\nfunction animationValues (strValues, i) {\n  var values = strValues.split(';')\n  var back = values.slice(i)\n  var front = values.slice(0, values.length - back.length)\n  values = back.concat(front).reverse()\n  return values.join(';') + ';' + values[0]\n}\n\nvar IOS_SPINNER = {\n  sw: 4,\n  lc: ROUND,\n  line: [{\n    fn (i, spinnerName) {\n      return {\n        y1: spinnerName === 'ios' ? 17 : 12,\n        y2: spinnerName === 'ios' ? 29 : 20,\n        t: TRANSLATE32 + ' rotate(' + (30 * i + (i < 6 ? 180 : -180)) + ')',\n        a: [{\n          fn () {\n            return {\n              an: STROKE_OPACITY,\n              dur: DURATION,\n              v: animationValues('0;.1;.15;.25;.35;.45;.55;.65;.7;.85;1', i),\n              rc: INDEFINITE\n            }\n          },\n          t: 1\n        }]\n      }\n    },\n    t: 12\n  }]\n}\n\nvar spinners = {\n\n  android: {\n    c: [{\n      sw: 6,\n      da: 128,\n      os: 82,\n      r: 26,\n      cx: 32,\n      cy: 32,\n      f: NONE\n    }]\n  },\n\n  ios: IOS_SPINNER,\n\n  'ios-small': IOS_SPINNER,\n\n  bubbles: {\n    sw: 0,\n    c: [{\n      fn (i) {\n        return {\n          cx: 24 * Math.cos(2 * Math.PI * i / 8),\n          cy: 24 * Math.sin(2 * Math.PI * i / 8),\n          t: TRANSLATE32,\n          a: [{\n            fn () {\n              return {\n                an: 'r',\n                dur: DURATION,\n                v: animationValues('1;2;3;4;5;6;7;8', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }]\n        }\n      },\n      t: 8\n    }]\n  },\n\n  circles: {\n\n    c: [{\n      fn (i) {\n        return {\n          r: 5,\n          cx: 24 * Math.cos(2 * Math.PI * i / 8),\n          cy: 24 * Math.sin(2 * Math.PI * i / 8),\n          t: TRANSLATE32,\n          sw: 0,\n          a: [{\n            fn () {\n              return {\n                an: 'fill-opacity',\n                dur: DURATION,\n                v: animationValues('.3;.3;.3;.4;.7;.85;.9;1', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }]\n        }\n      },\n      t: 8\n    }]\n  },\n\n  crescent: {\n    c: [{\n      sw: 4,\n      da: 128,\n      os: 82,\n      r: 26,\n      cx: 32,\n      cy: 32,\n      f: NONE,\n      at: [SPIN_ANIMATION]\n    }]\n  },\n\n  dots: {\n\n    c: [{\n      fn (i) {\n        return {\n          cx: 16 + (16 * i),\n          cy: 32,\n          sw: 0,\n          a: [{\n            fn () {\n              return {\n                an: 'fill-opacity',\n                dur: DURATION,\n                v: animationValues('.5;.6;.8;1;.8;.6;.5', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }, {\n            fn () {\n              return {\n                an: 'r',\n                dur: DURATION,\n                v: animationValues('4;5;6;5;4;3;3', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }]\n        }\n      },\n      t: 3\n    }]\n  },\n\n  lines: {\n    sw: 7,\n    lc: ROUND,\n    line: [{\n      fn (i) {\n        return {\n          x1: 10 + (i * 14),\n          x2: 10 + (i * 14),\n          a: [{\n            fn () {\n              return {\n                an: 'y1',\n                dur: DURATION,\n                v: animationValues('16;18;28;18;16', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }, {\n            fn () {\n              return {\n                an: 'y2',\n                dur: DURATION,\n                v: animationValues('48;44;36;46;48', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }, {\n            fn () {\n              return {\n                an: STROKE_OPACITY,\n                dur: DURATION,\n                v: animationValues('1;.8;.5;.4;1', i),\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }]\n        }\n      },\n      t: 4\n    }]\n  },\n\n  ripple: {\n    f: NONE,\n    'fill-rule': 'evenodd',\n    sw: 3,\n    circle: [{\n      fn (i) {\n        return {\n          cx: 32,\n          cy: 32,\n          a: [{\n            fn () {\n              return {\n                an: 'r',\n                begin: (i * -1) + 's',\n                dur: '2s',\n                v: '0;24',\n                keyTimes: '0;1',\n                keySplines: '0.1,0.2,0.3,1',\n                calcMode: 'spline',\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }, {\n            fn () {\n              return {\n                an: STROKE_OPACITY,\n                begin: (i * -1) + 's',\n                dur: '2s',\n                v: '.2;1;.2;0',\n                rc: INDEFINITE\n              }\n            },\n            t: 1\n          }]\n        }\n      },\n      t: 2\n    }]\n  },\n\n  spiral: {\n    defs: [{\n      linearGradient: [{\n        id: 'sGD',\n        gradientUnits: 'userSpaceOnUse',\n        x1: 55,\n        y1: 46,\n        x2: 2,\n        y2: 46,\n        stop: [{\n          offset: 0.1,\n          class: 'stop1'\n        }, {\n          offset: 1,\n          class: 'stop2'\n        }]\n      }]\n    }],\n    g: [{\n      sw: 4,\n      lc: ROUND,\n      f: NONE,\n      path: [{\n        stroke: 'url(#sGD)',\n        d: 'M4,32 c0,15,12,28,28,28c8,0,16-4,21-9'\n      }, {\n        d: 'M60,32 C60,16,47.464,4,32,4S4,16,4,32'\n      }],\n      at: [SPIN_ANIMATION]\n    }]\n  }\n\n}\n\nvar animations = {\n\n  android (ele) {\n    var self = this\n\n    this.stop = false\n\n    var rIndex = 0\n    var rotateCircle = 0\n    var startTime\n    var svgEle = ele.querySelector('g')\n    var circleEle = ele.querySelector('circle')\n\n    function run () {\n      if (self.stop) return\n\n      var v = easeInOutCubic(Date.now() - startTime, 650)\n      var scaleX = 1\n      var translateX = 0\n      var dasharray = (188 - (58 * v))\n      var dashoffset = (182 - (182 * v))\n\n      if (rIndex % 2) {\n        scaleX = -1\n        translateX = -64\n        dasharray = (128 - (-58 * v))\n        dashoffset = (182 * v)\n      }\n\n      var rotateLine = [0, -101, -90, -11, -180, 79, -270, -191][rIndex]\n\n      setSvgAttribute(circleEle, 'da', Math.max(Math.min(dasharray, 188), 128))\n      setSvgAttribute(circleEle, 'os', Math.max(Math.min(dashoffset, 182), 0))\n      setSvgAttribute(circleEle, 't', 'scale(' + scaleX + ',1) translate(' + translateX + ',0) rotate(' + rotateLine + ',32,32)')\n\n      rotateCircle += 4.1\n      if (rotateCircle > 359) rotateCircle = 0\n      setSvgAttribute(svgEle, 't', 'rotate(' + rotateCircle + ',32,32)')\n\n      if (v >= 1) {\n        rIndex++\n        if (rIndex > 7) rIndex = 0\n        startTime = Date.now()\n      }\n\n      requestAnimationFrame(run)\n    }\n\n    return function () {\n      startTime = Date.now()\n      run()\n      return self\n    }\n  }\n\n}\n\nfunction easeInOutCubic (t, c) {\n  t /= c / 2\n  if (t < 1) return 1 / 2 * t * t * t\n  t -= 2\n  return 1 / 2 * (t * t * t + 2)\n}\n\nexport default function (el, icon) {\n  var spinnerName, anim // eslint-disable-line\n  spinnerName = icon\n  var container = document.createElement('div')\n  createSvgElement('svg', {\n    viewBox: '0 0 64 64',\n    g: [spinners[spinnerName]]\n  }, container, spinnerName)\n\n  // Specifically for animations to work,\n  // Android 4.3 and below requires the element to be\n  // added as an html string, rather than dynmically\n  // building up the svg element and appending it.\n  el.innerHTML = container.innerHTML\n  start()\n  function start () {\n    if (animations[spinnerName]) {\n      anim = animations[spinnerName](el)()\n    }\n  }\n  return el\n}\n"
  },
  {
    "path": "src/components/step/index.js",
    "content": "import Step from './step'\nimport StepItem from './step-item'\n\nexport {\n  Step,\n  StepItem\n}\n"
  },
  {
    "path": "src/components/step/step-item.vue",
    "content": "<template>\n<div class=\"vux-step-item\" :class=\" { 'vux-step-item-with-tail' : !props_stepLast} \">\n  <div :class=\"'vux-step-item-tail ' + 'vux-step-item-tail-' + props_status\" v-show=\"!props_stepLast\" :style=\"{right: $parent.gutter}\"></div>\n  <div :class=\"'vux-step-item-head ' + 'vux-step-item-head-' + props_status\">\n    <div class=\"vux-step-item-head-inner\">\n      <span v-if=\"!icon && props_status!='finish'\" class=\"vux-step-item-icon\">{{props_stepNumber}}</span>\n      <span v-else :class=\"'vux-step-item-icon ' + 'vux-step-item-' + iconName\">\n        <icon type=\"success_no_circle\" class=\"vux-step-item-checked\"></icon>\n      </span>\n    </div>\n  </div>\n  <div :class=\"'vux-step-item-main ' + 'vux-step-item-main-' + props_status\" :style=\"{backgroundColor: $parent.backgroundColor, paddingRight: props_stepLast ? 0 : $parent.gutter}\">\n    <span class=\"vux-step-item-title\">{{title}}</span>\n    <div class=\"vux-step-item-description\">{{description}}</div>\n  </div>\n</div>\n</template>\n\n<script>\nimport Icon from '../icon'\n\nexport default {\n  created(){\n    this.props_stepNumber=this.stepNumber\n    this.props_status=this.status\n    this.props_stepLast=this.stepLast\n  },\n  data(){\n    return{\n      props_stepNumber:null,\n      props_status:null,\n      props_stepLast:false\n    }\n  },\n  props: {\n    title: String,\n    description: String,\n    stepNumber: {\n      type: Number\n    },\n    stepLast: {\n      type: Boolean,\n      default: false\n    },\n    icon: String,\n    status: String,\n    tailWidth: {\n      type: Object\n    }\n  },\n  computed: {\n    iconName () {\n      return this.icon || 'check'\n    }\n  },\n  watch:{\n    stepLast(val){\n      this.props_stepLast=val\n    },\n    stepNumber(val){\n      this.props_stepNumber=val\n    },\n    status(val){\n      this.props_status=val\n    }\n  },\n  components: {\n    Icon\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/step/step.vue",
    "content": "<template>\n\t<div class=\"vux-step\">\n    <slot></slot>\n\t</div>\n</template>\n\n<script>\n\nexport default {\n  props: {\n    current: Number,\n    backgroundColor: {\n      type: String,\n      default: '#fff'\n    },\n    gutter: {\n      type: String,\n      default: '10px'\n    }\n  },\n  mounted () {\n    this._mapPropsToChildComponent()\n  },\n  watch: {\n    current () {\n      this._mapPropsToChildComponent()\n    }\n  },\n  methods: {\n    _mapPropsToChildComponent () {\n      const _this = this\n      const len = this.$children.length - 1\n      this.$children.forEach((child, index) => {\n        child.props_stepNumber = (index + 1).toString()\n        child.props_stepLast = index === len\n\n        if (index === _this.current) {\n          child.props_status = 'process'\n        } else if (index < _this.current) {\n          child.props_status = 'finish'\n        } else {\n          child.props_status = 'wait'\n        }\n      })\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n.vux-step {\n  display: flex;\n}\n.vux-step-item {\n  display: inline-block;\n  position: relative;\n  overflow: hidden;\n}\n\n.vux-step-item-with-tail {\n  flex: 1;\n}\n\n.vux-step-item-tail {\n  height: 1px;\n  position: absolute;\n  left: 0;\n  top: 10px;\n  padding: 0 0;\n  transition: all 0.4s ease 0s;\n}\n\n.vux-step-item-tail-finish {\n  background: #09bb07 none repeat scroll 0 0;\n}\n\n.vux-step-item-tail-process, .vux-step-item-tail-wait {\n  background: #CCC none repeat scroll 0 0;\n}\n\n.vux-step-item-checked::before {\n  font-size: 15px;\n  transform: translateY(-10%);\n}\n\n.vux-step-item-title {\n  font-size: 0.8rem;\n}\n\n.vux-step-item-head {\n  position: relative;\n  display: inline-block;\n  margin-right: -4px;\n\n  .vux-step-item-head-inner {\n    width: 20px;\n    height: 20px;\n    border-radius: 99px;\n    text-align: center;\n    font-size: 0.9rem;\n    transition: all 0.4s ease 0s;\n    background: #fff none repeat scroll 0 0;\n  }\n}\n\n.vux-step-item-head-finish .vux-step-item-head-inner{\n  border: 1px solid #09bb07;\n  color: #09bb07;\n}\n\n.vux-step-item-head-process .vux-step-item-head-inner{\n  border: 1px solid #09bb07;\n  color: #FFF;\n  background: #09bb07 none repeat scroll 0 0;\n}\n\n.vux-step-item-head-wait .vux-step-item-head-inner {\n  border: 1px solid #888;\n  color: #888;\n}\n\n.vux-step-item-main {\n  display: inline-block;\n  position: relative;\n  vertical-align: top;\n  color: #888;\n  padding-left: 5px;\n}\n\n.vux-step-item-main-process {\n  font-weight: bold;\n  color: #666;\n}\n</style>\n"
  },
  {
    "path": "src/components/sticky/index.vue",
    "content": "<template>\n  <div><slot></slot></div>\n</template>\n\n<script>\nimport sticky from './sticky'\n\nexport default {\n  mounted () {\n    sticky(this.$el)\n  }\n}\n</script>\n\n<style>\n.vux-sticky {\n  width: 100%;\n  position: sticky;\n  top: 0;\n}\n.vux-fixed {\n  width: 100%;\n  position: fixed;\n  top: 0;\n}\n</style>\n\n"
  },
  {
    "path": "src/components/sticky/sticky.js",
    "content": "// http://efe.baidu.com/blog/position-sticky/\n\n// 检测iOS版本大于等于6\nfunction gtIOS6 () {\n  var userAgent = window.navigator.userAgent\n  var ios = userAgent.match(/(iPad|iPhone|iPod)\\s+OS\\s([\\d_\\.]+)/)\n  return ios && ios[2] && (parseInt(ios[2].replace(/_/g, '.'), 10) >= 6)\n}\n\n// 判断是否支持sticky属性\nfunction isSupportSticky () {\n  var prefixTestList = ['', '-webkit-', '-ms-', '-moz-', '-o-']\n  var stickyText = ''\n  for (var i = 0; i < prefixTestList.length; i++) {\n    stickyText += 'position:' + prefixTestList[i] + 'sticky'\n  }\n  // 创建一个dom来检查\n  var div = document.createElement('div')\n  var body = document.body\n  div.style.cssText = 'display:none' + stickyText\n  body.appendChild(div)\n  var isSupport = /sticky/i.test(window.getComputedStyle(div).position)\n  body.removeChild(div)\n  div = null\n  return isSupport\n}\n\nexport default function (nav) {\n  if (gtIOS6() || isSupportSticky()) {\n    // 大于等于iOS6版本使用sticky\n    nav.classList.add('vux-sticky')\n  } else {\n    var navOffsetY = nav.offsetTop\n    window.addEventListener('scroll', function () {\n      window.scrollY >= navOffsetY ? nav.classList.add('vux-fixed') : nav.classList.remove('vux-fixed')\n    })\n  }\n}\n"
  },
  {
    "path": "src/components/swiper/index.vue",
    "content": "<template>\n  <div class=\"vux-slider\">\n    <input v-model=\"props_index\" style=\"display:none\">\n    <div class=\"vux-swiper\" :style=\"{height: xheight}\">\n      <slot></slot>\n      <div class=\"vux-swiper-item\" v-for=\"(item, index) in list\" @click=\"clickListItem(item)\" :data-index=\"index\">\n        <a href=\"javascript:\">\n          <div class=\"vux-img\" :style=\"{backgroundImage: buildBackgroundUrl(item.img)}\"></div>\n          <p class=\"vux-swiper-desc\" v-if=\"showDescMask\">{{item.title}}</p>\n        </a>\n      </div>\n    </div>\n    <div :class=\"[dotsClass, 'vux-indicator', 'vux-indicator-' + dotsPosition]\" v-show=\"showDots\">\n      <a href=\"javascript:\" v-for=\"key in length\">\n        <i class=\"vux-icon-dot\" :class=\"{'active': key-1 === props_index }\"></i>\n      </a>\n    </div>\n  </div>\n</template>\n\n<script>\nimport Swiper from './swiper'\nimport { go } from '../../libs/router'\nexport default {\n  mounted () {\n    if (!(this.list && this.list.length === 0)) {\n      this.render()\n    }\n    this.xheight = this.getHeight()\n  },\n  methods: {\n    clickListItem (item) {\n      go(item.url,this.$router)\n      this.$emit('on-click-list-item', JSON.parse(JSON.stringify(item)))\n    },\n    buildBackgroundUrl (url) {\n      return `url(${url})`\n    },\n    render () {\n      this.swiper && this.swiper.destroy()\n      this.swiper = new Swiper({\n        container: this.$el,\n        direction: this.direction,\n        auto: this.auto,\n        loop: this.loop,\n        interval: this.interval,\n        threshold: this.threshold,\n        duration: this.duration,\n        height: this.height || this._height,\n        minMovingDistance: this.minMovingDistance,\n        imgList: this.imgList\n      })\n      .on('swiped', (prev, index) => {\n        this.current = index % this.length\n        this.props_index = index % this.length\n      })\n    },\n    rerender () {\n      if (!this.$el) {\n        return\n      }\n      this.$nextTick(() => {\n        this.props_index = 0\n        this.current = 0\n        this.length = this.list.length || this.$children.length\n        this.destroy()\n        this.render()\n      })\n    },\n    destroy () {\n      this.swiper && this.swiper.destroy()\n    },\n    getHeight () {\n      // when list.length > 0, it's better to set height or ratio\n      const hasHeight = parseInt(this.height, 10)\n      if (hasHeight) return this.height\n      if (!hasHeight) {\n        if (this.aspectRatio) {\n          return this.$el.offsetWidth * this.aspectRatio + 'px'\n        }\n        return '180px'\n      }\n    }\n  },\n  props: {\n    list: {\n      type: Array,\n      default () {\n        return []\n      }\n    },\n    direction: {\n      type: String,\n      default: 'horizontal'\n    },\n    showDots: {\n      type: Boolean,\n      default: true\n    },\n    showDescMask: {\n      type: Boolean,\n      default: true\n    },\n    dotsPosition: {\n      type: String,\n      default: 'right'\n    },\n    dotsClass: String,\n    auto: {\n      type: Boolean,\n      default: false\n    },\n    loop: Boolean,\n    interval: {\n      type: Number,\n      default: 3000\n    },\n    threshold: {\n      type: Number,\n      default: 50\n    },\n    duration: {\n      type: Number,\n      default: 300\n    },\n    height: {\n      type: String,\n      default: 'auto'\n    },\n    aspectRatio: Number,\n    minMovingDistance: {\n      type: Number,\n      default: 0\n    },\n    index: {\n      type: Number,\n      default: 0\n    },\n    value: {\n      type: Number,\n      default: 0\n    },\n  },\n  data () {\n    return {\n      current: this.props_index,\n      xheight: 'auto',\n      length: this.list.length,\n      props_index:0\n    }\n  },\n  watch: {\n    list (val) {\n      this.rerender()\n    },\n    current (currentIndex) {\n      this.$emit('on-index-change', currentIndex)\n    },\n    props_index:function(val){\n      if (val !== this.current) {\n        this.$nextTick(() => {\n          this.swiper.go(val)\n        })\n      }\n      this.$emit('input',val);\n    },\n    index (newIndex, oldIndex) {\n      this.props_index=newIndex;\n    },\n    value(val){\n      this.props_index=val\n    },\n  },\n  beforeDestroy () {\n    this.destroy()\n  }\n}\n\n</script>\n\n<style lang=\"less\">\n@pre: vux;\n\n.@{pre}-slider {\n  overflow: hidden;\n  position: relative;\n\n  > .@{pre}-indicator, .@{pre}-indicator-right {\n    position: absolute;\n    right: 15px;\n    bottom: 10px;\n\n    > a {\n      float: left;\n      margin-left: 6px;\n\n      > .@{pre}-icon-dot {\n        display: inline-block;\n        vertical-align: middle;\n        width: 6px;\n        height: 6px;\n        border-radius: 3px;\n        background-color: #d0cdd1;\n      }\n      > .@{pre}-icon-dot.active {\n        background-color: #04BE02;\n      }\n\n    }\n  }\n\n  > .@{pre}-indicator-center {\n    right: 50%;\n    transform: translateX(50%)\n  }\n\n  > .@{pre}-indicator-left {\n    left: 15px;\n    right: auto;\n  }\n\n  > .@{pre}-swiper {\n    overflow: hidden;\n    position: relative;\n\n    > .@{pre}-swiper-item {\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n\n      > a {\n        display: block;\n        width: 100%;\n        height: 100%;\n\n        > .@{pre}-img {\n          display: block;\n          width: 100%;\n          height: 100%;\n          background: center center no-repeat;\n          background-size: cover;\n        }\n\n        > .@{pre}-swiper-desc {\n          position: absolute;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          height: 1.4em;\n          font-size: 16px;\n          padding: 20px 50px 12px 13px;\n          margin: 0;\n          background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .7) 100%);\n          color: #fff;\n          text-shadow: 0 1px 0 rgba(0, 0, 0, .5);\n          overflow: hidden;\n          text-overflow: ellipsis;\n          white-space: nowrap;\n          word-wrap: normal;\n        }\n\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/swiper/swiper.js",
    "content": "import arrayFrom from 'array-from'\nimport objectAssign from 'object-assign'\n\nclass Swiper {\n  constructor (options) {\n    this._default = {\n      container: '.vux-swiper',\n      item: '.vux-swiper-item',\n      direction: 'vertical',\n      activeClass: 'active',\n      threshold: 50,\n      duration: 300,\n      auto: false,\n      loop: false,\n      interval: 3000,\n      height: 'auto',\n      minMovingDistance: 0\n    }\n    this._options = objectAssign(this._default, options)\n    this._options.height = this._options.height.replace('px', '')\n    this._start = {}\n    this._move = {}\n    this._end = {}\n    this._eventHandlers = {}\n    this._prev = this._current = this._goto = 0\n    this._width = this._height = this._distance = 0\n    this._offset = []\n    this.$box = this._options.container\n    this.$container = this._options.container.querySelector('.vux-swiper')\n    this.$items = this.$container.querySelectorAll(this._options.item)\n    this.count = this.$items.length\n    this.realCount = this.$items.length // real items length\n    this._position = [] // used by go event\n    this._firstItemIndex = 0\n    if (!this.count) {\n      return\n    }\n    this._init()\n    this._auto()\n    this._bind()\n    this._onResize()\n    return this\n  }\n\n  _auto () {\n    const me = this\n    me.stop()\n    if (me._options.auto) {\n      me.timer = setTimeout(() => {\n        me.next()\n      }, me._options.interval)\n    }\n  }\n\n  updateItemWidth () {\n    this._width = this.$box.offsetWidth\n    this._distance = this._options.direction === 'horizontal' ? this._width : this._height\n  }\n\n  stop () {\n    this.timer && clearTimeout(this.timer)\n  }\n\n  _loop () {\n    return this._options.loop && this.realCount >= 3\n  }\n\n  _onResize () {\n    const me = this\n    this.resizeHandler = () => {\n      setTimeout(() => {\n        me.updateItemWidth()\n        me._setOffset()\n        me._setTransfrom()\n      }, 100)\n    }\n    window.addEventListener('orientationchange', this.resizeHandler, false)\n  }\n\n  _init () {\n    if (this._options.loop) {\n      this._loopTwoItems()\n    }\n    this._height = this._options.height === 'auto' ? 'auto' : this._options.height - 0\n    this.updateItemWidth()\n    this._initPosition()\n    this._activate(this._current)\n    this._setOffset()\n    this._setTransfrom()\n    if (this._loop()) {\n      this._loopRender()\n    }\n  }\n\n  _initPosition () {\n    for (let i = 0; i < this.realCount; i++) {\n      this._position.push(i)\n    }\n  }\n\n  _movePosition (position) {\n    const me = this\n    if (position > 0) {\n      let firstIndex = me._position.splice(0, 1)\n      me._position.push(firstIndex[0])\n    } else if (position < 0) {\n      let lastIndex = me._position.pop()\n      me._position.unshift(lastIndex)\n    }\n  }\n\n  _setOffset () {\n    let me = this\n    let index = me._position.indexOf(me._current)\n    me._offset = []\n    arrayFrom(me.$items).forEach(function ($item, key) {\n      me._offset.push((key - index) * me._distance)\n    })\n  }\n\n  _setTransition (duration) {\n    duration = duration || (this._options.duration || 'none')\n    let transition = duration === 'none' ? 'none' : duration + 'ms'\n    arrayFrom(this.$items).forEach(function ($item, key) {\n      $item.style.webkitTransition = transition\n      $item.style.transition = transition\n    })\n  }\n\n  _setTransfrom (offset) {\n    const me = this\n    offset = offset || 0\n    arrayFrom(me.$items).forEach(function ($item, key) {\n      let distance = me._offset[key] + offset\n      let transform = `translate3d(${distance}px, 0, 0)`\n      if (me._options.direction === 'vertical') {\n        transform = `translate3d(0, ${distance}px, 0)`\n      }\n      $item.style.webkitTransform = transform\n      $item.style.transform = transform\n    })\n  }\n\n  _bind () {\n    const me = this\n    me.touchstartHandler = (e) => {\n      me.stop()\n      me._start.x = e.changedTouches[0].pageX\n      me._start.y = e.changedTouches[0].pageY\n      me._setTransition('none')\n    }\n    me.touchmoveHandler = (e) => {\n      me._move.x = e.changedTouches[0].pageX\n      me._move.y = e.changedTouches[0].pageY\n      let distanceX = me._move.x - me._start.x\n      let distanceY = me._move.y - me._start.y\n      let distance = distanceY\n      let noScrollerY = Math.abs(distanceX) > Math.abs(distanceY)\n      if (me._options.direction === 'horizontal' && noScrollerY) {\n        distance = distanceX\n      }\n      if (((me._options.minMovingDistance && Math.abs(distance) >= me._options.minMovingDistance) || !me._options.minMovingDistance) && noScrollerY) {\n        me._setTransfrom(distance)\n      }\n\n      noScrollerY && e.preventDefault()\n    }\n\n    me.touchendHandler = (e) => {\n      me._end.x = e.changedTouches[0].pageX\n      me._end.y = e.changedTouches[0].pageY\n\n      let distance = me._end.y - me._start.y\n      if (me._options.direction === 'horizontal') {\n        distance = me._end.x - me._start.x\n      }\n\n      distance = me.getDistance(distance)\n      if (distance !== 0 && me._options.minMovingDistance && Math.abs(distance) < me._options.minMovingDistance) {\n        return\n      }\n      if (distance > me._options.threshold) {\n        me.move(-1)\n      } else if (distance < -me._options.threshold) {\n        me.move(1)\n      } else {\n        me.move(0)\n      }\n\n      me._loopRender()\n    }\n\n    me.transitionEndHandler = (e) => {\n      me._activate(me._current)\n      let cb = me._eventHandlers.swiped\n      cb && cb.apply(me, [me._prev % me.count, me._current % me.count])\n      me._auto()\n      me._loopRender()\n      e.preventDefault()\n    }\n    me.$container.addEventListener('touchstart', me.touchstartHandler, false)\n    me.$container.addEventListener('touchmove', me.touchmoveHandler, false)\n    me.$container.addEventListener('touchend', me.touchendHandler, false)\n    me.$items[1] && me.$items[1].addEventListener('webkitTransitionEnd', me.transitionEndHandler, false)\n  }\n\n  _loopTwoItems () {\n    // issue #596 (support when onlt two)\n    if (this.count === 2) {\n      let div = document.createElement('div')\n      let $item\n      for (let i = this.$items.length - 1; i >= 0; i--) {\n        div.innerHTML = this.$items[i].outerHTML\n        $item = div.querySelector(this._options.item)\n        $item.classList.add(`${this._options.item.replace('.', '')}-clone`)\n        this.$container.appendChild($item)\n      }\n      this.realCount = 4\n    }\n  }\n\n  _loopRender () {\n    const me = this\n    if (me._loop()) {\n      // issue #507 (delete cloneNode)\n      if (me._offset[me._offset.length - 1] === 0) {\n        me.$container.appendChild(me.$items[0])\n        me._loopEvent(1)\n      } else if (me._offset[0] === 0) {\n        me.$container.insertBefore(me.$items[me.$items.length - 1], me.$container.firstChild)\n        me._loopEvent(-1)\n      }\n    }\n  }\n\n  _loopEvent (num) {\n    const me = this\n    me._itemDestoy()\n    me.$items = me.$container.querySelectorAll(me._options.item)\n    me.$items[1] && me.$items[1].addEventListener('webkitTransitionEnd', me.transitionEndHandler, false)\n    me._movePosition(num)\n    me._setOffset()\n    me._setTransfrom()\n  }\n\n  getDistance (distance) {\n    if (this._loop()) {\n      return distance\n    } else {\n      if (distance > 0 && this._current === 0) {\n        return 0\n      } else if (distance < 0 && this._current === this.realCount - 1) {\n        return 0\n      } else {\n        return distance\n      }\n    }\n  }\n\n  _moveIndex (num) {\n    if (num !== 0) {\n      this._prev = this._current\n      this._current += this.realCount\n      this._current += num\n      this._current %= this.realCount\n    }\n  }\n\n  _activate (index) {\n    let clazz = this._options.activeClass\n    Array.prototype.forEach.call(this.$items, ($item, key) => {\n      $item.classList.remove(clazz)\n      if (index === Number($item.dataset.index)) {\n        $item.classList.add(clazz)\n      }\n    })\n  }\n\n  go (index) {\n    const me = this\n    me.stop()\n\n    index = index || 0\n    index += this.realCount\n    index = index % this.realCount\n    index = this._position.indexOf(index) - this._position.indexOf(this._current)\n\n    me._moveIndex(index)\n    me._setOffset()\n    me._setTransition()\n    me._setTransfrom()\n    me._auto()\n    return this\n  }\n\n  next () {\n    this.move(1)\n    return this\n  }\n\n  move (num) {\n    this.go(this._current + num)\n    return this\n  }\n\n  on (event, callback) {\n    if (this._eventHandlers[event]) {\n      console.error(`[swiper] event ${event} is already register`)\n    }\n    if (typeof callback !== 'function') {\n      console.error('[swiper] parameter callback must be a function')\n    }\n    this._eventHandlers[event] = callback\n    return this\n  }\n\n  _itemDestoy () {\n    for (let item of this.$items) {\n      item.removeEventListener('webkitTransitionEnd', this.transitionEndHandler, false)\n    }\n  }\n  destroy () {\n    this.stop()\n    this._current = 0\n    this._setTransfrom(0)\n    window.removeEventListener('orientationchange', this.resizeHandler, false)\n    this.$container.removeEventListener('touchstart', this.touchstartHandler, false)\n    this.$container.removeEventListener('touchmove', this.touchmoveHandler, false)\n    this.$container.removeEventListener('touchend', this.touchendHandler, false)\n    this._itemDestoy()\n    // remove clone item (used by loop only 2)\n    if (this._options.loop && this.count === 2) {\n      let $item = this.$container.querySelector(`${this._options.item}-clone`)\n      $item && this.$container.removeChild($item)\n      $item = this.$container.querySelector(`${this._options.item}-clone`)\n      $item && this.$container.removeChild($item)\n    }\n  }\n}\n\nexport default Swiper\n"
  },
  {
    "path": "src/components/swiper-item/index.vue",
    "content": "<template>\n  <div class=\"vux-swiper-item\"><slot></slot></div>\n</template>\n\n<script>\nexport default {\n  mounted () {\n    this.$parent.rerender()\n  },\n  beforeDestroy () {\n    const $parent = this.$parent\n    this.$nextTick(() => {\n      $parent.rerender()\n    })\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/tab/index.js",
    "content": "import Tab from './tab'\nimport TabItem from './tab-item'\n\nexport {\n  Tab,\n  TabItem\n}\n"
  },
  {
    "path": "src/components/tab/tab-item.vue",
    "content": "<template>\n  <div class=\"vux-tab-item\" :class=\"[props_selected ? activeClass : '', {'vux-tab-selected': props_selected}]\" :style=\"style\" @click=\"onItemClick\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\n\nexport default {\n  mounted() {\n      this.$parent.updateIndex()\n      this.props_selected=this.selected\n  },\n  props: {\n    activeClass: String,\n    disabled: Boolean,\n    selected: {\n        type: Boolean,\n        default: false\n    }\n  },\n  computed: {\n    style () {\n      return {\n        borderWidth: this.$parent.lineWidth + 'px',\n        borderColor: this.$parent.activeColor,\n        color: this.props_selected ? this.$parent.activeColor : this.disabled ? this.$parent.disabledColor : this.$parent.defaultColor,\n        border: this.$parent.animate ? 'none' : 'auto'\n      }\n    }\n  },\n  beforeDestroy() {\n      const $parent = this.$parent\n      this.$nextTick(() => {\n          $parent.updateIndex()\n      })\n  },\n  methods: {\n      onItemClick() {\n          if (typeof this.disabled === 'undefined' || this.disabled === false) {\n              this.props_selected = true;\n              this.$parent.$emit('onTabItemClick',this.index);\n          }\n      }\n  },\n  watch: {\n    props_selected(val){\n      if (val) {\n          this.$parent.$emit('onTabItemClick',this.index);\n        }\n    },\n    selected (val) {\n      console.log('selected');\n      this.props_selected=val;\n    }\n  },\n  data() {\n      return {\n          index: -1,\n          props_selected:false\n      }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/tab/tab.vue",
    "content": "<template>\n  <div class=\"vux-tab\" :class=\"{'vux-tab-no-animate': !animate}\">\n    <input v-model=\"props_index\" style=\"display:none\">\n    <slot></slot>\n    <div v-if=\"animate\" class=\"vux-tab-ink-bar\" :class=\"barClass\" :style=\"barStyle\"></div>\n  </div>\n</template>\n\n<script>\n\nexport default {\n  mounted () {\n    // stop bar anmination on first loading\n    setTimeout(() => {\n      this.hasReady = true\n    }, 0)\n    this.updateIndex();\n    this.$on('onTabItemClick',function(index){\n        this.props_index = index;\n        this.$emit('on-index-change', this.props_index);\n    });\n  },\n  props: {\n    index: {\n      type: Number,\n      default: 0\n    },\n    value: Number,\n    lineWidth: {\n      type: Number,\n      default: 3\n    },\n    activeColor: {\n      type: String,\n      default: '#04be02'\n    },\n    defaultColor: {\n      type: String,\n      default: '#666'\n    },\n    disabledColor: {\n      type: String,\n      default: '#ddd'\n    },\n    animate: {\n      type: Boolean,\n      default: true\n    }\n  },\n  computed: {\n    barLeft () {\n      return `${this.props_index * (100 / this.number)}%`\n    },\n    barRight () {\n      return `${(this.number - this.props_index - 1) * (100 / this.number)}%`\n    },\n    barStyle () {\n      return {\n        left: this.barLeft,\n        right: this.barRight,\n        display: 'block',\n        backgroundColor: this.activeColor,\n        height: this.lineWidth + 'px',\n        transition: !this.hasReady ? 'none' : null\n      }\n    },\n    barClass () {\n      return {\n        'vux-tab-ink-bar-transition-forward': this.direction === 'forward',\n        'vux-tab-ink-bar-transition-backward': this.direction === 'backward'\n      }\n    }\n  },\n  watch: {\n    value(val){\n      this.props_index=val\n    },\n    index : function(newIndex, oldIndex){\n        this.props_index=newIndex;\n    },\n    props_index (newIndex, oldIndex) {\n      this.direction = newIndex > oldIndex ? 'forward' : 'backward'\n      oldIndex > -1 && this.$children[oldIndex] && (this.$children[oldIndex].props_selected = false)\n      newIndex > -1 && (this.$children[newIndex].props_selected = true)\n      this.$emit('input',newIndex);\n    }\n  },\n  methods: {\n      updateIndex() {\n          if (!this.$children) return\n          this.number = this.$children.length\n          let children = this.$children\n          for (let i = 0; i < children.length; i++) {\n              children[i].index = i\n              if (children[i].index === this.index) {\n                  this.props_index = i\n              }\n          }\n      }\n  },\n  data () {\n    return {\n      direction: 'forward',\n      right: '100%',\n      number: this.$children.length,\n      hasReady: false,\n      props_index:0\n    }\n  }\n}\n</script>\n\n\n<style lang=\"less\">\n@prefixClass: vux-tab;\n@easing-in-out: cubic-bezier(0.35, 0, 0.25, 1);\n@effect-duration: .3s;\n\n.@{prefixClass} {\n\n  &-ink-bar {\n    position: absolute;\n    height: 2px;\n    bottom: 0;\n    left: 0;\n\n    &-transition-forward {\n      transition: right @effect-duration @easing-in-out,\n      left @effect-duration @easing-in-out @effect-duration * 0.3;\n    }\n    &-transition-backward {\n      transition: right @effect-duration @easing-in-out @effect-duration * 0.3,\n      left @effect-duration @easing-in-out;\n    }\n  }\n\n}\n\n.vux-tab {\n  display: flex;\n  background-color: #fff;\n  height: 44px;\n  position: relative;\n}\n.vux-tab button {\n  padding: 0;\n  border: 0;\n  outline: 0;\n  background: 0 0;\n  appearance: none;\n}\n.vux-tab .vux-tab-item {\n  display: block;\n  flex: 1;\n  width: 100%;\n  height: 100%;\n  box-sizing: border-box;\n  background: linear-gradient(180deg, #e5e5e5, #e5e5e5, rgba(229, 229, 229, 0)) bottom left no-repeat;\n  background-size: 100% 1px;\n  font-size: 14px;\n  text-align: center;\n  line-height: 44px;\n  color: #666;\n}\n.vux-tab .vux-tab-item.vux-tab-selected {\n  color: #04be02;\n  border-bottom: 3px solid #04be02;\n}\n\n.vux-tab.vux-tab-no-animate .vux-tab-item.vux-tab-selected {\n  background: 0 0;\n}\n</style>\n"
  },
  {
    "path": "src/components/tabbar/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/tabbar/index.js",
    "content": "import Tabbar from './tabbar'\nimport TabbarItem from './tabbar-item'\n\nexport {\n  Tabbar,\n  TabbarItem\n}\n"
  },
  {
    "path": "src/components/tabbar/metas.yml",
    "content": "tabbar:\n  props:\n    icon-class:\n      en: icon's classname\n      zh-CN: 图标的class名\n  slots:\n    default:\n      en: main content for tabbar items\n      zh-CN: tabbar主体内容，只允许tabbar-item\ntabbar-item:\n  props:\n    badge:\n      en: badge text, if not specified, the badge will not show\n      zh-CN: 徽标文字，不指定则不显示\n    show-dot:\n      en: if show the red dot\n      zh-CN: 是否显示红点\n    link:\n      en: the url for current tabbar item, can be a url or a `v-link` value\n      zh-CN: 链接，可以为普通url或者用`v-link`写法\n    icon-class:\n      en: the classname for current icon, if tabbar and tabbar-item both specify icon-class, tabbar-item's will be usePulldown\n      zh-CN: 图标类名，如果tabbar也同时定义了icon-class, 会使用tabbar-item的\n  slots:\n    icon:\n      en: icon area\n      zh-CN: 图标区域\n    label:\n      en: label text\n      zh-CN: 图标下方文字\n  events:\n    on-item-click:\n      en: triggers when tabbar item is click\n      zh-CN: 点击菜单项时触发\n"
  },
  {
    "path": "src/components/tabbar/tabbar-item.vue",
    "content": "<template>\n  <a href=\"javascript:;\" class=\"weui_tabbar_item\" :class=\"{'weui_bar_item_on': $parent.props_index === index}\" @click=\"onItemClick\">\n    <div class=\"weui_tabbar_icon\" :class=\"[iconClass || $parent.iconClass, {'vux-reddot': showDot}]\">\n      <slot name=\"icon\"></slot>\n      <sup><badge v-if=\"badge\" :text=\"badge\"></badge></sup>\n    </div>\n    <p class=\"weui_tabbar_label\">\n      <slot name=\"label\"></slot>\n    </p>\n  </a>\n</template>\n\n<script>\nimport Badge from '../badge'\nimport {go} from '../../libs/router.js'\nexport default {\n  components: {\n    Badge\n  },\n  props: {\n    showDot: {\n      type: Boolean,\n      default: false\n    },\n    badge: String,\n    link: [String, Object],\n    iconClass: String\n  },\n  beforeMount(){\n      this.$on('on-item-click',function(index) {\n          this.link ? go(this.link,this.$router) : false;\n          this.$parent.$emit('onTabbarItemClick',index);\n      });\n  },\n  mounted(){\n      this.$parent.updateIndex()\n  },\n  beforeDestroy(){\n      const $parent = this.$parent\n      this.$nextTick(() => {\n          $parent.updateIndex()\n      })\n  },\n  methods: {\n      onItemClick () {\n          if (typeof this.disabled === 'undefined' || this.disabled === false) {\n              this.selected = true\n              this.$emit('on-item-click',this.index,true)\n          }\n      }\n  },\n  data () {\n      return {\n          index: 0\n      }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/tabbar/tabbar.vue",
    "content": "<template>\n  <div class=\"weui_tabbar\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\n\nexport default {\n    mounted(){\n        this.updateIndex();\n        this.$on('onTabbarItemClick',function(index,selected){\n            this.props_index = index;\n            this.$emit('on-index-change', this.props_index);\n        });\n    },\n    props: {\n        iconClass: String,\n        activeColor:{\n            type:String,\n            default:'#f24549',\n        },\n        defaultColor:{\n            type:String,\n            default:'#9b9b9b',\n        },\n        index: {\n            type: Number,\n            default: 0\n        }\n    },\n    methods: {\n        updateIndex () {\n            if (!this.$children) return\n            this.number = this.$children.length\n            let children = this.$children\n            for (let i = 0; i < children.length; i++) {\n                children[i].index = i\n                if (children[i].index === this.index) {\n                    this.props_index = i\n                }\n            }\n        }\n    },\n    watch: {\n        index:function(newIndex, oldIndex){\n            this.props_index=newIndex;\n        },\n        props_index (newIndex, oldIndex) {\n            oldIndex > -1 && this.$children[oldIndex] && (this.$children[oldIndex].selected = false)\n            newIndex > -1 && (this.$children[newIndex].selected = true)\n        }\n    },\n    data () {\n        return {\n            number: this.$children.length,\n            props_index: -1\n        }\n    }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_tab/weui_tab_tabbar';\n.weui_tabbar_icon {\n  position: relative;\n}\n.weui_tabbar_icon > sup {\n  position: absolute;\n  top: -8px;\n  left: 100%;\n  transform: translateX(-50%);\n  z-index: 101;\n}\n</style>\n"
  },
  {
    "path": "src/components/timeline/index.js",
    "content": "import Timeline from './timeline'\nimport TimelineItem from './timeline-item'\n\nmodule.exports = {\n  Timeline,\n  TimelineItem\n}\n"
  },
  {
    "path": "src/components/timeline/timeline-item.vue",
    "content": "<template>\n\t<li class=\"vux-timeline-item\">\n\t\t<div :class=\"['vux-timeline-item-color', {'vux-timeline-item-head': !isFirst,'vux-timeline-item-head-first': isFirst }]\" :style=\"headStyle\">\n\t\t\t<icon v-show=\"isFirst && $parent.isShowIcon\" type=\"success_no_circle\" class=\"vux-timeline-item-checked\"></icon>\n\t\t</div>\n\t\t<div class=\"vux-timeline-item-tail\" :style=\"tailStyle\"></div>\n\t\t<div class=\"vux-timeline-item-content\">\n\t\t\t<slot></slot>\n\t\t</div>\n\t</li>\n</template>\n\n<script>\nimport Icon from '../icon'\n\nexport default {\n  data () {\n    return {\n      isLast: true,\n      isFirst: true,\n      headStyle: { backgroundColor: this.$parent.color }\n    }\n  },\n  mounted () {\n    this.$parent.setChildProps()\n  },\n  beforeDestroy () {\n    // this will be null\n    const $parent = this.$parent\n    this.$nextTick(() => {\n      $parent.setChildProps()\n    })\n  },\n  components: {\n    Icon\n  },\n  computed: {\n    tailStyle () {\n      return this.isLast ? { display: 'none', backgroundColor: this.$parent.color } : { display: 'block', backgroundColor: this.$parent.color }\n    }\n  }\n}\n</script>\n\n"
  },
  {
    "path": "src/components/timeline/timeline.vue",
    "content": "<template>\n\t<div class=\"vux-timeline\">\n\t\t<ul>\n\t\t\t<slot></slot>\n\t\t</ul>\n\t</div>\n</template>\n\n<script>\nexport default {\n  props: {\n    color: String,\n    isShowIcon: {\n      type: Boolean,\n      default: true\n    }\n  },\n  methods: {\n    setChildProps () {\n      if (!this.$children) return\n      const len = this.$children.length\n      this.$children.forEach((child, index) => {\n        child.isLast = index === len - 1\n        child.isFirst = index === 0\n      })\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-timeline {\n  padding: 1rem;\n}\n\n.vux-timeline > ul > li {\n  list-style: none;\n}\n\n@vux-timeline: ~\"vux-timeline\";\n\n.@{vux-timeline} {\n  &-item {\n    position:relative;\n  }\n\n  &-item-content {\n    padding:0 0 1.5rem 1.2rem;\n  }\n\n  &-item-head, &-item-head-first {\n    position:absolute;\n    content:'';\n    z-index:99;\n    border-radius:99px;\n  }\n\n  &-item-head {\n    width:10px;\n    height:10px;\n    left:1px;top:4px;\n  }\n\n  &-item-head-first {\n    width:20px;\n    height:20px;\n    left:-4px;top:5px;\n  }\n\n  &-item-tail {\n    position:absolute;\n    content:'';\n    height:100%;\n    width:2px;\n    left:5px;\n    top:5px;\n    background-color: @timeline-item-bg-color;\n  }\n\n  &-item-checked {\n    width: 100%;\n    position: absolute;\n    left: 0;\n    top: 45%;\n    transform: translateY(-50%);\n\n    &.weui_icon_success_no_circle::before {\n      font-size: 12px;\n      width: 20px;\n      color: #FFF;\n    }\n  }\n}\n\n.vux-timeline-item-color {\n\tbackground-color: @timeline-item-bg-color;\n}\n</style>\n"
  },
  {
    "path": "src/components/tip/index.vue",
    "content": "<template>\n  <div class=\"vux-group-tip\" :style=\"{'text-align':align}\">\n    <slot></slot>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    align: {\n      type: String,\n      default: 'left'\n    }\n  }\n}\n</script>\n\n<style>\n.vux-group-tip, .vux-group-tip p {\n  font-size:14px;\n  color:#888;\n  text-align:center;\n  padding-top:0.3em;\n  padding-left:10px;\n  padding-right:5px;\n}\n.vux-group-tip .weui_icon {\n  padding-right: 3px;\n}\n</style>\n"
  },
  {
    "path": "src/components/toast/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/toast/index.vue",
    "content": "<template>\n  <div class=\"vux-toast\">\n    <!-- 此处input只做双向数据绑定用(props 的value 属性必须有)-->\n    <input v-model=\"props_show\" style=\"display:none\">\n    <div class=\"weui_mask_transparent\" v-show=\"props_show\"></div>\n      <transition  :name=\"transition\">\n        <div class=\"weui_toast\" :style=\"{width: width}\" :class=\"toastClass\" v-show=\"props_show\">\n          <i class=\"weui_icon_toast\" v-show=\"type !== 'text'\"></i>\n          <p class=\"weui_toast_content\" v-if=\"text\" v-html=\"text\"></p>\n          <p class=\"weui_toast_content\" v-else><slot></slot></p>\n        </div>\n      </transition>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    show: {\n      type: Boolean,\n      default: false\n    },\n    value:Boolean,\n    time: {\n      type: Number,\n      default: 2000\n    },\n    type: {\n      type: String,\n      default: 'success'\n    },\n    transition: {\n      type: String,\n      default: 'vux-fade'\n    },\n    width: {\n      type: String,\n      default: '7.6em'\n    },\n    text: String\n  },\n  data(){\n    return{\n      props_show: false\n    }\n  },\n  computed: {\n    toastClass () {\n      return {\n        'weui_toast_forbidden': this.type === 'warn',\n        'weui_toast_cancel': this.type === 'cancel',\n        'weui_toast_success': this.type === 'success',\n        'weui_toast_text': this.type === 'text'\n      }\n    }\n  },\n  watch: {\n    show(val){\n      this.props_show=val\n    },\n    value(val){\n      this.props_show=val\n    },\n    props_show (val) {\n      if (val) {\n        clearTimeout(this.timeout)\n        this.timeout = setTimeout(() => {\n          this.props_show = false\n          this.$emit('on-hide')\n        }, this.time)\n      }\n      this.$emit('input',val);\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/transition.less';\n@import '../../styles/weui/widget/weui_tips/weui_mask';\n@import '../../styles/weui/icon/weui_icon_font';\n@import '../../styles/weui/widget/weui_tips/weui_toast';\n\n.weui_toast {\n  transform: translateX(-50%);\n  margin-left: 0!important;\n}\n.weui_toast_forbidden {\n  color: #F76260;\n}\n.weui_toast.weui_toast_text{\n  min-height: 0;\n}\n.weui_toast_text .weui_toast_content {\n  margin: 0;\n  padding-top: 10px;\n  padding-bottom: 10px;\n  border-radius: 15px;\n}\n.weui_toast_success .weui_icon_toast:before {\n  content: \"\\EA08\";\n}\n.weui_toast_cancel .weui_icon_toast:before {\n  content: \"\\EA0D\";\n}\n.weui_toast_forbidden .weui_icon_toast:before {\n  content: \"\\EA0B\";\n  color: #F76260;\n}\n</style>\n"
  },
  {
    "path": "src/components/video/index.vue",
    "content": "<template>\n  <div class=\"zy_media\">\n    <video :poster=\"cover\" data-config='{\"mediaTitle\": \"《疯狂动物城》--腾讯视频\"}'>\n        <source :src=\"video\" type=\"video/mp4\">\n        您的浏览器不支持HTML5视频\n    </video>\n  </div>\n</template>\n\n<script>\nimport Media from './zy.media.js'\nconsole.log(Media)\nexport default {\n  props: {\n    cover: String,\n    video: String\n  },\n  mounted () {\n    this._player = Media(this.$el.querySelector('video'))\n    console.log(this._player)\n  }\n}\n</script>\n\n<style>\n@import './zy.media.css';\n</style>\n"
  },
  {
    "path": "src/components/video/zy.media.css",
    "content": "body { margin: 0 }\n\n/* zy.media style */\n.zy_media { background: #000; position: relative }\n.zy_media video, .zy_media audio { width: 100%; position: absolute; top: 0; left: 0; display: block }\n.zy_fullscreen { overflow: hidden }\n.zy_fullscreen .zy_media { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000 }\n.zy_fullscreen .zy_wrap, .zy_fullscreen video { width: 100%; height: 100% }\n.zy_wrap { width: 100% }\n\n/* 视频标题 */\n.zy_title { height: 34px; padding-left: 10px; color: #fff; font-size: 12px; line-height: 34px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; background: rgba(0, 0, 0, .25); position: absolute; left: 0; right: 0; top: 0; -webkit-transition: top .5s; transition: top .5s }\n\n/* 视频主区中播放、加载中、错误提示 */\n.zy_media .dec_play, .zy_media .dec_loading, .zy_media .dec_error { margin: -32px 0 0 -31px; position: absolute; top: 50%; left: 50% }\n.zy_media .dec_play::before { width: 60px; height: 60px; content: ''; border-radius: 60px; border: #e5e5e4 1px solid; display: block }\n.zy_media .dec_play::after { width: 0; height: 0; content: ''; border-color: transparent transparent transparent #e5e5e4; border-width: 14px 20px; border-style: solid; position: absolute; top: 16px; left: 23px; z-index: 2; display: block }\n.zy_media .dec_loading { width: 62px; height: 62px; -webkit-animation: ani_loading .6s infinite linear; -webkit-animation-fill-mode: forwards; animation: ani_loading .6s infinite linear; animation-fill-mode: forwards }\n@-webkit-keyframes ani_loading {\n\t100% { -webkit-transform: rotate(360deg) }\n}\n@keyframes ani_loading {\n\t100% { transform: rotate(360deg) }\n}\n.zy_media .dec_loading::before { width: 7px; height: 7px; content: ''; border-radius: 7px; background: #fff; opacity: .8; position: absolute; top: 25px }\n.zy_media .dec_loading::after { width: 48px; height: 48px; content: ''; border-radius: 50px; border: 7px solid #fff; opacity: .2; display: block }\n.zy_media .dec_error { width: 62px; height: 62px; margin-top: -53px; margin-left: -25px; white-space: nowrap; color: #fff; font-size: 12px; text-align: center; position: absolute; top: 50%; left: 50%; }\n\n/* 控制栏 */\n.zy_controls { height: 44px; background: rgba(0, 0, 0, .55); position: absolute; left: 0; right: 0; bottom: 0; -webkit-transition: bottom .5s; transition: bottom .5s; display: -webkit-box; display: box; display: -webkit-flex; display: flex }\n\n/* 播放、暂停按钮 */\n.zy_playpause_btn { width: 26px; height: 30px; margin-right: 4px; padding: 13px 0 0 14px; position: relative }\n.zy_play::before { width: 0; height: 0; content: ''; border-color: transparent transparent transparent #cbcbcb; border-width: 8px 12px; border-style: solid; display: block }\n.zy_pause::before, .zy_pause::after { width: 3px; height: 14px; content: ''; background: #cbcbcb; position: absolute; top: 13px; left: 14px }\n.zy_pause::after { left: 22px }\n\n/* 时间线操作区 */\n.zy_timeline { margin-right: 10px; -webkit-box-flex: 1; -webkit-flex: 1 1 auto; flex: 1 1 auto }\n.zy_timeline_slider { width: 100%; height: 1px; background: #999; position: relative; top: 21px; left: 0 }\n.zy_timeline_buffering { width: 100%; height: 15px; top: -7px; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)), color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(-45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -webkit-background-size: 15px 15px; background-size: 15px 15px; -webkit-animation: ani_buffering 2s linear infinite; animation: ani_buffering 2s linear infinite; position: absolute; }\n@-webkit-keyframes ani_buffering {\n\tfrom { background-position: 0 0 }\n\tto { background-position: 30px 0 }\n}\n@keyframes ani_buffering {\n\tfrom { background-position: 0 0 }\n\tto { background-position: 30px 0 }\n}\n.zy_timeline_loaded { width: 0; height: 1px; background: #e5e5e5; position: absolute; top: 0; left: 0; z-index: 1 }\n.zy_timeline_current { width: 0; height: 1px; background: #ff6159; position: relative; z-index: 2 }\n.zy_timeline_handle { width: 16px; height: 16px; border-radius: 16px; background: #e5e5e5; position: absolute; top: -8px; left: -8px; z-index: 3 }\n\n/* 时间展示 */\n.zy_time { width: auto; height: 44px; margin-right: 5px; line-height: 44px; font-size: 11px; color: #999; text-align: center }\n.zy_time .zy_currenttime { color: #e5e5e5 }\n\n/* 全屏控制按钮 */\n.zy_fullscreen_btn { width: 38px; height: 44px; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaBAMAAAEsY2FrAAAAElBMVEX///////////////////////+65XQCAAAABXRSTlMAHm1u3TG+li4AAAB5SURBVBgZBcGxbQNBEAQwPnCXC49TviU4UQnKx8ZP/62YVB58qQCIBwArGgAAwK4HkAUEgEXAEmBFG/AH+B0gN5BrQLwAAG4bXLOBewPXB/AGu6VtG4CeAUCdAaCcAVCcAQAAAAMAzrAD4IwdAM7PDgDOJwBt2wAA/9uDEjcL3fqtAAAAAElFTkSuQmCC); background-repeat: no-repeat; background-position: center; -webkit-background-size: 16px; background-size: 16px }\n.zy_unfullscreen { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaBAMAAAEsY2FrAAAAElBMVEX///////////////////////+65XQCAAAABXRSTlMAHm1u3TG+li4AAAB5SURBVBgZBcGxDcMwEAQwGtH1QuD0WiGAB8gI39z+q4SEhR8AwALAwmAwgCAIS4AV0BYg7UAWEIttwNeA1x7gO8BrQDsAAGlBDpA3kOuAeIO4eDYZAM+WAeDZGQA8nwFo2w4AAAAAANq2A9D7AKDuA0C5D4DiPgDAH9lBEChOLXSRAAAAAElFTkSuQmCC) }"
  },
  {
    "path": "src/components/video/zy.media.js",
    "content": "/*\n *\n * zy.media.js\n * HTML5 <video> and <audio> native player\n *\n * Copyright 2016, iReader FE(掌阅书城研发--前端组)\n * License: MIT\n * \n */\n;\n\n\n\tvar zyMedia = {};\n\n\n\t// Default config\n\tzyMedia.config = {\n\t\t// Overrides the type specified, for dynamic instantiation\n\t\ttype: '',\n\t\t// Set media title\n\t\tmediaTitle: '',\n\t\t// Force native controls\n\t\tnativeControls: false,\n\t\t// Autoplay\n\t\tautoplay: false,\n\t\t// Preload, not 'auto', in native app of xiaomi HM 1SW,\n\t\t// the images does not synchronize with sound of video which is cross-domain\n\t\tpreload: 'none',\n\t\t// Video width\n\t\tvideoWidth: '100%',\n\t\t// Video height\n\t\tvideoHeight: 'auto',\n\t\t// Aspect ration 16:9\n\t\taspectRation: (16 / 9),\n\t\t// Audio width\n\t\taudioWidth: '100%',\n\t\t// Audio height\n\t\taudioHeight: 44,\n\t\t// AutoLoop, true for infinite loop, false for rewind to beginning when media ends\n\t\tautoLoop: false,\n\t\t// Time format to show. Default 1 for 'mm:ss', 2 for 'm:s'\n\t\ttimeFormatType: 1,\n\t\t// Forces the hour marker (##:00:00)\n\t\talwaysShowHours: false,\n\t\t// Hide controls when playing and mouse is not over the video\n\t\talwaysShowControls: false,\n\t\t// Display the video control\n\t\thideVideoControlsOnLoad: false,\n\t\t// Show fullscreen button\n\t\tenableFullscreen: true,\n\t\t// When this player starts, it will pause other players\n\t\tpauseOtherPlayers: true,\n\t\t// Media duration\n\t\tduration: 0,\n\t\t// Sucess callback\n\t\tsuccess: null,\n\t\t// Error callback\n\t\terror: null\n\t};\n\n\n\t// Feature detect\n\t(function(t) {\n\t\tvar ua = window.navigator.userAgent.toLowerCase();\n\t\tvar v = document.createElement('video');\n\n\t\tt.isiOS = /iphone|ipod|ipad/i.test(ua) && !window.MSStream;\n\t\tt.isAndroid = /android/i.test(ua) && !window.MSStream;\n\t\tt.isBustedAndroid = /android 2\\.[12]/i.test(ua);\n\t\tt.isChromium = /chromium/i.test(ua);\n\n\t\tt.hasTouch = 'ontouchstart' in window;\n\t\tt.supportsCanPlayType = typeof v.canPlayType !== 'undefined';\n\n\t\t// Vendor for no big Play button\n\t\tt.isVendorBigPlay = /iphone/i.test(ua) && !window.MSStream;\n\t\t// Vendor for no controls bar\n\t\tt.isVendorControls = /baidu/i.test(ua);\n\t\t// Vendor and app for fullscreen button\n\t\tt.isVendorFullscreen = /micromessenger|weibo/i.test(ua);\n\t\t// Vendor for autoplay be disabled, iOS device and 昂达\n\t\tt.isVendorAutoplay = /v819mini/i.test(ua) || t.isiOS;\n\t\t// Prefix of current working browser\n\n\t\tt.nativeFullscreenPrefix = (function() {\n\t\t\tif (v.requestFullScreen) {\n\t\t\t\treturn '';\n\t\t\t} else if (v.webkitRequestFullScreen) {\n\t\t\t\treturn 'webkit'\n\t\t\t} else if (v.mozRequestFullScreen) {\n\t\t\t\treturn 'moz'\n\t\t\t} else if (v.msRequestFullScreen) {\n\t\t\t\treturn 'ms'\n\t\t\t}\n\t\t\treturn '-'\n\t\t})();\n\n\t\t// None-standard\n\t\tt.hasOldNativeFullScreen = (t.nativeFullscreenPrefix == '-') && v.webkitEnterFullscreen;\n\n\t\t// OS X 10.5 can't do this even if it says it can\n\t\tif (t.hasOldNativeFullScreen && /mac os x 10_5/i.test(ua)) {\n\t\t\tt.nativeFullscreenPrefix = '-';\n\t\t\tt.hasOldNativeFullScreen = false\n\t\t}\n\t})(zyMedia.features = {});\n\n\n\t// Get style\n\tfunction _css(el, property) {\n\t\treturn parseInt(el.style[property] || getComputedStyle(el, null).getPropertyValue(property))\n\t}\n\n\t// Has Class\n\tfunction _hasClass(el, token) {\n\t\treturn new RegExp('(\\\\s|^)' + token + '(\\\\s|$)').test(el.className)\n\t}\n\n\t// Add class\n\tfunction _addClass(el, token) {\n\t\tif (el.classList) {\n\t\t\tel.classList.add(token)\n\t\t} else if (!_hasClass(el, token)) {\n\t\t\tel.className += '' + token\n\t\t}\n\t}\n\n\t// Remove class\n\tfunction _removeClass(el, token) {\n\t\tif (el.classList) {\n\t\t\tel.classList.remove(token)\n\t\t} else if (_hasClass(el, token)) {\n\t\t\tel.className = el.className.replace(new RegExp('(\\\\s|^)' + token + '(\\\\s|$)'), ' ').replace(/^\\s+|\\s+$/g, '')\n\t\t}\n\t}\n\n\t// Get time format\n\tfunction timeFormat(time, options) {\n\t\t// Video's duration is Infinity in GiONEE(金立) device\n\t\tif (!isFinite(time) || time < 0) {\n\t\t\ttime = 0;\n\t\t}\n\t\t// Get hours\n\t\tvar _time = options.alwaysShowHours ? [0] : [];\n\t\tif (Math.floor(time / 3600) % 24) {\n\t\t\t_time.push(Math.floor(time / 3600) % 24)\n\t\t}\n\t\t// Get minutes\n\t\t_time.push(Math.floor(time / 60) % 60);\n\t\t// Get seconds\n\t\t_time.push(Math.floor(time % 60));\n\t\t_time = _time.join(':');\n\t\t// Fill '0'\n\t\tif (options.timeFormatType == 1) {\n\t\t\t_time = _time.replace(/(:|^)([0-9])(?=:|$)/g, '$10$2')\n\t\t}\n\n\t\treturn _time\n\t};\n\n\t// Report whether or not the document in fullscreen mode\n\tfunction isInFullScreenMode() {\n\t\treturn document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen\n\t}\n\n\t// Get media type from file extension\n\tfunction getTypeFromFileExtension(url) {\n\t\turl = url.toLowerCase().split('?')[0];\n\t\tvar _ext = url.substring(url.lastIndexOf('.') + 1);\n\t\tvar _av = /mp4|m4v|ogg|ogv|m3u8|webm|webmv|wmv|mpeg|mov/gi.test(_ext) ? 'video/' : 'audio/';\n\n\t\tswitch (_ext) {\n\t\t\tcase 'mp4':\n\t\t\tcase 'm4v':\n\t\t\tcase 'm4a':\n\t\t\t\treturn _av + 'mp4';\n\t\t\tcase 'webm':\n\t\t\tcase 'webma':\n\t\t\tcase 'webmv':\n\t\t\t\treturn _av + 'webm';\n\t\t\tcase 'ogg':\n\t\t\tcase 'oga':\n\t\t\tcase 'ogv':\n\t\t\t\treturn _av + 'ogg';\n\t\t\tcase 'm3u8':\n\t\t\t\treturn 'application/x-mpegurl';\n\t\t\tcase 'ts':\n\t\t\t\treturn _av + 'mp2t';\n\t\t\tdefault:\n\t\t\t\treturn _av + _ext;\n\t\t}\n\t}\n\n\t// Get media type\n\tfunction getType(url, type) {\n\t\t// If no type is specified, try to get from the extension\n\t\tif (url && !type) {\n\t\t\treturn getTypeFromFileExtension(url)\n\t\t} else {\n\t\t\t// Only return the mime part of the type in case the attribute contains the codec\n\t\t\t// see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element\n\t\t\t// `video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"` becomes `video/mp4`\n\t\t\tif (type && ~type.indexOf(';')) {\n\t\t\t\treturn type.substr(0, type.indexOf(';'))\n\t\t\t} else {\n\t\t\t\treturn type\n\t\t\t}\n\t\t}\n\t}\n\n\t// Detect if current type is supported  \n\tfunction detectType(media, options, src) {\n\t\tvar mediaFiles = [];\n\t\tvar i;\n\t\tvar n;\n\t\tvar isCanPlay;\n\n\t\t// Get URL and type\n\t\tif (options.type) {\n\t\t\t// Accept either string or array of types\n\t\t\tif (typeof options.type == 'string') {\n\t\t\t\tmediaFiles.push({\n\t\t\t\t\ttype: options.type,\n\t\t\t\t\turl: src\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < options.type.length; i++) {\n\t\t\t\t\tmediaFiles.push({\n\t\t\t\t\t\ttype: options.type[i],\n\t\t\t\t\t\turl: src\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (src !== null) {\n\t\t\t// If src attribute\n\t\t\tmediaFiles.push({\n\t\t\t\ttype: getType(src, media.getAttribute('type')),\n\t\t\t\turl: src\n\t\t\t});\n\t\t} else {\n\t\t\t// If <source> elements\n\t\t\tfor (i = 0; i < media.children.length; i++) {\n\t\t\t\tn = media.children[i];\n\n\t\t\t\tif (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {\n\t\t\t\t\tsrc = n.getAttribute('src');\n\t\t\t\t\tmediaFiles.push({\n\t\t\t\t\t\ttype: getType(src, n.getAttribute('type')),\n\t\t\t\t\t\turl: src\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// For Android which doesn't implement the canPlayType function (always returns '')\n\t\tif (zyMedia.features.isBustedAndroid) {\n\t\t\tmedia.canPlayType = function(type) {\n\t\t\t\treturn /video\\/(mp4|m4v)/i.test(type) ? 'maybe' : ''\n\t\t\t};\n\t\t}\n\t\t// For Chromium to specify natively supported video codecs (i.e. WebM and Theora) \n\t\tif (zyMedia.features.isChromium) {\n\t\t\tmedia.canPlayType = function(type) {\n\t\t\t\treturn /video\\/(webm|ogv|ogg)/i.test(type) ? 'maybe' : ''\n\t\t\t};\n\t\t}\n\n\t\tif (zyMedia.features.supportsCanPlayType) {\n\t\t\tfor (i = 0; i < mediaFiles.length; i++) {\n\t\t\t\t// Normal detect\n\t\t\t\tif (mediaFiles[i].type == \"video/m3u8\" || media.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''\n\t\t\t\t\t// For Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')\n\t\t\t\t\t|| media.canPlayType(mediaFiles[i].type.replace(/mp3/, 'mpeg')).replace(/no/, '') !== ''\n\t\t\t\t\t// For m4a supported by detecting mp4 support\n\t\t\t\t\t|| media.canPlayType(mediaFiles[i].type.replace(/m4a/, 'mp4')).replace(/no/, '') !== '') {\n\t\t\t\t\tisCanPlay = true;\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn isCanPlay\n\t};\n\n\t// Mediaplayer instance No\n\tvar zymIndex = 0;\n\t// Store Mediaplayer instance\n\tzyMedia.players = {};\n\n\n\t// Constructor, MediaPlayer\n\tzyMedia.MediaPlayer = function(media, option) {\n\t\tvar t = this;\n\t\tvar i;\n\n\t\t// Make sure it can't be instantiated again\n\t\tif (media.isInstantiated) {\n\t\t\treturn\n\t\t} else {\n\t\t\tmedia.isInstantiated = true\n\t\t}\n\n\t\tt.media = media;\n\n\t\t// Detect video or audio\n\t\tvar _tagName = t.media.tagName.toLowerCase();\n\t\tif (!/audio|video/.test(_tagName)) return;\n\n\t\tt.isVideo = _tagName === 'video';\n\n\t\t// Extend options\n\t\tt.options = {};\n\t\tfor (i in zyMedia.config) {\n\t\t\tt.options[i] = zyMedia.config[i]\n\t\t}\n\n\t\ttry {\n\t\t\tfor (i in option) {\n\t\t\t\tt.options[i] = option[i]\n\t\t\t}\n\t\t\t// Data-config has the highest priority\n\t\t\tvar config = JSON.parse(t.media.getAttribute('data-config'));\n\t\t\tfor (i in config) {\n\t\t\t\tt.options[i] = config[i]\n\t\t\t}\n\t\t} catch (exp) {}\n\n\t\t// Autoplay be disabled\n\t\tif (t.options.autoplay) {\n\t\t\tt.options.autoplay = !zyMedia.features.isVendorAutoplay\n\t\t}\n\n\t\tif (!t.isVideo) {\n\t\t\tt.options.alwaysShowControls = true\n\t\t}\n\n\t\tif (t.options.nativeControls || zyMedia.features.isVendorControls) {\n\t\t\t// Use native controls\n\t\t\tt.media.setAttribute('controls', 'controls')\n\t\t} else {\n\t\t\tvar src = t.media.getAttribute('src');\n\t\t\tsrc = src === '' ? null : src;\n\n\t\t\tif (detectType(t.media, t.options, src)) {\n\t\t\t\t// Unique ID\n\t\t\t\tt.id = 'zym_' + zymIndex++;\n\t\t\t\tzyMedia.players[t.id] = t;\n\t\t\t\tt.init()\n\t\t\t} else {\n\t\t\t\talert('不支持此' + (t.isVideo ? '视' : '音') + '频')\n\t\t\t}\n\t\t}\n\t};\n\n\n\tzyMedia.MediaPlayer.prototype = {\n\n\t\tisControlsVisible: true,\n\t\tisFullScreen: false,\n\n\t\tsetPlayerSize: function(width, height) {\n\t\t\tvar t = this;\n\t\t\tvar _W = _css(t.container, 'width');\n\t\t\t// The width is not more than container width\n\t\t\tif (width > _W) {\n\t\t\t\tt.width = _W\n\t\t\t}\n\n\t\t\t// Set height for video\n\t\t\tif (t.enableAutoSize) {\n\t\t\t\tvar nativeWidth = t.media.videoWidth;\n\t\t\t\tvar nativeHeight = t.media.videoHeight;\n\t\t\t\t// Uniform scale\n\t\t\t\tif (nativeWidth && nativeHeight) {\n\t\t\t\t\tif (Math.abs(t.options.aspectRation - nativeWidth / nativeHeight) < .1) {\n\t\t\t\t\t\tt.options.aspectRation = nativeWidth / nativeHeight\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tt.height = parseInt(_W / t.options.aspectRation)\n\t\t\t}\n\n\t\t\tt.container.style.width = t.width + 'px';\n\t\t\tt.media.style.height = t.container.style.height = t.height + 'px'\n\t\t},\n\n\t\tshowControls: function() {\n\t\t\tvar t = this;\n\n\t\t\tif (t.isControlsVisible)\n\t\t\t\treturn;\n\n\t\t\tt.controls.style.bottom = 0;\n\n\t\t\tif (t.options.mediaTitle) {\n\t\t\t\tt.title.style.top = 0\n\t\t\t}\n\n\t\t\tt.isControlsVisible = true;\n\t\t},\n\n\t\thideControls: function() {\n\t\t\tvar t = this;\n\n\t\t\tif (!t.isControlsVisible || t.options.alwaysShowControls)\n\t\t\t\treturn;\n\n\t\t\tt.controls.style.bottom = '-45px';\n\n\t\t\tif (t.options.mediaTitle) {\n\t\t\t\tt.title.style.top = '-35px'\n\t\t\t}\n\n\t\t\tt.isControlsVisible = false\n\t\t},\n\n\t\tsetControlsTimer: function(timeout) {\n\t\t\tvar t = this;\n\t\t\tclearTimeout(t.controlsTimer);\n\n\t\t\tt.controlsTimer = setTimeout(function() {\n\t\t\t\tt.hideControls()\n\t\t\t}, timeout);\n\t\t},\n\n\t\tupdateTimeline: function(e) {\n\t\t\tvar t = this;\n\t\t\tvar el = (e !== undefined) ? e.target : t.media;\n\t\t\tvar percent = null;\n\t\t\tvar _W = _css(t.slider, 'width');\n\n\t\t\t// Support buffered\n\t\t\tif (el.buffered && el.buffered.length > 0 && el.buffered.end && el.duration) {\n\t\t\t\tpercent = el.buffered.end(el.buffered.length - 1) / el.duration\n\t\t\t}\n\t\t\t// Support bufferedBytes\n\t\t\telse if (el.bytesTotal !== undefined && el.bytesTotal > 0 && el.bufferedBytes !== undefined) {\n\t\t\t\tpercent = el.bufferedBytes / el.bytesTotal\n\t\t\t}\n\t\t\t// Support progressEvent.lengthComputable\n\t\t\telse if (e && e.lengthComputable && e.total !== 0) {\n\t\t\t\tpercent = e.loaded / e.total\n\t\t\t}\n\n\t\t\t// Update the timeline\n\t\t\tif (percent !== null) {\n\t\t\t\tpercent = Math.min(1, Math.max(0, percent));\n\t\t\t\tt.loaded.style.width = _W * percent + 'px';\n\t\t\t\t// Adjust when pause change from playing (魅族)\n\t\t\t\tif(t.media.paused) {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tt.loaded.style.width = _W * percent + 'px';\n\t\t\t\t\t\tt.updateTimeline()\n\t\t\t\t\t}, 300)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (t.media.currentTime !== undefined && t.media.duration) {\n\t\t\t\t// Update bar and handle\n\t\t\t\tvar _w = Math.round(_W * t.media.currentTime / t.media.duration);\n\t\t\t\tt.current.style.width = _w + 'px';\n\t\t\t\tt.handle.style.left = _w - Math.round(_css(t.handle, 'width') / 2) + 'px'\n\t\t\t}\n\t\t},\n\n\t\tupdateTime: function() {\n\t\t\tvar t = this;\n\t\t\tt.currentTime.innerHTML = timeFormat(t.media.currentTime, t.options);\n\n\t\t\t// Duration is 1 in (读者) device\n\t\t\tif (t.options.duration > 1 || t.media.duration > 1) {\n\t\t\t\tt.durationDuration.innerHTML = timeFormat(t.options.duration > 1 ? t.options.duration : t.media.duration, t.options)\n\t\t\t}\n\t\t},\n\n\t\tenterFullScreen: function() {\n\t\t\tvar t = this;\n\t\t\t// Store size\n\t\t\tt.normalHeight = _css(t.container, 'height');\n\t\t\tt.normalWidth = _css(t.container, 'width');\n\n\t\t\t// Attempt to do true fullscreen\n\t\t\tif (zyMedia.features.nativeFullscreenPrefix != '-') {\n\t\t\t\tt.container[zyMedia.features.nativeFullscreenPrefix + 'RequestFullScreen']()\n\t\t\t} else if (zyMedia.features.hasOldNativeFullScreen) {\n\t\t\t\tt.media.webkitEnterFullscreen();\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Set it to not show scroll bars so 100% will work\n\t\t\t_addClass(document.documentElement, 'zy_fullscreen');\n\n\t\t\t// Make full size\n\t\t\tt.media.style.width = t.container.style.width = '100%';\n\t\t\tt.media.style.height = t.container.style.height = '100%';\n\t\t\t_addClass(t.fullscreenBtn, 'zy_unfullscreen');\n\t\t\tt.isFullScreen = true\n\t\t},\n\n\t\texitFullScreen: function() {\n\t\t\tvar t = this;\n\t\t\t// Come out of native fullscreen\n\t\t\tif (isInFullScreenMode() || t.isFullScreen) {\n\t\t\t\tif (zyMedia.features.nativeFullscreenPrefix != '-') {\n\t\t\t\t\tdocument[zyMedia.features.nativeFullscreenPrefix + 'CancelFullScreen']()\n\t\t\t\t} else if (zyMedia.features.hasOldNativeFullScreen) {\n\t\t\t\t\tdocument.webkitExitFullscreen()\n\t\t\t\t}\n\t\t\t}\n\t\t\t_removeClass(document.documentElement, 'zy_fullscreen');\n\t\t\tt.media.style.width = t.container.style.width = t.normalWidth + 'px';\n\t\t\tt.media.style.height = t.container.style.height = t.normalHeight + 'px';\n\t\t\t_removeClass(t.fullscreenBtn, 'zy_unfullscreen');\n\t\t\tt.isFullScreen = false\n\t\t},\n\n\t\t// Media container\n\t\tbuildContainer: function() {\n\t\t\tvar t = this;\n\n\t\t\tt.container = t.media.parentNode;\n\t\t\tt.container.style.overflow = 'hidden';\n\t\t\t// Preset container's height by aspectRation\n\t\t\tt.container.style.height = (t.isVideo ? _css(t.container, 'width') / t.options.aspectRation : t.options.audioHeight) + 'px';\n\t\t\tt.container.innerHTML = '<div class=\"zy_wrap\"></div><div class=\"zy_controls\"></div>' +\n\t\t\t\t(t.options.mediaTitle ? '<div class=\"zy_title\">' + t.options.mediaTitle + '</div>' : '');\n\n\t\t\tt.title = t.container.querySelector('.zy_title');\n\n\t\t\tt.media.setAttribute('preload', t.options.preload);\n\t\t\tt.container.querySelector('.zy_wrap').appendChild(t.media);\n\t\t\tt.controls = t.container.querySelector('.zy_controls');\n\n\t\t\tif (t.isVideo) {\n\t\t\t\tt.width = t.options.videoWidth;\n\t\t\t\tt.height = t.options.videoHeight;\n\n\t\t\t\tif (t.width == '100%' && t.height == 'auto') {\n\t\t\t\t\tt.enableAutoSize = true\n\t\t\t\t}\n\t\t\t\tt.setPlayerSize(t.width, t.height)\n\t\t\t}\n\t\t},\n\n\t\t// Play/pause button\n\t\tbuildPlaypause: function() {\n\t\t\tvar t = this;\n\t\t\tvar play = document.createElement('div');\n\t\t\tplay.className = 'zy_playpause_btn zy_play';\n\t\t\tt.controls.appendChild(play);\n\t\t\tplay.addEventListener('click', function() {\n\t\t\t\tt.media.isUserClick = true;\n\n\t\t\t\tif (t.media.paused) {\n\t\t\t\t\tt.media.play();\n\t\t\t\t\t// Controls bar auto hide after 3s\n\t\t\t\t\tif (!t.media.paused && !t.options.alwaysShowControls) {\n\t\t\t\t\t\tt.setControlsTimer(3000)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tt.media.pause()\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfunction togglePlayPause(s) {\n\t\t\t\tif (t.media.isUserClick || t.options.autoplay) {\n\t\t\t\t\tif ('play' === s) {\n\t\t\t\t\t\t_removeClass(play, 'zy_play');\n\t\t\t\t\t\t_addClass(play, 'zy_pause')\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_removeClass(play, 'zy_pause');\n\t\t\t\t\t\t_addClass(play, 'zy_play')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tt.media.addEventListener('play', function() {\n\t\t\t\ttogglePlayPause('play')\n\t\t\t});\n\n\t\t\tt.media.addEventListener('playing', function() {\n\t\t\t\ttogglePlayPause('play')\n\t\t\t});\n\n\t\t\tt.media.addEventListener('pause', function() {\n\t\t\t\ttogglePlayPause('pse')\n\t\t\t});\n\n\t\t\tt.media.addEventListener('paused', function() {\n\t\t\t\ttogglePlayPause('pse')\n\t\t\t});\n\t\t},\n\n\t\t// Timeline\n\t\tbuildTimeline: function() {\n\t\t\tvar t = this;\n\t\t\tvar timeline = document.createElement('div');\n\t\t\ttimeline.className = 'zy_timeline';\n\t\t\ttimeline.innerHTML = '<div class=\"zy_timeline_slider\">' +\n\t\t\t\t'<div class=\"zy_timeline_buffering\" style=\"display:none\"></div>' +\n\t\t\t\t'<div class=\"zy_timeline_loaded\"></div>' +\n\t\t\t\t'<div class=\"zy_timeline_current\"></div>' +\n\t\t\t\t'<div class=\"zy_timeline_handle\"></div>' +\n\t\t\t\t'</div>';\n\t\t\tt.controls.appendChild(timeline);\n\n\t\t\tt.slider = timeline.children[0];\n\t\t\tt.buffering = t.slider.children[0];\n\t\t\tt.loaded = t.slider.children[1];\n\t\t\tt.current = t.slider.children[2];\n\t\t\tt.handle = t.slider.children[3];\n\n\t\t\tvar isPointerDown = false;\n\t\t\tvar _X = t.slider.offsetLeft;\n\t\t\tvar _W = _css(t.slider, 'width');\n\n\t\t\tvar pointerMove = function(e) {\n\t\t\t\tvar _time = 0;\n\t\t\t\tvar x;\n\n\t\t\t\tif (e.changedTouches) {\n\t\t\t\t\tx = e.changedTouches[0].pageX\n\t\t\t\t} else {\n\t\t\t\t\tx = e.pageX\n\t\t\t\t}\n\n\t\t\t\tif (t.media.duration) {\n\t\t\t\t\tif (x < _X) {\n\t\t\t\t\t\tx = _X\n\t\t\t\t\t} else if (x > _W + _X) {\n\t\t\t\t\t\tx = _W + _X\n\t\t\t\t\t}\n\n\t\t\t\t\t_time = ((x - _X) / _W) * t.media.duration;\n\n\t\t\t\t\tif (isPointerDown && _time !== t.media.currentTime) {\n\t\t\t\t\t\tt.media.currentTime = _time\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\t// Handle clicks\n\t\t\tif (zyMedia.features.hasTouch) {\n\t\t\t\tt.slider.addEventListener('touchstart', function(e) {\n\t\t\t\t\tisPointerDown = true;\n\t\t\t\t\tpointerMove(e);\n\t\t\t\t\t_X = t.slider.offsetLeft;\n\t\t\t\t\t_W = _css(t.slider, 'width');\n\t\t\t\t\tt.slider.addEventListener('touchmove', pointerMove);\n\t\t\t\t\tt.slider.addEventListener('touchend', function(e) {\n\t\t\t\t\t\tisPointerDown = false;\n\t\t\t\t\t\tt.slider.removeEventListener('touchmove', pointerMove)\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tt.slider.addEventListener('mousedown', function(e) {\n\t\t\t\t\tisPointerDown = true;\n\t\t\t\t\tpointerMove(e);\n\t\t\t\t\t_X = t.slider.offsetLeft;\n\t\t\t\t\t_W = _css(t.slider, 'width');\n\t\t\t\t\tt.slider.addEventListener('mousemove', pointerMove);\n\t\t\t\t\tt.slider.addEventListener('mouseup', function(e) {\n\t\t\t\t\t\tisPointerDown = false;\n\t\t\t\t\t\tt.slider.addEventListener('mousemove', pointerMove)\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt.slider.addEventListener('mouseenter', function(e) {\n\t\t\t\tt.slider.addEventListener('mousemove', pointerMove);\n\t\t\t});\n\n\t\t\tt.slider.addEventListener('mouseleave', function(e) {\n\t\t\t\tif (!isPointerDown) {\n\t\t\t\t\tt.slider.removeEventListener('mousemove', pointerMove)\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t//4Hz ~ 66Hz, no longer than 250ms\n\t\t\tt.media.addEventListener('timeupdate', function(e) {\n\t\t\t\tt.updateTimeline(e)\n\t\t\t});\n\t\t},\n\n\t\t// Current and duration time 00:00/00:00\n\t\tbuildTime: function() {\n\t\t\tvar t = this;\n\n\t\t\tvar time = document.createElement('div');\n\t\t\ttime.className = 'zy_time';\n\t\t\ttime.innerHTML = '<span class=\"zy_currenttime\">' +\n\t\t\t\ttimeFormat(0, t.options) +\n\t\t\t\t'</span>/' +\n\t\t\t\t'<span class=\"zy_duration\">' +\n\t\t\t\ttimeFormat(t.options.duration, t.options) +\n\t\t\t\t'</span>';\n\t\t\tt.controls.appendChild(time);\n\n\t\t\tt.currentTime = time.children[0];\n\t\t\tt.durationDuration = time.children[1];\n\n\t\t\t//4Hz ~ 66Hz, no longer than 250ms\n\t\t\tt.media.addEventListener('timeupdate', function() {\n\t\t\t\tt.updateTime()\n\t\t\t});\n\t\t},\n\n\t\t// Fullscreen button\n\t\tbuildFullscreen: function() {\n\t\t\tvar t = this;\n\t\t\t// Native events\n\t\t\tif (zyMedia.features.nativeFullscreenPrefix != '-') {\n\t\t\t\t// Chrome doesn't alays fire this in an iframe\n\t\t\t\tvar func = function(e) {\n\t\t\t\t\tif (t.isFullScreen) {\n\t\t\t\t\t\tif (!isInFullScreenMode()) {\n\t\t\t\t\t\t\tt.exitFullScreen()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tdocument.addEventListener(zyMedia.features.nativeFullscreenPrefix + 'fullscreenchange', func)\n\t\t\t}\n\n\t\t\tt.fullscreenBtn = document.createElement('div');\n\t\t\tt.fullscreenBtn.className = 'zy_fullscreen_btn';\n\t\t\tt.controls.appendChild(t.fullscreenBtn);\n\n\t\t\tt.fullscreenBtn.addEventListener('click', function() {\n\t\t\t\tif ((zyMedia.features.nativeFullscreenPrefix != '-' && isInFullScreenMode()) || t.isFullScreen) {\n\t\t\t\t\tt.exitFullScreen()\n\t\t\t\t} else {\n\t\t\t\t\tt.enterFullScreen()\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t// bigPlay, loading and error info\n\t\tbuildDec: function() {\n\t\t\tvar t = this;\n\n\t\t\tvar loading = document.createElement('div');\n\t\t\tloading.className = 'dec_loading';\n\t\t\tloading.style.display = 'none';\n\t\t\tt.container.appendChild(loading);\n\n\t\t\tvar error = document.createElement('div');\n\t\t\terror.className = 'dec_error';\n\t\t\terror.style.display = 'none';\n\t\t\terror.innerHTML = '播放异常';\n\t\t\tt.container.appendChild(error);\n\n\t\t\tvar bigPlay = document.createElement('div');\n\n\t\t\tif (!zyMedia.features.isVendorBigPlay) {\n\t\t\t\tbigPlay.className = 'dec_play';\n\t\t\t\tt.container.appendChild(bigPlay);\n\t\t\t\tbigPlay.addEventListener('click', function() {\n\t\t\t\t\t// For some device trigger 'play' event \n\t\t\t\t\tt.media.isUserClick = true;\n\n\t\t\t\t\tt.media.play();\n\t\t\t\t\t// Controls bar auto hide after 3s\n\t\t\t\t\tif (!t.media.paused && !t.options.alwaysShowControls) {\n\t\t\t\t\t\tt.setControlsTimer(3000)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tt.media.addEventListener('play', function() {\n\t\t\t\t// Only for user click\n\t\t\t\tif (t.media.isUserClick) {\n\t\t\t\t\tbigPlay.style.display = 'none';\n\t\t\t\t\tloading.style.display = '';\n\t\t\t\t\tt.buffering.style.display = 'none'\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tt.media.addEventListener('playing', function() {\n\t\t\t\tbigPlay.style.display = 'none';\n\t\t\t\tloading.style.display = 'none';\n\t\t\t\tt.buffering.style.display = 'none';\n\t\t\t\terror.style.display = 'none';\n\t\t\t});\n\n\t\t\tt.media.addEventListener('seeking', function() {\n\t\t\t\tloading.style.display = '';\n\t\t\t\tbigPlay.style.display = 'none';\n\t\t\t\tt.buffering.style.display = '';\n\t\t\t});\n\n\t\t\tt.media.addEventListener('seeked', function() {\n\t\t\t\tloading.style.display = 'none';\n\t\t\t\tt.buffering.style.display = 'none';\n\t\t\t});\n\n\t\t\tt.media.addEventListener('pause', function() {\n\t\t\t\tbigPlay.style.display = ''\n\t\t\t});\n\n\t\t\tt.media.addEventListener('waiting', function() {\n\t\t\t\tloading.style.display = '';\n\t\t\t\tbigPlay.style.display = 'none';\n\t\t\t\tt.buffering.style.display = '';\n\t\t\t});\n\n\t\t\t// Don't listen to 'loadeddata' and 'canplay', \n\t\t\t// some Android device can't fire 'canplay' or irregular working when use 'createEvent' to trigger 'canplay' (读者i800)\n\n\t\t\t// Error handling\n\t\t\tt.media.addEventListener('error', function(e) {\n\t\t\t\tloading.style.display = 'none';\n\t\t\t\tbigPlay.style.display = '';\n\t\t\t\tt.buffering.style.display = 'none';\n\t\t\t\tt.media.pause();\n\t\t\t\terror.style.display = '';\n\n\t\t\t\tif (typeof t.options.error == 'function') {\n\t\t\t\t\tt.options.error(e);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tinit: function() {\n\t\t\tvar t = this;\n\n\t\t\t// Build\n\t\t\tvar batch = ['Container', 'Playpause', 'Timeline', 'Time'];\n\t\t\tif (t.options.enableFullscreen && !zyMedia.features.isVendorFullscreen && t.isVideo) {\n\t\t\t\tbatch.push('Fullscreen')\n\t\t\t}\n\n\t\t\tif (t.isVideo) {\n\t\t\t\tbatch.push('Dec')\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < batch.length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\tt['build' + batch[i]]()\n\t\t\t\t} catch (exp) {}\n\t\t\t}\n\n\t\t\t// Controls fade\n\t\t\tif (t.isVideo) {\n\t\t\t\tif (zyMedia.features.hasTouch) {\n\t\t\t\t\tt.media.addEventListener('click', function() {\n\t\t\t\t\t\t// Toggle controls\n\t\t\t\t\t\tif (t.isControlsVisible) {\n\t\t\t\t\t\t\tt.hideControls()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt.showControls();\n\t\t\t\t\t\t\t// Controls bar auto hide after 3s\n\t\t\t\t\t\t\tif (!t.media.paused && !t.options.alwaysShowControls) {\n\t\t\t\t\t\t\t\tt.setControlsTimer(3000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Click to play/pause\n\t\t\t\t\tt.media.addEventListener('click', function() {\n\t\t\t\t\t\tif (t.media.paused) {\n\t\t\t\t\t\t\tt.media.play()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt.media.pause()\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Show/hide controls\n\t\t\t\t\tt.container.addEventListener('mouseenter', function() {\n\t\t\t\t\t\tt.showControls();\n\n\t\t\t\t\t\tif (!t.options.alwaysShowControls) {\n\t\t\t\t\t\t\tt.setControlsTimer(3000)\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tt.container.addEventListener('mousemove', function() {\n\t\t\t\t\t\tt.showControls();\n\n\t\t\t\t\t\tif (!t.options.alwaysShowControls) {\n\t\t\t\t\t\t\tt.setControlsTimer(3000)\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (t.options.hideVideoControlsOnLoad) {\n\t\t\t\t\tt.hideControls()\n\t\t\t\t}\n\n\t\t\t\tt.media.addEventListener('loadedmetadata', function(e) {\n\t\t\t\t\tif (t.enableAutoSize) {\n\t\t\t\t\t\t// For more properly videoWidth or videoHeight of HM 1SW(小米), QQ browser is 0\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tif (!isNaN(t.media.videoHeight)) {\n\t\t\t\t\t\t\t\tt.setPlayerSize()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 50)\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\tt.media.addEventListener('play', function() {\n\t\t\t\tvar p;\n\n\t\t\t\tfor (var i in zyMedia.players) {\n\t\t\t\t\tp = zyMedia.players[i];\n\n\t\t\t\t\tif (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tp.media.pause()\n\t\t\t\t\t\t} catch (exp) {}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\t// Adjust controls when orientation change, 500ms for Sumsung tablet\n\t\t\twindow.addEventListener('orientationchange', function() {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tt.setPlayerSize()\n\t\t\t\t}, 500)\n\t\t\t});\n\n\t\t\tt.media.addEventListener('ended', function(e) {\n\t\t\t\tt.media.currentTime = 0;\n\n\t\t\t\tif (t.options.autoLoop) {\n\t\t\t\t\tt.media.play()\n\t\t\t\t} else {\n\t\t\t\t\t// Fixing an Android stock browser bug, where \"seeked\" isn't fired correctly after ending the video and jumping to the beginning\n\t\t\t\t\tif (t.isVideo) {\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tt.container.querySelector('.dec_loading').style.display = 'none'\n\t\t\t\t\t\t}, 20)\n\t\t\t\t\t}\n\n\t\t\t\t\tt.media.pause()\n\t\t\t\t}\n\n\t\t\t\tt.updateTimeline(e)\n\t\t\t});\n\n\t\t\tt.media.addEventListener('loadedmetadata', function(e) {\n\t\t\t\tt.updateTime()\n\t\t\t});\n\n\t\t\tif (t.options.autoplay) {\n\t\t\t\tt.media.isUserClick = false;\n\t\t\t\tt.media.play()\n\t\t\t}\n\n\t\t\tif (typeof t.options.success == 'function') {\n\t\t\t\tt.options.success(t.media)\n\t\t\t}\n\t\t}\n\n\t};\n\n\n\t// String or node\n\texport default function(selector, options) {\n\t\treturn new zyMedia.MediaPlayer(selector, options)\n\t}\n\n\n"
  },
  {
    "path": "src/components/view-box/index.vue",
    "content": "<template>\n  <div class=\"weui_tab\">\n    <slot name=\"header\"></slot>\n    <div class=\"weui_tab_bd vux-fix-safari-overflow-scrolling\" ref=\"viewboxbody\">\n      <slot></slot>\n    </div>\n    <slot name=\"bottom\"></slot>\n  </div>\n</template>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_tab/weui_tab_tabbar';\n</style>\n"
  },
  {
    "path": "src/components/view-box/metas.yml",
    "content": "intro:\n  zh-CN: 该组件为100%高布局，在safari中会出现滚动时无法自动隐藏url工具栏和底部栏的问题。\nslots:\n  header:\n    zh-CN: 顶部区域，如果要使用统一的XHeader，可以使用该slot\n  default:\n    zh-CN: 主体内容，可滚动的区域。在该slot里的定位请直接使用absolute而不是fixed\n  bottom:\n    zh-CN: 底部区域，Tabbar可以使用该slot\n"
  },
  {
    "path": "src/components/wechat-emotion/index.vue",
    "content": "<template>\n  <div class=\"vux-emotion\"><slot style=\"display:none;\"></slot></div>\n</template>\n\n<script>\n// gif https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/5.gif\n// whole https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/default218877.gif\n// http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/icon_emotion_switch.2x278965.png\n// http://res.wx.qq.com/mmbizwap/zh_CN/htmledition/images/icon/appmsg/emotion/icon_emotion_switch_active.2x278965.png\nconst list = ['微笑', '撇嘴', '色', '发呆', '得意', '流泪', '害羞', '闭嘴', '睡', '大哭', '尴尬', '发怒', '调皮', '呲牙', '惊讶', '难过', '酷', '冷汗', '抓狂', '吐', '偷笑', '可爱', '白眼', '傲慢', '饥饿', '困', '惊恐', '流汗', '憨笑', '大兵', '奋斗', '咒骂', '疑问', '嘘', '晕', '折磨', '衰', '骷髅', '敲打', '再见', '擦汗', '抠鼻', '鼓掌', '糗大了', '坏笑', '左哼哼', '右哼哼', '哈欠', '鄙视', '委屈', '快哭了', '阴险', '亲亲', '吓', '可怜', '菜刀', '西瓜', '啤酒', '篮球', '乒乓', '咖啡', '饭', '猪头', '玫瑰', '凋谢', '示爱', '爱心', '心碎', '蛋糕', '闪电', '炸弹', '刀', '足球', '瓢虫', '便便', '月亮', '太阳', '礼物', '拥抱', '强', '弱', '握手', '胜利', '抱拳', '勾引', '拳头', '差劲', '爱你', 'NO', 'OK', '爱情', '飞吻', '跳跳', '发抖', '怄火', '转圈', '磕头', '回头', '跳绳', '挥手', '激动', '街舞', '献吻', '左太极', '右太极']\n\nexport default {\n  mounted () {\n    const name = this.$el.innerHTML\n    this.index = list.indexOf(name)\n    this.backgroundPositionX = -this.index * 24\n    let imgHTML = ''\n    if (!this.isGif) {\n      imgHTML = '<span class=\"vux-static-emotion\" style=\"background:url(https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/default218877.gif) '+this.backgroundPositionX+'px 0;\"></span>'\n    } else {\n      imgHTML = '<img src=\"https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/'+this.index+'.gif\">'\n    }\n    this.$el.innerHTML = imgHTML\n  },\n  props: {\n    isGif: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data () {\n    return {\n      src: '',\n      backgroundPositionX: 0\n    }\n  }\n}\n</script>\n\n<style>\n.vux-emotion {\n  display: inline-block;\n}\n.vux-static-emotion {\n  width: 24px;\n  height: 24px;\n  display: inline-block;\n}\n</style>\n"
  },
  {
    "path": "src/components/x-address/data/compress.js",
    "content": "\"use strict\"\nconst list = require('china-area-data')\nlet rs = []\n\nfor (var i in list) {\n  for (var j in list[i]) {\n    var item = {\n      name: 　list[i][j],\n      value: j + '',\n    }\n    if (i !== '86') {\n      item.parent = i\n    }\n    if (!/台湾|行政/.test(item.name)) {\n      rs.push(item)\n    }\n  }\n}\n\nvar _list = [120200, 310200, 429004, 429005, 429006, 659001, 659002, 659003, 659004, 659005, 659006, 659007, 659008,500200, 429021, 419001, 460400, 469001, 469002, 469005, 469006, 469007, 469021, 469022, 469023, 469024, 469025, 469026, 469027, 469028, 469029, 469030]\n\n_list.forEach(function (one) {\n  rs.push({\n    name: '--',\n    value: one + '--',\n    parent: one + ''\n  })\n})\n\nrequire('fs').writeFileSync('../list.json', JSON.stringify(rs, null, 4))"
  },
  {
    "path": "src/components/x-address/index.vue",
    "content": "<template>\n  <div>\n      <popup-picker :fixed-columns=\"hideDistrict ? 2 : 0\" :columns=\"3\" :data=\"list\" :title=\"title\" :value=\"props_value\" show-name :inline-desc=\"inlineDesc\" :placeholder=\"placeholder\" @on-hide=\"emitHide\" @on-show=\"$emit('on-show')\" @on-cancel=\"$emit('on-cancel')\" @on-ok=\"emitOk\"></popup-picker>\n  </div>\n\n</template>\n\n<script>\nimport name2value from '../../filters/name2value'\nimport PopupPicker from '../popup-picker'\n\nexport default {\n  components: {\n    PopupPicker\n  },\n  props: {\n    title: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: Array,\n      default () {\n        return []\n      }\n    },\n    rawValue: Boolean,\n    list: {\n      type: Array,\n      required: true\n    },\n    inlineDesc: String,\n    placeholder: String,\n    hideDistrict: Boolean\n  },\n  data(){\n    return {\n      props_value:[]\n    }\n  },\n  created () {\n    this.props_value=this.value\n    if (this.props_value.length && this.rawValue) {\n      const parsedVal = name2value(this.props_value, this.list)\n      if (/__/.test(parsedVal)) {\n        console.error('Vux: Wrong address value', this.props_value)\n        this.props_value = []\n      } else {\n        this.props_value = parsedVal.split(' ')\n      }\n    }\n  },\n  methods: {\n    emitHide (closeType,val) {\n      this.props_value=val\n      this.$emit('on-hide', closeType,val)\n    },\n    emitOk(val){\n      this.$emit('on-ok',val)\n    }\n  },\n  watch:{\n    value(val){\n      this.props_value=val\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/components/x-address/list.json",
    "content": "[\n    {\n        \"name\": \"北京市\",\n        \"value\": \"110000\"\n    },\n    {\n        \"name\": \"天津市\",\n        \"value\": \"120000\"\n    },\n    {\n        \"name\": \"河北省\",\n        \"value\": \"130000\"\n    },\n    {\n        \"name\": \"山西省\",\n        \"value\": \"140000\"\n    },\n    {\n        \"name\": \"内蒙古自治区\",\n        \"value\": \"150000\"\n    },\n    {\n        \"name\": \"辽宁省\",\n        \"value\": \"210000\"\n    },\n    {\n        \"name\": \"吉林省\",\n        \"value\": \"220000\"\n    },\n    {\n        \"name\": \"黑龙江省\",\n        \"value\": \"230000\"\n    },\n    {\n        \"name\": \"上海市\",\n        \"value\": \"310000\"\n    },\n    {\n        \"name\": \"江苏省\",\n        \"value\": \"320000\"\n    },\n    {\n        \"name\": \"浙江省\",\n        \"value\": \"330000\"\n    },\n    {\n        \"name\": \"安徽省\",\n        \"value\": \"340000\"\n    },\n    {\n        \"name\": \"福建省\",\n        \"value\": \"350000\"\n    },\n    {\n        \"name\": \"江西省\",\n        \"value\": \"360000\"\n    },\n    {\n        \"name\": \"山东省\",\n        \"value\": \"370000\"\n    },\n    {\n        \"name\": \"河南省\",\n        \"value\": \"410000\"\n    },\n    {\n        \"name\": \"湖北省\",\n        \"value\": \"420000\"\n    },\n    {\n        \"name\": \"湖南省\",\n        \"value\": \"430000\"\n    },\n    {\n        \"name\": \"广东省\",\n        \"value\": \"440000\"\n    },\n    {\n        \"name\": \"广西壮族自治区\",\n        \"value\": \"450000\"\n    },\n    {\n        \"name\": \"海南省\",\n        \"value\": \"460000\"\n    },\n    {\n        \"name\": \"重庆市\",\n        \"value\": \"500000\"\n    },\n    {\n        \"name\": \"四川省\",\n        \"value\": \"510000\"\n    },\n    {\n        \"name\": \"贵州省\",\n        \"value\": \"520000\"\n    },\n    {\n        \"name\": \"云南省\",\n        \"value\": \"530000\"\n    },\n    {\n        \"name\": \"西藏自治区\",\n        \"value\": \"540000\"\n    },\n    {\n        \"name\": \"陕西省\",\n        \"value\": \"610000\"\n    },\n    {\n        \"name\": \"甘肃省\",\n        \"value\": \"620000\"\n    },\n    {\n        \"name\": \"青海省\",\n        \"value\": \"630000\"\n    },\n    {\n        \"name\": \"宁夏回族自治区\",\n        \"value\": \"640000\"\n    },\n    {\n        \"name\": \"新疆维吾尔自治区\",\n        \"value\": \"650000\"\n    },\n    {\n        \"name\": \"北京市市辖区\",\n        \"value\": \"110100\",\n        \"parent\": \"110000\"\n    },\n    {\n        \"name\": \"东城区\",\n        \"value\": \"110101\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"西城区\",\n        \"value\": \"110102\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"朝阳区\",\n        \"value\": \"110105\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"丰台区\",\n        \"value\": \"110106\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"石景山区\",\n        \"value\": \"110107\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"海淀区\",\n        \"value\": \"110108\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"门头沟区\",\n        \"value\": \"110109\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"房山区\",\n        \"value\": \"110111\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"通州区\",\n        \"value\": \"110112\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"顺义区\",\n        \"value\": \"110113\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"昌平区\",\n        \"value\": \"110114\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"大兴区\",\n        \"value\": \"110115\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"怀柔区\",\n        \"value\": \"110116\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"平谷区\",\n        \"value\": \"110117\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"密云区\",\n        \"value\": \"110128\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"延庆区\",\n        \"value\": \"110129\",\n        \"parent\": \"110100\"\n    },\n    {\n        \"name\": \"天津市市辖区\",\n        \"value\": \"120100\",\n        \"parent\": \"120000\"\n    },\n    {\n        \"name\": \"天津市郊县\",\n        \"value\": \"120200\",\n        \"parent\": \"120000\"\n    },\n    {\n        \"name\": \"和平区\",\n        \"value\": \"120101\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"河东区\",\n        \"value\": \"120102\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"河西区\",\n        \"value\": \"120103\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"南开区\",\n        \"value\": \"120104\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"河北区\",\n        \"value\": \"120105\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"红桥区\",\n        \"value\": \"120106\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"东丽区\",\n        \"value\": \"120110\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"西青区\",\n        \"value\": \"120111\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"津南区\",\n        \"value\": \"120112\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"北辰区\",\n        \"value\": \"120113\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"武清区\",\n        \"value\": \"120114\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"宝坻区\",\n        \"value\": \"120115\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"滨海新区\",\n        \"value\": \"120116\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"宁河区\",\n        \"value\": \"120117\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"静海区\",\n        \"value\": \"120118\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"蓟县\",\n        \"value\": \"120225\",\n        \"parent\": \"120100\"\n    },\n    {\n        \"name\": \"石家庄市\",\n        \"value\": \"130100\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"唐山市\",\n        \"value\": \"130200\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"秦皇岛市\",\n        \"value\": \"130300\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"邯郸市\",\n        \"value\": \"130400\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"邢台市\",\n        \"value\": \"130500\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"保定市\",\n        \"value\": \"130600\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"张家口市\",\n        \"value\": \"130700\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"承德市\",\n        \"value\": \"130800\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"沧州市\",\n        \"value\": \"130900\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"廊坊市\",\n        \"value\": \"131000\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"衡水市\",\n        \"value\": \"131100\",\n        \"parent\": \"130000\"\n    },\n    {\n        \"name\": \"长安区\",\n        \"value\": \"130102\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"桥西区\",\n        \"value\": \"130104\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"新华区\",\n        \"value\": \"130105\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"井陉矿区\",\n        \"value\": \"130107\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"裕华区\",\n        \"value\": \"130108\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"藁城区\",\n        \"value\": \"130109\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"鹿泉区\",\n        \"value\": \"130110\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"栾城区\",\n        \"value\": \"130111\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"井陉县\",\n        \"value\": \"130121\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"正定县\",\n        \"value\": \"130123\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"行唐县\",\n        \"value\": \"130125\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"灵寿县\",\n        \"value\": \"130126\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"高邑县\",\n        \"value\": \"130127\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"深泽县\",\n        \"value\": \"130128\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"赞皇县\",\n        \"value\": \"130129\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"无极县\",\n        \"value\": \"130130\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"平山县\",\n        \"value\": \"130131\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"元氏县\",\n        \"value\": \"130132\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"赵县\",\n        \"value\": \"130133\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"辛集市\",\n        \"value\": \"130181\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"晋州市\",\n        \"value\": \"130183\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"新乐市\",\n        \"value\": \"130184\",\n        \"parent\": \"130100\"\n    },\n    {\n        \"name\": \"路南区\",\n        \"value\": \"130202\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"路北区\",\n        \"value\": \"130203\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"古冶区\",\n        \"value\": \"130204\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"开平区\",\n        \"value\": \"130205\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"丰南区\",\n        \"value\": \"130207\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"丰润区\",\n        \"value\": \"130208\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"曹妃甸区\",\n        \"value\": \"130209\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"滦县\",\n        \"value\": \"130223\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"滦南县\",\n        \"value\": \"130224\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"乐亭县\",\n        \"value\": \"130225\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"迁西县\",\n        \"value\": \"130227\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"玉田县\",\n        \"value\": \"130229\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"遵化市\",\n        \"value\": \"130281\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"迁安市\",\n        \"value\": \"130283\",\n        \"parent\": \"130200\"\n    },\n    {\n        \"name\": \"海港区\",\n        \"value\": \"130302\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"山海关区\",\n        \"value\": \"130303\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"北戴河区\",\n        \"value\": \"130304\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"抚宁区\",\n        \"value\": \"130306\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"青龙满族自治县\",\n        \"value\": \"130321\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"昌黎县\",\n        \"value\": \"130322\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"卢龙县\",\n        \"value\": \"130324\",\n        \"parent\": \"130300\"\n    },\n    {\n        \"name\": \"邯山区\",\n        \"value\": \"130402\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"丛台区\",\n        \"value\": \"130403\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"复兴区\",\n        \"value\": \"130404\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"峰峰矿区\",\n        \"value\": \"130406\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"邯郸县\",\n        \"value\": \"130421\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"临漳县\",\n        \"value\": \"130423\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"成安县\",\n        \"value\": \"130424\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"大名县\",\n        \"value\": \"130425\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"涉县\",\n        \"value\": \"130426\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"磁县\",\n        \"value\": \"130427\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"肥乡县\",\n        \"value\": \"130428\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"永年县\",\n        \"value\": \"130429\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"邱县\",\n        \"value\": \"130430\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"鸡泽县\",\n        \"value\": \"130431\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"广平县\",\n        \"value\": \"130432\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"馆陶县\",\n        \"value\": \"130433\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"魏县\",\n        \"value\": \"130434\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"曲周县\",\n        \"value\": \"130435\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"武安市\",\n        \"value\": \"130481\",\n        \"parent\": \"130400\"\n    },\n    {\n        \"name\": \"桥东区\",\n        \"value\": \"130502\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"桥西区\",\n        \"value\": \"130503\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"邢台县\",\n        \"value\": \"130521\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"临城县\",\n        \"value\": \"130522\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"内丘县\",\n        \"value\": \"130523\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"柏乡县\",\n        \"value\": \"130524\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"隆尧县\",\n        \"value\": \"130525\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"任县\",\n        \"value\": \"130526\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"南和县\",\n        \"value\": \"130527\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"宁晋县\",\n        \"value\": \"130528\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"巨鹿县\",\n        \"value\": \"130529\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"新河县\",\n        \"value\": \"130530\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"广宗县\",\n        \"value\": \"130531\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"平乡县\",\n        \"value\": \"130532\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"威县\",\n        \"value\": \"130533\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"清河县\",\n        \"value\": \"130534\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"临西县\",\n        \"value\": \"130535\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"南宫市\",\n        \"value\": \"130581\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"沙河市\",\n        \"value\": \"130582\",\n        \"parent\": \"130500\"\n    },\n    {\n        \"name\": \"竞秀区\",\n        \"value\": \"130602\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"莲池区\",\n        \"value\": \"130606\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"满城区\",\n        \"value\": \"130607\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"清苑区\",\n        \"value\": \"130608\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"徐水区\",\n        \"value\": \"130609\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"涞水县\",\n        \"value\": \"130623\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"阜平县\",\n        \"value\": \"130624\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"定兴县\",\n        \"value\": \"130626\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"唐县\",\n        \"value\": \"130627\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"高阳县\",\n        \"value\": \"130628\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"容城县\",\n        \"value\": \"130629\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"涞源县\",\n        \"value\": \"130630\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"望都县\",\n        \"value\": \"130631\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"安新县\",\n        \"value\": \"130632\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"易县\",\n        \"value\": \"130633\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"曲阳县\",\n        \"value\": \"130634\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"蠡县\",\n        \"value\": \"130635\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"顺平县\",\n        \"value\": \"130636\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"博野县\",\n        \"value\": \"130637\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"雄县\",\n        \"value\": \"130638\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"涿州市\",\n        \"value\": \"130681\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"定州市\",\n        \"value\": \"130682\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"安国市\",\n        \"value\": \"130683\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"高碑店市\",\n        \"value\": \"130684\",\n        \"parent\": \"130600\"\n    },\n    {\n        \"name\": \"桥东区\",\n        \"value\": \"130702\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"桥西区\",\n        \"value\": \"130703\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"宣化区\",\n        \"value\": \"130705\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"下花园区\",\n        \"value\": \"130706\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"宣化县\",\n        \"value\": \"130721\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"张北县\",\n        \"value\": \"130722\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"康保县\",\n        \"value\": \"130723\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"沽源县\",\n        \"value\": \"130724\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"尚义县\",\n        \"value\": \"130725\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"蔚县\",\n        \"value\": \"130726\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"阳原县\",\n        \"value\": \"130727\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"怀安县\",\n        \"value\": \"130728\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"万全县\",\n        \"value\": \"130729\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"怀来县\",\n        \"value\": \"130730\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"涿鹿县\",\n        \"value\": \"130731\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"赤城县\",\n        \"value\": \"130732\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"崇礼县\",\n        \"value\": \"130733\",\n        \"parent\": \"130700\"\n    },\n    {\n        \"name\": \"双桥区\",\n        \"value\": \"130802\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"双滦区\",\n        \"value\": \"130803\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"鹰手营子矿区\",\n        \"value\": \"130804\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"承德县\",\n        \"value\": \"130821\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"兴隆县\",\n        \"value\": \"130822\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"平泉县\",\n        \"value\": \"130823\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"滦平县\",\n        \"value\": \"130824\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"隆化县\",\n        \"value\": \"130825\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"丰宁满族自治县\",\n        \"value\": \"130826\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"宽城满族自治县\",\n        \"value\": \"130827\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"围场满族蒙古族自治县\",\n        \"value\": \"130828\",\n        \"parent\": \"130800\"\n    },\n    {\n        \"name\": \"新华区\",\n        \"value\": \"130902\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"运河区\",\n        \"value\": \"130903\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"沧县\",\n        \"value\": \"130921\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"青县\",\n        \"value\": \"130922\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"东光县\",\n        \"value\": \"130923\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"海兴县\",\n        \"value\": \"130924\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"盐山县\",\n        \"value\": \"130925\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"肃宁县\",\n        \"value\": \"130926\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"南皮县\",\n        \"value\": \"130927\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"吴桥县\",\n        \"value\": \"130928\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"献县\",\n        \"value\": \"130929\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"孟村回族自治县\",\n        \"value\": \"130930\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"泊头市\",\n        \"value\": \"130981\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"任丘市\",\n        \"value\": \"130982\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"黄骅市\",\n        \"value\": \"130983\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"河间市\",\n        \"value\": \"130984\",\n        \"parent\": \"130900\"\n    },\n    {\n        \"name\": \"安次区\",\n        \"value\": \"131002\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"广阳区\",\n        \"value\": \"131003\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"固安县\",\n        \"value\": \"131022\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"永清县\",\n        \"value\": \"131023\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"香河县\",\n        \"value\": \"131024\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"大城县\",\n        \"value\": \"131025\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"文安县\",\n        \"value\": \"131026\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"大厂回族自治县\",\n        \"value\": \"131028\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"霸州市\",\n        \"value\": \"131081\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"三河市\",\n        \"value\": \"131082\",\n        \"parent\": \"131000\"\n    },\n    {\n        \"name\": \"桃城区\",\n        \"value\": \"131102\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"枣强县\",\n        \"value\": \"131121\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"武邑县\",\n        \"value\": \"131122\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"武强县\",\n        \"value\": \"131123\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"饶阳县\",\n        \"value\": \"131124\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"安平县\",\n        \"value\": \"131125\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"故城县\",\n        \"value\": \"131126\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"景县\",\n        \"value\": \"131127\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"阜城县\",\n        \"value\": \"131128\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"冀州市\",\n        \"value\": \"131181\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"深州市\",\n        \"value\": \"131182\",\n        \"parent\": \"131100\"\n    },\n    {\n        \"name\": \"太原市\",\n        \"value\": \"140100\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"大同市\",\n        \"value\": \"140200\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"阳泉市\",\n        \"value\": \"140300\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"长治市\",\n        \"value\": \"140400\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"晋城市\",\n        \"value\": \"140500\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"朔州市\",\n        \"value\": \"140600\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"晋中市\",\n        \"value\": \"140700\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"运城市\",\n        \"value\": \"140800\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"忻州市\",\n        \"value\": \"140900\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"临汾市\",\n        \"value\": \"141000\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"吕梁市\",\n        \"value\": \"141100\",\n        \"parent\": \"140000\"\n    },\n    {\n        \"name\": \"小店区\",\n        \"value\": \"140105\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"迎泽区\",\n        \"value\": \"140106\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"杏花岭区\",\n        \"value\": \"140107\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"尖草坪区\",\n        \"value\": \"140108\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"万柏林区\",\n        \"value\": \"140109\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"晋源区\",\n        \"value\": \"140110\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"清徐县\",\n        \"value\": \"140121\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"阳曲县\",\n        \"value\": \"140122\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"娄烦县\",\n        \"value\": \"140123\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"古交市\",\n        \"value\": \"140181\",\n        \"parent\": \"140100\"\n    },\n    {\n        \"name\": \"城区\",\n        \"value\": \"140202\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"矿区\",\n        \"value\": \"140203\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"南郊区\",\n        \"value\": \"140211\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"新荣区\",\n        \"value\": \"140212\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"阳高县\",\n        \"value\": \"140221\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"天镇县\",\n        \"value\": \"140222\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"广灵县\",\n        \"value\": \"140223\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"灵丘县\",\n        \"value\": \"140224\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"浑源县\",\n        \"value\": \"140225\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"左云县\",\n        \"value\": \"140226\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"大同县\",\n        \"value\": \"140227\",\n        \"parent\": \"140200\"\n    },\n    {\n        \"name\": \"城区\",\n        \"value\": \"140302\",\n        \"parent\": \"140300\"\n    },\n    {\n        \"name\": \"矿区\",\n        \"value\": \"140303\",\n        \"parent\": \"140300\"\n    },\n    {\n        \"name\": \"郊区\",\n        \"value\": \"140311\",\n        \"parent\": \"140300\"\n    },\n    {\n        \"name\": \"平定县\",\n        \"value\": \"140321\",\n        \"parent\": \"140300\"\n    },\n    {\n        \"name\": \"盂县\",\n        \"value\": \"140322\",\n        \"parent\": \"140300\"\n    },\n    {\n        \"name\": \"城区\",\n        \"value\": \"140402\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"郊区\",\n        \"value\": \"140411\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"长治县\",\n        \"value\": \"140421\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"襄垣县\",\n        \"value\": \"140423\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"屯留县\",\n        \"value\": \"140424\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"平顺县\",\n        \"value\": \"140425\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"黎城县\",\n        \"value\": \"140426\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"壶关县\",\n        \"value\": \"140427\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"长子县\",\n        \"value\": \"140428\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"武乡县\",\n        \"value\": \"140429\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"沁县\",\n        \"value\": \"140430\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"沁源县\",\n        \"value\": \"140431\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"潞城市\",\n        \"value\": \"140481\",\n        \"parent\": \"140400\"\n    },\n    {\n        \"name\": \"城区\",\n        \"value\": \"140502\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"沁水县\",\n        \"value\": \"140521\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"阳城县\",\n        \"value\": \"140522\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"陵川县\",\n        \"value\": \"140524\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"泽州县\",\n        \"value\": \"140525\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"高平市\",\n        \"value\": \"140581\",\n        \"parent\": \"140500\"\n    },\n    {\n        \"name\": \"朔城区\",\n        \"value\": \"140602\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"平鲁区\",\n        \"value\": \"140603\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"山阴县\",\n        \"value\": \"140621\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"应县\",\n        \"value\": \"140622\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"右玉县\",\n        \"value\": \"140623\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"怀仁县\",\n        \"value\": \"140624\",\n        \"parent\": \"140600\"\n    },\n    {\n        \"name\": \"榆次区\",\n        \"value\": \"140702\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"榆社县\",\n        \"value\": \"140721\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"左权县\",\n        \"value\": \"140722\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"和顺县\",\n        \"value\": \"140723\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"昔阳县\",\n        \"value\": \"140724\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"寿阳县\",\n        \"value\": \"140725\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"太谷县\",\n        \"value\": \"140726\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"祁县\",\n        \"value\": \"140727\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"平遥县\",\n        \"value\": \"140728\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"灵石县\",\n        \"value\": \"140729\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"介休市\",\n        \"value\": \"140781\",\n        \"parent\": \"140700\"\n    },\n    {\n        \"name\": \"盐湖区\",\n        \"value\": \"140802\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"临猗县\",\n        \"value\": \"140821\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"万荣县\",\n        \"value\": \"140822\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"闻喜县\",\n        \"value\": \"140823\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"稷山县\",\n        \"value\": \"140824\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"新绛县\",\n        \"value\": \"140825\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"绛县\",\n        \"value\": \"140826\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"垣曲县\",\n        \"value\": \"140827\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"夏县\",\n        \"value\": \"140828\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"平陆县\",\n        \"value\": \"140829\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"芮城县\",\n        \"value\": \"140830\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"永济市\",\n        \"value\": \"140881\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"河津市\",\n        \"value\": \"140882\",\n        \"parent\": \"140800\"\n    },\n    {\n        \"name\": \"忻府区\",\n        \"value\": \"140902\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"定襄县\",\n        \"value\": \"140921\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"五台县\",\n        \"value\": \"140922\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"代县\",\n        \"value\": \"140923\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"繁峙县\",\n        \"value\": \"140924\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"宁武县\",\n        \"value\": \"140925\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"静乐县\",\n        \"value\": \"140926\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"神池县\",\n        \"value\": \"140927\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"五寨县\",\n        \"value\": \"140928\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"岢岚县\",\n        \"value\": \"140929\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"河曲县\",\n        \"value\": \"140930\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"保德县\",\n        \"value\": \"140931\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"偏关县\",\n        \"value\": \"140932\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"原平市\",\n        \"value\": \"140981\",\n        \"parent\": \"140900\"\n    },\n    {\n        \"name\": \"尧都区\",\n        \"value\": \"141002\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"曲沃县\",\n        \"value\": \"141021\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"翼城县\",\n        \"value\": \"141022\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"襄汾县\",\n        \"value\": \"141023\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"洪洞县\",\n        \"value\": \"141024\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"古县\",\n        \"value\": \"141025\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"安泽县\",\n        \"value\": \"141026\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"浮山县\",\n        \"value\": \"141027\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"吉县\",\n        \"value\": \"141028\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"乡宁县\",\n        \"value\": \"141029\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"大宁县\",\n        \"value\": \"141030\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"隰县\",\n        \"value\": \"141031\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"永和县\",\n        \"value\": \"141032\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"蒲县\",\n        \"value\": \"141033\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"汾西县\",\n        \"value\": \"141034\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"侯马市\",\n        \"value\": \"141081\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"霍州市\",\n        \"value\": \"141082\",\n        \"parent\": \"141000\"\n    },\n    {\n        \"name\": \"离石区\",\n        \"value\": \"141102\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"文水县\",\n        \"value\": \"141121\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"交城县\",\n        \"value\": \"141122\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"兴县\",\n        \"value\": \"141123\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"临县\",\n        \"value\": \"141124\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"柳林县\",\n        \"value\": \"141125\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"石楼县\",\n        \"value\": \"141126\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"岚县\",\n        \"value\": \"141127\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"方山县\",\n        \"value\": \"141128\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"中阳县\",\n        \"value\": \"141129\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"交口县\",\n        \"value\": \"141130\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"孝义市\",\n        \"value\": \"141181\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"汾阳市\",\n        \"value\": \"141182\",\n        \"parent\": \"141100\"\n    },\n    {\n        \"name\": \"呼和浩特市\",\n        \"value\": \"150100\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"包头市\",\n        \"value\": \"150200\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"乌海市\",\n        \"value\": \"150300\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"赤峰市\",\n        \"value\": \"150400\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"通辽市\",\n        \"value\": \"150500\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"鄂尔多斯市\",\n        \"value\": \"150600\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"呼伦贝尔市\",\n        \"value\": \"150700\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"巴彦淖尔市\",\n        \"value\": \"150800\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"乌兰察布市\",\n        \"value\": \"150900\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"兴安盟\",\n        \"value\": \"152200\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"锡林郭勒盟\",\n        \"value\": \"152500\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"阿拉善盟\",\n        \"value\": \"152900\",\n        \"parent\": \"150000\"\n    },\n    {\n        \"name\": \"新城区\",\n        \"value\": \"150102\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"回民区\",\n        \"value\": \"150103\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"玉泉区\",\n        \"value\": \"150104\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"赛罕区\",\n        \"value\": \"150105\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"土默特左旗\",\n        \"value\": \"150121\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"托克托县\",\n        \"value\": \"150122\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"和林格尔县\",\n        \"value\": \"150123\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"清水河县\",\n        \"value\": \"150124\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"武川县\",\n        \"value\": \"150125\",\n        \"parent\": \"150100\"\n    },\n    {\n        \"name\": \"东河区\",\n        \"value\": \"150202\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"昆都仑区\",\n        \"value\": \"150203\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"青山区\",\n        \"value\": \"150204\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"石拐区\",\n        \"value\": \"150205\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"白云鄂博矿区\",\n        \"value\": \"150206\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"九原区\",\n        \"value\": \"150207\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"土默特右旗\",\n        \"value\": \"150221\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"固阳县\",\n        \"value\": \"150222\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"达尔罕茂明安联合旗\",\n        \"value\": \"150223\",\n        \"parent\": \"150200\"\n    },\n    {\n        \"name\": \"海勃湾区\",\n        \"value\": \"150302\",\n        \"parent\": \"150300\"\n    },\n    {\n        \"name\": \"海南区\",\n        \"value\": \"150303\",\n        \"parent\": \"150300\"\n    },\n    {\n        \"name\": \"乌达区\",\n        \"value\": \"150304\",\n        \"parent\": \"150300\"\n    },\n    {\n        \"name\": \"红山区\",\n        \"value\": \"150402\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"元宝山区\",\n        \"value\": \"150403\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"松山区\",\n        \"value\": \"150404\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"阿鲁科尔沁旗\",\n        \"value\": \"150421\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"巴林左旗\",\n        \"value\": \"150422\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"巴林右旗\",\n        \"value\": \"150423\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"林西县\",\n        \"value\": \"150424\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"克什克腾旗\",\n        \"value\": \"150425\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"翁牛特旗\",\n        \"value\": \"150426\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"喀喇沁旗\",\n        \"value\": \"150428\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"宁城县\",\n        \"value\": \"150429\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"敖汉旗\",\n        \"value\": \"150430\",\n        \"parent\": \"150400\"\n    },\n    {\n        \"name\": \"科尔沁区\",\n        \"value\": \"150502\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"科尔沁左翼中旗\",\n        \"value\": \"150521\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"科尔沁左翼后旗\",\n        \"value\": \"150522\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"开鲁县\",\n        \"value\": \"150523\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"库伦旗\",\n        \"value\": \"150524\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"奈曼旗\",\n        \"value\": \"150525\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"扎鲁特旗\",\n        \"value\": \"150526\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"霍林郭勒市\",\n        \"value\": \"150581\",\n        \"parent\": \"150500\"\n    },\n    {\n        \"name\": \"东胜区\",\n        \"value\": \"150602\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"达拉特旗\",\n        \"value\": \"150621\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"准格尔旗\",\n        \"value\": \"150622\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"鄂托克前旗\",\n        \"value\": \"150623\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"鄂托克旗\",\n        \"value\": \"150624\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"杭锦旗\",\n        \"value\": \"150625\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"乌审旗\",\n        \"value\": \"150626\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"伊金霍洛旗\",\n        \"value\": \"150627\",\n        \"parent\": \"150600\"\n    },\n    {\n        \"name\": \"海拉尔区\",\n        \"value\": \"150702\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"扎赉诺尔区\",\n        \"value\": \"150703\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"阿荣旗\",\n        \"value\": \"150721\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"莫力达瓦达斡尔族自治旗\",\n        \"value\": \"150722\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"鄂伦春自治旗\",\n        \"value\": \"150723\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"鄂温克族自治旗\",\n        \"value\": \"150724\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"陈巴尔虎旗\",\n        \"value\": \"150725\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"新巴尔虎左旗\",\n        \"value\": \"150726\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"新巴尔虎右旗\",\n        \"value\": \"150727\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"满洲里市\",\n        \"value\": \"150781\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"牙克石市\",\n        \"value\": \"150782\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"扎兰屯市\",\n        \"value\": \"150783\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"额尔古纳市\",\n        \"value\": \"150784\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"根河市\",\n        \"value\": \"150785\",\n        \"parent\": \"150700\"\n    },\n    {\n        \"name\": \"临河区\",\n        \"value\": \"150802\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"五原县\",\n        \"value\": \"150821\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"磴口县\",\n        \"value\": \"150822\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"乌拉特前旗\",\n        \"value\": \"150823\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"乌拉特中旗\",\n        \"value\": \"150824\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"乌拉特后旗\",\n        \"value\": \"150825\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"杭锦后旗\",\n        \"value\": \"150826\",\n        \"parent\": \"150800\"\n    },\n    {\n        \"name\": \"集宁区\",\n        \"value\": \"150902\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"卓资县\",\n        \"value\": \"150921\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"化德县\",\n        \"value\": \"150922\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"商都县\",\n        \"value\": \"150923\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"兴和县\",\n        \"value\": \"150924\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"凉城县\",\n        \"value\": \"150925\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"察哈尔右翼前旗\",\n        \"value\": \"150926\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"察哈尔右翼中旗\",\n        \"value\": \"150927\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"察哈尔右翼后旗\",\n        \"value\": \"150928\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"四子王旗\",\n        \"value\": \"150929\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"丰镇市\",\n        \"value\": \"150981\",\n        \"parent\": \"150900\"\n    },\n    {\n        \"name\": \"乌兰浩特市\",\n        \"value\": \"152201\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"阿尔山市\",\n        \"value\": \"152202\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"科尔沁右翼前旗\",\n        \"value\": \"152221\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"科尔沁右翼中旗\",\n        \"value\": \"152222\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"扎赉特旗\",\n        \"value\": \"152223\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"突泉县\",\n        \"value\": \"152224\",\n        \"parent\": \"152200\"\n    },\n    {\n        \"name\": \"二连浩特市\",\n        \"value\": \"152501\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"锡林浩特市\",\n        \"value\": \"152502\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"阿巴嘎旗\",\n        \"value\": \"152522\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"苏尼特左旗\",\n        \"value\": \"152523\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"苏尼特右旗\",\n        \"value\": \"152524\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"东乌珠穆沁旗\",\n        \"value\": \"152525\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"西乌珠穆沁旗\",\n        \"value\": \"152526\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"太仆寺旗\",\n        \"value\": \"152527\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"镶黄旗\",\n        \"value\": \"152528\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"正镶白旗\",\n        \"value\": \"152529\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"正蓝旗\",\n        \"value\": \"152530\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"多伦县\",\n        \"value\": \"152531\",\n        \"parent\": \"152500\"\n    },\n    {\n        \"name\": \"阿拉善左旗\",\n        \"value\": \"152921\",\n        \"parent\": \"152900\"\n    },\n    {\n        \"name\": \"阿拉善右旗\",\n        \"value\": \"152922\",\n        \"parent\": \"152900\"\n    },\n    {\n        \"name\": \"额济纳旗\",\n        \"value\": \"152923\",\n        \"parent\": \"152900\"\n    },\n    {\n        \"name\": \"沈阳市\",\n        \"value\": \"210100\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"大连市\",\n        \"value\": \"210200\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"鞍山市\",\n        \"value\": \"210300\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"抚顺市\",\n        \"value\": \"210400\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"本溪市\",\n        \"value\": \"210500\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"丹东市\",\n        \"value\": \"210600\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"锦州市\",\n        \"value\": \"210700\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"营口市\",\n        \"value\": \"210800\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"阜新市\",\n        \"value\": \"210900\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"辽阳市\",\n        \"value\": \"211000\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"盘锦市\",\n        \"value\": \"211100\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"铁岭市\",\n        \"value\": \"211200\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"朝阳市\",\n        \"value\": \"211300\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"葫芦岛市\",\n        \"value\": \"211400\",\n        \"parent\": \"210000\"\n    },\n    {\n        \"name\": \"和平区\",\n        \"value\": \"210102\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"沈河区\",\n        \"value\": \"210103\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"大东区\",\n        \"value\": \"210104\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"皇姑区\",\n        \"value\": \"210105\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"铁西区\",\n        \"value\": \"210106\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"苏家屯区\",\n        \"value\": \"210111\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"浑南区\",\n        \"value\": \"210112\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"沈北新区\",\n        \"value\": \"210113\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"于洪区\",\n        \"value\": \"210114\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"辽中县\",\n        \"value\": \"210122\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"康平县\",\n        \"value\": \"210123\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"法库县\",\n        \"value\": \"210124\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"新民市\",\n        \"value\": \"210181\",\n        \"parent\": \"210100\"\n    },\n    {\n        \"name\": \"中山区\",\n        \"value\": \"210202\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"西岗区\",\n        \"value\": \"210203\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"沙河口区\",\n        \"value\": \"210204\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"甘井子区\",\n        \"value\": \"210211\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"旅顺口区\",\n        \"value\": \"210212\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"金州区\",\n        \"value\": \"210213\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"长海县\",\n        \"value\": \"210224\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"瓦房店市\",\n        \"value\": \"210281\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"普兰店市\",\n        \"value\": \"210282\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"庄河市\",\n        \"value\": \"210283\",\n        \"parent\": \"210200\"\n    },\n    {\n        \"name\": \"铁东区\",\n        \"value\": \"210302\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"铁西区\",\n        \"value\": \"210303\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"立山区\",\n        \"value\": \"210304\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"千山区\",\n        \"value\": \"210311\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"台安县\",\n        \"value\": \"210321\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"岫岩满族自治县\",\n        \"value\": \"210323\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"海城市\",\n        \"value\": \"210381\",\n        \"parent\": \"210300\"\n    },\n    {\n        \"name\": \"新抚区\",\n        \"value\": \"210402\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"东洲区\",\n        \"value\": \"210403\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"望花区\",\n        \"value\": \"210404\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"顺城区\",\n        \"value\": \"210411\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"抚顺县\",\n        \"value\": \"210421\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"新宾满族自治县\",\n        \"value\": \"210422\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"清原满族自治县\",\n        \"value\": \"210423\",\n        \"parent\": \"210400\"\n    },\n    {\n        \"name\": \"平山区\",\n        \"value\": \"210502\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"溪湖区\",\n        \"value\": \"210503\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"明山区\",\n        \"value\": \"210504\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"南芬区\",\n        \"value\": \"210505\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"本溪满族自治县\",\n        \"value\": \"210521\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"桓仁满族自治县\",\n        \"value\": \"210522\",\n        \"parent\": \"210500\"\n    },\n    {\n        \"name\": \"元宝区\",\n        \"value\": \"210602\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"振兴区\",\n        \"value\": \"210603\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"振安区\",\n        \"value\": \"210604\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"宽甸满族自治县\",\n        \"value\": \"210624\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"东港市\",\n        \"value\": \"210681\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"凤城市\",\n        \"value\": \"210682\",\n        \"parent\": \"210600\"\n    },\n    {\n        \"name\": \"古塔区\",\n        \"value\": \"210702\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"凌河区\",\n        \"value\": \"210703\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"太和区\",\n        \"value\": \"210711\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"黑山县\",\n        \"value\": \"210726\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"义县\",\n        \"value\": \"210727\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"凌海市\",\n        \"value\": \"210781\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"北镇市\",\n        \"value\": \"210782\",\n        \"parent\": \"210700\"\n    },\n    {\n        \"name\": \"站前区\",\n        \"value\": \"210802\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"西市区\",\n        \"value\": \"210803\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"鲅鱼圈区\",\n        \"value\": \"210804\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"老边区\",\n        \"value\": \"210811\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"盖州市\",\n        \"value\": \"210881\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"大石桥市\",\n        \"value\": \"210882\",\n        \"parent\": \"210800\"\n    },\n    {\n        \"name\": \"海州区\",\n        \"value\": \"210902\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"新邱区\",\n        \"value\": \"210903\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"太平区\",\n        \"value\": \"210904\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"清河门区\",\n        \"value\": \"210905\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"细河区\",\n        \"value\": \"210911\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"阜新蒙古族自治县\",\n        \"value\": \"210921\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"彰武县\",\n        \"value\": \"210922\",\n        \"parent\": \"210900\"\n    },\n    {\n        \"name\": \"白塔区\",\n        \"value\": \"211002\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"文圣区\",\n        \"value\": \"211003\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"宏伟区\",\n        \"value\": \"211004\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"弓长岭区\",\n        \"value\": \"211005\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"太子河区\",\n        \"value\": \"211011\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"辽阳县\",\n        \"value\": \"211021\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"灯塔市\",\n        \"value\": \"211081\",\n        \"parent\": \"211000\"\n    },\n    {\n        \"name\": \"双台子区\",\n        \"value\": \"211102\",\n        \"parent\": \"211100\"\n    },\n    {\n        \"name\": \"兴隆台区\",\n        \"value\": \"211103\",\n        \"parent\": \"211100\"\n    },\n    {\n        \"name\": \"大洼县\",\n        \"value\": \"211121\",\n        \"parent\": \"211100\"\n    },\n    {\n        \"name\": \"盘山县\",\n        \"value\": \"211122\",\n        \"parent\": \"211100\"\n    },\n    {\n        \"name\": \"银州区\",\n        \"value\": \"211202\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"清河区\",\n        \"value\": \"211204\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"铁岭县\",\n        \"value\": \"211221\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"西丰县\",\n        \"value\": \"211223\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"昌图县\",\n        \"value\": \"211224\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"调兵山市\",\n        \"value\": \"211281\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"开原市\",\n        \"value\": \"211282\",\n        \"parent\": \"211200\"\n    },\n    {\n        \"name\": \"双塔区\",\n        \"value\": \"211302\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"龙城区\",\n        \"value\": \"211303\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"朝阳县\",\n        \"value\": \"211321\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"建平县\",\n        \"value\": \"211322\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"喀喇沁左翼蒙古族自治县\",\n        \"value\": \"211324\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"北票市\",\n        \"value\": \"211381\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"凌源市\",\n        \"value\": \"211382\",\n        \"parent\": \"211300\"\n    },\n    {\n        \"name\": \"连山区\",\n        \"value\": \"211402\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"龙港区\",\n        \"value\": \"211403\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"南票区\",\n        \"value\": \"211404\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"绥中县\",\n        \"value\": \"211421\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"建昌县\",\n        \"value\": \"211422\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"兴城市\",\n        \"value\": \"211481\",\n        \"parent\": \"211400\"\n    },\n    {\n        \"name\": \"长春市\",\n        \"value\": \"220100\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"吉林市\",\n        \"value\": \"220200\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"四平市\",\n        \"value\": \"220300\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"辽源市\",\n        \"value\": \"220400\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"通化市\",\n        \"value\": \"220500\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"白山市\",\n        \"value\": \"220600\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"松原市\",\n        \"value\": \"220700\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"白城市\",\n        \"value\": \"220800\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"延边朝鲜族自治州\",\n        \"value\": \"222400\",\n        \"parent\": \"220000\"\n    },\n    {\n        \"name\": \"南关区\",\n        \"value\": \"220102\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"宽城区\",\n        \"value\": \"220103\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"朝阳区\",\n        \"value\": \"220104\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"二道区\",\n        \"value\": \"220105\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"绿园区\",\n        \"value\": \"220106\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"双阳区\",\n        \"value\": \"220112\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"九台区\",\n        \"value\": \"220113\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"农安县\",\n        \"value\": \"220122\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"榆树市\",\n        \"value\": \"220182\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"德惠市\",\n        \"value\": \"220183\",\n        \"parent\": \"220100\"\n    },\n    {\n        \"name\": \"昌邑区\",\n        \"value\": \"220202\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"龙潭区\",\n        \"value\": \"220203\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"船营区\",\n        \"value\": \"220204\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"丰满区\",\n        \"value\": \"220211\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"永吉县\",\n        \"value\": \"220221\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"蛟河市\",\n        \"value\": \"220281\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"桦甸市\",\n        \"value\": \"220282\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"舒兰市\",\n        \"value\": \"220283\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"磐石市\",\n        \"value\": \"220284\",\n        \"parent\": \"220200\"\n    },\n    {\n        \"name\": \"铁西区\",\n        \"value\": \"220302\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"铁东区\",\n        \"value\": \"220303\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"梨树县\",\n        \"value\": \"220322\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"伊通满族自治县\",\n        \"value\": \"220323\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"公主岭市\",\n        \"value\": \"220381\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"双辽市\",\n        \"value\": \"220382\",\n        \"parent\": \"220300\"\n    },\n    {\n        \"name\": \"龙山区\",\n        \"value\": \"220402\",\n        \"parent\": \"220400\"\n    },\n    {\n        \"name\": \"西安区\",\n        \"value\": \"220403\",\n        \"parent\": \"220400\"\n    },\n    {\n        \"name\": \"东丰县\",\n        \"value\": \"220421\",\n        \"parent\": \"220400\"\n    },\n    {\n        \"name\": \"东辽县\",\n        \"value\": \"220422\",\n        \"parent\": \"220400\"\n    },\n    {\n        \"name\": \"东昌区\",\n        \"value\": \"220502\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"二道江区\",\n        \"value\": \"220503\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"通化县\",\n        \"value\": \"220521\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"辉南县\",\n        \"value\": \"220523\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"柳河县\",\n        \"value\": \"220524\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"梅河口市\",\n        \"value\": \"220581\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"集安市\",\n        \"value\": \"220582\",\n        \"parent\": \"220500\"\n    },\n    {\n        \"name\": \"浑江区\",\n        \"value\": \"220602\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"江源区\",\n        \"value\": \"220605\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"抚松县\",\n        \"value\": \"220621\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"靖宇县\",\n        \"value\": \"220622\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"长白朝鲜族自治县\",\n        \"value\": \"220623\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"临江市\",\n        \"value\": \"220681\",\n        \"parent\": \"220600\"\n    },\n    {\n        \"name\": \"宁江区\",\n        \"value\": \"220702\",\n        \"parent\": \"220700\"\n    },\n    {\n        \"name\": \"前郭尔罗斯蒙古族自治县\",\n        \"value\": \"220721\",\n        \"parent\": \"220700\"\n    },\n    {\n        \"name\": \"长岭县\",\n        \"value\": \"220722\",\n        \"parent\": \"220700\"\n    },\n    {\n        \"name\": \"乾安县\",\n        \"value\": \"220723\",\n        \"parent\": \"220700\"\n    },\n    {\n        \"name\": \"扶余市\",\n        \"value\": \"220781\",\n        \"parent\": \"220700\"\n    },\n    {\n        \"name\": \"洮北区\",\n        \"value\": \"220802\",\n        \"parent\": \"220800\"\n    },\n    {\n        \"name\": \"镇赉县\",\n        \"value\": \"220821\",\n        \"parent\": \"220800\"\n    },\n    {\n        \"name\": \"通榆县\",\n        \"value\": \"220822\",\n        \"parent\": \"220800\"\n    },\n    {\n        \"name\": \"洮南市\",\n        \"value\": \"220881\",\n        \"parent\": \"220800\"\n    },\n    {\n        \"name\": \"大安市\",\n        \"value\": \"220882\",\n        \"parent\": \"220800\"\n    },\n    {\n        \"name\": \"延吉市\",\n        \"value\": \"222401\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"图们市\",\n        \"value\": \"222402\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"敦化市\",\n        \"value\": \"222403\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"珲春市\",\n        \"value\": \"222404\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"龙井市\",\n        \"value\": \"222405\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"和龙市\",\n        \"value\": \"222406\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"汪清县\",\n        \"value\": \"222424\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"安图县\",\n        \"value\": \"222426\",\n        \"parent\": \"222400\"\n    },\n    {\n        \"name\": \"哈尔滨市\",\n        \"value\": \"230100\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"齐齐哈尔市\",\n        \"value\": \"230200\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"鸡西市\",\n        \"value\": \"230300\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"鹤岗市\",\n        \"value\": \"230400\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"双鸭山市\",\n        \"value\": \"230500\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"大庆市\",\n        \"value\": \"230600\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"伊春市\",\n        \"value\": \"230700\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"佳木斯市\",\n        \"value\": \"230800\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"七台河市\",\n        \"value\": \"230900\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"牡丹江市\",\n        \"value\": \"231000\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"黑河市\",\n        \"value\": \"231100\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"绥化市\",\n        \"value\": \"231200\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"大兴安岭地区\",\n        \"value\": \"232700\",\n        \"parent\": \"230000\"\n    },\n    {\n        \"name\": \"道里区\",\n        \"value\": \"230102\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"南岗区\",\n        \"value\": \"230103\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"道外区\",\n        \"value\": \"230104\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"平房区\",\n        \"value\": \"230108\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"松北区\",\n        \"value\": \"230109\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"香坊区\",\n        \"value\": \"230110\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"呼兰区\",\n        \"value\": \"230111\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"阿城区\",\n        \"value\": \"230112\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"双城区\",\n        \"value\": \"230113\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"依兰县\",\n        \"value\": \"230123\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"方正县\",\n        \"value\": \"230124\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"宾县\",\n        \"value\": \"230125\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"巴彦县\",\n        \"value\": \"230126\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"木兰县\",\n        \"value\": \"230127\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"通河县\",\n        \"value\": \"230128\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"延寿县\",\n        \"value\": \"230129\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"尚志市\",\n        \"value\": \"230183\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"五常市\",\n        \"value\": \"230184\",\n        \"parent\": \"230100\"\n    },\n    {\n        \"name\": \"龙沙区\",\n        \"value\": \"230202\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"建华区\",\n        \"value\": \"230203\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"铁锋区\",\n        \"value\": \"230204\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"昂昂溪区\",\n        \"value\": \"230205\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"富拉尔基区\",\n        \"value\": \"230206\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"碾子山区\",\n        \"value\": \"230207\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"梅里斯达斡尔族区\",\n        \"value\": \"230208\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"龙江县\",\n        \"value\": \"230221\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"依安县\",\n        \"value\": \"230223\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"泰来县\",\n        \"value\": \"230224\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"甘南县\",\n        \"value\": \"230225\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"富裕县\",\n        \"value\": \"230227\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"克山县\",\n        \"value\": \"230229\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"克东县\",\n        \"value\": \"230230\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"拜泉县\",\n        \"value\": \"230231\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"讷河市\",\n        \"value\": \"230281\",\n        \"parent\": \"230200\"\n    },\n    {\n        \"name\": \"鸡冠区\",\n        \"value\": \"230302\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"恒山区\",\n        \"value\": \"230303\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"滴道区\",\n        \"value\": \"230304\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"梨树区\",\n        \"value\": \"230305\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"城子河区\",\n        \"value\": \"230306\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"麻山区\",\n        \"value\": \"230307\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"鸡东县\",\n        \"value\": \"230321\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"虎林市\",\n        \"value\": \"230381\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"密山市\",\n        \"value\": \"230382\",\n        \"parent\": \"230300\"\n    },\n    {\n        \"name\": \"向阳区\",\n        \"value\": \"230402\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"工农区\",\n        \"value\": \"230403\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"南山区\",\n        \"value\": \"230404\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"兴安区\",\n        \"value\": \"230405\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"东山区\",\n        \"value\": \"230406\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"兴山区\",\n        \"value\": \"230407\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"萝北县\",\n        \"value\": \"230421\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"绥滨县\",\n        \"value\": \"230422\",\n        \"parent\": \"230400\"\n    },\n    {\n        \"name\": \"尖山区\",\n        \"value\": \"230502\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"岭东区\",\n        \"value\": \"230503\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"四方台区\",\n        \"value\": \"230505\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"宝山区\",\n        \"value\": \"230506\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"集贤县\",\n        \"value\": \"230521\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"友谊县\",\n        \"value\": \"230522\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"宝清县\",\n        \"value\": \"230523\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"饶河县\",\n        \"value\": \"230524\",\n        \"parent\": \"230500\"\n    },\n    {\n        \"name\": \"萨尔图区\",\n        \"value\": \"230602\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"龙凤区\",\n        \"value\": \"230603\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"让胡路区\",\n        \"value\": \"230604\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"红岗区\",\n        \"value\": \"230605\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"大同区\",\n        \"value\": \"230606\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"肇州县\",\n        \"value\": \"230621\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"肇源县\",\n        \"value\": \"230622\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"林甸县\",\n        \"value\": \"230623\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"杜尔伯特蒙古族自治县\",\n        \"value\": \"230624\",\n        \"parent\": \"230600\"\n    },\n    {\n        \"name\": \"伊春区\",\n        \"value\": \"230702\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"南岔区\",\n        \"value\": \"230703\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"友好区\",\n        \"value\": \"230704\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"西林区\",\n        \"value\": \"230705\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"翠峦区\",\n        \"value\": \"230706\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"新青区\",\n        \"value\": \"230707\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"美溪区\",\n        \"value\": \"230708\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"金山屯区\",\n        \"value\": \"230709\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"五营区\",\n        \"value\": \"230710\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"乌马河区\",\n        \"value\": \"230711\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"汤旺河区\",\n        \"value\": \"230712\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"带岭区\",\n        \"value\": \"230713\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"乌伊岭区\",\n        \"value\": \"230714\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"红星区\",\n        \"value\": \"230715\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"上甘岭区\",\n        \"value\": \"230716\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"嘉荫县\",\n        \"value\": \"230722\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"铁力市\",\n        \"value\": \"230781\",\n        \"parent\": \"230700\"\n    },\n    {\n        \"name\": \"向阳区\",\n        \"value\": \"230803\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"前进区\",\n        \"value\": \"230804\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"东风区\",\n        \"value\": \"230805\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"郊区\",\n        \"value\": \"230811\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"桦南县\",\n        \"value\": \"230822\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"桦川县\",\n        \"value\": \"230826\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"汤原县\",\n        \"value\": \"230828\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"抚远县\",\n        \"value\": \"230833\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"同江市\",\n        \"value\": \"230881\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"富锦市\",\n        \"value\": \"230882\",\n        \"parent\": \"230800\"\n    },\n    {\n        \"name\": \"新兴区\",\n        \"value\": \"230902\",\n        \"parent\": \"230900\"\n    },\n    {\n        \"name\": \"桃山区\",\n        \"value\": \"230903\",\n        \"parent\": \"230900\"\n    },\n    {\n        \"name\": \"茄子河区\",\n        \"value\": \"230904\",\n        \"parent\": \"230900\"\n    },\n    {\n        \"name\": \"勃利县\",\n        \"value\": \"230921\",\n        \"parent\": \"230900\"\n    },\n    {\n        \"name\": \"东安区\",\n        \"value\": \"231002\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"阳明区\",\n        \"value\": \"231003\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"爱民区\",\n        \"value\": \"231004\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"西安区\",\n        \"value\": \"231005\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"东宁县\",\n        \"value\": \"231024\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"林口县\",\n        \"value\": \"231025\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"绥芬河市\",\n        \"value\": \"231081\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"海林市\",\n        \"value\": \"231083\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"宁安市\",\n        \"value\": \"231084\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"穆棱市\",\n        \"value\": \"231085\",\n        \"parent\": \"231000\"\n    },\n    {\n        \"name\": \"爱辉区\",\n        \"value\": \"231102\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"嫩江县\",\n        \"value\": \"231121\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"逊克县\",\n        \"value\": \"231123\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"孙吴县\",\n        \"value\": \"231124\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"北安市\",\n        \"value\": \"231181\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"五大连池市\",\n        \"value\": \"231182\",\n        \"parent\": \"231100\"\n    },\n    {\n        \"name\": \"北林区\",\n        \"value\": \"231202\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"望奎县\",\n        \"value\": \"231221\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"兰西县\",\n        \"value\": \"231222\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"青冈县\",\n        \"value\": \"231223\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"庆安县\",\n        \"value\": \"231224\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"明水县\",\n        \"value\": \"231225\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"绥棱县\",\n        \"value\": \"231226\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"安达市\",\n        \"value\": \"231281\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"肇东市\",\n        \"value\": \"231282\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"海伦市\",\n        \"value\": \"231283\",\n        \"parent\": \"231200\"\n    },\n    {\n        \"name\": \"加格达奇区\",\n        \"value\": \"232701\",\n        \"parent\": \"232700\"\n    },\n    {\n        \"name\": \"呼玛县\",\n        \"value\": \"232721\",\n        \"parent\": \"232700\"\n    },\n    {\n        \"name\": \"塔河县\",\n        \"value\": \"232722\",\n        \"parent\": \"232700\"\n    },\n    {\n        \"name\": \"漠河县\",\n        \"value\": \"232723\",\n        \"parent\": \"232700\"\n    },\n    {\n        \"name\": \"上海市市辖区\",\n        \"value\": \"310100\",\n        \"parent\": \"310000\"\n    },\n    {\n        \"name\": \"上海市郊县\",\n        \"value\": \"310200\",\n        \"parent\": \"310000\"\n    },\n    {\n        \"name\": \"黄浦区\",\n        \"value\": \"310101\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"徐汇区\",\n        \"value\": \"310104\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"长宁区\",\n        \"value\": \"310105\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"静安区\",\n        \"value\": \"310106\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"普陀区\",\n        \"value\": \"310107\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"闸北区\",\n        \"value\": \"310108\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"虹口区\",\n        \"value\": \"310109\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"杨浦区\",\n        \"value\": \"310110\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"闵行区\",\n        \"value\": \"310112\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"宝山区\",\n        \"value\": \"310113\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"嘉定区\",\n        \"value\": \"310114\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"浦东新区\",\n        \"value\": \"310115\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"金山区\",\n        \"value\": \"310116\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"松江区\",\n        \"value\": \"310117\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"青浦区\",\n        \"value\": \"310118\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"奉贤区\",\n        \"value\": \"310120\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"崇明县\",\n        \"value\": \"310230\",\n        \"parent\": \"310100\"\n    },\n    {\n        \"name\": \"南京市\",\n        \"value\": \"320100\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"无锡市\",\n        \"value\": \"320200\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"徐州市\",\n        \"value\": \"320300\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"常州市\",\n        \"value\": \"320400\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"苏州市\",\n        \"value\": \"320500\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"南通市\",\n        \"value\": \"320600\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"连云港市\",\n        \"value\": \"320700\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"淮安市\",\n        \"value\": \"320800\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"盐城市\",\n        \"value\": \"320900\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"扬州市\",\n        \"value\": \"321000\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"镇江市\",\n        \"value\": \"321100\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"泰州市\",\n        \"value\": \"321200\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"宿迁市\",\n        \"value\": \"321300\",\n        \"parent\": \"320000\"\n    },\n    {\n        \"name\": \"玄武区\",\n        \"value\": \"320102\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"秦淮区\",\n        \"value\": \"320104\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"建邺区\",\n        \"value\": \"320105\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"鼓楼区\",\n        \"value\": \"320106\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"浦口区\",\n        \"value\": \"320111\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"栖霞区\",\n        \"value\": \"320113\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"雨花台区\",\n        \"value\": \"320114\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"江宁区\",\n        \"value\": \"320115\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"六合区\",\n        \"value\": \"320116\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"溧水区\",\n        \"value\": \"320117\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"高淳区\",\n        \"value\": \"320118\",\n        \"parent\": \"320100\"\n    },\n    {\n        \"name\": \"崇安区\",\n        \"value\": \"320202\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"南长区\",\n        \"value\": \"320203\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"北塘区\",\n        \"value\": \"320204\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"锡山区\",\n        \"value\": \"320205\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"惠山区\",\n        \"value\": \"320206\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"滨湖区\",\n        \"value\": \"320211\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"江阴市\",\n        \"value\": \"320281\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"宜兴市\",\n        \"value\": \"320282\",\n        \"parent\": \"320200\"\n    },\n    {\n        \"name\": \"鼓楼区\",\n        \"value\": \"320302\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"云龙区\",\n        \"value\": \"320303\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"贾汪区\",\n        \"value\": \"320305\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"泉山区\",\n        \"value\": \"320311\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"铜山区\",\n        \"value\": \"320312\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"丰县\",\n        \"value\": \"320321\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"沛县\",\n        \"value\": \"320322\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"睢宁县\",\n        \"value\": \"320324\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"新沂市\",\n        \"value\": \"320381\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"邳州市\",\n        \"value\": \"320382\",\n        \"parent\": \"320300\"\n    },\n    {\n        \"name\": \"天宁区\",\n        \"value\": \"320402\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"钟楼区\",\n        \"value\": \"320404\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"新北区\",\n        \"value\": \"320411\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"武进区\",\n        \"value\": \"320412\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"金坛区\",\n        \"value\": \"320413\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"溧阳市\",\n        \"value\": \"320481\",\n        \"parent\": \"320400\"\n    },\n    {\n        \"name\": \"虎丘区\",\n        \"value\": \"320505\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"吴中区\",\n        \"value\": \"320506\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"相城区\",\n        \"value\": \"320507\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"姑苏区\",\n        \"value\": \"320508\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"吴江区\",\n        \"value\": \"320509\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"常熟市\",\n        \"value\": \"320581\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"张家港市\",\n        \"value\": \"320582\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"昆山市\",\n        \"value\": \"320583\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"太仓市\",\n        \"value\": \"320585\",\n        \"parent\": \"320500\"\n    },\n    {\n        \"name\": \"崇川区\",\n        \"value\": \"320602\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"港闸区\",\n        \"value\": \"320611\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"通州区\",\n        \"value\": \"320612\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"海安县\",\n        \"value\": \"320621\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"如东县\",\n        \"value\": \"320623\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"启东市\",\n        \"value\": \"320681\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"如皋市\",\n        \"value\": \"320682\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"海门市\",\n        \"value\": \"320684\",\n        \"parent\": \"320600\"\n    },\n    {\n        \"name\": \"连云区\",\n        \"value\": \"320703\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"海州区\",\n        \"value\": \"320706\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"赣榆区\",\n        \"value\": \"320707\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"东海县\",\n        \"value\": \"320722\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"灌云县\",\n        \"value\": \"320723\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"灌南县\",\n        \"value\": \"320724\",\n        \"parent\": \"320700\"\n    },\n    {\n        \"name\": \"清河区\",\n        \"value\": \"320802\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"淮安区\",\n        \"value\": \"320803\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"淮阴区\",\n        \"value\": \"320804\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"清浦区\",\n        \"value\": \"320811\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"涟水县\",\n        \"value\": \"320826\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"洪泽县\",\n        \"value\": \"320829\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"盱眙县\",\n        \"value\": \"320830\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"金湖县\",\n        \"value\": \"320831\",\n        \"parent\": \"320800\"\n    },\n    {\n        \"name\": \"亭湖区\",\n        \"value\": \"320902\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"盐都区\",\n        \"value\": \"320903\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"大丰区\",\n        \"value\": \"320904\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"响水县\",\n        \"value\": \"320921\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"滨海县\",\n        \"value\": \"320922\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"阜宁县\",\n        \"value\": \"320923\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"射阳县\",\n        \"value\": \"320924\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"建湖县\",\n        \"value\": \"320925\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"东台市\",\n        \"value\": \"320981\",\n        \"parent\": \"320900\"\n    },\n    {\n        \"name\": \"广陵区\",\n        \"value\": \"321002\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"邗江区\",\n        \"value\": \"321003\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"江都区\",\n        \"value\": \"321012\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"宝应县\",\n        \"value\": \"321023\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"仪征市\",\n        \"value\": \"321081\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"高邮市\",\n        \"value\": \"321084\",\n        \"parent\": \"321000\"\n    },\n    {\n        \"name\": \"京口区\",\n        \"value\": \"321102\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"润州区\",\n        \"value\": \"321111\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"丹徒区\",\n        \"value\": \"321112\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"丹阳市\",\n        \"value\": \"321181\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"扬中市\",\n        \"value\": \"321182\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"句容市\",\n        \"value\": \"321183\",\n        \"parent\": \"321100\"\n    },\n    {\n        \"name\": \"海陵区\",\n        \"value\": \"321202\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"高港区\",\n        \"value\": \"321203\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"姜堰区\",\n        \"value\": \"321204\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"兴化市\",\n        \"value\": \"321281\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"靖江市\",\n        \"value\": \"321282\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"泰兴市\",\n        \"value\": \"321283\",\n        \"parent\": \"321200\"\n    },\n    {\n        \"name\": \"宿城区\",\n        \"value\": \"321302\",\n        \"parent\": \"321300\"\n    },\n    {\n        \"name\": \"宿豫区\",\n        \"value\": \"321311\",\n        \"parent\": \"321300\"\n    },\n    {\n        \"name\": \"沭阳县\",\n        \"value\": \"321322\",\n        \"parent\": \"321300\"\n    },\n    {\n        \"name\": \"泗阳县\",\n        \"value\": \"321323\",\n        \"parent\": \"321300\"\n    },\n    {\n        \"name\": \"泗洪县\",\n        \"value\": \"321324\",\n        \"parent\": \"321300\"\n    },\n    {\n        \"name\": \"杭州市\",\n        \"value\": \"330100\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"宁波市\",\n        \"value\": \"330200\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"温州市\",\n        \"value\": \"330300\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"嘉兴市\",\n        \"value\": \"330400\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"湖州市\",\n        \"value\": \"330500\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"绍兴市\",\n        \"value\": \"330600\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"金华市\",\n        \"value\": \"330700\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"衢州市\",\n        \"value\": \"330800\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"舟山市\",\n        \"value\": \"330900\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"台州市\",\n        \"value\": \"331000\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"丽水市\",\n        \"value\": \"331100\",\n        \"parent\": \"330000\"\n    },\n    {\n        \"name\": \"上城区\",\n        \"value\": \"330102\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"下城区\",\n        \"value\": \"330103\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"江干区\",\n        \"value\": \"330104\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"拱墅区\",\n        \"value\": \"330105\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"西湖区\",\n        \"value\": \"330106\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"滨江区\",\n        \"value\": \"330108\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"萧山区\",\n        \"value\": \"330109\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"余杭区\",\n        \"value\": \"330110\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"富阳区\",\n        \"value\": \"330111\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"桐庐县\",\n        \"value\": \"330122\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"淳安县\",\n        \"value\": \"330127\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"建德市\",\n        \"value\": \"330182\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"临安市\",\n        \"value\": \"330185\",\n        \"parent\": \"330100\"\n    },\n    {\n        \"name\": \"海曙区\",\n        \"value\": \"330203\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"江东区\",\n        \"value\": \"330204\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"江北区\",\n        \"value\": \"330205\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"北仑区\",\n        \"value\": \"330206\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"镇海区\",\n        \"value\": \"330211\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"鄞州区\",\n        \"value\": \"330212\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"象山县\",\n        \"value\": \"330225\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"宁海县\",\n        \"value\": \"330226\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"余姚市\",\n        \"value\": \"330281\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"慈溪市\",\n        \"value\": \"330282\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"奉化市\",\n        \"value\": \"330283\",\n        \"parent\": \"330200\"\n    },\n    {\n        \"name\": \"鹿城区\",\n        \"value\": \"330302\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"龙湾区\",\n        \"value\": \"330303\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"瓯海区\",\n        \"value\": \"330304\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"洞头区\",\n        \"value\": \"330305\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"永嘉县\",\n        \"value\": \"330324\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"平阳县\",\n        \"value\": \"330326\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"苍南县\",\n        \"value\": \"330327\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"文成县\",\n        \"value\": \"330328\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"泰顺县\",\n        \"value\": \"330329\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"瑞安市\",\n        \"value\": \"330381\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"乐清市\",\n        \"value\": \"330382\",\n        \"parent\": \"330300\"\n    },\n    {\n        \"name\": \"南湖区\",\n        \"value\": \"330402\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"秀洲区\",\n        \"value\": \"330411\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"嘉善县\",\n        \"value\": \"330421\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"海盐县\",\n        \"value\": \"330424\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"海宁市\",\n        \"value\": \"330481\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"平湖市\",\n        \"value\": \"330482\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"桐乡市\",\n        \"value\": \"330483\",\n        \"parent\": \"330400\"\n    },\n    {\n        \"name\": \"吴兴区\",\n        \"value\": \"330502\",\n        \"parent\": \"330500\"\n    },\n    {\n        \"name\": \"南浔区\",\n        \"value\": \"330503\",\n        \"parent\": \"330500\"\n    },\n    {\n        \"name\": \"德清县\",\n        \"value\": \"330521\",\n        \"parent\": \"330500\"\n    },\n    {\n        \"name\": \"长兴县\",\n        \"value\": \"330522\",\n        \"parent\": \"330500\"\n    },\n    {\n        \"name\": \"安吉县\",\n        \"value\": \"330523\",\n        \"parent\": \"330500\"\n    },\n    {\n        \"name\": \"越城区\",\n        \"value\": \"330602\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"柯桥区\",\n        \"value\": \"330603\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"上虞区\",\n        \"value\": \"330604\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"新昌县\",\n        \"value\": \"330624\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"诸暨市\",\n        \"value\": \"330681\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"嵊州市\",\n        \"value\": \"330683\",\n        \"parent\": \"330600\"\n    },\n    {\n        \"name\": \"婺城区\",\n        \"value\": \"330702\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"金东区\",\n        \"value\": \"330703\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"武义县\",\n        \"value\": \"330723\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"浦江县\",\n        \"value\": \"330726\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"磐安县\",\n        \"value\": \"330727\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"兰溪市\",\n        \"value\": \"330781\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"义乌市\",\n        \"value\": \"330782\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"东阳市\",\n        \"value\": \"330783\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"永康市\",\n        \"value\": \"330784\",\n        \"parent\": \"330700\"\n    },\n    {\n        \"name\": \"柯城区\",\n        \"value\": \"330802\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"衢江区\",\n        \"value\": \"330803\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"常山县\",\n        \"value\": \"330822\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"开化县\",\n        \"value\": \"330824\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"龙游县\",\n        \"value\": \"330825\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"江山市\",\n        \"value\": \"330881\",\n        \"parent\": \"330800\"\n    },\n    {\n        \"name\": \"定海区\",\n        \"value\": \"330902\",\n        \"parent\": \"330900\"\n    },\n    {\n        \"name\": \"普陀区\",\n        \"value\": \"330903\",\n        \"parent\": \"330900\"\n    },\n    {\n        \"name\": \"岱山县\",\n        \"value\": \"330921\",\n        \"parent\": \"330900\"\n    },\n    {\n        \"name\": \"嵊泗县\",\n        \"value\": \"330922\",\n        \"parent\": \"330900\"\n    },\n    {\n        \"name\": \"椒江区\",\n        \"value\": \"331002\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"黄岩区\",\n        \"value\": \"331003\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"路桥区\",\n        \"value\": \"331004\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"玉环县\",\n        \"value\": \"331021\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"三门县\",\n        \"value\": \"331022\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"天台县\",\n        \"value\": \"331023\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"仙居县\",\n        \"value\": \"331024\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"温岭市\",\n        \"value\": \"331081\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"临海市\",\n        \"value\": \"331082\",\n        \"parent\": \"331000\"\n    },\n    {\n        \"name\": \"莲都区\",\n        \"value\": \"331102\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"青田县\",\n        \"value\": \"331121\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"缙云县\",\n        \"value\": \"331122\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"遂昌县\",\n        \"value\": \"331123\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"松阳县\",\n        \"value\": \"331124\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"云和县\",\n        \"value\": \"331125\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"庆元县\",\n        \"value\": \"331126\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"景宁畲族自治县\",\n        \"value\": \"331127\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"龙泉市\",\n        \"value\": \"331181\",\n        \"parent\": \"331100\"\n    },\n    {\n        \"name\": \"合肥市\",\n        \"value\": \"340100\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"芜湖市\",\n        \"value\": \"340200\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"蚌埠市\",\n        \"value\": \"340300\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"淮南市\",\n        \"value\": \"340400\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"马鞍山市\",\n        \"value\": \"340500\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"淮北市\",\n        \"value\": \"340600\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"铜陵市\",\n        \"value\": \"340700\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"安庆市\",\n        \"value\": \"340800\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"黄山市\",\n        \"value\": \"341000\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"滁州市\",\n        \"value\": \"341100\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"阜阳市\",\n        \"value\": \"341200\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"宿州市\",\n        \"value\": \"341300\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"六安市\",\n        \"value\": \"341500\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"亳州市\",\n        \"value\": \"341600\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"池州市\",\n        \"value\": \"341700\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"宣城市\",\n        \"value\": \"341800\",\n        \"parent\": \"340000\"\n    },\n    {\n        \"name\": \"瑶海区\",\n        \"value\": \"340102\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"庐阳区\",\n        \"value\": \"340103\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"蜀山区\",\n        \"value\": \"340104\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"包河区\",\n        \"value\": \"340111\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"长丰县\",\n        \"value\": \"340121\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"肥东县\",\n        \"value\": \"340122\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"肥西县\",\n        \"value\": \"340123\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"庐江县\",\n        \"value\": \"340124\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"巢湖市\",\n        \"value\": \"340181\",\n        \"parent\": \"340100\"\n    },\n    {\n        \"name\": \"镜湖区\",\n        \"value\": \"340202\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"弋江区\",\n        \"value\": \"340203\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"鸠江区\",\n        \"value\": \"340207\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"三山区\",\n        \"value\": \"340208\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"芜湖县\",\n        \"value\": \"340221\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"繁昌县\",\n        \"value\": \"340222\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"南陵县\",\n        \"value\": \"340223\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"无为县\",\n        \"value\": \"340225\",\n        \"parent\": \"340200\"\n    },\n    {\n        \"name\": \"龙子湖区\",\n        \"value\": \"340302\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"蚌山区\",\n        \"value\": \"340303\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"禹会区\",\n        \"value\": \"340304\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"淮上区\",\n        \"value\": \"340311\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"怀远县\",\n        \"value\": \"340321\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"五河县\",\n        \"value\": \"340322\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"固镇县\",\n        \"value\": \"340323\",\n        \"parent\": \"340300\"\n    },\n    {\n        \"name\": \"大通区\",\n        \"value\": \"340402\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"田家庵区\",\n        \"value\": \"340403\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"谢家集区\",\n        \"value\": \"340404\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"八公山区\",\n        \"value\": \"340405\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"潘集区\",\n        \"value\": \"340406\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"凤台县\",\n        \"value\": \"340421\",\n        \"parent\": \"340400\"\n    },\n    {\n        \"name\": \"花山区\",\n        \"value\": \"340503\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"雨山区\",\n        \"value\": \"340504\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"博望区\",\n        \"value\": \"340506\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"当涂县\",\n        \"value\": \"340521\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"含山县\",\n        \"value\": \"340522\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"和县\",\n        \"value\": \"340523\",\n        \"parent\": \"340500\"\n    },\n    {\n        \"name\": \"杜集区\",\n        \"value\": \"340602\",\n        \"parent\": \"340600\"\n    },\n    {\n        \"name\": \"相山区\",\n        \"value\": \"340603\",\n        \"parent\": \"340600\"\n    },\n    {\n        \"name\": \"烈山区\",\n        \"value\": \"340604\",\n        \"parent\": \"340600\"\n    },\n    {\n        \"name\": \"濉溪县\",\n        \"value\": \"340621\",\n        \"parent\": \"340600\"\n    },\n    {\n        \"name\": \"铜官山区\",\n        \"value\": \"340702\",\n        \"parent\": \"340700\"\n    },\n    {\n        \"name\": \"狮子山区\",\n        \"value\": \"340703\",\n        \"parent\": \"340700\"\n    },\n    {\n        \"name\": \"郊区\",\n        \"value\": \"340711\",\n        \"parent\": \"340700\"\n    },\n    {\n        \"name\": \"铜陵县\",\n        \"value\": \"340721\",\n        \"parent\": \"340700\"\n    },\n    {\n        \"name\": \"迎江区\",\n        \"value\": \"340802\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"大观区\",\n        \"value\": \"340803\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"宜秀区\",\n        \"value\": \"340811\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"怀宁县\",\n        \"value\": \"340822\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"枞阳县\",\n        \"value\": \"340823\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"潜山县\",\n        \"value\": \"340824\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"太湖县\",\n        \"value\": \"340825\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"宿松县\",\n        \"value\": \"340826\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"望江县\",\n        \"value\": \"340827\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"岳西县\",\n        \"value\": \"340828\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"桐城市\",\n        \"value\": \"340881\",\n        \"parent\": \"340800\"\n    },\n    {\n        \"name\": \"屯溪区\",\n        \"value\": \"341002\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"黄山区\",\n        \"value\": \"341003\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"徽州区\",\n        \"value\": \"341004\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"歙县\",\n        \"value\": \"341021\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"休宁县\",\n        \"value\": \"341022\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"黟县\",\n        \"value\": \"341023\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"祁门县\",\n        \"value\": \"341024\",\n        \"parent\": \"341000\"\n    },\n    {\n        \"name\": \"琅琊区\",\n        \"value\": \"341102\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"南谯区\",\n        \"value\": \"341103\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"来安县\",\n        \"value\": \"341122\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"全椒县\",\n        \"value\": \"341124\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"定远县\",\n        \"value\": \"341125\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"凤阳县\",\n        \"value\": \"341126\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"天长市\",\n        \"value\": \"341181\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"明光市\",\n        \"value\": \"341182\",\n        \"parent\": \"341100\"\n    },\n    {\n        \"name\": \"颍州区\",\n        \"value\": \"341202\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"颍东区\",\n        \"value\": \"341203\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"颍泉区\",\n        \"value\": \"341204\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"临泉县\",\n        \"value\": \"341221\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"太和县\",\n        \"value\": \"341222\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"阜南县\",\n        \"value\": \"341225\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"颍上县\",\n        \"value\": \"341226\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"界首市\",\n        \"value\": \"341282\",\n        \"parent\": \"341200\"\n    },\n    {\n        \"name\": \"埇桥区\",\n        \"value\": \"341302\",\n        \"parent\": \"341300\"\n    },\n    {\n        \"name\": \"砀山县\",\n        \"value\": \"341321\",\n        \"parent\": \"341300\"\n    },\n    {\n        \"name\": \"萧县\",\n        \"value\": \"341322\",\n        \"parent\": \"341300\"\n    },\n    {\n        \"name\": \"灵璧县\",\n        \"value\": \"341323\",\n        \"parent\": \"341300\"\n    },\n    {\n        \"name\": \"泗县\",\n        \"value\": \"341324\",\n        \"parent\": \"341300\"\n    },\n    {\n        \"name\": \"金安区\",\n        \"value\": \"341502\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"裕安区\",\n        \"value\": \"341503\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"寿县\",\n        \"value\": \"341521\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"霍邱县\",\n        \"value\": \"341522\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"舒城县\",\n        \"value\": \"341523\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"金寨县\",\n        \"value\": \"341524\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"霍山县\",\n        \"value\": \"341525\",\n        \"parent\": \"341500\"\n    },\n    {\n        \"name\": \"谯城区\",\n        \"value\": \"341602\",\n        \"parent\": \"341600\"\n    },\n    {\n        \"name\": \"涡阳县\",\n        \"value\": \"341621\",\n        \"parent\": \"341600\"\n    },\n    {\n        \"name\": \"蒙城县\",\n        \"value\": \"341622\",\n        \"parent\": \"341600\"\n    },\n    {\n        \"name\": \"利辛县\",\n        \"value\": \"341623\",\n        \"parent\": \"341600\"\n    },\n    {\n        \"name\": \"贵池区\",\n        \"value\": \"341702\",\n        \"parent\": \"341700\"\n    },\n    {\n        \"name\": \"东至县\",\n        \"value\": \"341721\",\n        \"parent\": \"341700\"\n    },\n    {\n        \"name\": \"石台县\",\n        \"value\": \"341722\",\n        \"parent\": \"341700\"\n    },\n    {\n        \"name\": \"青阳县\",\n        \"value\": \"341723\",\n        \"parent\": \"341700\"\n    },\n    {\n        \"name\": \"宣州区\",\n        \"value\": \"341802\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"郎溪县\",\n        \"value\": \"341821\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"广德县\",\n        \"value\": \"341822\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"泾县\",\n        \"value\": \"341823\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"绩溪县\",\n        \"value\": \"341824\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"旌德县\",\n        \"value\": \"341825\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"宁国市\",\n        \"value\": \"341881\",\n        \"parent\": \"341800\"\n    },\n    {\n        \"name\": \"福州市\",\n        \"value\": \"350100\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"厦门市\",\n        \"value\": \"350200\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"莆田市\",\n        \"value\": \"350300\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"三明市\",\n        \"value\": \"350400\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"泉州市\",\n        \"value\": \"350500\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"漳州市\",\n        \"value\": \"350600\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"南平市\",\n        \"value\": \"350700\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"龙岩市\",\n        \"value\": \"350800\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"宁德市\",\n        \"value\": \"350900\",\n        \"parent\": \"350000\"\n    },\n    {\n        \"name\": \"鼓楼区\",\n        \"value\": \"350102\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"台江区\",\n        \"value\": \"350103\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"仓山区\",\n        \"value\": \"350104\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"马尾区\",\n        \"value\": \"350105\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"晋安区\",\n        \"value\": \"350111\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"闽侯县\",\n        \"value\": \"350121\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"连江县\",\n        \"value\": \"350122\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"罗源县\",\n        \"value\": \"350123\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"闽清县\",\n        \"value\": \"350124\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"永泰县\",\n        \"value\": \"350125\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"平潭县\",\n        \"value\": \"350128\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"福清市\",\n        \"value\": \"350181\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"长乐市\",\n        \"value\": \"350182\",\n        \"parent\": \"350100\"\n    },\n    {\n        \"name\": \"思明区\",\n        \"value\": \"350203\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"海沧区\",\n        \"value\": \"350205\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"湖里区\",\n        \"value\": \"350206\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"集美区\",\n        \"value\": \"350211\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"同安区\",\n        \"value\": \"350212\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"翔安区\",\n        \"value\": \"350213\",\n        \"parent\": \"350200\"\n    },\n    {\n        \"name\": \"城厢区\",\n        \"value\": \"350302\",\n        \"parent\": \"350300\"\n    },\n    {\n        \"name\": \"涵江区\",\n        \"value\": \"350303\",\n        \"parent\": \"350300\"\n    },\n    {\n        \"name\": \"荔城区\",\n        \"value\": \"350304\",\n        \"parent\": \"350300\"\n    },\n    {\n        \"name\": \"秀屿区\",\n        \"value\": \"350305\",\n        \"parent\": \"350300\"\n    },\n    {\n        \"name\": \"仙游县\",\n        \"value\": \"350322\",\n        \"parent\": \"350300\"\n    },\n    {\n        \"name\": \"梅列区\",\n        \"value\": \"350402\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"三元区\",\n        \"value\": \"350403\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"明溪县\",\n        \"value\": \"350421\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"清流县\",\n        \"value\": \"350423\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"宁化县\",\n        \"value\": \"350424\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"大田县\",\n        \"value\": \"350425\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"尤溪县\",\n        \"value\": \"350426\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"沙县\",\n        \"value\": \"350427\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"将乐县\",\n        \"value\": \"350428\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"泰宁县\",\n        \"value\": \"350429\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"建宁县\",\n        \"value\": \"350430\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"永安市\",\n        \"value\": \"350481\",\n        \"parent\": \"350400\"\n    },\n    {\n        \"name\": \"鲤城区\",\n        \"value\": \"350502\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"丰泽区\",\n        \"value\": \"350503\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"洛江区\",\n        \"value\": \"350504\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"泉港区\",\n        \"value\": \"350505\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"惠安县\",\n        \"value\": \"350521\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"安溪县\",\n        \"value\": \"350524\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"永春县\",\n        \"value\": \"350525\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"德化县\",\n        \"value\": \"350526\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"金门县\",\n        \"value\": \"350527\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"石狮市\",\n        \"value\": \"350581\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"晋江市\",\n        \"value\": \"350582\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"南安市\",\n        \"value\": \"350583\",\n        \"parent\": \"350500\"\n    },\n    {\n        \"name\": \"芗城区\",\n        \"value\": \"350602\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"龙文区\",\n        \"value\": \"350603\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"云霄县\",\n        \"value\": \"350622\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"漳浦县\",\n        \"value\": \"350623\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"诏安县\",\n        \"value\": \"350624\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"长泰县\",\n        \"value\": \"350625\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"东山县\",\n        \"value\": \"350626\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"南靖县\",\n        \"value\": \"350627\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"平和县\",\n        \"value\": \"350628\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"华安县\",\n        \"value\": \"350629\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"龙海市\",\n        \"value\": \"350681\",\n        \"parent\": \"350600\"\n    },\n    {\n        \"name\": \"延平区\",\n        \"value\": \"350702\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"建阳区\",\n        \"value\": \"350703\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"顺昌县\",\n        \"value\": \"350721\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"浦城县\",\n        \"value\": \"350722\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"光泽县\",\n        \"value\": \"350723\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"松溪县\",\n        \"value\": \"350724\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"政和县\",\n        \"value\": \"350725\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"邵武市\",\n        \"value\": \"350781\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"武夷山市\",\n        \"value\": \"350782\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"建瓯市\",\n        \"value\": \"350783\",\n        \"parent\": \"350700\"\n    },\n    {\n        \"name\": \"新罗区\",\n        \"value\": \"350802\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"永定区\",\n        \"value\": \"350803\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"长汀县\",\n        \"value\": \"350821\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"上杭县\",\n        \"value\": \"350823\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"武平县\",\n        \"value\": \"350824\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"连城县\",\n        \"value\": \"350825\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"漳平市\",\n        \"value\": \"350881\",\n        \"parent\": \"350800\"\n    },\n    {\n        \"name\": \"蕉城区\",\n        \"value\": \"350902\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"霞浦县\",\n        \"value\": \"350921\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"古田县\",\n        \"value\": \"350922\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"屏南县\",\n        \"value\": \"350923\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"寿宁县\",\n        \"value\": \"350924\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"周宁县\",\n        \"value\": \"350925\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"柘荣县\",\n        \"value\": \"350926\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"福安市\",\n        \"value\": \"350981\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"福鼎市\",\n        \"value\": \"350982\",\n        \"parent\": \"350900\"\n    },\n    {\n        \"name\": \"南昌市\",\n        \"value\": \"360100\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"景德镇市\",\n        \"value\": \"360200\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"萍乡市\",\n        \"value\": \"360300\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"九江市\",\n        \"value\": \"360400\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"新余市\",\n        \"value\": \"360500\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"鹰潭市\",\n        \"value\": \"360600\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"赣州市\",\n        \"value\": \"360700\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"吉安市\",\n        \"value\": \"360800\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"宜春市\",\n        \"value\": \"360900\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"抚州市\",\n        \"value\": \"361000\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"上饶市\",\n        \"value\": \"361100\",\n        \"parent\": \"360000\"\n    },\n    {\n        \"name\": \"东湖区\",\n        \"value\": \"360102\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"西湖区\",\n        \"value\": \"360103\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"青云谱区\",\n        \"value\": \"360104\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"湾里区\",\n        \"value\": \"360105\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"青山湖区\",\n        \"value\": \"360111\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"新建区\",\n        \"value\": \"360112\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"南昌县\",\n        \"value\": \"360121\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"安义县\",\n        \"value\": \"360123\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"进贤县\",\n        \"value\": \"360124\",\n        \"parent\": \"360100\"\n    },\n    {\n        \"name\": \"昌江区\",\n        \"value\": \"360202\",\n        \"parent\": \"360200\"\n    },\n    {\n        \"name\": \"珠山区\",\n        \"value\": \"360203\",\n        \"parent\": \"360200\"\n    },\n    {\n        \"name\": \"浮梁县\",\n        \"value\": \"360222\",\n        \"parent\": \"360200\"\n    },\n    {\n        \"name\": \"乐平市\",\n        \"value\": \"360281\",\n        \"parent\": \"360200\"\n    },\n    {\n        \"name\": \"安源区\",\n        \"value\": \"360302\",\n        \"parent\": \"360300\"\n    },\n    {\n        \"name\": \"湘东区\",\n        \"value\": \"360313\",\n        \"parent\": \"360300\"\n    },\n    {\n        \"name\": \"莲花县\",\n        \"value\": \"360321\",\n        \"parent\": \"360300\"\n    },\n    {\n        \"name\": \"上栗县\",\n        \"value\": \"360322\",\n        \"parent\": \"360300\"\n    },\n    {\n        \"name\": \"芦溪县\",\n        \"value\": \"360323\",\n        \"parent\": \"360300\"\n    },\n    {\n        \"name\": \"庐山区\",\n        \"value\": \"360402\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"浔阳区\",\n        \"value\": \"360403\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"九江县\",\n        \"value\": \"360421\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"武宁县\",\n        \"value\": \"360423\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"修水县\",\n        \"value\": \"360424\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"永修县\",\n        \"value\": \"360425\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"德安县\",\n        \"value\": \"360426\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"星子县\",\n        \"value\": \"360427\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"都昌县\",\n        \"value\": \"360428\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"湖口县\",\n        \"value\": \"360429\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"彭泽县\",\n        \"value\": \"360430\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"瑞昌市\",\n        \"value\": \"360481\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"共青城市\",\n        \"value\": \"360482\",\n        \"parent\": \"360400\"\n    },\n    {\n        \"name\": \"渝水区\",\n        \"value\": \"360502\",\n        \"parent\": \"360500\"\n    },\n    {\n        \"name\": \"分宜县\",\n        \"value\": \"360521\",\n        \"parent\": \"360500\"\n    },\n    {\n        \"name\": \"月湖区\",\n        \"value\": \"360602\",\n        \"parent\": \"360600\"\n    },\n    {\n        \"name\": \"余江县\",\n        \"value\": \"360622\",\n        \"parent\": \"360600\"\n    },\n    {\n        \"name\": \"贵溪市\",\n        \"value\": \"360681\",\n        \"parent\": \"360600\"\n    },\n    {\n        \"name\": \"章贡区\",\n        \"value\": \"360702\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"南康区\",\n        \"value\": \"360703\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"赣县\",\n        \"value\": \"360721\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"信丰县\",\n        \"value\": \"360722\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"大余县\",\n        \"value\": \"360723\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"上犹县\",\n        \"value\": \"360724\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"崇义县\",\n        \"value\": \"360725\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"安远县\",\n        \"value\": \"360726\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"龙南县\",\n        \"value\": \"360727\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"定南县\",\n        \"value\": \"360728\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"全南县\",\n        \"value\": \"360729\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"宁都县\",\n        \"value\": \"360730\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"于都县\",\n        \"value\": \"360731\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"兴国县\",\n        \"value\": \"360732\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"会昌县\",\n        \"value\": \"360733\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"寻乌县\",\n        \"value\": \"360734\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"石城县\",\n        \"value\": \"360735\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"瑞金市\",\n        \"value\": \"360781\",\n        \"parent\": \"360700\"\n    },\n    {\n        \"name\": \"吉州区\",\n        \"value\": \"360802\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"青原区\",\n        \"value\": \"360803\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"吉安县\",\n        \"value\": \"360821\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"吉水县\",\n        \"value\": \"360822\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"峡江县\",\n        \"value\": \"360823\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"新干县\",\n        \"value\": \"360824\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"永丰县\",\n        \"value\": \"360825\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"泰和县\",\n        \"value\": \"360826\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"遂川县\",\n        \"value\": \"360827\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"万安县\",\n        \"value\": \"360828\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"安福县\",\n        \"value\": \"360829\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"永新县\",\n        \"value\": \"360830\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"井冈山市\",\n        \"value\": \"360881\",\n        \"parent\": \"360800\"\n    },\n    {\n        \"name\": \"袁州区\",\n        \"value\": \"360902\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"奉新县\",\n        \"value\": \"360921\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"万载县\",\n        \"value\": \"360922\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"上高县\",\n        \"value\": \"360923\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"宜丰县\",\n        \"value\": \"360924\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"靖安县\",\n        \"value\": \"360925\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"铜鼓县\",\n        \"value\": \"360926\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"丰城市\",\n        \"value\": \"360981\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"樟树市\",\n        \"value\": \"360982\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"高安市\",\n        \"value\": \"360983\",\n        \"parent\": \"360900\"\n    },\n    {\n        \"name\": \"临川区\",\n        \"value\": \"361002\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"南城县\",\n        \"value\": \"361021\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"黎川县\",\n        \"value\": \"361022\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"南丰县\",\n        \"value\": \"361023\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"崇仁县\",\n        \"value\": \"361024\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"乐安县\",\n        \"value\": \"361025\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"宜黄县\",\n        \"value\": \"361026\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"金溪县\",\n        \"value\": \"361027\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"资溪县\",\n        \"value\": \"361028\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"东乡县\",\n        \"value\": \"361029\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"广昌县\",\n        \"value\": \"361030\",\n        \"parent\": \"361000\"\n    },\n    {\n        \"name\": \"信州区\",\n        \"value\": \"361102\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"广丰区\",\n        \"value\": \"361103\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"上饶县\",\n        \"value\": \"361121\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"玉山县\",\n        \"value\": \"361123\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"铅山县\",\n        \"value\": \"361124\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"横峰县\",\n        \"value\": \"361125\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"弋阳县\",\n        \"value\": \"361126\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"余干县\",\n        \"value\": \"361127\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"鄱阳县\",\n        \"value\": \"361128\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"万年县\",\n        \"value\": \"361129\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"婺源县\",\n        \"value\": \"361130\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"德兴市\",\n        \"value\": \"361181\",\n        \"parent\": \"361100\"\n    },\n    {\n        \"name\": \"济南市\",\n        \"value\": \"370100\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"青岛市\",\n        \"value\": \"370200\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"淄博市\",\n        \"value\": \"370300\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"枣庄市\",\n        \"value\": \"370400\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"东营市\",\n        \"value\": \"370500\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"烟台市\",\n        \"value\": \"370600\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"潍坊市\",\n        \"value\": \"370700\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"济宁市\",\n        \"value\": \"370800\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"泰安市\",\n        \"value\": \"370900\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"威海市\",\n        \"value\": \"371000\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"日照市\",\n        \"value\": \"371100\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"莱芜市\",\n        \"value\": \"371200\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"临沂市\",\n        \"value\": \"371300\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"德州市\",\n        \"value\": \"371400\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"聊城市\",\n        \"value\": \"371500\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"滨州市\",\n        \"value\": \"371600\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"菏泽市\",\n        \"value\": \"371700\",\n        \"parent\": \"370000\"\n    },\n    {\n        \"name\": \"历下区\",\n        \"value\": \"370102\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"市中区\",\n        \"value\": \"370103\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"槐荫区\",\n        \"value\": \"370104\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"天桥区\",\n        \"value\": \"370105\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"历城区\",\n        \"value\": \"370112\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"长清区\",\n        \"value\": \"370113\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"平阴县\",\n        \"value\": \"370124\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"济阳县\",\n        \"value\": \"370125\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"商河县\",\n        \"value\": \"370126\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"章丘市\",\n        \"value\": \"370181\",\n        \"parent\": \"370100\"\n    },\n    {\n        \"name\": \"市南区\",\n        \"value\": \"370202\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"市北区\",\n        \"value\": \"370203\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"黄岛区\",\n        \"value\": \"370211\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"崂山区\",\n        \"value\": \"370212\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"李沧区\",\n        \"value\": \"370213\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"城阳区\",\n        \"value\": \"370214\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"胶州市\",\n        \"value\": \"370281\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"即墨市\",\n        \"value\": \"370282\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"平度市\",\n        \"value\": \"370283\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"莱西市\",\n        \"value\": \"370285\",\n        \"parent\": \"370200\"\n    },\n    {\n        \"name\": \"淄川区\",\n        \"value\": \"370302\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"张店区\",\n        \"value\": \"370303\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"博山区\",\n        \"value\": \"370304\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"临淄区\",\n        \"value\": \"370305\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"周村区\",\n        \"value\": \"370306\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"桓台县\",\n        \"value\": \"370321\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"高青县\",\n        \"value\": \"370322\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"沂源县\",\n        \"value\": \"370323\",\n        \"parent\": \"370300\"\n    },\n    {\n        \"name\": \"市中区\",\n        \"value\": \"370402\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"薛城区\",\n        \"value\": \"370403\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"峄城区\",\n        \"value\": \"370404\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"台儿庄区\",\n        \"value\": \"370405\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"山亭区\",\n        \"value\": \"370406\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"滕州市\",\n        \"value\": \"370481\",\n        \"parent\": \"370400\"\n    },\n    {\n        \"name\": \"东营区\",\n        \"value\": \"370502\",\n        \"parent\": \"370500\"\n    },\n    {\n        \"name\": \"河口区\",\n        \"value\": \"370503\",\n        \"parent\": \"370500\"\n    },\n    {\n        \"name\": \"垦利县\",\n        \"value\": \"370521\",\n        \"parent\": \"370500\"\n    },\n    {\n        \"name\": \"利津县\",\n        \"value\": \"370522\",\n        \"parent\": \"370500\"\n    },\n    {\n        \"name\": \"广饶县\",\n        \"value\": \"370523\",\n        \"parent\": \"370500\"\n    },\n    {\n        \"name\": \"芝罘区\",\n        \"value\": \"370602\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"福山区\",\n        \"value\": \"370611\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"牟平区\",\n        \"value\": \"370612\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"莱山区\",\n        \"value\": \"370613\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"长岛县\",\n        \"value\": \"370634\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"龙口市\",\n        \"value\": \"370681\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"莱阳市\",\n        \"value\": \"370682\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"莱州市\",\n        \"value\": \"370683\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"蓬莱市\",\n        \"value\": \"370684\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"招远市\",\n        \"value\": \"370685\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"栖霞市\",\n        \"value\": \"370686\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"海阳市\",\n        \"value\": \"370687\",\n        \"parent\": \"370600\"\n    },\n    {\n        \"name\": \"潍城区\",\n        \"value\": \"370702\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"寒亭区\",\n        \"value\": \"370703\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"坊子区\",\n        \"value\": \"370704\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"奎文区\",\n        \"value\": \"370705\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"临朐县\",\n        \"value\": \"370724\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"昌乐县\",\n        \"value\": \"370725\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"青州市\",\n        \"value\": \"370781\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"诸城市\",\n        \"value\": \"370782\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"寿光市\",\n        \"value\": \"370783\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"安丘市\",\n        \"value\": \"370784\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"高密市\",\n        \"value\": \"370785\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"昌邑市\",\n        \"value\": \"370786\",\n        \"parent\": \"370700\"\n    },\n    {\n        \"name\": \"任城区\",\n        \"value\": \"370811\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"兖州区\",\n        \"value\": \"370812\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"微山县\",\n        \"value\": \"370826\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"鱼台县\",\n        \"value\": \"370827\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"金乡县\",\n        \"value\": \"370828\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"嘉祥县\",\n        \"value\": \"370829\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"汶上县\",\n        \"value\": \"370830\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"泗水县\",\n        \"value\": \"370831\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"梁山县\",\n        \"value\": \"370832\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"曲阜市\",\n        \"value\": \"370881\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"邹城市\",\n        \"value\": \"370883\",\n        \"parent\": \"370800\"\n    },\n    {\n        \"name\": \"泰山区\",\n        \"value\": \"370902\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"岱岳区\",\n        \"value\": \"370911\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"宁阳县\",\n        \"value\": \"370921\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"东平县\",\n        \"value\": \"370923\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"新泰市\",\n        \"value\": \"370982\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"肥城市\",\n        \"value\": \"370983\",\n        \"parent\": \"370900\"\n    },\n    {\n        \"name\": \"环翠区\",\n        \"value\": \"371002\",\n        \"parent\": \"371000\"\n    },\n    {\n        \"name\": \"文登区\",\n        \"value\": \"371003\",\n        \"parent\": \"371000\"\n    },\n    {\n        \"name\": \"荣成市\",\n        \"value\": \"371082\",\n        \"parent\": \"371000\"\n    },\n    {\n        \"name\": \"乳山市\",\n        \"value\": \"371083\",\n        \"parent\": \"371000\"\n    },\n    {\n        \"name\": \"东港区\",\n        \"value\": \"371102\",\n        \"parent\": \"371100\"\n    },\n    {\n        \"name\": \"岚山区\",\n        \"value\": \"371103\",\n        \"parent\": \"371100\"\n    },\n    {\n        \"name\": \"五莲县\",\n        \"value\": \"371121\",\n        \"parent\": \"371100\"\n    },\n    {\n        \"name\": \"莒县\",\n        \"value\": \"371122\",\n        \"parent\": \"371100\"\n    },\n    {\n        \"name\": \"莱城区\",\n        \"value\": \"371202\",\n        \"parent\": \"371200\"\n    },\n    {\n        \"name\": \"钢城区\",\n        \"value\": \"371203\",\n        \"parent\": \"371200\"\n    },\n    {\n        \"name\": \"兰山区\",\n        \"value\": \"371302\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"罗庄区\",\n        \"value\": \"371311\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"河东区\",\n        \"value\": \"371312\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"沂南县\",\n        \"value\": \"371321\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"郯城县\",\n        \"value\": \"371322\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"沂水县\",\n        \"value\": \"371323\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"兰陵县\",\n        \"value\": \"371324\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"费县\",\n        \"value\": \"371325\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"平邑县\",\n        \"value\": \"371326\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"莒南县\",\n        \"value\": \"371327\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"蒙阴县\",\n        \"value\": \"371328\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"临沭县\",\n        \"value\": \"371329\",\n        \"parent\": \"371300\"\n    },\n    {\n        \"name\": \"德城区\",\n        \"value\": \"371402\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"陵城区\",\n        \"value\": \"371403\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"宁津县\",\n        \"value\": \"371422\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"庆云县\",\n        \"value\": \"371423\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"临邑县\",\n        \"value\": \"371424\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"齐河县\",\n        \"value\": \"371425\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"平原县\",\n        \"value\": \"371426\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"夏津县\",\n        \"value\": \"371427\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"武城县\",\n        \"value\": \"371428\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"乐陵市\",\n        \"value\": \"371481\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"禹城市\",\n        \"value\": \"371482\",\n        \"parent\": \"371400\"\n    },\n    {\n        \"name\": \"东昌府区\",\n        \"value\": \"371502\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"阳谷县\",\n        \"value\": \"371521\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"莘县\",\n        \"value\": \"371522\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"茌平县\",\n        \"value\": \"371523\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"东阿县\",\n        \"value\": \"371524\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"冠县\",\n        \"value\": \"371525\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"高唐县\",\n        \"value\": \"371526\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"临清市\",\n        \"value\": \"371581\",\n        \"parent\": \"371500\"\n    },\n    {\n        \"name\": \"滨城区\",\n        \"value\": \"371602\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"沾化区\",\n        \"value\": \"371603\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"惠民县\",\n        \"value\": \"371621\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"阳信县\",\n        \"value\": \"371622\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"无棣县\",\n        \"value\": \"371623\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"博兴县\",\n        \"value\": \"371625\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"邹平县\",\n        \"value\": \"371626\",\n        \"parent\": \"371600\"\n    },\n    {\n        \"name\": \"牡丹区\",\n        \"value\": \"371702\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"曹县\",\n        \"value\": \"371721\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"单县\",\n        \"value\": \"371722\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"成武县\",\n        \"value\": \"371723\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"巨野县\",\n        \"value\": \"371724\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"郓城县\",\n        \"value\": \"371725\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"鄄城县\",\n        \"value\": \"371726\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"定陶县\",\n        \"value\": \"371727\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"东明县\",\n        \"value\": \"371728\",\n        \"parent\": \"371700\"\n    },\n    {\n        \"name\": \"郑州市\",\n        \"value\": \"410100\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"开封市\",\n        \"value\": \"410200\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"洛阳市\",\n        \"value\": \"410300\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"平顶山市\",\n        \"value\": \"410400\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"安阳市\",\n        \"value\": \"410500\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"鹤壁市\",\n        \"value\": \"410600\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"新乡市\",\n        \"value\": \"410700\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"焦作市\",\n        \"value\": \"410800\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"濮阳市\",\n        \"value\": \"410900\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"许昌市\",\n        \"value\": \"411000\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"漯河市\",\n        \"value\": \"411100\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"三门峡市\",\n        \"value\": \"411200\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"南阳市\",\n        \"value\": \"411300\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"商丘市\",\n        \"value\": \"411400\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"信阳市\",\n        \"value\": \"411500\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"周口市\",\n        \"value\": \"411600\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"驻马店市\",\n        \"value\": \"411700\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"济源市\",\n        \"value\": \"419001\",\n        \"parent\": \"410000\"\n    },\n    {\n        \"name\": \"中原区\",\n        \"value\": \"410102\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"二七区\",\n        \"value\": \"410103\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"管城回族区\",\n        \"value\": \"410104\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"金水区\",\n        \"value\": \"410105\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"上街区\",\n        \"value\": \"410106\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"惠济区\",\n        \"value\": \"410108\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"中牟县\",\n        \"value\": \"410122\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"巩义市\",\n        \"value\": \"410181\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"荥阳市\",\n        \"value\": \"410182\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"新密市\",\n        \"value\": \"410183\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"新郑市\",\n        \"value\": \"410184\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"登封市\",\n        \"value\": \"410185\",\n        \"parent\": \"410100\"\n    },\n    {\n        \"name\": \"龙亭区\",\n        \"value\": \"410202\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"顺河回族区\",\n        \"value\": \"410203\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"鼓楼区\",\n        \"value\": \"410204\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"禹王台区\",\n        \"value\": \"410205\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"祥符区\",\n        \"value\": \"410212\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"杞县\",\n        \"value\": \"410221\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"通许县\",\n        \"value\": \"410222\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"尉氏县\",\n        \"value\": \"410223\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"兰考县\",\n        \"value\": \"410225\",\n        \"parent\": \"410200\"\n    },\n    {\n        \"name\": \"老城区\",\n        \"value\": \"410302\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"西工区\",\n        \"value\": \"410303\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"瀍河回族区\",\n        \"value\": \"410304\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"涧西区\",\n        \"value\": \"410305\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"吉利区\",\n        \"value\": \"410306\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"洛龙区\",\n        \"value\": \"410311\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"孟津县\",\n        \"value\": \"410322\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"新安县\",\n        \"value\": \"410323\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"栾川县\",\n        \"value\": \"410324\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"嵩县\",\n        \"value\": \"410325\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"汝阳县\",\n        \"value\": \"410326\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"宜阳县\",\n        \"value\": \"410327\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"洛宁县\",\n        \"value\": \"410328\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"伊川县\",\n        \"value\": \"410329\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"偃师市\",\n        \"value\": \"410381\",\n        \"parent\": \"410300\"\n    },\n    {\n        \"name\": \"新华区\",\n        \"value\": \"410402\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"卫东区\",\n        \"value\": \"410403\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"石龙区\",\n        \"value\": \"410404\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"湛河区\",\n        \"value\": \"410411\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"宝丰县\",\n        \"value\": \"410421\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"叶县\",\n        \"value\": \"410422\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"鲁山县\",\n        \"value\": \"410423\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"郏县\",\n        \"value\": \"410425\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"舞钢市\",\n        \"value\": \"410481\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"汝州市\",\n        \"value\": \"410482\",\n        \"parent\": \"410400\"\n    },\n    {\n        \"name\": \"文峰区\",\n        \"value\": \"410502\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"北关区\",\n        \"value\": \"410503\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"殷都区\",\n        \"value\": \"410505\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"龙安区\",\n        \"value\": \"410506\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"安阳县\",\n        \"value\": \"410522\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"汤阴县\",\n        \"value\": \"410523\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"滑县\",\n        \"value\": \"410526\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"内黄县\",\n        \"value\": \"410527\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"林州市\",\n        \"value\": \"410581\",\n        \"parent\": \"410500\"\n    },\n    {\n        \"name\": \"鹤山区\",\n        \"value\": \"410602\",\n        \"parent\": \"410600\"\n    },\n    {\n        \"name\": \"山城区\",\n        \"value\": \"410603\",\n        \"parent\": \"410600\"\n    },\n    {\n        \"name\": \"淇滨区\",\n        \"value\": \"410611\",\n        \"parent\": \"410600\"\n    },\n    {\n        \"name\": \"浚县\",\n        \"value\": \"410621\",\n        \"parent\": \"410600\"\n    },\n    {\n        \"name\": \"淇县\",\n        \"value\": \"410622\",\n        \"parent\": \"410600\"\n    },\n    {\n        \"name\": \"红旗区\",\n        \"value\": \"410702\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"卫滨区\",\n        \"value\": \"410703\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"凤泉区\",\n        \"value\": \"410704\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"牧野区\",\n        \"value\": \"410711\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"新乡县\",\n        \"value\": \"410721\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"获嘉县\",\n        \"value\": \"410724\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"原阳县\",\n        \"value\": \"410725\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"延津县\",\n        \"value\": \"410726\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"封丘县\",\n        \"value\": \"410727\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"长垣县\",\n        \"value\": \"410728\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"卫辉市\",\n        \"value\": \"410781\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"辉县市\",\n        \"value\": \"410782\",\n        \"parent\": \"410700\"\n    },\n    {\n        \"name\": \"解放区\",\n        \"value\": \"410802\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"中站区\",\n        \"value\": \"410803\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"马村区\",\n        \"value\": \"410804\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"山阳区\",\n        \"value\": \"410811\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"修武县\",\n        \"value\": \"410821\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"博爱县\",\n        \"value\": \"410822\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"武陟县\",\n        \"value\": \"410823\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"温县\",\n        \"value\": \"410825\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"沁阳市\",\n        \"value\": \"410882\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"孟州市\",\n        \"value\": \"410883\",\n        \"parent\": \"410800\"\n    },\n    {\n        \"name\": \"华龙区\",\n        \"value\": \"410902\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"清丰县\",\n        \"value\": \"410922\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"南乐县\",\n        \"value\": \"410923\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"范县\",\n        \"value\": \"410926\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"台前县\",\n        \"value\": \"410927\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"濮阳县\",\n        \"value\": \"410928\",\n        \"parent\": \"410900\"\n    },\n    {\n        \"name\": \"魏都区\",\n        \"value\": \"411002\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"许昌县\",\n        \"value\": \"411023\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"鄢陵县\",\n        \"value\": \"411024\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"襄城县\",\n        \"value\": \"411025\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"禹州市\",\n        \"value\": \"411081\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"长葛市\",\n        \"value\": \"411082\",\n        \"parent\": \"411000\"\n    },\n    {\n        \"name\": \"源汇区\",\n        \"value\": \"411102\",\n        \"parent\": \"411100\"\n    },\n    {\n        \"name\": \"郾城区\",\n        \"value\": \"411103\",\n        \"parent\": \"411100\"\n    },\n    {\n        \"name\": \"召陵区\",\n        \"value\": \"411104\",\n        \"parent\": \"411100\"\n    },\n    {\n        \"name\": \"舞阳县\",\n        \"value\": \"411121\",\n        \"parent\": \"411100\"\n    },\n    {\n        \"name\": \"临颍县\",\n        \"value\": \"411122\",\n        \"parent\": \"411100\"\n    },\n    {\n        \"name\": \"湖滨区\",\n        \"value\": \"411202\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"陕州区\",\n        \"value\": \"411203\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"渑池县\",\n        \"value\": \"411221\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"卢氏县\",\n        \"value\": \"411224\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"义马市\",\n        \"value\": \"411281\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"灵宝市\",\n        \"value\": \"411282\",\n        \"parent\": \"411200\"\n    },\n    {\n        \"name\": \"宛城区\",\n        \"value\": \"411302\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"卧龙区\",\n        \"value\": \"411303\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"南召县\",\n        \"value\": \"411321\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"方城县\",\n        \"value\": \"411322\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"西峡县\",\n        \"value\": \"411323\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"镇平县\",\n        \"value\": \"411324\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"内乡县\",\n        \"value\": \"411325\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"淅川县\",\n        \"value\": \"411326\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"社旗县\",\n        \"value\": \"411327\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"唐河县\",\n        \"value\": \"411328\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"新野县\",\n        \"value\": \"411329\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"桐柏县\",\n        \"value\": \"411330\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"邓州市\",\n        \"value\": \"411381\",\n        \"parent\": \"411300\"\n    },\n    {\n        \"name\": \"梁园区\",\n        \"value\": \"411402\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"睢阳区\",\n        \"value\": \"411403\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"民权县\",\n        \"value\": \"411421\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"睢县\",\n        \"value\": \"411422\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"宁陵县\",\n        \"value\": \"411423\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"柘城县\",\n        \"value\": \"411424\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"虞城县\",\n        \"value\": \"411425\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"夏邑县\",\n        \"value\": \"411426\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"永城市\",\n        \"value\": \"411481\",\n        \"parent\": \"411400\"\n    },\n    {\n        \"name\": \"浉河区\",\n        \"value\": \"411502\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"平桥区\",\n        \"value\": \"411503\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"罗山县\",\n        \"value\": \"411521\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"光山县\",\n        \"value\": \"411522\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"新县\",\n        \"value\": \"411523\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"商城县\",\n        \"value\": \"411524\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"固始县\",\n        \"value\": \"411525\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"潢川县\",\n        \"value\": \"411526\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"淮滨县\",\n        \"value\": \"411527\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"息县\",\n        \"value\": \"411528\",\n        \"parent\": \"411500\"\n    },\n    {\n        \"name\": \"川汇区\",\n        \"value\": \"411602\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"扶沟县\",\n        \"value\": \"411621\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"西华县\",\n        \"value\": \"411622\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"商水县\",\n        \"value\": \"411623\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"沈丘县\",\n        \"value\": \"411624\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"郸城县\",\n        \"value\": \"411625\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"淮阳县\",\n        \"value\": \"411626\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"太康县\",\n        \"value\": \"411627\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"鹿邑县\",\n        \"value\": \"411628\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"项城市\",\n        \"value\": \"411681\",\n        \"parent\": \"411600\"\n    },\n    {\n        \"name\": \"驿城区\",\n        \"value\": \"411702\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"西平县\",\n        \"value\": \"411721\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"上蔡县\",\n        \"value\": \"411722\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"平舆县\",\n        \"value\": \"411723\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"正阳县\",\n        \"value\": \"411724\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"确山县\",\n        \"value\": \"411725\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"泌阳县\",\n        \"value\": \"411726\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"汝南县\",\n        \"value\": \"411727\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"遂平县\",\n        \"value\": \"411728\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"新蔡县\",\n        \"value\": \"411729\",\n        \"parent\": \"411700\"\n    },\n    {\n        \"name\": \"武汉市\",\n        \"value\": \"420100\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"黄石市\",\n        \"value\": \"420200\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"十堰市\",\n        \"value\": \"420300\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"宜昌市\",\n        \"value\": \"420500\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"襄阳市\",\n        \"value\": \"420600\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"鄂州市\",\n        \"value\": \"420700\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"荆门市\",\n        \"value\": \"420800\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"孝感市\",\n        \"value\": \"420900\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"荆州市\",\n        \"value\": \"421000\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"黄冈市\",\n        \"value\": \"421100\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"咸宁市\",\n        \"value\": \"421200\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"随州市\",\n        \"value\": \"421300\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"恩施土家族苗族自治州\",\n        \"value\": \"422800\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"仙桃市\",\n        \"value\": \"429004\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"潜江市\",\n        \"value\": \"429005\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"天门市\",\n        \"value\": \"429006\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"神农架林区\",\n        \"value\": \"429021\",\n        \"parent\": \"420000\"\n    },\n    {\n        \"name\": \"江岸区\",\n        \"value\": \"420102\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"江汉区\",\n        \"value\": \"420103\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"硚口区\",\n        \"value\": \"420104\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"汉阳区\",\n        \"value\": \"420105\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"武昌区\",\n        \"value\": \"420106\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"青山区\",\n        \"value\": \"420107\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"洪山区\",\n        \"value\": \"420111\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"东西湖区\",\n        \"value\": \"420112\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"汉南区\",\n        \"value\": \"420113\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"蔡甸区\",\n        \"value\": \"420114\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"江夏区\",\n        \"value\": \"420115\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"黄陂区\",\n        \"value\": \"420116\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"新洲区\",\n        \"value\": \"420117\",\n        \"parent\": \"420100\"\n    },\n    {\n        \"name\": \"黄石港区\",\n        \"value\": \"420202\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"西塞山区\",\n        \"value\": \"420203\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"下陆区\",\n        \"value\": \"420204\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"铁山区\",\n        \"value\": \"420205\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"阳新县\",\n        \"value\": \"420222\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"大冶市\",\n        \"value\": \"420281\",\n        \"parent\": \"420200\"\n    },\n    {\n        \"name\": \"茅箭区\",\n        \"value\": \"420302\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"张湾区\",\n        \"value\": \"420303\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"郧阳区\",\n        \"value\": \"420304\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"郧西县\",\n        \"value\": \"420322\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"竹山县\",\n        \"value\": \"420323\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"竹溪县\",\n        \"value\": \"420324\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"房县\",\n        \"value\": \"420325\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"丹江口市\",\n        \"value\": \"420381\",\n        \"parent\": \"420300\"\n    },\n    {\n        \"name\": \"西陵区\",\n        \"value\": \"420502\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"伍家岗区\",\n        \"value\": \"420503\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"点军区\",\n        \"value\": \"420504\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"猇亭区\",\n        \"value\": \"420505\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"夷陵区\",\n        \"value\": \"420506\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"远安县\",\n        \"value\": \"420525\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"兴山县\",\n        \"value\": \"420526\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"秭归县\",\n        \"value\": \"420527\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"长阳土家族自治县\",\n        \"value\": \"420528\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"五峰土家族自治县\",\n        \"value\": \"420529\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"宜都市\",\n        \"value\": \"420581\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"当阳市\",\n        \"value\": \"420582\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"枝江市\",\n        \"value\": \"420583\",\n        \"parent\": \"420500\"\n    },\n    {\n        \"name\": \"襄城区\",\n        \"value\": \"420602\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"樊城区\",\n        \"value\": \"420606\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"襄州区\",\n        \"value\": \"420607\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"南漳县\",\n        \"value\": \"420624\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"谷城县\",\n        \"value\": \"420625\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"保康县\",\n        \"value\": \"420626\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"老河口市\",\n        \"value\": \"420682\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"枣阳市\",\n        \"value\": \"420683\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"宜城市\",\n        \"value\": \"420684\",\n        \"parent\": \"420600\"\n    },\n    {\n        \"name\": \"梁子湖区\",\n        \"value\": \"420702\",\n        \"parent\": \"420700\"\n    },\n    {\n        \"name\": \"华容区\",\n        \"value\": \"420703\",\n        \"parent\": \"420700\"\n    },\n    {\n        \"name\": \"鄂城区\",\n        \"value\": \"420704\",\n        \"parent\": \"420700\"\n    },\n    {\n        \"name\": \"东宝区\",\n        \"value\": \"420802\",\n        \"parent\": \"420800\"\n    },\n    {\n        \"name\": \"掇刀区\",\n        \"value\": \"420804\",\n        \"parent\": \"420800\"\n    },\n    {\n        \"name\": \"京山县\",\n        \"value\": \"420821\",\n        \"parent\": \"420800\"\n    },\n    {\n        \"name\": \"沙洋县\",\n        \"value\": \"420822\",\n        \"parent\": \"420800\"\n    },\n    {\n        \"name\": \"钟祥市\",\n        \"value\": \"420881\",\n        \"parent\": \"420800\"\n    },\n    {\n        \"name\": \"孝南区\",\n        \"value\": \"420902\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"孝昌县\",\n        \"value\": \"420921\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"大悟县\",\n        \"value\": \"420922\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"云梦县\",\n        \"value\": \"420923\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"应城市\",\n        \"value\": \"420981\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"安陆市\",\n        \"value\": \"420982\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"汉川市\",\n        \"value\": \"420984\",\n        \"parent\": \"420900\"\n    },\n    {\n        \"name\": \"沙市区\",\n        \"value\": \"421002\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"荆州区\",\n        \"value\": \"421003\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"公安县\",\n        \"value\": \"421022\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"监利县\",\n        \"value\": \"421023\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"江陵县\",\n        \"value\": \"421024\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"石首市\",\n        \"value\": \"421081\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"洪湖市\",\n        \"value\": \"421083\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"松滋市\",\n        \"value\": \"421087\",\n        \"parent\": \"421000\"\n    },\n    {\n        \"name\": \"黄州区\",\n        \"value\": \"421102\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"团风县\",\n        \"value\": \"421121\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"红安县\",\n        \"value\": \"421122\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"罗田县\",\n        \"value\": \"421123\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"英山县\",\n        \"value\": \"421124\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"浠水县\",\n        \"value\": \"421125\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"蕲春县\",\n        \"value\": \"421126\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"黄梅县\",\n        \"value\": \"421127\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"麻城市\",\n        \"value\": \"421181\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"武穴市\",\n        \"value\": \"421182\",\n        \"parent\": \"421100\"\n    },\n    {\n        \"name\": \"咸安区\",\n        \"value\": \"421202\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"嘉鱼县\",\n        \"value\": \"421221\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"通城县\",\n        \"value\": \"421222\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"崇阳县\",\n        \"value\": \"421223\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"通山县\",\n        \"value\": \"421224\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"赤壁市\",\n        \"value\": \"421281\",\n        \"parent\": \"421200\"\n    },\n    {\n        \"name\": \"曾都区\",\n        \"value\": \"421303\",\n        \"parent\": \"421300\"\n    },\n    {\n        \"name\": \"随县\",\n        \"value\": \"421321\",\n        \"parent\": \"421300\"\n    },\n    {\n        \"name\": \"广水市\",\n        \"value\": \"421381\",\n        \"parent\": \"421300\"\n    },\n    {\n        \"name\": \"恩施市\",\n        \"value\": \"422801\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"利川市\",\n        \"value\": \"422802\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"建始县\",\n        \"value\": \"422822\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"巴东县\",\n        \"value\": \"422823\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"宣恩县\",\n        \"value\": \"422825\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"咸丰县\",\n        \"value\": \"422826\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"来凤县\",\n        \"value\": \"422827\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"鹤峰县\",\n        \"value\": \"422828\",\n        \"parent\": \"422800\"\n    },\n    {\n        \"name\": \"长沙市\",\n        \"value\": \"430100\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"株洲市\",\n        \"value\": \"430200\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"湘潭市\",\n        \"value\": \"430300\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"衡阳市\",\n        \"value\": \"430400\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"邵阳市\",\n        \"value\": \"430500\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"岳阳市\",\n        \"value\": \"430600\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"常德市\",\n        \"value\": \"430700\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"张家界市\",\n        \"value\": \"430800\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"益阳市\",\n        \"value\": \"430900\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"郴州市\",\n        \"value\": \"431000\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"永州市\",\n        \"value\": \"431100\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"怀化市\",\n        \"value\": \"431200\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"娄底市\",\n        \"value\": \"431300\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"湘西土家族苗族自治州\",\n        \"value\": \"433100\",\n        \"parent\": \"430000\"\n    },\n    {\n        \"name\": \"芙蓉区\",\n        \"value\": \"430102\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"天心区\",\n        \"value\": \"430103\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"岳麓区\",\n        \"value\": \"430104\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"开福区\",\n        \"value\": \"430105\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"雨花区\",\n        \"value\": \"430111\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"望城区\",\n        \"value\": \"430112\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"长沙县\",\n        \"value\": \"430121\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"宁乡县\",\n        \"value\": \"430124\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"浏阳市\",\n        \"value\": \"430181\",\n        \"parent\": \"430100\"\n    },\n    {\n        \"name\": \"荷塘区\",\n        \"value\": \"430202\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"芦淞区\",\n        \"value\": \"430203\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"石峰区\",\n        \"value\": \"430204\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"天元区\",\n        \"value\": \"430211\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"株洲县\",\n        \"value\": \"430221\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"攸县\",\n        \"value\": \"430223\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"茶陵县\",\n        \"value\": \"430224\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"炎陵县\",\n        \"value\": \"430225\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"醴陵市\",\n        \"value\": \"430281\",\n        \"parent\": \"430200\"\n    },\n    {\n        \"name\": \"雨湖区\",\n        \"value\": \"430302\",\n        \"parent\": \"430300\"\n    },\n    {\n        \"name\": \"岳塘区\",\n        \"value\": \"430304\",\n        \"parent\": \"430300\"\n    },\n    {\n        \"name\": \"湘潭县\",\n        \"value\": \"430321\",\n        \"parent\": \"430300\"\n    },\n    {\n        \"name\": \"湘乡市\",\n        \"value\": \"430381\",\n        \"parent\": \"430300\"\n    },\n    {\n        \"name\": \"韶山市\",\n        \"value\": \"430382\",\n        \"parent\": \"430300\"\n    },\n    {\n        \"name\": \"珠晖区\",\n        \"value\": \"430405\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"雁峰区\",\n        \"value\": \"430406\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"石鼓区\",\n        \"value\": \"430407\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"蒸湘区\",\n        \"value\": \"430408\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"南岳区\",\n        \"value\": \"430412\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"衡阳县\",\n        \"value\": \"430421\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"衡南县\",\n        \"value\": \"430422\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"衡山县\",\n        \"value\": \"430423\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"衡东县\",\n        \"value\": \"430424\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"祁东县\",\n        \"value\": \"430426\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"耒阳市\",\n        \"value\": \"430481\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"常宁市\",\n        \"value\": \"430482\",\n        \"parent\": \"430400\"\n    },\n    {\n        \"name\": \"双清区\",\n        \"value\": \"430502\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"大祥区\",\n        \"value\": \"430503\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"北塔区\",\n        \"value\": \"430511\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"邵东县\",\n        \"value\": \"430521\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"新邵县\",\n        \"value\": \"430522\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"邵阳县\",\n        \"value\": \"430523\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"隆回县\",\n        \"value\": \"430524\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"洞口县\",\n        \"value\": \"430525\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"绥宁县\",\n        \"value\": \"430527\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"新宁县\",\n        \"value\": \"430528\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"城步苗族自治县\",\n        \"value\": \"430529\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"武冈市\",\n        \"value\": \"430581\",\n        \"parent\": \"430500\"\n    },\n    {\n        \"name\": \"岳阳楼区\",\n        \"value\": \"430602\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"云溪区\",\n        \"value\": \"430603\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"君山区\",\n        \"value\": \"430611\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"岳阳县\",\n        \"value\": \"430621\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"华容县\",\n        \"value\": \"430623\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"湘阴县\",\n        \"value\": \"430624\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"平江县\",\n        \"value\": \"430626\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"汨罗市\",\n        \"value\": \"430681\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"临湘市\",\n        \"value\": \"430682\",\n        \"parent\": \"430600\"\n    },\n    {\n        \"name\": \"武陵区\",\n        \"value\": \"430702\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"鼎城区\",\n        \"value\": \"430703\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"安乡县\",\n        \"value\": \"430721\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"汉寿县\",\n        \"value\": \"430722\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"澧县\",\n        \"value\": \"430723\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"临澧县\",\n        \"value\": \"430724\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"桃源县\",\n        \"value\": \"430725\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"石门县\",\n        \"value\": \"430726\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"津市市\",\n        \"value\": \"430781\",\n        \"parent\": \"430700\"\n    },\n    {\n        \"name\": \"永定区\",\n        \"value\": \"430802\",\n        \"parent\": \"430800\"\n    },\n    {\n        \"name\": \"武陵源区\",\n        \"value\": \"430811\",\n        \"parent\": \"430800\"\n    },\n    {\n        \"name\": \"慈利县\",\n        \"value\": \"430821\",\n        \"parent\": \"430800\"\n    },\n    {\n        \"name\": \"桑植县\",\n        \"value\": \"430822\",\n        \"parent\": \"430800\"\n    },\n    {\n        \"name\": \"资阳区\",\n        \"value\": \"430902\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"赫山区\",\n        \"value\": \"430903\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"南县\",\n        \"value\": \"430921\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"桃江县\",\n        \"value\": \"430922\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"安化县\",\n        \"value\": \"430923\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"沅江市\",\n        \"value\": \"430981\",\n        \"parent\": \"430900\"\n    },\n    {\n        \"name\": \"北湖区\",\n        \"value\": \"431002\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"苏仙区\",\n        \"value\": \"431003\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"桂阳县\",\n        \"value\": \"431021\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"宜章县\",\n        \"value\": \"431022\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"永兴县\",\n        \"value\": \"431023\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"嘉禾县\",\n        \"value\": \"431024\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"临武县\",\n        \"value\": \"431025\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"汝城县\",\n        \"value\": \"431026\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"桂东县\",\n        \"value\": \"431027\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"安仁县\",\n        \"value\": \"431028\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"资兴市\",\n        \"value\": \"431081\",\n        \"parent\": \"431000\"\n    },\n    {\n        \"name\": \"零陵区\",\n        \"value\": \"431102\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"冷水滩区\",\n        \"value\": \"431103\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"祁阳县\",\n        \"value\": \"431121\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"东安县\",\n        \"value\": \"431122\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"双牌县\",\n        \"value\": \"431123\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"道县\",\n        \"value\": \"431124\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"江永县\",\n        \"value\": \"431125\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"宁远县\",\n        \"value\": \"431126\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"蓝山县\",\n        \"value\": \"431127\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"新田县\",\n        \"value\": \"431128\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"江华瑶族自治县\",\n        \"value\": \"431129\",\n        \"parent\": \"431100\"\n    },\n    {\n        \"name\": \"鹤城区\",\n        \"value\": \"431202\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"中方县\",\n        \"value\": \"431221\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"沅陵县\",\n        \"value\": \"431222\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"辰溪县\",\n        \"value\": \"431223\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"溆浦县\",\n        \"value\": \"431224\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"会同县\",\n        \"value\": \"431225\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"麻阳苗族自治县\",\n        \"value\": \"431226\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"新晃侗族自治县\",\n        \"value\": \"431227\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"芷江侗族自治县\",\n        \"value\": \"431228\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"靖州苗族侗族自治县\",\n        \"value\": \"431229\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"通道侗族自治县\",\n        \"value\": \"431230\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"洪江市\",\n        \"value\": \"431281\",\n        \"parent\": \"431200\"\n    },\n    {\n        \"name\": \"娄星区\",\n        \"value\": \"431302\",\n        \"parent\": \"431300\"\n    },\n    {\n        \"name\": \"双峰县\",\n        \"value\": \"431321\",\n        \"parent\": \"431300\"\n    },\n    {\n        \"name\": \"新化县\",\n        \"value\": \"431322\",\n        \"parent\": \"431300\"\n    },\n    {\n        \"name\": \"冷水江市\",\n        \"value\": \"431381\",\n        \"parent\": \"431300\"\n    },\n    {\n        \"name\": \"涟源市\",\n        \"value\": \"431382\",\n        \"parent\": \"431300\"\n    },\n    {\n        \"name\": \"吉首市\",\n        \"value\": \"433101\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"泸溪县\",\n        \"value\": \"433122\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"凤凰县\",\n        \"value\": \"433123\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"花垣县\",\n        \"value\": \"433124\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"保靖县\",\n        \"value\": \"433125\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"古丈县\",\n        \"value\": \"433126\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"永顺县\",\n        \"value\": \"433127\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"龙山县\",\n        \"value\": \"433130\",\n        \"parent\": \"433100\"\n    },\n    {\n        \"name\": \"广州市\",\n        \"value\": \"440100\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"韶关市\",\n        \"value\": \"440200\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"深圳市\",\n        \"value\": \"440300\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"珠海市\",\n        \"value\": \"440400\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"汕头市\",\n        \"value\": \"440500\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"佛山市\",\n        \"value\": \"440600\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"江门市\",\n        \"value\": \"440700\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"湛江市\",\n        \"value\": \"440800\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"茂名市\",\n        \"value\": \"440900\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"肇庆市\",\n        \"value\": \"441200\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"惠州市\",\n        \"value\": \"441300\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"梅州市\",\n        \"value\": \"441400\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"汕尾市\",\n        \"value\": \"441500\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"河源市\",\n        \"value\": \"441600\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"阳江市\",\n        \"value\": \"441700\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"清远市\",\n        \"value\": \"441800\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"东莞市\",\n        \"value\": \"441900\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"中山市\",\n        \"value\": \"442000\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"潮州市\",\n        \"value\": \"445100\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"揭阳市\",\n        \"value\": \"445200\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"云浮市\",\n        \"value\": \"445300\",\n        \"parent\": \"440000\"\n    },\n    {\n        \"name\": \"荔湾区\",\n        \"value\": \"440103\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"越秀区\",\n        \"value\": \"440104\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"海珠区\",\n        \"value\": \"440105\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"天河区\",\n        \"value\": \"440106\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"白云区\",\n        \"value\": \"440111\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"黄埔区\",\n        \"value\": \"440112\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"番禺区\",\n        \"value\": \"440113\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"花都区\",\n        \"value\": \"440114\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"南沙区\",\n        \"value\": \"440115\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"从化区\",\n        \"value\": \"440117\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"增城区\",\n        \"value\": \"440118\",\n        \"parent\": \"440100\"\n    },\n    {\n        \"name\": \"武江区\",\n        \"value\": \"440203\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"浈江区\",\n        \"value\": \"440204\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"曲江区\",\n        \"value\": \"440205\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"始兴县\",\n        \"value\": \"440222\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"仁化县\",\n        \"value\": \"440224\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"翁源县\",\n        \"value\": \"440229\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"乳源瑶族自治县\",\n        \"value\": \"440232\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"新丰县\",\n        \"value\": \"440233\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"乐昌市\",\n        \"value\": \"440281\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"南雄市\",\n        \"value\": \"440282\",\n        \"parent\": \"440200\"\n    },\n    {\n        \"name\": \"罗湖区\",\n        \"value\": \"440303\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"福田区\",\n        \"value\": \"440304\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"南山区\",\n        \"value\": \"440305\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"宝安区\",\n        \"value\": \"440306\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"龙岗区\",\n        \"value\": \"440307\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"盐田区\",\n        \"value\": \"440308\",\n        \"parent\": \"440300\"\n    },\n    {\n        \"name\": \"香洲区\",\n        \"value\": \"440402\",\n        \"parent\": \"440400\"\n    },\n    {\n        \"name\": \"斗门区\",\n        \"value\": \"440403\",\n        \"parent\": \"440400\"\n    },\n    {\n        \"name\": \"金湾区\",\n        \"value\": \"440404\",\n        \"parent\": \"440400\"\n    },\n    {\n        \"name\": \"龙湖区\",\n        \"value\": \"440507\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"金平区\",\n        \"value\": \"440511\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"濠江区\",\n        \"value\": \"440512\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"潮阳区\",\n        \"value\": \"440513\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"潮南区\",\n        \"value\": \"440514\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"澄海区\",\n        \"value\": \"440515\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"南澳县\",\n        \"value\": \"440523\",\n        \"parent\": \"440500\"\n    },\n    {\n        \"name\": \"禅城区\",\n        \"value\": \"440604\",\n        \"parent\": \"440600\"\n    },\n    {\n        \"name\": \"南海区\",\n        \"value\": \"440605\",\n        \"parent\": \"440600\"\n    },\n    {\n        \"name\": \"顺德区\",\n        \"value\": \"440606\",\n        \"parent\": \"440600\"\n    },\n    {\n        \"name\": \"三水区\",\n        \"value\": \"440607\",\n        \"parent\": \"440600\"\n    },\n    {\n        \"name\": \"高明区\",\n        \"value\": \"440608\",\n        \"parent\": \"440600\"\n    },\n    {\n        \"name\": \"蓬江区\",\n        \"value\": \"440703\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"江海区\",\n        \"value\": \"440704\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"新会区\",\n        \"value\": \"440705\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"台山市\",\n        \"value\": \"440781\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"开平市\",\n        \"value\": \"440783\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"鹤山市\",\n        \"value\": \"440784\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"恩平市\",\n        \"value\": \"440785\",\n        \"parent\": \"440700\"\n    },\n    {\n        \"name\": \"赤坎区\",\n        \"value\": \"440802\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"霞山区\",\n        \"value\": \"440803\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"坡头区\",\n        \"value\": \"440804\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"麻章区\",\n        \"value\": \"440811\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"遂溪县\",\n        \"value\": \"440823\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"徐闻县\",\n        \"value\": \"440825\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"廉江市\",\n        \"value\": \"440881\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"雷州市\",\n        \"value\": \"440882\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"吴川市\",\n        \"value\": \"440883\",\n        \"parent\": \"440800\"\n    },\n    {\n        \"name\": \"茂南区\",\n        \"value\": \"440902\",\n        \"parent\": \"440900\"\n    },\n    {\n        \"name\": \"电白区\",\n        \"value\": \"440904\",\n        \"parent\": \"440900\"\n    },\n    {\n        \"name\": \"高州市\",\n        \"value\": \"440981\",\n        \"parent\": \"440900\"\n    },\n    {\n        \"name\": \"化州市\",\n        \"value\": \"440982\",\n        \"parent\": \"440900\"\n    },\n    {\n        \"name\": \"信宜市\",\n        \"value\": \"440983\",\n        \"parent\": \"440900\"\n    },\n    {\n        \"name\": \"端州区\",\n        \"value\": \"441202\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"鼎湖区\",\n        \"value\": \"441203\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"高要区\",\n        \"value\": \"441204\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"广宁县\",\n        \"value\": \"441223\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"怀集县\",\n        \"value\": \"441224\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"封开县\",\n        \"value\": \"441225\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"德庆县\",\n        \"value\": \"441226\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"四会市\",\n        \"value\": \"441284\",\n        \"parent\": \"441200\"\n    },\n    {\n        \"name\": \"惠城区\",\n        \"value\": \"441302\",\n        \"parent\": \"441300\"\n    },\n    {\n        \"name\": \"惠阳区\",\n        \"value\": \"441303\",\n        \"parent\": \"441300\"\n    },\n    {\n        \"name\": \"博罗县\",\n        \"value\": \"441322\",\n        \"parent\": \"441300\"\n    },\n    {\n        \"name\": \"惠东县\",\n        \"value\": \"441323\",\n        \"parent\": \"441300\"\n    },\n    {\n        \"name\": \"龙门县\",\n        \"value\": \"441324\",\n        \"parent\": \"441300\"\n    },\n    {\n        \"name\": \"梅江区\",\n        \"value\": \"441402\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"梅县区\",\n        \"value\": \"441403\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"大埔县\",\n        \"value\": \"441422\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"丰顺县\",\n        \"value\": \"441423\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"五华县\",\n        \"value\": \"441424\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"平远县\",\n        \"value\": \"441426\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"蕉岭县\",\n        \"value\": \"441427\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"兴宁市\",\n        \"value\": \"441481\",\n        \"parent\": \"441400\"\n    },\n    {\n        \"name\": \"城区\",\n        \"value\": \"441502\",\n        \"parent\": \"441500\"\n    },\n    {\n        \"name\": \"海丰县\",\n        \"value\": \"441521\",\n        \"parent\": \"441500\"\n    },\n    {\n        \"name\": \"陆河县\",\n        \"value\": \"441523\",\n        \"parent\": \"441500\"\n    },\n    {\n        \"name\": \"陆丰市\",\n        \"value\": \"441581\",\n        \"parent\": \"441500\"\n    },\n    {\n        \"name\": \"源城区\",\n        \"value\": \"441602\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"紫金县\",\n        \"value\": \"441621\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"龙川县\",\n        \"value\": \"441622\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"连平县\",\n        \"value\": \"441623\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"和平县\",\n        \"value\": \"441624\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"东源县\",\n        \"value\": \"441625\",\n        \"parent\": \"441600\"\n    },\n    {\n        \"name\": \"江城区\",\n        \"value\": \"441702\",\n        \"parent\": \"441700\"\n    },\n    {\n        \"name\": \"阳东区\",\n        \"value\": \"441704\",\n        \"parent\": \"441700\"\n    },\n    {\n        \"name\": \"阳西县\",\n        \"value\": \"441721\",\n        \"parent\": \"441700\"\n    },\n    {\n        \"name\": \"阳春市\",\n        \"value\": \"441781\",\n        \"parent\": \"441700\"\n    },\n    {\n        \"name\": \"清城区\",\n        \"value\": \"441802\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"清新区\",\n        \"value\": \"441803\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"佛冈县\",\n        \"value\": \"441821\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"阳山县\",\n        \"value\": \"441823\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"连山壮族瑶族自治县\",\n        \"value\": \"441825\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"连南瑶族自治县\",\n        \"value\": \"441826\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"英德市\",\n        \"value\": \"441881\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"连州市\",\n        \"value\": \"441882\",\n        \"parent\": \"441800\"\n    },\n    {\n        \"name\": \"三元里\",\n        \"value\": \"441900\",\n        \"parent\": \"441900\"\n    },\n    {\n        \"name\": \"湖滨北路\",\n        \"value\": \"442000\",\n        \"parent\": \"442000\"\n    },\n    {\n        \"name\": \"湘桥区\",\n        \"value\": \"445102\",\n        \"parent\": \"445100\"\n    },\n    {\n        \"name\": \"潮安区\",\n        \"value\": \"445103\",\n        \"parent\": \"445100\"\n    },\n    {\n        \"name\": \"饶平县\",\n        \"value\": \"445122\",\n        \"parent\": \"445100\"\n    },\n    {\n        \"name\": \"榕城区\",\n        \"value\": \"445202\",\n        \"parent\": \"445200\"\n    },\n    {\n        \"name\": \"揭东区\",\n        \"value\": \"445203\",\n        \"parent\": \"445200\"\n    },\n    {\n        \"name\": \"揭西县\",\n        \"value\": \"445222\",\n        \"parent\": \"445200\"\n    },\n    {\n        \"name\": \"惠来县\",\n        \"value\": \"445224\",\n        \"parent\": \"445200\"\n    },\n    {\n        \"name\": \"普宁市\",\n        \"value\": \"445281\",\n        \"parent\": \"445200\"\n    },\n    {\n        \"name\": \"云城区\",\n        \"value\": \"445302\",\n        \"parent\": \"445300\"\n    },\n    {\n        \"name\": \"云安区\",\n        \"value\": \"445303\",\n        \"parent\": \"445300\"\n    },\n    {\n        \"name\": \"新兴县\",\n        \"value\": \"445321\",\n        \"parent\": \"445300\"\n    },\n    {\n        \"name\": \"郁南县\",\n        \"value\": \"445322\",\n        \"parent\": \"445300\"\n    },\n    {\n        \"name\": \"罗定市\",\n        \"value\": \"445381\",\n        \"parent\": \"445300\"\n    },\n    {\n        \"name\": \"南宁市\",\n        \"value\": \"450100\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"柳州市\",\n        \"value\": \"450200\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"桂林市\",\n        \"value\": \"450300\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"梧州市\",\n        \"value\": \"450400\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"北海市\",\n        \"value\": \"450500\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"防城港市\",\n        \"value\": \"450600\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"钦州市\",\n        \"value\": \"450700\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"贵港市\",\n        \"value\": \"450800\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"玉林市\",\n        \"value\": \"450900\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"百色市\",\n        \"value\": \"451000\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"贺州市\",\n        \"value\": \"451100\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"河池市\",\n        \"value\": \"451200\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"来宾市\",\n        \"value\": \"451300\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"崇左市\",\n        \"value\": \"451400\",\n        \"parent\": \"450000\"\n    },\n    {\n        \"name\": \"兴宁区\",\n        \"value\": \"450102\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"青秀区\",\n        \"value\": \"450103\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"江南区\",\n        \"value\": \"450105\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"西乡塘区\",\n        \"value\": \"450107\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"良庆区\",\n        \"value\": \"450108\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"邕宁区\",\n        \"value\": \"450109\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"武鸣区\",\n        \"value\": \"450110\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"隆安县\",\n        \"value\": \"450123\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"马山县\",\n        \"value\": \"450124\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"上林县\",\n        \"value\": \"450125\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"宾阳县\",\n        \"value\": \"450126\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"横县\",\n        \"value\": \"450127\",\n        \"parent\": \"450100\"\n    },\n    {\n        \"name\": \"城中区\",\n        \"value\": \"450202\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"鱼峰区\",\n        \"value\": \"450203\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"柳南区\",\n        \"value\": \"450204\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"柳北区\",\n        \"value\": \"450205\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"柳江县\",\n        \"value\": \"450221\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"柳城县\",\n        \"value\": \"450222\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"鹿寨县\",\n        \"value\": \"450223\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"融安县\",\n        \"value\": \"450224\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"融水苗族自治县\",\n        \"value\": \"450225\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"三江侗族自治县\",\n        \"value\": \"450226\",\n        \"parent\": \"450200\"\n    },\n    {\n        \"name\": \"秀峰区\",\n        \"value\": \"450302\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"叠彩区\",\n        \"value\": \"450303\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"象山区\",\n        \"value\": \"450304\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"七星区\",\n        \"value\": \"450305\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"雁山区\",\n        \"value\": \"450311\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"临桂区\",\n        \"value\": \"450312\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"阳朔县\",\n        \"value\": \"450321\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"灵川县\",\n        \"value\": \"450323\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"全州县\",\n        \"value\": \"450324\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"兴安县\",\n        \"value\": \"450325\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"永福县\",\n        \"value\": \"450326\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"灌阳县\",\n        \"value\": \"450327\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"龙胜各族自治县\",\n        \"value\": \"450328\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"资源县\",\n        \"value\": \"450329\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"平乐县\",\n        \"value\": \"450330\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"荔浦县\",\n        \"value\": \"450331\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"恭城瑶族自治县\",\n        \"value\": \"450332\",\n        \"parent\": \"450300\"\n    },\n    {\n        \"name\": \"万秀区\",\n        \"value\": \"450403\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"长洲区\",\n        \"value\": \"450405\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"龙圩区\",\n        \"value\": \"450406\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"苍梧县\",\n        \"value\": \"450421\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"藤县\",\n        \"value\": \"450422\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"蒙山县\",\n        \"value\": \"450423\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"岑溪市\",\n        \"value\": \"450481\",\n        \"parent\": \"450400\"\n    },\n    {\n        \"name\": \"海城区\",\n        \"value\": \"450502\",\n        \"parent\": \"450500\"\n    },\n    {\n        \"name\": \"银海区\",\n        \"value\": \"450503\",\n        \"parent\": \"450500\"\n    },\n    {\n        \"name\": \"铁山港区\",\n        \"value\": \"450512\",\n        \"parent\": \"450500\"\n    },\n    {\n        \"name\": \"合浦县\",\n        \"value\": \"450521\",\n        \"parent\": \"450500\"\n    },\n    {\n        \"name\": \"港口区\",\n        \"value\": \"450602\",\n        \"parent\": \"450600\"\n    },\n    {\n        \"name\": \"防城区\",\n        \"value\": \"450603\",\n        \"parent\": \"450600\"\n    },\n    {\n        \"name\": \"上思县\",\n        \"value\": \"450621\",\n        \"parent\": \"450600\"\n    },\n    {\n        \"name\": \"东兴市\",\n        \"value\": \"450681\",\n        \"parent\": \"450600\"\n    },\n    {\n        \"name\": \"钦南区\",\n        \"value\": \"450702\",\n        \"parent\": \"450700\"\n    },\n    {\n        \"name\": \"钦北区\",\n        \"value\": \"450703\",\n        \"parent\": \"450700\"\n    },\n    {\n        \"name\": \"灵山县\",\n        \"value\": \"450721\",\n        \"parent\": \"450700\"\n    },\n    {\n        \"name\": \"浦北县\",\n        \"value\": \"450722\",\n        \"parent\": \"450700\"\n    },\n    {\n        \"name\": \"港北区\",\n        \"value\": \"450802\",\n        \"parent\": \"450800\"\n    },\n    {\n        \"name\": \"港南区\",\n        \"value\": \"450803\",\n        \"parent\": \"450800\"\n    },\n    {\n        \"name\": \"覃塘区\",\n        \"value\": \"450804\",\n        \"parent\": \"450800\"\n    },\n    {\n        \"name\": \"平南县\",\n        \"value\": \"450821\",\n        \"parent\": \"450800\"\n    },\n    {\n        \"name\": \"桂平市\",\n        \"value\": \"450881\",\n        \"parent\": \"450800\"\n    },\n    {\n        \"name\": \"玉州区\",\n        \"value\": \"450902\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"福绵区\",\n        \"value\": \"450903\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"容县\",\n        \"value\": \"450921\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"陆川县\",\n        \"value\": \"450922\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"博白县\",\n        \"value\": \"450923\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"兴业县\",\n        \"value\": \"450924\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"北流市\",\n        \"value\": \"450981\",\n        \"parent\": \"450900\"\n    },\n    {\n        \"name\": \"右江区\",\n        \"value\": \"451002\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"田阳县\",\n        \"value\": \"451021\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"田东县\",\n        \"value\": \"451022\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"平果县\",\n        \"value\": \"451023\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"德保县\",\n        \"value\": \"451024\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"那坡县\",\n        \"value\": \"451026\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"凌云县\",\n        \"value\": \"451027\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"乐业县\",\n        \"value\": \"451028\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"田林县\",\n        \"value\": \"451029\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"西林县\",\n        \"value\": \"451030\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"隆林各族自治县\",\n        \"value\": \"451031\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"靖西市\",\n        \"value\": \"451081\",\n        \"parent\": \"451000\"\n    },\n    {\n        \"name\": \"八步区\",\n        \"value\": \"451102\",\n        \"parent\": \"451100\"\n    },\n    {\n        \"name\": \"昭平县\",\n        \"value\": \"451121\",\n        \"parent\": \"451100\"\n    },\n    {\n        \"name\": \"钟山县\",\n        \"value\": \"451122\",\n        \"parent\": \"451100\"\n    },\n    {\n        \"name\": \"富川瑶族自治县\",\n        \"value\": \"451123\",\n        \"parent\": \"451100\"\n    },\n    {\n        \"name\": \"金城江区\",\n        \"value\": \"451202\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"南丹县\",\n        \"value\": \"451221\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"天峨县\",\n        \"value\": \"451222\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"凤山县\",\n        \"value\": \"451223\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"东兰县\",\n        \"value\": \"451224\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"罗城仫佬族自治县\",\n        \"value\": \"451225\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"环江毛南族自治县\",\n        \"value\": \"451226\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"巴马瑶族自治县\",\n        \"value\": \"451227\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"都安瑶族自治县\",\n        \"value\": \"451228\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"大化瑶族自治县\",\n        \"value\": \"451229\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"宜州市\",\n        \"value\": \"451281\",\n        \"parent\": \"451200\"\n    },\n    {\n        \"name\": \"兴宾区\",\n        \"value\": \"451302\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"忻城县\",\n        \"value\": \"451321\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"象州县\",\n        \"value\": \"451322\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"武宣县\",\n        \"value\": \"451323\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"金秀瑶族自治县\",\n        \"value\": \"451324\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"合山市\",\n        \"value\": \"451381\",\n        \"parent\": \"451300\"\n    },\n    {\n        \"name\": \"江州区\",\n        \"value\": \"451402\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"扶绥县\",\n        \"value\": \"451421\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"宁明县\",\n        \"value\": \"451422\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"龙州县\",\n        \"value\": \"451423\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"大新县\",\n        \"value\": \"451424\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"天等县\",\n        \"value\": \"451425\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"凭祥市\",\n        \"value\": \"451481\",\n        \"parent\": \"451400\"\n    },\n    {\n        \"name\": \"海口市\",\n        \"value\": \"460100\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"三亚市\",\n        \"value\": \"460200\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"三沙市\",\n        \"value\": \"460300\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"儋州市\",\n        \"value\": \"460400\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"五指山市\",\n        \"value\": \"469001\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"琼海市\",\n        \"value\": \"469002\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"文昌市\",\n        \"value\": \"469005\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"万宁市\",\n        \"value\": \"469006\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"东方市\",\n        \"value\": \"469007\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"定安县\",\n        \"value\": \"469021\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"屯昌县\",\n        \"value\": \"469022\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"澄迈县\",\n        \"value\": \"469023\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"临高县\",\n        \"value\": \"469024\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"白沙黎族自治县\",\n        \"value\": \"469025\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"昌江黎族自治县\",\n        \"value\": \"469026\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"乐东黎族自治县\",\n        \"value\": \"469027\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"陵水黎族自治县\",\n        \"value\": \"469028\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"保亭黎族苗族自治县\",\n        \"value\": \"469029\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"琼中黎族苗族自治县\",\n        \"value\": \"469030\",\n        \"parent\": \"460000\"\n    },\n    {\n        \"name\": \"秀英区\",\n        \"value\": \"460105\",\n        \"parent\": \"460100\"\n    },\n    {\n        \"name\": \"龙华区\",\n        \"value\": \"460106\",\n        \"parent\": \"460100\"\n    },\n    {\n        \"name\": \"琼山区\",\n        \"value\": \"460107\",\n        \"parent\": \"460100\"\n    },\n    {\n        \"name\": \"美兰区\",\n        \"value\": \"460108\",\n        \"parent\": \"460100\"\n    },\n    {\n        \"name\": \"三亚湾\",\n        \"value\": \"460200\",\n        \"parent\": \"460200\"\n    },\n    {\n        \"name\": \"海棠区\",\n        \"value\": \"460202\",\n        \"parent\": \"460200\"\n    },\n    {\n        \"name\": \"吉阳区\",\n        \"value\": \"460203\",\n        \"parent\": \"460200\"\n    },\n    {\n        \"name\": \"天涯区\",\n        \"value\": \"460204\",\n        \"parent\": \"460200\"\n    },\n    {\n        \"name\": \"崖州区\",\n        \"value\": \"460205\",\n        \"parent\": \"460200\"\n    },\n    {\n        \"name\": \"西沙群岛\",\n        \"value\": \"460321\",\n        \"parent\": \"460300\"\n    },\n    {\n        \"name\": \"南沙群岛\",\n        \"value\": \"460322\",\n        \"parent\": \"460300\"\n    },\n    {\n        \"name\": \"中沙群岛的岛礁及其海域\",\n        \"value\": \"460323\",\n        \"parent\": \"460300\"\n    },\n    {\n        \"name\": \"重庆市市辖区\",\n        \"value\": \"500100\",\n        \"parent\": \"500000\"\n    },\n    {\n        \"name\": \"重庆市郊县\",\n        \"value\": \"500200\",\n        \"parent\": \"500000\"\n    },\n    {\n        \"name\": \"万州区\",\n        \"value\": \"500101\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"涪陵区\",\n        \"value\": \"500102\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"渝中区\",\n        \"value\": \"500103\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"大渡口区\",\n        \"value\": \"500104\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"江北区\",\n        \"value\": \"500105\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"沙坪坝区\",\n        \"value\": \"500106\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"九龙坡区\",\n        \"value\": \"500107\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"南岸区\",\n        \"value\": \"500108\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"北碚区\",\n        \"value\": \"500109\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"綦江区\",\n        \"value\": \"500110\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"大足区\",\n        \"value\": \"500111\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"渝北区\",\n        \"value\": \"500112\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"巴南区\",\n        \"value\": \"500113\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"黔江区\",\n        \"value\": \"500114\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"长寿区\",\n        \"value\": \"500115\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"江津区\",\n        \"value\": \"500116\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"合川区\",\n        \"value\": \"500117\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"永川区\",\n        \"value\": \"500118\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"南川区\",\n        \"value\": \"500119\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"璧山区\",\n        \"value\": \"500120\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"铜梁区\",\n        \"value\": \"500151\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"潼南区\",\n        \"value\": \"500152\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"荣昌区\",\n        \"value\": \"500153\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"梁平县\",\n        \"value\": \"500228\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"城口县\",\n        \"value\": \"500229\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"丰都县\",\n        \"value\": \"500230\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"垫江县\",\n        \"value\": \"500231\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"武隆县\",\n        \"value\": \"500232\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"忠县\",\n        \"value\": \"500233\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"开县\",\n        \"value\": \"500234\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"云阳县\",\n        \"value\": \"500235\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"奉节县\",\n        \"value\": \"500236\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"巫山县\",\n        \"value\": \"500237\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"巫溪县\",\n        \"value\": \"500238\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"石柱土家族自治县\",\n        \"value\": \"500240\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"秀山土家族苗族自治县\",\n        \"value\": \"500241\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"酉阳土家族苗族自治县\",\n        \"value\": \"500242\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"彭水苗族土家族自治县\",\n        \"value\": \"500243\",\n        \"parent\": \"500100\"\n    },\n    {\n        \"name\": \"成都市\",\n        \"value\": \"510100\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"自贡市\",\n        \"value\": \"510300\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"攀枝花市\",\n        \"value\": \"510400\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"泸州市\",\n        \"value\": \"510500\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"德阳市\",\n        \"value\": \"510600\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"绵阳市\",\n        \"value\": \"510700\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"广元市\",\n        \"value\": \"510800\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"遂宁市\",\n        \"value\": \"510900\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"内江市\",\n        \"value\": \"511000\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"乐山市\",\n        \"value\": \"511100\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"南充市\",\n        \"value\": \"511300\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"眉山市\",\n        \"value\": \"511400\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"宜宾市\",\n        \"value\": \"511500\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"广安市\",\n        \"value\": \"511600\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"达州市\",\n        \"value\": \"511700\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"雅安市\",\n        \"value\": \"511800\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"巴中市\",\n        \"value\": \"511900\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"资阳市\",\n        \"value\": \"512000\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"阿坝藏族羌族自治州\",\n        \"value\": \"513200\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"甘孜藏族自治州\",\n        \"value\": \"513300\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"凉山彝族自治州\",\n        \"value\": \"513400\",\n        \"parent\": \"510000\"\n    },\n    {\n        \"name\": \"锦江区\",\n        \"value\": \"510104\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"青羊区\",\n        \"value\": \"510105\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"金牛区\",\n        \"value\": \"510106\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"武侯区\",\n        \"value\": \"510107\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"成华区\",\n        \"value\": \"510108\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"龙泉驿区\",\n        \"value\": \"510112\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"青白江区\",\n        \"value\": \"510113\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"新都区\",\n        \"value\": \"510114\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"温江区\",\n        \"value\": \"510115\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"金堂县\",\n        \"value\": \"510121\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"双流县\",\n        \"value\": \"510122\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"郫县\",\n        \"value\": \"510124\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"大邑县\",\n        \"value\": \"510129\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"蒲江县\",\n        \"value\": \"510131\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"新津县\",\n        \"value\": \"510132\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"都江堰市\",\n        \"value\": \"510181\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"彭州市\",\n        \"value\": \"510182\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"邛崃市\",\n        \"value\": \"510183\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"崇州市\",\n        \"value\": \"510184\",\n        \"parent\": \"510100\"\n    },\n    {\n        \"name\": \"自流井区\",\n        \"value\": \"510302\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"贡井区\",\n        \"value\": \"510303\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"大安区\",\n        \"value\": \"510304\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"沿滩区\",\n        \"value\": \"510311\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"荣县\",\n        \"value\": \"510321\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"富顺县\",\n        \"value\": \"510322\",\n        \"parent\": \"510300\"\n    },\n    {\n        \"name\": \"东区\",\n        \"value\": \"510402\",\n        \"parent\": \"510400\"\n    },\n    {\n        \"name\": \"西区\",\n        \"value\": \"510403\",\n        \"parent\": \"510400\"\n    },\n    {\n        \"name\": \"仁和区\",\n        \"value\": \"510411\",\n        \"parent\": \"510400\"\n    },\n    {\n        \"name\": \"米易县\",\n        \"value\": \"510421\",\n        \"parent\": \"510400\"\n    },\n    {\n        \"name\": \"盐边县\",\n        \"value\": \"510422\",\n        \"parent\": \"510400\"\n    },\n    {\n        \"name\": \"江阳区\",\n        \"value\": \"510502\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"纳溪区\",\n        \"value\": \"510503\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"龙马潭区\",\n        \"value\": \"510504\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"泸县\",\n        \"value\": \"510521\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"合江县\",\n        \"value\": \"510522\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"叙永县\",\n        \"value\": \"510524\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"古蔺县\",\n        \"value\": \"510525\",\n        \"parent\": \"510500\"\n    },\n    {\n        \"name\": \"旌阳区\",\n        \"value\": \"510603\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"中江县\",\n        \"value\": \"510623\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"罗江县\",\n        \"value\": \"510626\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"广汉市\",\n        \"value\": \"510681\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"什邡市\",\n        \"value\": \"510682\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"绵竹市\",\n        \"value\": \"510683\",\n        \"parent\": \"510600\"\n    },\n    {\n        \"name\": \"涪城区\",\n        \"value\": \"510703\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"游仙区\",\n        \"value\": \"510704\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"三台县\",\n        \"value\": \"510722\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"盐亭县\",\n        \"value\": \"510723\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"安县\",\n        \"value\": \"510724\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"梓潼县\",\n        \"value\": \"510725\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"北川羌族自治县\",\n        \"value\": \"510726\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"平武县\",\n        \"value\": \"510727\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"江油市\",\n        \"value\": \"510781\",\n        \"parent\": \"510700\"\n    },\n    {\n        \"name\": \"利州区\",\n        \"value\": \"510802\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"昭化区\",\n        \"value\": \"510811\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"朝天区\",\n        \"value\": \"510812\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"旺苍县\",\n        \"value\": \"510821\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"青川县\",\n        \"value\": \"510822\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"剑阁县\",\n        \"value\": \"510823\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"苍溪县\",\n        \"value\": \"510824\",\n        \"parent\": \"510800\"\n    },\n    {\n        \"name\": \"船山区\",\n        \"value\": \"510903\",\n        \"parent\": \"510900\"\n    },\n    {\n        \"name\": \"安居区\",\n        \"value\": \"510904\",\n        \"parent\": \"510900\"\n    },\n    {\n        \"name\": \"蓬溪县\",\n        \"value\": \"510921\",\n        \"parent\": \"510900\"\n    },\n    {\n        \"name\": \"射洪县\",\n        \"value\": \"510922\",\n        \"parent\": \"510900\"\n    },\n    {\n        \"name\": \"大英县\",\n        \"value\": \"510923\",\n        \"parent\": \"510900\"\n    },\n    {\n        \"name\": \"市中区\",\n        \"value\": \"511002\",\n        \"parent\": \"511000\"\n    },\n    {\n        \"name\": \"东兴区\",\n        \"value\": \"511011\",\n        \"parent\": \"511000\"\n    },\n    {\n        \"name\": \"威远县\",\n        \"value\": \"511024\",\n        \"parent\": \"511000\"\n    },\n    {\n        \"name\": \"资中县\",\n        \"value\": \"511025\",\n        \"parent\": \"511000\"\n    },\n    {\n        \"name\": \"隆昌县\",\n        \"value\": \"511028\",\n        \"parent\": \"511000\"\n    },\n    {\n        \"name\": \"市中区\",\n        \"value\": \"511102\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"沙湾区\",\n        \"value\": \"511111\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"五通桥区\",\n        \"value\": \"511112\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"金口河区\",\n        \"value\": \"511113\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"犍为县\",\n        \"value\": \"511123\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"井研县\",\n        \"value\": \"511124\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"夹江县\",\n        \"value\": \"511126\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"沐川县\",\n        \"value\": \"511129\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"峨边彝族自治县\",\n        \"value\": \"511132\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"马边彝族自治县\",\n        \"value\": \"511133\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"峨眉山市\",\n        \"value\": \"511181\",\n        \"parent\": \"511100\"\n    },\n    {\n        \"name\": \"顺庆区\",\n        \"value\": \"511302\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"高坪区\",\n        \"value\": \"511303\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"嘉陵区\",\n        \"value\": \"511304\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"南部县\",\n        \"value\": \"511321\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"营山县\",\n        \"value\": \"511322\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"蓬安县\",\n        \"value\": \"511323\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"仪陇县\",\n        \"value\": \"511324\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"西充县\",\n        \"value\": \"511325\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"阆中市\",\n        \"value\": \"511381\",\n        \"parent\": \"511300\"\n    },\n    {\n        \"name\": \"东坡区\",\n        \"value\": \"511402\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"彭山区\",\n        \"value\": \"511403\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"仁寿县\",\n        \"value\": \"511421\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"洪雅县\",\n        \"value\": \"511423\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"丹棱县\",\n        \"value\": \"511424\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"青神县\",\n        \"value\": \"511425\",\n        \"parent\": \"511400\"\n    },\n    {\n        \"name\": \"翠屏区\",\n        \"value\": \"511502\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"南溪区\",\n        \"value\": \"511503\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"宜宾县\",\n        \"value\": \"511521\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"江安县\",\n        \"value\": \"511523\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"长宁县\",\n        \"value\": \"511524\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"高县\",\n        \"value\": \"511525\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"珙县\",\n        \"value\": \"511526\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"筠连县\",\n        \"value\": \"511527\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"兴文县\",\n        \"value\": \"511528\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"屏山县\",\n        \"value\": \"511529\",\n        \"parent\": \"511500\"\n    },\n    {\n        \"name\": \"广安区\",\n        \"value\": \"511602\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"前锋区\",\n        \"value\": \"511603\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"岳池县\",\n        \"value\": \"511621\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"武胜县\",\n        \"value\": \"511622\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"邻水县\",\n        \"value\": \"511623\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"华蓥市\",\n        \"value\": \"511681\",\n        \"parent\": \"511600\"\n    },\n    {\n        \"name\": \"通川区\",\n        \"value\": \"511702\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"达川区\",\n        \"value\": \"511703\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"宣汉县\",\n        \"value\": \"511722\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"开江县\",\n        \"value\": \"511723\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"大竹县\",\n        \"value\": \"511724\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"渠县\",\n        \"value\": \"511725\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"万源市\",\n        \"value\": \"511781\",\n        \"parent\": \"511700\"\n    },\n    {\n        \"name\": \"雨城区\",\n        \"value\": \"511802\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"名山区\",\n        \"value\": \"511803\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"荥经县\",\n        \"value\": \"511822\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"汉源县\",\n        \"value\": \"511823\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"石棉县\",\n        \"value\": \"511824\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"天全县\",\n        \"value\": \"511825\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"芦山县\",\n        \"value\": \"511826\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"宝兴县\",\n        \"value\": \"511827\",\n        \"parent\": \"511800\"\n    },\n    {\n        \"name\": \"巴州区\",\n        \"value\": \"511902\",\n        \"parent\": \"511900\"\n    },\n    {\n        \"name\": \"恩阳区\",\n        \"value\": \"511903\",\n        \"parent\": \"511900\"\n    },\n    {\n        \"name\": \"通江县\",\n        \"value\": \"511921\",\n        \"parent\": \"511900\"\n    },\n    {\n        \"name\": \"南江县\",\n        \"value\": \"511922\",\n        \"parent\": \"511900\"\n    },\n    {\n        \"name\": \"平昌县\",\n        \"value\": \"511923\",\n        \"parent\": \"511900\"\n    },\n    {\n        \"name\": \"雁江区\",\n        \"value\": \"512002\",\n        \"parent\": \"512000\"\n    },\n    {\n        \"name\": \"安岳县\",\n        \"value\": \"512021\",\n        \"parent\": \"512000\"\n    },\n    {\n        \"name\": \"乐至县\",\n        \"value\": \"512022\",\n        \"parent\": \"512000\"\n    },\n    {\n        \"name\": \"简阳市\",\n        \"value\": \"512081\",\n        \"parent\": \"512000\"\n    },\n    {\n        \"name\": \"汶川县\",\n        \"value\": \"513221\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"理县\",\n        \"value\": \"513222\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"茂县\",\n        \"value\": \"513223\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"松潘县\",\n        \"value\": \"513224\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"九寨沟县\",\n        \"value\": \"513225\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"金川县\",\n        \"value\": \"513226\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"小金县\",\n        \"value\": \"513227\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"黑水县\",\n        \"value\": \"513228\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"马尔康县\",\n        \"value\": \"513229\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"壤塘县\",\n        \"value\": \"513230\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"阿坝县\",\n        \"value\": \"513231\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"若尔盖县\",\n        \"value\": \"513232\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"红原县\",\n        \"value\": \"513233\",\n        \"parent\": \"513200\"\n    },\n    {\n        \"name\": \"康定市\",\n        \"value\": \"513301\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"泸定县\",\n        \"value\": \"513322\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"丹巴县\",\n        \"value\": \"513323\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"九龙县\",\n        \"value\": \"513324\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"雅江县\",\n        \"value\": \"513325\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"道孚县\",\n        \"value\": \"513326\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"炉霍县\",\n        \"value\": \"513327\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"甘孜县\",\n        \"value\": \"513328\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"新龙县\",\n        \"value\": \"513329\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"德格县\",\n        \"value\": \"513330\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"白玉县\",\n        \"value\": \"513331\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"石渠县\",\n        \"value\": \"513332\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"色达县\",\n        \"value\": \"513333\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"理塘县\",\n        \"value\": \"513334\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"巴塘县\",\n        \"value\": \"513335\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"乡城县\",\n        \"value\": \"513336\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"稻城县\",\n        \"value\": \"513337\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"得荣县\",\n        \"value\": \"513338\",\n        \"parent\": \"513300\"\n    },\n    {\n        \"name\": \"西昌市\",\n        \"value\": \"513401\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"木里藏族自治县\",\n        \"value\": \"513422\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"盐源县\",\n        \"value\": \"513423\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"德昌县\",\n        \"value\": \"513424\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"会理县\",\n        \"value\": \"513425\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"会东县\",\n        \"value\": \"513426\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"宁南县\",\n        \"value\": \"513427\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"普格县\",\n        \"value\": \"513428\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"布拖县\",\n        \"value\": \"513429\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"金阳县\",\n        \"value\": \"513430\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"昭觉县\",\n        \"value\": \"513431\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"喜德县\",\n        \"value\": \"513432\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"冕宁县\",\n        \"value\": \"513433\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"越西县\",\n        \"value\": \"513434\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"甘洛县\",\n        \"value\": \"513435\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"美姑县\",\n        \"value\": \"513436\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"雷波县\",\n        \"value\": \"513437\",\n        \"parent\": \"513400\"\n    },\n    {\n        \"name\": \"贵阳市\",\n        \"value\": \"520100\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"六盘水市\",\n        \"value\": \"520200\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"遵义市\",\n        \"value\": \"520300\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"安顺市\",\n        \"value\": \"520400\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"毕节市\",\n        \"value\": \"520500\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"铜仁市\",\n        \"value\": \"520600\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"黔西南布依族苗族自治州\",\n        \"value\": \"522300\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"黔东南苗族侗族自治州\",\n        \"value\": \"522600\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"黔南布依族苗族自治州\",\n        \"value\": \"522700\",\n        \"parent\": \"520000\"\n    },\n    {\n        \"name\": \"南明区\",\n        \"value\": \"520102\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"云岩区\",\n        \"value\": \"520103\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"花溪区\",\n        \"value\": \"520111\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"乌当区\",\n        \"value\": \"520112\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"白云区\",\n        \"value\": \"520113\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"观山湖区\",\n        \"value\": \"520115\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"开阳县\",\n        \"value\": \"520121\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"息烽县\",\n        \"value\": \"520122\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"修文县\",\n        \"value\": \"520123\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"清镇市\",\n        \"value\": \"520181\",\n        \"parent\": \"520100\"\n    },\n    {\n        \"name\": \"钟山区\",\n        \"value\": \"520201\",\n        \"parent\": \"520200\"\n    },\n    {\n        \"name\": \"六枝特区\",\n        \"value\": \"520203\",\n        \"parent\": \"520200\"\n    },\n    {\n        \"name\": \"水城县\",\n        \"value\": \"520221\",\n        \"parent\": \"520200\"\n    },\n    {\n        \"name\": \"盘县\",\n        \"value\": \"520222\",\n        \"parent\": \"520200\"\n    },\n    {\n        \"name\": \"红花岗区\",\n        \"value\": \"520302\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"汇川区\",\n        \"value\": \"520303\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"遵义县\",\n        \"value\": \"520321\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"桐梓县\",\n        \"value\": \"520322\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"绥阳县\",\n        \"value\": \"520323\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"正安县\",\n        \"value\": \"520324\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"道真仡佬族苗族自治县\",\n        \"value\": \"520325\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"务川仡佬族苗族自治县\",\n        \"value\": \"520326\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"凤冈县\",\n        \"value\": \"520327\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"湄潭县\",\n        \"value\": \"520328\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"余庆县\",\n        \"value\": \"520329\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"习水县\",\n        \"value\": \"520330\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"赤水市\",\n        \"value\": \"520381\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"仁怀市\",\n        \"value\": \"520382\",\n        \"parent\": \"520300\"\n    },\n    {\n        \"name\": \"西秀区\",\n        \"value\": \"520402\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"平坝区\",\n        \"value\": \"520403\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"普定县\",\n        \"value\": \"520422\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"镇宁布依族苗族自治县\",\n        \"value\": \"520423\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"关岭布依族苗族自治县\",\n        \"value\": \"520424\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"紫云苗族布依族自治县\",\n        \"value\": \"520425\",\n        \"parent\": \"520400\"\n    },\n    {\n        \"name\": \"七星关区\",\n        \"value\": \"520502\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"大方县\",\n        \"value\": \"520521\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"黔西县\",\n        \"value\": \"520522\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"金沙县\",\n        \"value\": \"520523\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"织金县\",\n        \"value\": \"520524\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"纳雍县\",\n        \"value\": \"520525\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"威宁彝族回族苗族自治县\",\n        \"value\": \"520526\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"赫章县\",\n        \"value\": \"520527\",\n        \"parent\": \"520500\"\n    },\n    {\n        \"name\": \"碧江区\",\n        \"value\": \"520602\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"万山区\",\n        \"value\": \"520603\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"江口县\",\n        \"value\": \"520621\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"玉屏侗族自治县\",\n        \"value\": \"520622\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"石阡县\",\n        \"value\": \"520623\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"思南县\",\n        \"value\": \"520624\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"印江土家族苗族自治县\",\n        \"value\": \"520625\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"德江县\",\n        \"value\": \"520626\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"沿河土家族自治县\",\n        \"value\": \"520627\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"松桃苗族自治县\",\n        \"value\": \"520628\",\n        \"parent\": \"520600\"\n    },\n    {\n        \"name\": \"兴义市\",\n        \"value\": \"522301\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"兴仁县\",\n        \"value\": \"522322\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"普安县\",\n        \"value\": \"522323\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"晴隆县\",\n        \"value\": \"522324\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"贞丰县\",\n        \"value\": \"522325\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"望谟县\",\n        \"value\": \"522326\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"册亨县\",\n        \"value\": \"522327\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"安龙县\",\n        \"value\": \"522328\",\n        \"parent\": \"522300\"\n    },\n    {\n        \"name\": \"凯里市\",\n        \"value\": \"522601\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"黄平县\",\n        \"value\": \"522622\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"施秉县\",\n        \"value\": \"522623\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"三穗县\",\n        \"value\": \"522624\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"镇远县\",\n        \"value\": \"522625\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"岑巩县\",\n        \"value\": \"522626\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"天柱县\",\n        \"value\": \"522627\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"锦屏县\",\n        \"value\": \"522628\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"剑河县\",\n        \"value\": \"522629\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"台江县\",\n        \"value\": \"522630\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"黎平县\",\n        \"value\": \"522631\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"榕江县\",\n        \"value\": \"522632\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"从江县\",\n        \"value\": \"522633\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"雷山县\",\n        \"value\": \"522634\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"麻江县\",\n        \"value\": \"522635\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"丹寨县\",\n        \"value\": \"522636\",\n        \"parent\": \"522600\"\n    },\n    {\n        \"name\": \"都匀市\",\n        \"value\": \"522701\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"福泉市\",\n        \"value\": \"522702\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"荔波县\",\n        \"value\": \"522722\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"贵定县\",\n        \"value\": \"522723\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"瓮安县\",\n        \"value\": \"522725\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"独山县\",\n        \"value\": \"522726\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"平塘县\",\n        \"value\": \"522727\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"罗甸县\",\n        \"value\": \"522728\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"长顺县\",\n        \"value\": \"522729\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"龙里县\",\n        \"value\": \"522730\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"惠水县\",\n        \"value\": \"522731\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"三都水族自治县\",\n        \"value\": \"522732\",\n        \"parent\": \"522700\"\n    },\n    {\n        \"name\": \"昆明市\",\n        \"value\": \"530100\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"曲靖市\",\n        \"value\": \"530300\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"玉溪市\",\n        \"value\": \"530400\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"保山市\",\n        \"value\": \"530500\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"昭通市\",\n        \"value\": \"530600\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"丽江市\",\n        \"value\": \"530700\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"普洱市\",\n        \"value\": \"530800\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"临沧市\",\n        \"value\": \"530900\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"楚雄彝族自治州\",\n        \"value\": \"532300\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"红河哈尼族彝族自治州\",\n        \"value\": \"532500\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"文山壮族苗族自治州\",\n        \"value\": \"532600\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"西双版纳傣族自治州\",\n        \"value\": \"532800\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"大理白族自治州\",\n        \"value\": \"532900\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"德宏傣族景颇族自治州\",\n        \"value\": \"533100\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"怒江傈僳族自治州\",\n        \"value\": \"533300\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"迪庆藏族自治州\",\n        \"value\": \"533400\",\n        \"parent\": \"530000\"\n    },\n    {\n        \"name\": \"五华区\",\n        \"value\": \"530102\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"盘龙区\",\n        \"value\": \"530103\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"官渡区\",\n        \"value\": \"530111\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"西山区\",\n        \"value\": \"530112\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"东川区\",\n        \"value\": \"530113\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"呈贡区\",\n        \"value\": \"530114\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"晋宁县\",\n        \"value\": \"530122\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"富民县\",\n        \"value\": \"530124\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"宜良县\",\n        \"value\": \"530125\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"石林彝族自治县\",\n        \"value\": \"530126\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"嵩明县\",\n        \"value\": \"530127\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"禄劝彝族苗族自治县\",\n        \"value\": \"530128\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"寻甸回族彝族自治县\",\n        \"value\": \"530129\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"安宁市\",\n        \"value\": \"530181\",\n        \"parent\": \"530100\"\n    },\n    {\n        \"name\": \"麒麟区\",\n        \"value\": \"530302\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"马龙县\",\n        \"value\": \"530321\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"陆良县\",\n        \"value\": \"530322\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"师宗县\",\n        \"value\": \"530323\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"罗平县\",\n        \"value\": \"530324\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"富源县\",\n        \"value\": \"530325\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"会泽县\",\n        \"value\": \"530326\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"沾益县\",\n        \"value\": \"530328\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"宣威市\",\n        \"value\": \"530381\",\n        \"parent\": \"530300\"\n    },\n    {\n        \"name\": \"红塔区\",\n        \"value\": \"530402\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"江川县\",\n        \"value\": \"530421\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"澄江县\",\n        \"value\": \"530422\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"通海县\",\n        \"value\": \"530423\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"华宁县\",\n        \"value\": \"530424\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"易门县\",\n        \"value\": \"530425\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"峨山彝族自治县\",\n        \"value\": \"530426\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"新平彝族傣族自治县\",\n        \"value\": \"530427\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"元江哈尼族彝族傣族自治县\",\n        \"value\": \"530428\",\n        \"parent\": \"530400\"\n    },\n    {\n        \"name\": \"隆阳区\",\n        \"value\": \"530502\",\n        \"parent\": \"530500\"\n    },\n    {\n        \"name\": \"施甸县\",\n        \"value\": \"530521\",\n        \"parent\": \"530500\"\n    },\n    {\n        \"name\": \"龙陵县\",\n        \"value\": \"530523\",\n        \"parent\": \"530500\"\n    },\n    {\n        \"name\": \"昌宁县\",\n        \"value\": \"530524\",\n        \"parent\": \"530500\"\n    },\n    {\n        \"name\": \"腾冲市\",\n        \"value\": \"530581\",\n        \"parent\": \"530500\"\n    },\n    {\n        \"name\": \"昭阳区\",\n        \"value\": \"530602\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"鲁甸县\",\n        \"value\": \"530621\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"巧家县\",\n        \"value\": \"530622\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"盐津县\",\n        \"value\": \"530623\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"大关县\",\n        \"value\": \"530624\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"永善县\",\n        \"value\": \"530625\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"绥江县\",\n        \"value\": \"530626\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"镇雄县\",\n        \"value\": \"530627\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"彝良县\",\n        \"value\": \"530628\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"威信县\",\n        \"value\": \"530629\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"水富县\",\n        \"value\": \"530630\",\n        \"parent\": \"530600\"\n    },\n    {\n        \"name\": \"古城区\",\n        \"value\": \"530702\",\n        \"parent\": \"530700\"\n    },\n    {\n        \"name\": \"玉龙纳西族自治县\",\n        \"value\": \"530721\",\n        \"parent\": \"530700\"\n    },\n    {\n        \"name\": \"永胜县\",\n        \"value\": \"530722\",\n        \"parent\": \"530700\"\n    },\n    {\n        \"name\": \"华坪县\",\n        \"value\": \"530723\",\n        \"parent\": \"530700\"\n    },\n    {\n        \"name\": \"宁蒗彝族自治县\",\n        \"value\": \"530724\",\n        \"parent\": \"530700\"\n    },\n    {\n        \"name\": \"思茅区\",\n        \"value\": \"530802\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"宁洱哈尼族彝族自治县\",\n        \"value\": \"530821\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"墨江哈尼族自治县\",\n        \"value\": \"530822\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"景东彝族自治县\",\n        \"value\": \"530823\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"景谷傣族彝族自治县\",\n        \"value\": \"530824\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"镇沅彝族哈尼族拉祜族自治县\",\n        \"value\": \"530825\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"江城哈尼族彝族自治县\",\n        \"value\": \"530826\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"孟连傣族拉祜族佤族自治县\",\n        \"value\": \"530827\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"澜沧拉祜族自治县\",\n        \"value\": \"530828\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"西盟佤族自治县\",\n        \"value\": \"530829\",\n        \"parent\": \"530800\"\n    },\n    {\n        \"name\": \"临翔区\",\n        \"value\": \"530902\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"凤庆县\",\n        \"value\": \"530921\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"云县\",\n        \"value\": \"530922\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"永德县\",\n        \"value\": \"530923\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"镇康县\",\n        \"value\": \"530924\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"双江拉祜族佤族布朗族傣族自治县\",\n        \"value\": \"530925\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"耿马傣族佤族自治县\",\n        \"value\": \"530926\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"沧源佤族自治县\",\n        \"value\": \"530927\",\n        \"parent\": \"530900\"\n    },\n    {\n        \"name\": \"楚雄市\",\n        \"value\": \"532301\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"双柏县\",\n        \"value\": \"532322\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"牟定县\",\n        \"value\": \"532323\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"南华县\",\n        \"value\": \"532324\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"姚安县\",\n        \"value\": \"532325\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"大姚县\",\n        \"value\": \"532326\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"永仁县\",\n        \"value\": \"532327\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"元谋县\",\n        \"value\": \"532328\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"武定县\",\n        \"value\": \"532329\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"禄丰县\",\n        \"value\": \"532331\",\n        \"parent\": \"532300\"\n    },\n    {\n        \"name\": \"个旧市\",\n        \"value\": \"532501\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"开远市\",\n        \"value\": \"532502\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"蒙自市\",\n        \"value\": \"532503\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"弥勒市\",\n        \"value\": \"532504\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"屏边苗族自治县\",\n        \"value\": \"532523\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"建水县\",\n        \"value\": \"532524\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"石屏县\",\n        \"value\": \"532525\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"泸西县\",\n        \"value\": \"532527\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"元阳县\",\n        \"value\": \"532528\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"红河县\",\n        \"value\": \"532529\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"金平苗族瑶族傣族自治县\",\n        \"value\": \"532530\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"绿春县\",\n        \"value\": \"532531\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"河口瑶族自治县\",\n        \"value\": \"532532\",\n        \"parent\": \"532500\"\n    },\n    {\n        \"name\": \"文山市\",\n        \"value\": \"532601\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"砚山县\",\n        \"value\": \"532622\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"西畴县\",\n        \"value\": \"532623\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"麻栗坡县\",\n        \"value\": \"532624\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"马关县\",\n        \"value\": \"532625\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"丘北县\",\n        \"value\": \"532626\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"广南县\",\n        \"value\": \"532627\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"富宁县\",\n        \"value\": \"532628\",\n        \"parent\": \"532600\"\n    },\n    {\n        \"name\": \"景洪市\",\n        \"value\": \"532801\",\n        \"parent\": \"532800\"\n    },\n    {\n        \"name\": \"勐海县\",\n        \"value\": \"532822\",\n        \"parent\": \"532800\"\n    },\n    {\n        \"name\": \"勐腊县\",\n        \"value\": \"532823\",\n        \"parent\": \"532800\"\n    },\n    {\n        \"name\": \"大理市\",\n        \"value\": \"532901\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"漾濞彝族自治县\",\n        \"value\": \"532922\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"祥云县\",\n        \"value\": \"532923\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"宾川县\",\n        \"value\": \"532924\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"弥渡县\",\n        \"value\": \"532925\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"南涧彝族自治县\",\n        \"value\": \"532926\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"巍山彝族回族自治县\",\n        \"value\": \"532927\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"永平县\",\n        \"value\": \"532928\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"云龙县\",\n        \"value\": \"532929\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"洱源县\",\n        \"value\": \"532930\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"剑川县\",\n        \"value\": \"532931\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"鹤庆县\",\n        \"value\": \"532932\",\n        \"parent\": \"532900\"\n    },\n    {\n        \"name\": \"瑞丽市\",\n        \"value\": \"533102\",\n        \"parent\": \"533100\"\n    },\n    {\n        \"name\": \"芒市\",\n        \"value\": \"533103\",\n        \"parent\": \"533100\"\n    },\n    {\n        \"name\": \"梁河县\",\n        \"value\": \"533122\",\n        \"parent\": \"533100\"\n    },\n    {\n        \"name\": \"盈江县\",\n        \"value\": \"533123\",\n        \"parent\": \"533100\"\n    },\n    {\n        \"name\": \"陇川县\",\n        \"value\": \"533124\",\n        \"parent\": \"533100\"\n    },\n    {\n        \"name\": \"泸水县\",\n        \"value\": \"533321\",\n        \"parent\": \"533300\"\n    },\n    {\n        \"name\": \"福贡县\",\n        \"value\": \"533323\",\n        \"parent\": \"533300\"\n    },\n    {\n        \"name\": \"贡山独龙族怒族自治县\",\n        \"value\": \"533324\",\n        \"parent\": \"533300\"\n    },\n    {\n        \"name\": \"兰坪白族普米族自治县\",\n        \"value\": \"533325\",\n        \"parent\": \"533300\"\n    },\n    {\n        \"name\": \"香格里拉市\",\n        \"value\": \"533401\",\n        \"parent\": \"533400\"\n    },\n    {\n        \"name\": \"德钦县\",\n        \"value\": \"533422\",\n        \"parent\": \"533400\"\n    },\n    {\n        \"name\": \"维西傈僳族自治县\",\n        \"value\": \"533423\",\n        \"parent\": \"533400\"\n    },\n    {\n        \"name\": \"拉萨市\",\n        \"value\": \"540100\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"日喀则市\",\n        \"value\": \"540200\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"昌都市\",\n        \"value\": \"540300\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"林芝市\",\n        \"value\": \"540400\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"山南地区\",\n        \"value\": \"542200\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"那曲地区\",\n        \"value\": \"542400\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"阿里地区\",\n        \"value\": \"542500\",\n        \"parent\": \"540000\"\n    },\n    {\n        \"name\": \"城关区\",\n        \"value\": \"540102\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"林周县\",\n        \"value\": \"540121\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"当雄县\",\n        \"value\": \"540122\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"尼木县\",\n        \"value\": \"540123\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"曲水县\",\n        \"value\": \"540124\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"堆龙德庆县\",\n        \"value\": \"540125\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"达孜县\",\n        \"value\": \"540126\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"墨竹工卡县\",\n        \"value\": \"540127\",\n        \"parent\": \"540100\"\n    },\n    {\n        \"name\": \"桑珠孜区\",\n        \"value\": \"540202\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"南木林县\",\n        \"value\": \"540221\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"江孜县\",\n        \"value\": \"540222\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"定日县\",\n        \"value\": \"540223\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"萨迦县\",\n        \"value\": \"540224\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"拉孜县\",\n        \"value\": \"540225\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"昂仁县\",\n        \"value\": \"540226\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"谢通门县\",\n        \"value\": \"540227\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"白朗县\",\n        \"value\": \"540228\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"仁布县\",\n        \"value\": \"540229\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"康马县\",\n        \"value\": \"540230\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"定结县\",\n        \"value\": \"540231\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"仲巴县\",\n        \"value\": \"540232\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"亚东县\",\n        \"value\": \"540233\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"吉隆县\",\n        \"value\": \"540234\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"聂拉木县\",\n        \"value\": \"540235\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"萨嘎县\",\n        \"value\": \"540236\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"岗巴县\",\n        \"value\": \"540237\",\n        \"parent\": \"540200\"\n    },\n    {\n        \"name\": \"卡若区\",\n        \"value\": \"540302\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"江达县\",\n        \"value\": \"540321\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"贡觉县\",\n        \"value\": \"540322\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"类乌齐县\",\n        \"value\": \"540323\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"丁青县\",\n        \"value\": \"540324\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"察雅县\",\n        \"value\": \"540325\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"八宿县\",\n        \"value\": \"540326\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"左贡县\",\n        \"value\": \"540327\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"芒康县\",\n        \"value\": \"540328\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"洛隆县\",\n        \"value\": \"540329\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"边坝县\",\n        \"value\": \"540330\",\n        \"parent\": \"540300\"\n    },\n    {\n        \"name\": \"巴宜区\",\n        \"value\": \"540402\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"工布江达县\",\n        \"value\": \"540421\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"米林县\",\n        \"value\": \"540422\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"墨脱县\",\n        \"value\": \"540423\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"波密县\",\n        \"value\": \"540424\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"察隅县\",\n        \"value\": \"540425\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"朗县\",\n        \"value\": \"540426\",\n        \"parent\": \"540400\"\n    },\n    {\n        \"name\": \"乃东县\",\n        \"value\": \"542221\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"扎囊县\",\n        \"value\": \"542222\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"贡嘎县\",\n        \"value\": \"542223\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"桑日县\",\n        \"value\": \"542224\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"琼结县\",\n        \"value\": \"542225\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"曲松县\",\n        \"value\": \"542226\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"措美县\",\n        \"value\": \"542227\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"洛扎县\",\n        \"value\": \"542228\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"加查县\",\n        \"value\": \"542229\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"隆子县\",\n        \"value\": \"542231\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"错那县\",\n        \"value\": \"542232\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"浪卡子县\",\n        \"value\": \"542233\",\n        \"parent\": \"542200\"\n    },\n    {\n        \"name\": \"那曲县\",\n        \"value\": \"542421\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"嘉黎县\",\n        \"value\": \"542422\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"比如县\",\n        \"value\": \"542423\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"聂荣县\",\n        \"value\": \"542424\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"安多县\",\n        \"value\": \"542425\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"申扎县\",\n        \"value\": \"542426\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"索县\",\n        \"value\": \"542427\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"班戈县\",\n        \"value\": \"542428\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"巴青县\",\n        \"value\": \"542429\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"尼玛县\",\n        \"value\": \"542430\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"双湖县\",\n        \"value\": \"542431\",\n        \"parent\": \"542400\"\n    },\n    {\n        \"name\": \"普兰县\",\n        \"value\": \"542521\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"札达县\",\n        \"value\": \"542522\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"噶尔县\",\n        \"value\": \"542523\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"日土县\",\n        \"value\": \"542524\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"革吉县\",\n        \"value\": \"542525\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"改则县\",\n        \"value\": \"542526\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"措勤县\",\n        \"value\": \"542527\",\n        \"parent\": \"542500\"\n    },\n    {\n        \"name\": \"西安市\",\n        \"value\": \"610100\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"铜川市\",\n        \"value\": \"610200\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"宝鸡市\",\n        \"value\": \"610300\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"咸阳市\",\n        \"value\": \"610400\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"渭南市\",\n        \"value\": \"610500\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"延安市\",\n        \"value\": \"610600\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"汉中市\",\n        \"value\": \"610700\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"榆林市\",\n        \"value\": \"610800\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"安康市\",\n        \"value\": \"610900\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"商洛市\",\n        \"value\": \"611000\",\n        \"parent\": \"610000\"\n    },\n    {\n        \"name\": \"新城区\",\n        \"value\": \"610102\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"碑林区\",\n        \"value\": \"610103\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"莲湖区\",\n        \"value\": \"610104\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"灞桥区\",\n        \"value\": \"610111\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"未央区\",\n        \"value\": \"610112\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"雁塔区\",\n        \"value\": \"610113\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"阎良区\",\n        \"value\": \"610114\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"临潼区\",\n        \"value\": \"610115\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"长安区\",\n        \"value\": \"610116\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"高陵区\",\n        \"value\": \"610117\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"蓝田县\",\n        \"value\": \"610122\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"周至县\",\n        \"value\": \"610124\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"户县\",\n        \"value\": \"610125\",\n        \"parent\": \"610100\"\n    },\n    {\n        \"name\": \"王益区\",\n        \"value\": \"610202\",\n        \"parent\": \"610200\"\n    },\n    {\n        \"name\": \"印台区\",\n        \"value\": \"610203\",\n        \"parent\": \"610200\"\n    },\n    {\n        \"name\": \"耀州区\",\n        \"value\": \"610204\",\n        \"parent\": \"610200\"\n    },\n    {\n        \"name\": \"宜君县\",\n        \"value\": \"610222\",\n        \"parent\": \"610200\"\n    },\n    {\n        \"name\": \"渭滨区\",\n        \"value\": \"610302\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"金台区\",\n        \"value\": \"610303\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"陈仓区\",\n        \"value\": \"610304\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"凤翔县\",\n        \"value\": \"610322\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"岐山县\",\n        \"value\": \"610323\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"扶风县\",\n        \"value\": \"610324\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"眉县\",\n        \"value\": \"610326\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"陇县\",\n        \"value\": \"610327\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"千阳县\",\n        \"value\": \"610328\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"麟游县\",\n        \"value\": \"610329\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"凤县\",\n        \"value\": \"610330\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"太白县\",\n        \"value\": \"610331\",\n        \"parent\": \"610300\"\n    },\n    {\n        \"name\": \"秦都区\",\n        \"value\": \"610402\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"杨陵区\",\n        \"value\": \"610403\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"渭城区\",\n        \"value\": \"610404\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"三原县\",\n        \"value\": \"610422\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"泾阳县\",\n        \"value\": \"610423\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"乾县\",\n        \"value\": \"610424\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"礼泉县\",\n        \"value\": \"610425\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"永寿县\",\n        \"value\": \"610426\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"彬县\",\n        \"value\": \"610427\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"长武县\",\n        \"value\": \"610428\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"旬邑县\",\n        \"value\": \"610429\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"淳化县\",\n        \"value\": \"610430\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"武功县\",\n        \"value\": \"610431\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"兴平市\",\n        \"value\": \"610481\",\n        \"parent\": \"610400\"\n    },\n    {\n        \"name\": \"临渭区\",\n        \"value\": \"610502\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"华县\",\n        \"value\": \"610521\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"潼关县\",\n        \"value\": \"610522\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"大荔县\",\n        \"value\": \"610523\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"合阳县\",\n        \"value\": \"610524\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"澄城县\",\n        \"value\": \"610525\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"蒲城县\",\n        \"value\": \"610526\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"白水县\",\n        \"value\": \"610527\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"富平县\",\n        \"value\": \"610528\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"韩城市\",\n        \"value\": \"610581\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"华阴市\",\n        \"value\": \"610582\",\n        \"parent\": \"610500\"\n    },\n    {\n        \"name\": \"宝塔区\",\n        \"value\": \"610602\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"延长县\",\n        \"value\": \"610621\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"延川县\",\n        \"value\": \"610622\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"子长县\",\n        \"value\": \"610623\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"安塞县\",\n        \"value\": \"610624\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"志丹县\",\n        \"value\": \"610625\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"吴起县\",\n        \"value\": \"610626\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"甘泉县\",\n        \"value\": \"610627\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"富县\",\n        \"value\": \"610628\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"洛川县\",\n        \"value\": \"610629\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"宜川县\",\n        \"value\": \"610630\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"黄龙县\",\n        \"value\": \"610631\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"黄陵县\",\n        \"value\": \"610632\",\n        \"parent\": \"610600\"\n    },\n    {\n        \"name\": \"汉台区\",\n        \"value\": \"610702\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"南郑县\",\n        \"value\": \"610721\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"城固县\",\n        \"value\": \"610722\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"洋县\",\n        \"value\": \"610723\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"西乡县\",\n        \"value\": \"610724\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"勉县\",\n        \"value\": \"610725\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"宁强县\",\n        \"value\": \"610726\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"略阳县\",\n        \"value\": \"610727\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"镇巴县\",\n        \"value\": \"610728\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"留坝县\",\n        \"value\": \"610729\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"佛坪县\",\n        \"value\": \"610730\",\n        \"parent\": \"610700\"\n    },\n    {\n        \"name\": \"榆阳区\",\n        \"value\": \"610802\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"神木县\",\n        \"value\": \"610821\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"府谷县\",\n        \"value\": \"610822\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"横山县\",\n        \"value\": \"610823\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"靖边县\",\n        \"value\": \"610824\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"定边县\",\n        \"value\": \"610825\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"绥德县\",\n        \"value\": \"610826\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"米脂县\",\n        \"value\": \"610827\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"佳县\",\n        \"value\": \"610828\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"吴堡县\",\n        \"value\": \"610829\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"清涧县\",\n        \"value\": \"610830\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"子洲县\",\n        \"value\": \"610831\",\n        \"parent\": \"610800\"\n    },\n    {\n        \"name\": \"汉滨区\",\n        \"value\": \"610902\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"汉阴县\",\n        \"value\": \"610921\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"石泉县\",\n        \"value\": \"610922\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"宁陕县\",\n        \"value\": \"610923\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"紫阳县\",\n        \"value\": \"610924\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"岚皋县\",\n        \"value\": \"610925\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"平利县\",\n        \"value\": \"610926\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"镇坪县\",\n        \"value\": \"610927\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"旬阳县\",\n        \"value\": \"610928\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"白河县\",\n        \"value\": \"610929\",\n        \"parent\": \"610900\"\n    },\n    {\n        \"name\": \"商州区\",\n        \"value\": \"611002\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"洛南县\",\n        \"value\": \"611021\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"丹凤县\",\n        \"value\": \"611022\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"商南县\",\n        \"value\": \"611023\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"山阳县\",\n        \"value\": \"611024\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"镇安县\",\n        \"value\": \"611025\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"柞水县\",\n        \"value\": \"611026\",\n        \"parent\": \"611000\"\n    },\n    {\n        \"name\": \"兰州市\",\n        \"value\": \"620100\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"嘉峪关市\",\n        \"value\": \"620200\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"金昌市\",\n        \"value\": \"620300\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"白银市\",\n        \"value\": \"620400\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"天水市\",\n        \"value\": \"620500\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"武威市\",\n        \"value\": \"620600\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"张掖市\",\n        \"value\": \"620700\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"平凉市\",\n        \"value\": \"620800\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"酒泉市\",\n        \"value\": \"620900\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"庆阳市\",\n        \"value\": \"621000\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"定西市\",\n        \"value\": \"621100\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"陇南市\",\n        \"value\": \"621200\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"临夏回族自治州\",\n        \"value\": \"622900\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"甘南藏族自治州\",\n        \"value\": \"623000\",\n        \"parent\": \"620000\"\n    },\n    {\n        \"name\": \"城关区\",\n        \"value\": \"620102\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"七里河区\",\n        \"value\": \"620103\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"西固区\",\n        \"value\": \"620104\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"安宁区\",\n        \"value\": \"620105\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"红古区\",\n        \"value\": \"620111\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"永登县\",\n        \"value\": \"620121\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"皋兰县\",\n        \"value\": \"620122\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"榆中县\",\n        \"value\": \"620123\",\n        \"parent\": \"620100\"\n    },\n    {\n        \"name\": \"金川区\",\n        \"value\": \"620302\",\n        \"parent\": \"620300\"\n    },\n    {\n        \"name\": \"永昌县\",\n        \"value\": \"620321\",\n        \"parent\": \"620300\"\n    },\n    {\n        \"name\": \"白银区\",\n        \"value\": \"620402\",\n        \"parent\": \"620400\"\n    },\n    {\n        \"name\": \"平川区\",\n        \"value\": \"620403\",\n        \"parent\": \"620400\"\n    },\n    {\n        \"name\": \"靖远县\",\n        \"value\": \"620421\",\n        \"parent\": \"620400\"\n    },\n    {\n        \"name\": \"会宁县\",\n        \"value\": \"620422\",\n        \"parent\": \"620400\"\n    },\n    {\n        \"name\": \"景泰县\",\n        \"value\": \"620423\",\n        \"parent\": \"620400\"\n    },\n    {\n        \"name\": \"秦州区\",\n        \"value\": \"620502\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"麦积区\",\n        \"value\": \"620503\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"清水县\",\n        \"value\": \"620521\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"秦安县\",\n        \"value\": \"620522\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"甘谷县\",\n        \"value\": \"620523\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"武山县\",\n        \"value\": \"620524\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"张家川回族自治县\",\n        \"value\": \"620525\",\n        \"parent\": \"620500\"\n    },\n    {\n        \"name\": \"凉州区\",\n        \"value\": \"620602\",\n        \"parent\": \"620600\"\n    },\n    {\n        \"name\": \"民勤县\",\n        \"value\": \"620621\",\n        \"parent\": \"620600\"\n    },\n    {\n        \"name\": \"古浪县\",\n        \"value\": \"620622\",\n        \"parent\": \"620600\"\n    },\n    {\n        \"name\": \"天祝藏族自治县\",\n        \"value\": \"620623\",\n        \"parent\": \"620600\"\n    },\n    {\n        \"name\": \"甘州区\",\n        \"value\": \"620702\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"肃南裕固族自治县\",\n        \"value\": \"620721\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"民乐县\",\n        \"value\": \"620722\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"临泽县\",\n        \"value\": \"620723\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"高台县\",\n        \"value\": \"620724\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"山丹县\",\n        \"value\": \"620725\",\n        \"parent\": \"620700\"\n    },\n    {\n        \"name\": \"崆峒区\",\n        \"value\": \"620802\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"泾川县\",\n        \"value\": \"620821\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"灵台县\",\n        \"value\": \"620822\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"崇信县\",\n        \"value\": \"620823\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"华亭县\",\n        \"value\": \"620824\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"庄浪县\",\n        \"value\": \"620825\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"静宁县\",\n        \"value\": \"620826\",\n        \"parent\": \"620800\"\n    },\n    {\n        \"name\": \"肃州区\",\n        \"value\": \"620902\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"金塔县\",\n        \"value\": \"620921\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"瓜州县\",\n        \"value\": \"620922\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"肃北蒙古族自治县\",\n        \"value\": \"620923\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"阿克塞哈萨克族自治县\",\n        \"value\": \"620924\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"玉门市\",\n        \"value\": \"620981\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"敦煌市\",\n        \"value\": \"620982\",\n        \"parent\": \"620900\"\n    },\n    {\n        \"name\": \"西峰区\",\n        \"value\": \"621002\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"庆城县\",\n        \"value\": \"621021\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"环县\",\n        \"value\": \"621022\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"华池县\",\n        \"value\": \"621023\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"合水县\",\n        \"value\": \"621024\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"正宁县\",\n        \"value\": \"621025\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"宁县\",\n        \"value\": \"621026\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"镇原县\",\n        \"value\": \"621027\",\n        \"parent\": \"621000\"\n    },\n    {\n        \"name\": \"安定区\",\n        \"value\": \"621102\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"通渭县\",\n        \"value\": \"621121\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"陇西县\",\n        \"value\": \"621122\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"渭源县\",\n        \"value\": \"621123\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"临洮县\",\n        \"value\": \"621124\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"漳县\",\n        \"value\": \"621125\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"岷县\",\n        \"value\": \"621126\",\n        \"parent\": \"621100\"\n    },\n    {\n        \"name\": \"武都区\",\n        \"value\": \"621202\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"成县\",\n        \"value\": \"621221\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"文县\",\n        \"value\": \"621222\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"宕昌县\",\n        \"value\": \"621223\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"康县\",\n        \"value\": \"621224\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"西和县\",\n        \"value\": \"621225\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"礼县\",\n        \"value\": \"621226\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"徽县\",\n        \"value\": \"621227\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"两当县\",\n        \"value\": \"621228\",\n        \"parent\": \"621200\"\n    },\n    {\n        \"name\": \"临夏市\",\n        \"value\": \"622901\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"临夏县\",\n        \"value\": \"622921\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"康乐县\",\n        \"value\": \"622922\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"永靖县\",\n        \"value\": \"622923\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"广河县\",\n        \"value\": \"622924\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"和政县\",\n        \"value\": \"622925\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"东乡族自治县\",\n        \"value\": \"622926\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"积石山保安族东乡族撒拉族自治县\",\n        \"value\": \"622927\",\n        \"parent\": \"622900\"\n    },\n    {\n        \"name\": \"合作市\",\n        \"value\": \"623001\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"临潭县\",\n        \"value\": \"623021\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"卓尼县\",\n        \"value\": \"623022\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"舟曲县\",\n        \"value\": \"623023\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"迭部县\",\n        \"value\": \"623024\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"玛曲县\",\n        \"value\": \"623025\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"碌曲县\",\n        \"value\": \"623026\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"夏河县\",\n        \"value\": \"623027\",\n        \"parent\": \"623000\"\n    },\n    {\n        \"name\": \"西宁市\",\n        \"value\": \"630100\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"海东市\",\n        \"value\": \"630200\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"海北藏族自治州\",\n        \"value\": \"632200\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"黄南藏族自治州\",\n        \"value\": \"632300\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"海南藏族自治州\",\n        \"value\": \"632500\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"果洛藏族自治州\",\n        \"value\": \"632600\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"玉树藏族自治州\",\n        \"value\": \"632700\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"海西蒙古族藏族自治州\",\n        \"value\": \"632800\",\n        \"parent\": \"630000\"\n    },\n    {\n        \"name\": \"城东区\",\n        \"value\": \"630102\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"城中区\",\n        \"value\": \"630103\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"城西区\",\n        \"value\": \"630104\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"城北区\",\n        \"value\": \"630105\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"大通回族土族自治县\",\n        \"value\": \"630121\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"湟中县\",\n        \"value\": \"630122\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"湟源县\",\n        \"value\": \"630123\",\n        \"parent\": \"630100\"\n    },\n    {\n        \"name\": \"乐都区\",\n        \"value\": \"630202\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"平安区\",\n        \"value\": \"630203\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"民和回族土族自治县\",\n        \"value\": \"630222\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"互助土族自治县\",\n        \"value\": \"630223\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"化隆回族自治县\",\n        \"value\": \"630224\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"循化撒拉族自治县\",\n        \"value\": \"630225\",\n        \"parent\": \"630200\"\n    },\n    {\n        \"name\": \"门源回族自治县\",\n        \"value\": \"632221\",\n        \"parent\": \"632200\"\n    },\n    {\n        \"name\": \"祁连县\",\n        \"value\": \"632222\",\n        \"parent\": \"632200\"\n    },\n    {\n        \"name\": \"海晏县\",\n        \"value\": \"632223\",\n        \"parent\": \"632200\"\n    },\n    {\n        \"name\": \"刚察县\",\n        \"value\": \"632224\",\n        \"parent\": \"632200\"\n    },\n    {\n        \"name\": \"同仁县\",\n        \"value\": \"632321\",\n        \"parent\": \"632300\"\n    },\n    {\n        \"name\": \"尖扎县\",\n        \"value\": \"632322\",\n        \"parent\": \"632300\"\n    },\n    {\n        \"name\": \"泽库县\",\n        \"value\": \"632323\",\n        \"parent\": \"632300\"\n    },\n    {\n        \"name\": \"河南蒙古族自治县\",\n        \"value\": \"632324\",\n        \"parent\": \"632300\"\n    },\n    {\n        \"name\": \"共和县\",\n        \"value\": \"632521\",\n        \"parent\": \"632500\"\n    },\n    {\n        \"name\": \"同德县\",\n        \"value\": \"632522\",\n        \"parent\": \"632500\"\n    },\n    {\n        \"name\": \"贵德县\",\n        \"value\": \"632523\",\n        \"parent\": \"632500\"\n    },\n    {\n        \"name\": \"兴海县\",\n        \"value\": \"632524\",\n        \"parent\": \"632500\"\n    },\n    {\n        \"name\": \"贵南县\",\n        \"value\": \"632525\",\n        \"parent\": \"632500\"\n    },\n    {\n        \"name\": \"玛沁县\",\n        \"value\": \"632621\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"班玛县\",\n        \"value\": \"632622\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"甘德县\",\n        \"value\": \"632623\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"达日县\",\n        \"value\": \"632624\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"久治县\",\n        \"value\": \"632625\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"玛多县\",\n        \"value\": \"632626\",\n        \"parent\": \"632600\"\n    },\n    {\n        \"name\": \"玉树市\",\n        \"value\": \"632701\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"杂多县\",\n        \"value\": \"632722\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"称多县\",\n        \"value\": \"632723\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"治多县\",\n        \"value\": \"632724\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"囊谦县\",\n        \"value\": \"632725\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"曲麻莱县\",\n        \"value\": \"632726\",\n        \"parent\": \"632700\"\n    },\n    {\n        \"name\": \"格尔木市\",\n        \"value\": \"632801\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"德令哈市\",\n        \"value\": \"632802\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"乌兰县\",\n        \"value\": \"632821\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"都兰县\",\n        \"value\": \"632822\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"天峻县\",\n        \"value\": \"632823\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"海西蒙古族藏族自治州直辖\",\n        \"value\": \"632825\",\n        \"parent\": \"632800\"\n    },\n    {\n        \"name\": \"银川市\",\n        \"value\": \"640100\",\n        \"parent\": \"640000\"\n    },\n    {\n        \"name\": \"石嘴山市\",\n        \"value\": \"640200\",\n        \"parent\": \"640000\"\n    },\n    {\n        \"name\": \"吴忠市\",\n        \"value\": \"640300\",\n        \"parent\": \"640000\"\n    },\n    {\n        \"name\": \"固原市\",\n        \"value\": \"640400\",\n        \"parent\": \"640000\"\n    },\n    {\n        \"name\": \"中卫市\",\n        \"value\": \"640500\",\n        \"parent\": \"640000\"\n    },\n    {\n        \"name\": \"兴庆区\",\n        \"value\": \"640104\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"西夏区\",\n        \"value\": \"640105\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"金凤区\",\n        \"value\": \"640106\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"永宁县\",\n        \"value\": \"640121\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"贺兰县\",\n        \"value\": \"640122\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"灵武市\",\n        \"value\": \"640181\",\n        \"parent\": \"640100\"\n    },\n    {\n        \"name\": \"大武口区\",\n        \"value\": \"640202\",\n        \"parent\": \"640200\"\n    },\n    {\n        \"name\": \"惠农区\",\n        \"value\": \"640205\",\n        \"parent\": \"640200\"\n    },\n    {\n        \"name\": \"平罗县\",\n        \"value\": \"640221\",\n        \"parent\": \"640200\"\n    },\n    {\n        \"name\": \"利通区\",\n        \"value\": \"640302\",\n        \"parent\": \"640300\"\n    },\n    {\n        \"name\": \"红寺堡区\",\n        \"value\": \"640303\",\n        \"parent\": \"640300\"\n    },\n    {\n        \"name\": \"盐池县\",\n        \"value\": \"640323\",\n        \"parent\": \"640300\"\n    },\n    {\n        \"name\": \"同心县\",\n        \"value\": \"640324\",\n        \"parent\": \"640300\"\n    },\n    {\n        \"name\": \"青铜峡市\",\n        \"value\": \"640381\",\n        \"parent\": \"640300\"\n    },\n    {\n        \"name\": \"原州区\",\n        \"value\": \"640402\",\n        \"parent\": \"640400\"\n    },\n    {\n        \"name\": \"西吉县\",\n        \"value\": \"640422\",\n        \"parent\": \"640400\"\n    },\n    {\n        \"name\": \"隆德县\",\n        \"value\": \"640423\",\n        \"parent\": \"640400\"\n    },\n    {\n        \"name\": \"泾源县\",\n        \"value\": \"640424\",\n        \"parent\": \"640400\"\n    },\n    {\n        \"name\": \"彭阳县\",\n        \"value\": \"640425\",\n        \"parent\": \"640400\"\n    },\n    {\n        \"name\": \"沙坡头区\",\n        \"value\": \"640502\",\n        \"parent\": \"640500\"\n    },\n    {\n        \"name\": \"中宁县\",\n        \"value\": \"640521\",\n        \"parent\": \"640500\"\n    },\n    {\n        \"name\": \"海原县\",\n        \"value\": \"640522\",\n        \"parent\": \"640500\"\n    },\n    {\n        \"name\": \"乌鲁木齐市\",\n        \"value\": \"650100\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"克拉玛依市\",\n        \"value\": \"650200\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"吐鲁番市\",\n        \"value\": \"650400\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"哈密地区\",\n        \"value\": \"652200\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"昌吉回族自治州\",\n        \"value\": \"652300\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"博尔塔拉蒙古自治州\",\n        \"value\": \"652700\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"巴音郭楞蒙古自治州\",\n        \"value\": \"652800\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"阿克苏地区\",\n        \"value\": \"652900\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"克孜勒苏柯尔克孜自治州\",\n        \"value\": \"653000\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"喀什地区\",\n        \"value\": \"653100\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"和田地区\",\n        \"value\": \"653200\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"伊犁哈萨克自治州\",\n        \"value\": \"654000\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"塔城地区\",\n        \"value\": \"654200\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"阿勒泰地区\",\n        \"value\": \"654300\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"石河子市\",\n        \"value\": \"659001\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"阿拉尔市\",\n        \"value\": \"659002\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"图木舒克市\",\n        \"value\": \"659003\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"五家渠市\",\n        \"value\": \"659004\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"北屯市\",\n        \"value\": \"659005\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"铁门关市\",\n        \"value\": \"659006\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"双河市\",\n        \"value\": \"659007\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"可克达拉市\",\n        \"value\": \"659008\",\n        \"parent\": \"650000\"\n    },\n    {\n        \"name\": \"天山区\",\n        \"value\": \"650102\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"沙依巴克区\",\n        \"value\": \"650103\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"新市区\",\n        \"value\": \"650104\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"水磨沟区\",\n        \"value\": \"650105\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"头屯河区\",\n        \"value\": \"650106\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"达坂城区\",\n        \"value\": \"650107\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"米东区\",\n        \"value\": \"650109\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"乌鲁木齐县\",\n        \"value\": \"650121\",\n        \"parent\": \"650100\"\n    },\n    {\n        \"name\": \"独山子区\",\n        \"value\": \"650202\",\n        \"parent\": \"650200\"\n    },\n    {\n        \"name\": \"克拉玛依区\",\n        \"value\": \"650203\",\n        \"parent\": \"650200\"\n    },\n    {\n        \"name\": \"白碱滩区\",\n        \"value\": \"650204\",\n        \"parent\": \"650200\"\n    },\n    {\n        \"name\": \"乌尔禾区\",\n        \"value\": \"650205\",\n        \"parent\": \"650200\"\n    },\n    {\n        \"name\": \"高昌区\",\n        \"value\": \"650402\",\n        \"parent\": \"650400\"\n    },\n    {\n        \"name\": \"鄯善县\",\n        \"value\": \"650421\",\n        \"parent\": \"650400\"\n    },\n    {\n        \"name\": \"托克逊县\",\n        \"value\": \"650422\",\n        \"parent\": \"650400\"\n    },\n    {\n        \"name\": \"哈密市\",\n        \"value\": \"652201\",\n        \"parent\": \"652200\"\n    },\n    {\n        \"name\": \"巴里坤哈萨克自治县\",\n        \"value\": \"652222\",\n        \"parent\": \"652200\"\n    },\n    {\n        \"name\": \"伊吾县\",\n        \"value\": \"652223\",\n        \"parent\": \"652200\"\n    },\n    {\n        \"name\": \"昌吉市\",\n        \"value\": \"652301\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"阜康市\",\n        \"value\": \"652302\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"呼图壁县\",\n        \"value\": \"652323\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"玛纳斯县\",\n        \"value\": \"652324\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"奇台县\",\n        \"value\": \"652325\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"吉木萨尔县\",\n        \"value\": \"652327\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"木垒哈萨克自治县\",\n        \"value\": \"652328\",\n        \"parent\": \"652300\"\n    },\n    {\n        \"name\": \"博乐市\",\n        \"value\": \"652701\",\n        \"parent\": \"652700\"\n    },\n    {\n        \"name\": \"阿拉山口市\",\n        \"value\": \"652702\",\n        \"parent\": \"652700\"\n    },\n    {\n        \"name\": \"精河县\",\n        \"value\": \"652722\",\n        \"parent\": \"652700\"\n    },\n    {\n        \"name\": \"温泉县\",\n        \"value\": \"652723\",\n        \"parent\": \"652700\"\n    },\n    {\n        \"name\": \"库尔勒市\",\n        \"value\": \"652801\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"轮台县\",\n        \"value\": \"652822\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"尉犁县\",\n        \"value\": \"652823\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"若羌县\",\n        \"value\": \"652824\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"且末县\",\n        \"value\": \"652825\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"焉耆回族自治县\",\n        \"value\": \"652826\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"和静县\",\n        \"value\": \"652827\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"和硕县\",\n        \"value\": \"652828\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"博湖县\",\n        \"value\": \"652829\",\n        \"parent\": \"652800\"\n    },\n    {\n        \"name\": \"阿克苏市\",\n        \"value\": \"652901\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"温宿县\",\n        \"value\": \"652922\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"库车县\",\n        \"value\": \"652923\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"沙雅县\",\n        \"value\": \"652924\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"新和县\",\n        \"value\": \"652925\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"拜城县\",\n        \"value\": \"652926\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"乌什县\",\n        \"value\": \"652927\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"阿瓦提县\",\n        \"value\": \"652928\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"柯坪县\",\n        \"value\": \"652929\",\n        \"parent\": \"652900\"\n    },\n    {\n        \"name\": \"阿图什市\",\n        \"value\": \"653001\",\n        \"parent\": \"653000\"\n    },\n    {\n        \"name\": \"阿克陶县\",\n        \"value\": \"653022\",\n        \"parent\": \"653000\"\n    },\n    {\n        \"name\": \"阿合奇县\",\n        \"value\": \"653023\",\n        \"parent\": \"653000\"\n    },\n    {\n        \"name\": \"乌恰县\",\n        \"value\": \"653024\",\n        \"parent\": \"653000\"\n    },\n    {\n        \"name\": \"喀什市\",\n        \"value\": \"653101\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"疏附县\",\n        \"value\": \"653121\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"疏勒县\",\n        \"value\": \"653122\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"英吉沙县\",\n        \"value\": \"653123\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"泽普县\",\n        \"value\": \"653124\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"莎车县\",\n        \"value\": \"653125\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"叶城县\",\n        \"value\": \"653126\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"麦盖提县\",\n        \"value\": \"653127\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"岳普湖县\",\n        \"value\": \"653128\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"伽师县\",\n        \"value\": \"653129\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"巴楚县\",\n        \"value\": \"653130\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"塔什库尔干塔吉克自治县\",\n        \"value\": \"653131\",\n        \"parent\": \"653100\"\n    },\n    {\n        \"name\": \"和田市\",\n        \"value\": \"653201\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"和田县\",\n        \"value\": \"653221\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"墨玉县\",\n        \"value\": \"653222\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"皮山县\",\n        \"value\": \"653223\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"洛浦县\",\n        \"value\": \"653224\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"策勒县\",\n        \"value\": \"653225\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"于田县\",\n        \"value\": \"653226\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"民丰县\",\n        \"value\": \"653227\",\n        \"parent\": \"653200\"\n    },\n    {\n        \"name\": \"伊宁市\",\n        \"value\": \"654002\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"奎屯市\",\n        \"value\": \"654003\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"霍尔果斯市\",\n        \"value\": \"654004\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"伊宁县\",\n        \"value\": \"654021\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"察布查尔锡伯自治县\",\n        \"value\": \"654022\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"霍城县\",\n        \"value\": \"654023\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"巩留县\",\n        \"value\": \"654024\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"新源县\",\n        \"value\": \"654025\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"昭苏县\",\n        \"value\": \"654026\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"特克斯县\",\n        \"value\": \"654027\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"尼勒克县\",\n        \"value\": \"654028\",\n        \"parent\": \"654000\"\n    },\n    {\n        \"name\": \"塔城市\",\n        \"value\": \"654201\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"乌苏市\",\n        \"value\": \"654202\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"额敏县\",\n        \"value\": \"654221\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"沙湾县\",\n        \"value\": \"654223\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"托里县\",\n        \"value\": \"654224\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"裕民县\",\n        \"value\": \"654225\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"和布克赛尔蒙古自治县\",\n        \"value\": \"654226\",\n        \"parent\": \"654200\"\n    },\n    {\n        \"name\": \"阿勒泰市\",\n        \"value\": \"654301\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"布尔津县\",\n        \"value\": \"654321\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"富蕴县\",\n        \"value\": \"654322\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"福海县\",\n        \"value\": \"654323\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"哈巴河县\",\n        \"value\": \"654324\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"青河县\",\n        \"value\": \"654325\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"吉木乃县\",\n        \"value\": \"654326\",\n        \"parent\": \"654300\"\n    },\n    {\n        \"name\": \"中西區\",\n        \"value\": \"810001\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"灣仔區\",\n        \"value\": \"810002\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"東區\",\n        \"value\": \"810003\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"南區\",\n        \"value\": \"810004\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"油尖旺區\",\n        \"value\": \"810005\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"深水埗區\",\n        \"value\": \"810006\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"九龍城區\",\n        \"value\": \"810007\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"黃大仙區\",\n        \"value\": \"810008\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"觀塘區\",\n        \"value\": \"810009\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"荃灣區\",\n        \"value\": \"810010\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"屯門區\",\n        \"value\": \"810011\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"元朗區\",\n        \"value\": \"810012\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"北區\",\n        \"value\": \"810013\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"大埔區\",\n        \"value\": \"810014\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"西貢區\",\n        \"value\": \"810015\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"沙田區\",\n        \"value\": \"810016\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"葵青區\",\n        \"value\": \"810017\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"離島區\",\n        \"value\": \"810018\",\n        \"parent\": \"810000\"\n    },\n    {\n        \"name\": \"花地瑪堂區\",\n        \"value\": \"820001\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"花王堂區\",\n        \"value\": \"820002\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"望德堂區\",\n        \"value\": \"820003\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"大堂區\",\n        \"value\": \"820004\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"風順堂區\",\n        \"value\": \"820005\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"嘉模堂區\",\n        \"value\": \"820006\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"路氹填海區\",\n        \"value\": \"820007\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"聖方濟各堂區\",\n        \"value\": \"820008\",\n        \"parent\": \"820000\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"120200--\",\n        \"parent\": \"120200\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"310200--\",\n        \"parent\": \"310200\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"429004--\",\n        \"parent\": \"429004\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"429005--\",\n        \"parent\": \"429005\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"429006--\",\n        \"parent\": \"429006\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659001--\",\n        \"parent\": \"659001\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659002--\",\n        \"parent\": \"659002\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659003--\",\n        \"parent\": \"659003\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659004--\",\n        \"parent\": \"659004\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659005--\",\n        \"parent\": \"659005\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659006--\",\n        \"parent\": \"659006\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659007--\",\n        \"parent\": \"659007\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"659008--\",\n        \"parent\": \"659008\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"500200--\",\n        \"parent\": \"500200\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"429021--\",\n        \"parent\": \"429021\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"419001--\",\n        \"parent\": \"419001\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"460400--\",\n        \"parent\": \"460400\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469001--\",\n        \"parent\": \"469001\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469002--\",\n        \"parent\": \"469002\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469005--\",\n        \"parent\": \"469005\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469006--\",\n        \"parent\": \"469006\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469007--\",\n        \"parent\": \"469007\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469021--\",\n        \"parent\": \"469021\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469022--\",\n        \"parent\": \"469022\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469023--\",\n        \"parent\": \"469023\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469024--\",\n        \"parent\": \"469024\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469025--\",\n        \"parent\": \"469025\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469026--\",\n        \"parent\": \"469026\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469027--\",\n        \"parent\": \"469027\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469028--\",\n        \"parent\": \"469028\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469029--\",\n        \"parent\": \"469029\"\n    },\n    {\n        \"name\": \"--\",\n        \"value\": \"469030--\",\n        \"parent\": \"469030\"\n    }\n]"
  },
  {
    "path": "src/components/x-address/metas.yml",
    "content": "extends:\n  - popup-picker\nprops:\n  raw-value:\n    zh-CN: 初始化时绑定的数据是否为文本类型，即非id，组件内部会转换为id。如果是异步初始化，只能使用id赋值。\n  title:\n    zh-CN: 表单标题\n  value:\n    zh-CN: 表单值\n  list:\n    zh-CN: 地址列表, 可以引入 `vux/src/components/address/list.json`或者用自己的数据，但是需要按照一致的数据结构。\n  inline-desc:\n    zh-CN: 标题下的描述\n  placeholder:\n    zh-CN: 没有值时的提示文字\n  hideDistrict:\n    zh-CN: 是否隐藏区，即只显示省份和城市\nevents:\n  on-hide:\n    zh-CN: 关闭后触发，当非确定时，参数为false，反之为true\n  on-show:\n    zh-CN: 显示时触发\n"
  },
  {
    "path": "src/components/x-button/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/x-button/index.vue",
    "content": "<template>\n    <button class=\"weui_btn\" :class=\"classes\" :disabled=\"disabled\" @click=\"onclick\">\n      {{text}}<slot></slot>\n    </button>\n</template>\n\n<script>\nexport default {\n  props: {\n    type: {\n      default: 'default'\n    },\n    disabled: Boolean,\n    mini: Boolean,\n    plain: Boolean,\n    text: String\n  },\n  computed: {\n    classes () {\n      return [\n        {\n          weui_btn_disabled: this.disabled,\n          weui_btn_mini: this.mini\n        },\n        `weui_btn_${this.type}`,\n        this.plain ? `weui_btn_plain_${this.type}` : ''\n      ]\n    }\n  },\n  methods:{\n    onclick(){\n      this.$emit('click');\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_button/weui_button.less';\n</style>\n"
  },
  {
    "path": "src/components/x-button/metas.yml",
    "content": "props:\n  type:\n    en:\n    zh-CN: 按钮类型，可选值为 `default,primary,warn`\n  disabled:\n    en: if disable the button\n    zh-CN: 是否不可点击\n  text:\n    en: button text, has the same function as default slot\n    zh-CN: 按钮文字，同默认slot\n  mini:\n    en: if use smaller style\n    zh-CN: 是否为mini类型，即小尺寸的按钮\n  plain:\n    en: if use plain styles which has no backgroundColor\n    zh-CN: 是否是plain样式，没有背景色\nslots:\n  default:\n    en: button text\n    zh-CN: 按钮文字\n"
  },
  {
    "path": "src/components/x-header/index.vue",
    "content": "<template>\n  <div class=\"vux-header\">\n    <div class=\"vux-header-left\">\n      <transition v-bind:name=\"transition\"><a class=\"vux-header-back\" @click.preventDefault v-show=\"leftOptions.showBack\" @click=\"onClickBack\">{{leftOptions.backText}}</a></transition>\n      <transition v-bind:name=\"transition\"><div class=\"left-arrow\" @click=\"onClickBack\" v-show=\"leftOptions.showBack\" ></div></transition>\n      <slot name=\"left\"></slot>\n    </div>\n    <transition v-bind:name=\"transition\"><h1 class=\"vux-header-title\" @click=\"$emit('on-click-title')\"><span v-show=\"title\" >{{title}}</span><slot></slot></h1></transition>\n    <div class=\"vux-header-right\">\n      <a class=\"vux-header-more\" @click.preventDefault @click=\"$emit('on-click-more')\" v-if=\"rightOptions.showMore\"></a>\n      <slot name=\"right\"></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    leftOptions: {\n      type: Object,\n      default () {\n        return {\n          showBack: true,\n          backText: 'Back',\n          preventGoBack: false\n        }\n      }\n    },\n    title: String,\n    transition: String,\n    rightOptions: {\n      type: Object,\n      default () {\n        return {\n          showMore: false\n        }\n      }\n    }\n  },\n  methods: {\n    onClickBack () {\n      if (this.leftOptions.preventGoBack) {\n        this.$emit('on-click-back')\n      } else {\n        history.back()\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/variable.less';\n\n.vux-header {\n  position: relative;\n  padding: 3px 0;\n  box-sizing: border-box;\n  background-color: @x-header-background-color;\n}\n.vux-header .vux-header-title,.vux-header h1 {\n  margin: 0 88px;\n  margin-left: 100px;\n  line-height: 40px;\n  text-align: center;\n  height: 40px;\n  font-size: 18px;\n  font-weight: 400;\n  width: auto;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  color: @x-header-title-color;\n}\n.vux-header .vux-header-title > span {\n  display: inline-block;\n}\n.vux-header .vux-header-left,.vux-header .vux-header-right {\n  position: absolute;\n  top: 14px;\n  display: block;\n  font-size: 14px;\n  line-height: 21px;\n  color: @x-header-text-color;\n}\n.vux-header .vux-header-left a,.vux-header .vux-header-left button,.vux-header .vux-header-right a,.vux-header .vux-header-right button {\n  float: left;\n  margin-right: 8px;\n  color: @x-header-text-color;\n}\n.vux-header .vux-header-left a:active,.vux-header .vux-header-left button:active,.vux-header .vux-header-right a:active,.vux-header .vux-header-right button:active {\n  opacity: .5\n}\n.vux-header .vux-header-left {\n  left: 18px\n}\n.vux-header .vux-header-left .vux-header-back {\n  padding-left: 16px\n}\n.vux-header .vux-header-left .left-arrow {\n  position: absolute;\n  width: 30px;\n  height: 30px;\n  top: -5px;\n  left: -5px;\n\n  &:before {\n    content: \"\";\n    position: absolute;\n    width: 12px;\n    height: 12px;\n    border: 1px solid @x-header-arrow-color;\n    border-width: 1px 0 0 1px;\n    transform: rotate(315deg);\n    top: 8px;\n    left: 7px;\n  }\n}\n.vux-header .vux-header-right {\n  right: 15px\n}\n.vux-header .vux-header-right a,.vux-header .vux-header-right button {\n  margin-left: 8px;\n  margin-right: 0\n}\n.vux-header .vux-header-right .vux-header-more:after {\n  content: \"\\2022\\0020\\2022\\0020\\2022\\0020\";\n  font-size: 16px;\n}\n.vux-header-fade-in-right-enter {\n  animation: fadeinR .5s;\n}\n.vux-header-fade-in-left-enter {\n  animation: fadeinL .5s;\n}\n@keyframes fadeinR{\n  0%{opacity:0;transform:translateX(80px);}\n  100%{opacity:1;transform:translateX(0);}\n}\n@keyframes fadeinL{\n  0%{opacity:0;transform:translateX(-80px);}\n  100%{opacity:1;transform:translateX(0);}\n}\n</style>\n"
  },
  {
    "path": "src/components/x-header/metas.yml",
    "content": "props:\n  left-options.showBack:\n    en: if show back text\n    zh-CN: 是否显示返回文字\n  left-options.backText:\n    en: the back text\n    zh-CN: 返回文字\n  left-options.preventGoBack:\n    en: stop go back when clicking\n    zh-CN: 是否阻止返回\n  title:\n    en: title\n    zh-CN: 标题\n  transition:\n    en: title transition\n    zh-CN: 标题出现的动画\n  right-options.showMore:\n    en: if show more icon\n    zh-CN: 是否显示右侧的更多图标\nslots:\n  default:\n    en: title\n    zh-CN: 标题\n  right:\n    en: right part\n    zh-CN: 右侧部分\nevents:\n  on-click-more:\n    en: triggers when more icon is clicked\n    zh-CN: 点击右侧更多时触发\n  on-click-back:\n    en: triggers when left part is clicked\n    zh-CN: 点击左边返回时触发\n  on-click-title:\n    en: triggers when title is clicked\n    zh-CN: 点击标题时触发\n"
  },
  {
    "path": "src/components/x-img/index.vue",
    "content": "<template>\n  <img :src=\"defaultSrc\" class=\"vux-x-img\" :class=\"cls\"/>\n</template>\n\n<script>\nimport Blazy from 'vux-blazy'\nimport webpSupport from 'webp-support'\nimport uuidMixin from '../../libs/mixin_uuid'\n\nexport default {\n  mixins: [uuidMixin],\n  created(){\n    this.props_src=this.src\n  },\n  mounted () {\n    // use webp or default\n    if (webpSupport() && this.props_src && this.webpSrc) {\n      this.props_src = this.webpSrc\n    }\n  },\n  mounted () {\n    debugger\n    const _this = this\n    const id = `vux-ximg-${this.uuid}`\n    this.$el.setAttribute('id', id)\n    this.$el.setAttribute('data-src', this.props_src)\n    this.blazy = new Blazy({\n      scroller: this.scroller,\n      container: this.container,\n      selector: `#${id}`,\n      offset: _this.offset,\n      errorClass: _this.errorClass,\n      successClass: _this.successClass,\n      success (ele) {\n        _this.$emit('on-success', _this.props_src, ele)\n      },\n      error (ele, msg) {\n        _this.$emit('on-error', _this.props_src, ele, msg)\n      }\n    })\n  },\n  data(){\n    return {\n      props_src:null\n    }\n  },\n  props: {\n    src: String,\n    webpSrc: String,\n    defaultSrc: {\n      type: String,\n      default: 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='\n    },\n    errorClass: String,\n    successClass: String,\n    offset: {\n      type: Number,\n      defaut: 100\n    },\n    cls: String,\n    scroller: Object,\n    container: String\n  },\n  beforeDestroy () {\n    this.blazy && this.blazy.destroy()\n  }\n}\n</script>\n\n<style>\n.b-lazy {\n  transition: opacity 500ms ease-in-out;\n  max-width: 100%;\n  opacity: 0;\n}\n\n.b-lazy.b-loaded {\n  opacity: 1;\n}\n</style>\n"
  },
  {
    "path": "src/components/x-input/index.vue",
    "content": "<template>\n\t<div class=\"weui_cell\" :class=\"{'weui_cell_warn': !valid}\">\n    <div class=\"weui_cell_hd\">\n      <label class=\"weui_label\" :style=\"{width: $parent.labelWidth || (labelWidth + 'em'), textAlign: $parent.labelAlign, marginRight: $parent.labelMarginRight}\" v-if=\"title\">{{title}}</label>\n      <inline-desc v-if=\"inlineDesc\">{{inlineDesc}}</inline-desc>\n    </div>\n    <div class=\"weui_cell_bd weui_cell_primary\">\n      <input\n      class=\"weui_input\"\n      :autocomplete=\"autocomplete\"\n      :autocorrect=\"autocorrect\"\n      :autocapitalize=\"autocapitalize\"\n      :spellcheck=\"spellcheck\"\n      :style=\"inputStyle\"\n      :type=\"props_type\"\n      :name=\"name\"\n      :pattern=\"pattern\"\n      :placeholder=\"placeholder\"\n      :readonly=\"readonly\"\n      :value=\"props_value\"\n      @input=\"onValueChange($event)\"\n      @blur=\"blur\"\n      ref=\"input\" />\n       <!-- v-model=\"value\" -->\n    </div>\n    <div class=\"weui_cell_ft\">\n      <icon type=\"clear\" v-show=\"props_showClear && props_value && !readonly\" @click.native=\"clear\"></icon>\n      <icon class=\"vux-input-icon-warn\" type=\"warn\" :title=\"!valid ? firstError : '' \" v-show=\"!equalWith && ((touched && !valid && firstError) || (forceShowError && !valid && firstError))\"></icon>\n      <icon class=\"vux-input-icon-warn\" type=\"warn\" v-show=\"hasLengthEqual && dirty && equalWith && !valid\"></icon>\n      <icon type=\"success\" v-show=\"equalWith && equalWith===props_value && valid\"></icon>\n      <slot name=\"right\"></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nimport Icon from '../icon'\nimport InlineDesc from '../inline-desc'\n\nimport isEmail from 'validator/lib/isEmail'\nimport isMobilePhone from 'validator/lib/isMobilePhone'\n\nconst validators = {\n  'email': {\n    fn: isEmail,\n    msg: '邮箱格式'\n  },\n  'china-mobile': {\n    fn (str) {\n      return isMobilePhone(str, 'zh-CN')\n    },\n    msg: '手机号码'\n  },\n  'china-name': {\n    fn (str) {\n      return str.length >= 2 && str.length <= 6\n    },\n    msg: '中文姓名'\n  }\n}\nexport default {\n  created(){\n    this.props_value = this.value\n    this.props_showClear=this.showClear\n    this.props_type=this.type\n    this.handleChangeEvent = false\n  },\n  mounted () {\n    if (!this.title && !this.placeholder && !this.props_value) {\n      console.warn('no title and no placeholder?')\n    }\n    if (this.equalWith) {\n      this.props_showClear = false\n    }\n    if (this.required && !this.props_value) {\n      this.valid = false\n    }\n    if (this.isType === 'email') {\n      this.props_type = 'email'\n    }\n  },\n  components: {\n    Icon,\n    InlineDesc\n  },\n  props: {\n    title: {\n      type: String,\n      default: ''\n    },\n    placeholder: String,\n    value: [String, Number],\n    name: String,\n    readonly: {\n      type: Boolean,\n      default: false\n    },\n    keyboard: String,\n    inlineDesc: String,\n    isType: String,\n    min: Number,\n    max: Number,\n    showClear: {\n      type: Boolean,\n      default: true\n    },\n    equalWith: String,\n    type: {\n      type: String,\n      default: 'text'\n    },\n    textAlign: String,\n    // https://github.com/yisibl/blog/issues/3\n    autocomplete: 'off',\n    autocapitalize: {\n      type:String,\n      default:'off'\n    },\n    // autocapitalize:'off',\n    autocorrect: 'off',\n    spellcheck: 'false',\n    required: {\n      type: Boolean,\n      default: true\n    }\n  },\n  computed: {\n    pattern () {\n      if (this.keyboard === 'number' || this.isType === 'china-mobile') {\n        return '[0-9]*'\n      }\n    },\n    labelWidth () {\n      return this.title.replace(/[^x00-xff]/g, '00').length / 2 + 1\n    },\n    hasErrors () {\n      return Object.keys(this.errors).length > 0\n    },\n    inputStyle () {\n      if (this.textAlign) {\n        return {\n          textAlign: this.textAlign\n        }\n      }\n    },\n    dirty () {\n      return !this.prisine\n    },\n    invalid () {\n      return !this.valid\n    }\n  },\n  methods: {\n    clear () {\n      this.props_value = ''\n      this.focus = true\n    },\n    blur () {\n      this.setTouched()\n      this.validate()\n    },\n    getError () {\n      let key = Object.keys(this.errors)[0]\n      this.firstError = this.errors[key]\n    },\n    validate () {\n      if (this.equalWith) {\n        this.validateEqual()\n        return\n      }\n      this.errors = {}\n\n      if (!this.props_value && !this.required) {\n        this.valid = true\n        return\n      }\n\n      if (!this.props_value && this.required) {\n        this.valid = false\n        this.errors.required = '必填哦'\n        return\n      }\n\n      const validator = validators[this.isType]\n      if (validator) {\n        this.valid = validator[ 'fn' ](this.props_value)\n        if (!this.valid) {\n          this.errors.format = validator[ 'msg' ] + '格式不对哦~'\n          return\n        } else {\n          delete this.errors.format\n        }\n      }\n\n      if (this.min) {\n        if (this.props_value.length < this.min) {\n          this.errors.min = '最少应该输入'+this.min+'个字符哦'\n          this.valid = false\n          this.getError()\n          return\n        } else {\n          delete this.errors.min\n        }\n      }\n\n      if (this.max) {\n        if (this.props_value.length > this.max) {\n          this.errors.max = '最多可以输入'+this.max+'个字符哦'\n          this.valid = false\n          this.forceShowError = true\n          return\n        } else {\n          this.forceShowError = false\n          delete this.errors.max\n        }\n      }\n\n      this.valid = true\n    },\n    validateEqual () {\n      let willCheck = this.dirty || this.props_value.length >= this.equalWith.length\n      // 只在长度符合时显示正确与否\n      if (willCheck && this.props_value !== this.equalWith) {\n        this.valid = false\n        this.errors.equal = '输入不一致'\n        return\n      } else {\n        this.valid = true\n        delete this.errors.equal\n      }\n    },\n    setTouched () {\n      this.touched = true\n    },\n    onValueChange(event){\n      this.props_value=event.target.value\n      this.$emit('input',event.target.value)\n    }\n  },\n  data () {\n    return {\n      firstError: '',\n      forceShowError: false,\n      hasLengthEqual: false,\n      focus: false,\n      errors: {},\n      touched: false,\n      valid: true,\n      props_value: undefined,\n      props_showClear:true,\n      props_type:'text'\n    }\n  },\n  watch: {\n    focus (newVal) {\n      if (newVal) {\n        this.$els.input.focus()\n      }\n    },\n    valid () {\n      this.getError()\n    },\n    value (newVal) {\n      this.props_value=newVal\n    },\n    props_value(newVal){\n      console.log(newVal);\n      if (this.equalWith) {\n        if (newVal.length === this.equalWith.length) {\n          this.hasLengthEqual = true\n        }\n        this.validateEqual()\n      } else {\n        this.validate()\n      }\n      if (!this.handleChangeEvent) {\n        this.$emit('on-change', newVal)\n      }\n      this.$emit('input',newVal)\n    },\n    showClear(val){\n      this.props_showClear=val\n    },\n    type(val){\n      this.props_type=val\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_access';\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_form_common';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_vcode';\n.vux-input-icon-warn.weui_icon_warn:before {\n  font-size: 21px;\n}\n</style>\n"
  },
  {
    "path": "src/components/x-number/index.vue",
    "content": "<template>\n  <div class=\"weui_cell\">\n    <div class=\"weui_cell_bd weui_cell_primary\">\n      <p>{{title}}</p>\n    </div>\n    <div class=\"weui_cell_ft\" v-if=\"!readonly\" style=\"font-size:0\">\n      <a @click=\"sub\" class=\"vux-number-selector vux-number-selector-sub\":class=\"{'vux-number-disabled':disabledMin}\">-</a>\n      <input v-model=\"props_value\" :name=\"name\" class=\"vux-number-input\" :style=\"{width: width+'px'}\" number :readonly=\"!fillable\" pattern=\"[0-9]*\"/>\n      <a @click=\"add\" class=\"vux-number-selector vux-number-selector-plus\" :class=\"{'vux-number-disabled':disabledMax}\">+</a>\n    </div>\n    <div class=\"weui_cell_ft\" v-else>\n      {{props_value}}\n    </div>\n  </div>\n</template>\n<script>\nexport default {\n  data(){\n    return {\n      props_value:0\n    }\n  },\n  props: {\n    min: Number,\n    max: Number,\n    step: {\n      type: Number,\n      default: 1\n    },\n    value: {\n      type: Number,\n      default: 0\n    },\n    name: String,\n    title: String,\n    fillable: {\n      type: Boolean,\n      default: true\n    },\n    width: {\n      type: Number,\n      default: 50\n    }\n  },\n  computed: {\n    disabledMin () {\n      return typeof this.min === 'undefined' ? false : this.value <= this.min\n    },\n    disabledMax () {\n      return typeof this.max === 'undefined' ? false : this.value >= this.max\n    }\n  },\n  created(){\n    this.props_value=this.value\n  },\n  watch: {\n    props_value(newValue){\n      if (this.min && this.props_value < this.min) {\n        this.props_value = this.min\n      }\n      if (this.max && this.props_value > this.max) {\n        this.props_value = this.max\n      }\n      this.$emit('on-change', this.props_value)\n      this.$emit('input',this.props_value)\n    },\n    value (newValue) {\n      this.props_value=newValue\n    }\n  },\n  methods: {\n    add () {\n      if (!this.disabledMax) {\n        this.props_value += this.step\n      }\n    },\n    sub () {\n      if (!this.disabledMin) {\n        this.props_value -= this.step\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n\n.vux-number-input {\n  float:left;\n  height:20px;\n  font-size:20px;\n  color: #666;\n  appearance: none;\n  border:1px solid #ececec;\n  padding:3px 0;\n  text-align:center;\n  border-radius: 1px;\n}\n.vux-number-selector {\n  float:left;\n  height:20px;\n  font-size:25px;\n  line-height:18px;\n  color:#3cc51f;\n  border:1px solid #ececec;\n}\n.vux-number-selector.vux-number-disabled{\n  color:#ccc;\n}\n.vux-number-selector-sub {\n  border-right:none;\n  padding:3px 10px;\n  border-radius:2px 0 0 2px;\n}\n.vux-number-selector-plus {\n  border-left:none;\n  margin-right: 5px;\n  padding:3px 8px;\n  border-radius:0 2px 2px 0;\n}\n</style>\n"
  },
  {
    "path": "src/components/x-switch/index.vue",
    "content": "\n<template>\n  <div class=\"weui_cell weui_cell_switch\">\n  <!-- <p v-show=\"value\">ggggg</p> -->\n    <div class=\"weui_cell_hd weui_cell_primary\">\n      <label class=\"weui_label\" :style=\"labelStyle\" v-html=\"title\"></label>\n      <inline-desc v-if=\"inlineDesc\">{{inlineDesc}}</inline-desc>\n    </div>\n    <div class=\"weui_cell_ft\">\n      <input class=\"weui_switch\" type=\"checkbox\" :disabled=\"disabled\" v-model=\"props_value\"/>\n    </div>\n  </div>\n</template>\n\n<script>\nimport InlineDesc from '../inline-desc'\n\nexport default {\n  components: {\n    InlineDesc\n  },\n  created(){\n    this.props_value=this.value;\n  },\n  computed: {\n    labelStyle () {\n      let isHTML = /<\\/?[^>]*>/.test(this.title)\n      let width = Math.min(isHTML ? 5 : (this.title.length + 1), 14) + 'em'\n      return {\n        width\n      }\n    }\n  },\n  data(){\n    return {\n      props_value: false\n    }\n  },\n  props: {\n    title: {\n      type: String,\n      required: true\n    },\n    disabled: Boolean,\n    value: Boolean,\n    inlineDesc: String\n  },\n  watch: {\n    value (newVal) {\n      this.props_value=newVal;\n    },\n    props_value(newVal){\n      this.$emit('on-change', newVal);\n      this.$emit('input',newVal);\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_form_common';\n@import '../../styles/weui/widget/weui_cell/weui_switch';\n\n.weui_cell_switch .weui_cell_ft {\n  font-size: 0;\n}\n</style>\n"
  },
  {
    "path": "src/components/x-switch/metas.yml",
    "content": "props:\n  title:\n    en: label text\n    zh-CN: label文字\n  disabled:\n    en: if disabled\n    zh-CN: 是否不可点击\n  value:\n    en: component's value\n    zh-CN: 表单值\n  inline-desc:\n    en: text below label\n    zh-CN: 标签下文字\nevents:\n  on-change:\n    en: triggers when value change, params is (value)\n    zh-CN: 值变化时触发，参数为 (value)\n"
  },
  {
    "path": "src/components/x-textarea/component.json",
    "content": "{\n  \"vux\": {\n    \"is_weui\": true\n  }\n}"
  },
  {
    "path": "src/components/x-textarea/index.vue",
    "content": "<template>\n  <div class=\"weui_cell\">\n    <div class=\"weui_cell_bd weui_cell_primary\">\n      <textarea\n      class=\"weui_textarea\"\n      :autocomplete=\"autocomplete\"\n      :autocapitalize=\"autocapitalize\"\n      :autocorrect=\"autocorrect\"\n      :spellcheck=\"spellcheck\"\n      :placeholder=\"placeholder\"\n      :readonly=\"readonly\"\n      :name=\"name\"\n      :rows=\"rows\"\n      :cols=\"cols\"\n      v-model=\"props_value\"\n      :style=\"textareaStyle\"\n      :maxlength=\"max\" ref=\"textarea\"></textarea>\n      <div class=\"weui_textarea_counter\" v-show=\"showCounter && max\"><span>{{count}}</span>/{{max}}</div>\n    </div>\n  </div>\n</template>\n\n<script>\n\nexport default {\n  props: {\n    showCounter: {\n      type: Boolean,\n      default: true\n    },\n    max: Number,\n    value: {\n      type: String,\n      default: ''\n    },\n    name: String,\n    placeholder: String,\n    readonly: {\n      type: Boolean,\n      default: false\n    },\n    rows: {\n      type: Number,\n      default: 3\n    },\n    cols: {\n      type: Number,\n      default: 30\n    },\n    height: Number,\n    // https://github.com/yisibl/blog/issues/3\n    autocomplete: 'off',\n    autocapitalize: 'off',\n    autocorrect: 'off',\n    spellcheck: 'false'\n  },\n  watch: {\n    props_value(newVal){\n      if (this.max && this.props_value.length > this.max) {\n        this.props_value = newVal.slice(0, this.max)\n      }\n      this.$emit('on-change', this.props_value)\n      this.$emit('input',this.props_value)\n    },\n    value (newVal) {\n      this.props_value=newVal\n    }\n  },\n  created () {\n    this.props_value=this.value\n  },\n  computed: {\n    count () {\n      let len = 0\n      if (this.props_value) {\n        len = this.props_value.replace(/\\n/g, 'aa').length\n      }\n      return len > this.max ? this.max : len\n    },\n    textareaStyle () {\n      if (this.height) {\n        return {\n          height: `${this.height}px`\n        }\n      }\n    }\n  },\n  methods: {\n\n  },\n  data () {\n    return {\n      props_value:''\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../../styles/weui/widget/weui_cell/weui_cell_global';\n@import '../../styles/weui/widget/weui_cell/weui_form/weui_form_common';\n</style>\n"
  },
  {
    "path": "src/components/x-textarea/metas.yml",
    "content": "props:\n  show-counter:\n    en: if show the text length counter\n    zh-CN: 是否显示计数\n  max:\n    en: maxlength limit\n    zh-CN: 最大长度限制\n  value:\n    en: textarea's value\n    zh-CN: 表单值\n  name:\n    en: textarea's name\n    zh-CN: 表单名字\n  placeholder:\n    en: placeholder\n    zh-CN: 没有值时的提示文字\n  rows:\n    en: textarea's rows attribute\n    zh-CN: textarea 标准属性 rows\n  cols:\n    en: textarea's cols attribute\n    zh-CN: textara 标签属性 cols\n  height:\n    en: height\n    zh-CN: 高度\nevents:\n  on-change:\n    en: triggers when value changes, params are (value)\n    zh-CN: 表单值变化时触发，参数为 (value)\n"
  },
  {
    "path": "src/demos/1px.vue",
    "content": "<template>\n  <div class=\"vux-demo\">\n    <br/>\n    <flexbox class=\"vux-1px-tb\" :gutter=\"0\">\n      <flexbox-item class=\"vux-1px-r test\"><div>北京</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>上海</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>广州</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>深圳</div></flexbox-item>\n      <flexbox-item class=\"test\"><div>其他</div></flexbox-item>\n    </flexbox>\n    <flexbox class=\"vux-1px-b\" :gutter=\"0\">\n      <flexbox-item class=\"vux-1px-r test\"><div>天津</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>西安</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>重庆</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>杭州</div></flexbox-item>\n      <flexbox-item class=\"test\"><div>其他</div></flexbox-item>\n    </flexbox>\n    <flexbox class=\"vux-1px-b\" :gutter=\"0\">\n      <flexbox-item class=\"vux-1px-r test\"><div>南京</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>武汉</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div>成都</div></flexbox-item>\n      <flexbox-item class=\"vux-1px-r test\"><div></div></flexbox-item>\n      <flexbox-item class=\"test\"><div>其他</div></flexbox-item>\n    </flexbox>\n    <br/>\n    <br/>\n    <flexbox class=\"vux-1px-tb\" :gutter=\"0\">\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item1\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img meishi\"></div>\n          <div class=\"text\">美食</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item2\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img dianying\"></div>\n          <div class=\"text\">电影</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item3\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img jiudian\"></div>\n          <div class=\"text\">酒店</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item>\n        <a class=\"item item4\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img yule\"></div>\n          <div class=\"text\">休闲娱乐</div>\n        </a>\n      </flexbox-item>\n    </flexbox>\n    <flexbox class=\"vux-1px-b\" :gutter=\"0\">\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item5\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img huoguo\"></div>\n          <div class=\"text\">火锅</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item6\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img lvyou\"></div>\n          <div class=\"text\">旅游</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item class=\"vux-1px-r\">\n        <a class=\"item item7\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img daijinquan\"></div>\n          <div class=\"text\">代金券</div>\n        </a>\n      </flexbox-item>\n      <flexbox-item>\n        <a class=\"item item8\" href=\"/gz/326/0-0/0-0-0-0-0\" mon=\"position=1&content=美食\">\n          <div class=\"img ktv\"></div>\n          <div class=\"text\">KTV</div>\n        </a>\n      </flexbox-item>\n    </flexbox>\n    <br/>\n    <br/>\n    <div style=\"padding: 10px;\">\n      <p>对比不做处理的1px边框</p>\n      <br/>\n      <div style=\"height:10px;border:1px solid #e0e0e0\"></div>\n      <br/>\n      <p>方案来自于 <a href=\"http://frozenui.github.io/frozenui/demo/\">FrozenUI</a></p>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { Flexbox, FlexboxItem } from '../components'\nexport default {\n  components: {\n    Flexbox,\n    FlexboxItem\n  }\n}\n</script>\n\n<style scoped lang=\"less\">\n@import '../styles/1px.less';\n\n.vux-demo .test{\n  height:50px;\n  text-align:center;\n  line-height: 50px;\n}\n\n.vux-demo .vux-flexbox {\n  background-color: #fff;\n}\n\n.item {\n  display: block;\n  box-sizing: border-box;\n  font-size: 12px;\n  color: #303030;\n  position: relative;\n  margin-bottom: 10px;\n}\n\n\n.img {\n  width: 40px;\n  height: 40px;\n  margin: 8px auto 5px;\n  background-repeat: no-repeat;\n  background-size: 40px auto!important;\n  background-position: center;\n}\n\n.text {\n  font-size: 13px;\n  text-align: center;\n  line-height: 1em;\n}\n\n\n.meishi {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAt1BMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7/////+/v/9/f9YmL9Z2f+zMz+u7v+kpL9eHj/4+P/7e3/6Oj/3Nz+v7/+trb+srL+mpr+iYn9c3P9a2v9X1//2Nj+09P/8fEgsZRxAAAAJHRSTlMAC+P18ncfFuzf251PRta9uKhZB2xI6dFccMjGmJSQKSSSFBJnGfpEAAACkUlEQVRYw6TU126rQBAG4AGDacYtbulR9K8BY5ym9PP+z3UmTkBGHsMC3wXauZif1TaqcR/OrkfDhYWe6y1H17PwntozBjdLHFneDAxqI5z0cEJvEjae3LmHSt650STOdlHLtbUjpya0mFPS0R9D27hPtVYWGrBWVO0sQEPBGVVwLtHYpVOxfD5a8E8u5K2JVsxbEt2ZaMm8I4HjozXfEfb3Ah1cHO91gE6Co/OMjlZU0rfQkVU+PGN0NqYDU8iydLeOdmmGX0qp/Tcflk2pYJiQxC9rtbd+iTUCTYNytpz3rQrfcX0g7GKCLgSfG3Vg81kf6OZTnEHyqtjjNkm2j4q91gdiRr88COIH7nlKwJInHj7E9YEe7YWQbLklesfee8TFtj4Qc/oxgeSZW9K8SLl41gicEDN6kOy45S0v3rjYaQT2DA4cQPSPWz7y4oOLSCMQAw68gmjNLXGxQ4rpBF5xoA9R1GqGPpEDtF1DiUNzoO0uS+ZkA23PocSmAKzzTSkENALTvcslkIxoCKb52kTqQATJkBY4Jf5Sha8ErPwLSBZkIVf/YmeRKkQZJBahSpYqlmZFvYn+4jYZZP+bM4MUBmEgin6wMVVDRG0sXYriCbz/2YrNIqsElLfoXwbytjP/jaqtmPN35iUDfLLAhxoWOOvNAr16FtirY4GdDAs0CiwwyLJAK7UksI1DigCmIeVIoIuDngCmQa+BAw46Ezhg0C8NBWwU86KAn7QSE8C0EsswQFOsFWkJ2zMvhVqhMQs89v0ovqSMfDXjyyNfb/kCzisCXmLwmoUXQSm1v8PztbJZ78i0VYVMy1XeMqkcd01IOlqZwlKX1s6wGGfV/T8cF2JsPH9U21bN/jx/WJXzBaE7wxSmWFkJAAAAAElFTkSuQmCC) no-repeat\n}\n\n.dianying {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAxlBMVEUAAAD/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/////5L7/+/X/rTj/+vL//fr/xG//vV3/uFL/v2P/37D/1Zr/u1n/+e//9+v/rz3/t1H/9OT/8Nn/687/4rj/uFP/skL/8d3/2qX/wGX/t1D/58T/yn//zof/y4D/6Mf/15wdca20AAAAIHRSTlMA8wvgRyCbbhYI6tuST9a9uHZZAu3k0afIxnhcKRSoXSwatFIAAAMsSURBVFjDxZnpVupADIBbilDZQcQNNEA3pCiuLILo+7/UJUUow2Sm25xzv19OTomZJJNJUy2CXr5YqddKOkC73KlXivmelp5ctdIBjk6lmkuj7SJ/pYMA/Sp/kdS4ogFSjGISM8+bJYik1DyPq69lQCyMVix1Zw2ITeMsWt+dDgnQ76K8V4CEFKSeNG8gMTemxH1lSEFZ6MjuJaTisiuwD/Wl00jaaJYhNWWTiO81ZOCaj3UBMlHg8hkycncSEB0yorOBaUBmGkx9ATHW0h/Mbcex5wN/aYGY1lE5FderydjuH2GPJ+JqFpbcplDdqs+xEqpsHgwsCTa7cPoEzkKw8fbexCKQfL3tFDyPN97MsmbeZvy8k7x9AUnx736jPeg99ZF399ge9z0QPnm0F3d3YZ7WN8RfvrqncvcV5UNaYz5QeEXuN7DvYwoc04/ARnLX90FIdCoegf/8/fJlMBwOXvYrP/AjFRkdw1IFggX+5ne/GtlBDo72619cLoCgKigzEwf3e1gO+gGDgwB37UwERYeqqyuMR+i/bXweH7eRCP2IkVlRlVbTTMpAtMcFsUJw8QnKRJNMmjHmHwC/5RDMxzGZOLdEiG3WQPjcBeUTWBNtItC3VEyWeN6Yh0eYNiPmn+IpXFJRqfNCn98O7RafF9e1Gi9El234fGYl68CpHDWNKF3z7bPeST5bFrASb/vHnGhDNeLg4TGescH9dpxvVjLDA00cPg148JhYTPpNtyJnyiSkhYcFeOIptFChFU9hW/WWDVFQwnzeByWUyILSodNmzedzKJGljfLEFh89Mp+jj560OJAVOywOQ6o4KC9fWQqsRxVY+gr4iXMF/FBXgPJLSnqN+qKK7Uuu0eiLnsvwqIteu1faiqhvlqLbOUjQzkkbzpdDw7neNZzrQ8M5kjacWq4tb4lpnl2iJY5u2mUa6aY9+rUirkIjl+jFJ3rLLdWvZupfHhkeICMPql/AlY8IVA8xlI9ZSLoGpMLoCkdVNUhBTTLz66UZpvWk474KJKQSNTittiEB7arqkanioa7qsbPiwbji0f3//7jwh3n4/KGXavj5w9Tk/AOdOYKawb/jQgAAAABJRU5ErkJggg==) no-repeat\n}\n\n.jiudian {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAgVBMVEUAAABMpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP7////u9v/0+f/F4v9erf7M5f9nsv5msf72+/+Avv5/vv7trVlKAAAAH3RSTlMAC/Pe6+N3bh/YT5VGx7ionFkmFAdI0VwWvruQnfkSrqgnKwAAAhFJREFUWMPNmV1vskAQhQ+7CCyoYBXF1vZY7cfb/v8f+IbGhgjswsJc9LnQC8MTzEwG5iwG2C7j7NGEis+h3j9m8XKL6QTp054d9k9pgCksc0ULKl9631ys6UTHgY8uCjlIGI1WbhYcxWKDMSRrjmadYJCDogfqADe7Ez057eCgWtGbVQUrieYEdAILDwtOYvFg90kat5qT0due+q44g1W31gVnUXT6mTM5tBpGcSbqvnnWnM36br5QgE3jC9od+Hm9nHu5XD/t3djMx4j3fDS6rvKDNiLcCNrz+Xp2cKWN8PcWY7a4uIT/aCW+CTVb1Ne9v7HD23v9C63o2/OSfcLa1zW6hSxRk/cK2cuAMAeAQMkJVQAgtV12+2o+h4VMAWSSwgyAkRQaoKKkkBVKUqooNSUiWWGEwlfonjsFjr5C99w5wvgWxT13DEJfoXvuhFDeQufcUaC30D138DyxbazCUFaooGWFIfayQoOjb1HcwiMKWWGBSFYYoZQVlqhki1IBWlJoABSSwgxAKilMAQRKRNg86JHLCXPUlHLCEj9oKaHuf+H8fj2P5PWbd8T9r8SNb9jY/0qMSEYYWdaKr/F/+au1VggvPtKrmfjyKL3eCi/gJ/GIQDrEkI5ZxIMgC4nhBEwCKy9TwrQXONhl9CTbwU3qF0im0pGpcKgrHTsLB+Oy0f1fOFxoHX9QhWbM8cd/o/xelxZNdwAAAAAASUVORK5CYII=) no-repeat\n}\n\n.yule {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAsVBMVEUAAAD/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/////xnP/8+L/rTf//Pj/0pD/+O3/4LT/0Ir/+fH/687/47z/uVX/s0X/rzv/6s3/6cr/3rD/zYT/yXr/w23/wGX/vmH/8uELPQ/JAAAAInRSTlMAC93jmxX0uW7skk/xItZ2WQdIRx7p0VymyMa+eCmo+UUShokM0QAAAoRJREFUWMPN2ddW4zAQBuCJe+zEIRUWQvsVp5DQlrLl/R9slQI+HI+H2J6L/W50/hsfgeSRNaFv+DdRHKbjANdtZxLG0Y1P9bWSeIKCSZy0qI7hWYASwdmw8uQiByInalV5XK+Nb7V7Rz/yxMVR3BM6xijE0cIRfeu0gwo6pyTre6jI65PAP0dl5z6V6jqowelSiUsXtbiXJfNzUZPLztF3UJvjM+v7Aw38KK61h0a8wn5GQ6f0xaiDhjpf38IQjYVf6gsUnNCnlgsFbl4fe2CsV6u1EBi9zwm2UTQz1i8hFLU/phiBcW+sn0JgRLTngLEw1kIIDId2htB6IAa0dQatPxlXZLUCQGVRrGC7LAkAnW1jJVyZaVp0HChyiHzw1sZaC4Hn0wC8zFiZEHgDmkLVlDyo8ugCnPlfs5PNhcC5oBScmTmYCYGT0hicB3PwIATOmDpgzBfmYDEXAiMgcH4bY+6AOzv8EQKHrsFYGmOWh0EIHGqDsZ3AbL8Ar0JgBMyrfCh5j8CjHV6EwC7KBIzt2/UEPNkhEwIj5Tf2xhjzDDzbYSMExgX/6hnrYxQCw6Op7gOnfPky+R9mhMAY8AV2k//rN0Jg+PwRkOWbIxNCkVNySN3n2/dFCEVeyTF6l79gr0IoSkoO+mVeApZC4A96uuKrzWqO1bamCIH/FKFBST18e8tLIBu4TbPjaFVsl/YirTMlKv8knmf52SYE9pOY/2h/NzvvQijoqV8r1C8++lezXLf55bGrfb3VvoCrtwi0mxjabRb9RhBvlKKGdESlbus0025J0I9RUdwnWVKtIZkot0y7yk1d7bazcmNct3X/P/y4sOcPDz9/IBinYRwNfZL9A8ZHohfA02LYAAAAAElFTkSuQmCC) no-repeat\n}\n\n.huoguo {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAulBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7/////8PD9Zmb/4uL+v7/+jY39dXX/+vr/9/f+i4v/2dn+x8f+sLD+kZH/6ur+np7+mJj+zMz9Y2P+s7P+1NT9g4P9a2v/8vL+qan/5ub9fn7+o6NSiy7pAAAAIXRSTlMA6+NHCZta9Ll3HxYM39tP8dbHqAJs0XAHvpSQKSQU+ZLUEo5MAAADEklEQVRYw6TU21KDMBAG4AXKyRZKj551/oC2tVVb60wd3//BDNDRMYQlwHfBHZnsv7uhBg/O4iaYWD4erWgZ3CycB+puML5domJ5Ox5QB3Nn5qOGP3Pm1M7oMgIruhy1qTW00MgKjSv3bBixPTJxEcBYcGFwvQQtJF5Tei5actkkh1O0Nh0y8cXoIK4N8s5GJ/Ydad3b6Mi+1+YXo7NYk+PVFD1Mr0jloheXFB568pSBSdBT8n94AvQWtCh4mwop3RoXPbDBSkUhBcv+2+oQrLU4W4MV0tnIAutbnH2DZY2otABvJ8/a7+VnB96CCvMIrC8hPT8L6QusaE45B7yDkN7fhXQAz6HcDLyjkLJMSEfwZiQNfLA+N3l6ZZKbT7D8vC1j8Ipa34C3onLwxgbPTNGNE3AqemPw6MRoXpMXSC/Ny4KYaAje6bcZx/KqvKFuaD6E6lCOj2qrG5xQV6RqXa60QhdAqOlJtqn5MTU40KXr5gPTFQor9cRNBtU1TVDxKpofgp2QXlExIQsVW5FbgbGqa4pFCaqehLTPUCvbC+kJVT7pt00pSBuKfg9/ijOj3QZhGIqm0jqkgoR42dqn1SZAgDExCqis3f//1hS6PWQEWxRQzwdYQLDv9Y14Awst3hp4hA/UtGBDWMe/ym4VqXqZAusr63E92iyFhAGywJ7KriviBaw02FMmg/MtsacBK4E4EFNL854Y5fT/R82xg9iSX14TxtX1XNfnaxXrVqHPa0uIfJXhCFlFiD2heapFK62idM8l9STCARGpKy4nAXmRGvOlyBkJ4EVK5s3p0qVpdzk1uQRepHyYBC+jngOL4Xi8FVGRcSKKtiK8WZIlGkQ1aZZ4O9fgP75IO8caTjnolo54xFfeEn+bkz4iPeLGI0y7vcKnrk/0Mb9WhIiZNL9ASKwV/OKThObki7Xqj/C89Gq2+PK47no7fwFfOiJ4WjvEmB+zrB8EaXYB3EGwIzLhe8I0MjfeH2Eix72g8acFkv6qken8UHfV2Hl+ML5wdP/4y4Vf3L/rD3A2gb7+cAXND4l/jLN+XT+jAAAAAElFTkSuQmCC) no-repeat\n}\n\n.zizhucan {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAtFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7/////8PD+jIz/9vb9g4P/+fn+zMz+yMj+lpb9d3f/+/v/4+P+s7P9fn79dHT9ZGT+vb3/6ur+1NT+09P+kpL+1dX+sbH+np7+nZ39amr+vr4DQqc2AAAAIHRSTlMAC/PjRxSbWunf208i1r24qAcC7XZsHtGUeHDIxpAp+VBdpKEAAAK4SURBVFjDrNQJUsJAEAXQySTBJMgisrj7WyZCgiAoKuD972UmVVgUzJKFd4Cu7vq/mln43uCm3Qo4nq/DUftm4PmsOqf5OMKJ0WPTYRX0vC6HBu96vbLL3YUwCu+cMuP6AayCfuGRFy4KcS9YEcMOCusMC6zHUQK3LXnVQEmNK2ONH1Dag6HqlxEqiC6ZxpOLStwnzX4uKnKVO/oRKot8Rb73qOH+NOsGammc9Bk1HTV8yFETH7JDHdTW0R9c/2jHxRm4Dtvr4yz6/wsGsHifCDF5h8X1fsUBLFJBGZHCYsByvRAWE8pNYBH2mOTBRhDFMZGAjcek7vkGdvNIOM51MriMpQmz5Xj+PaPM7Hs+XsKsaX0z4+krHXidjq1PJ4Le1xudePuCXsSYb6jzmpTWhor7htIkgnIfq2SxWy53i2T1QTmRGIpzC40fkmbTGAfi6YykH2jcajNZkfSZ4kj6SdKvNpU2lOZ5phsobPLc51BqsxZUEsq8LKC0eKFMApUWC5T5CjkvhUYqJwpl1gHjUFjLe2NoxfLqNRQ4U/aZMlsYbCmjbPhfcebXgiAMRfFNRII0ipFZL10noqRI+v0/XA7f8uDUDvR7HsPr7t9z1VPmtO59ZRH31i280ID4zUdeniTu/LFAJoN0XY9na0H4Dx3UbZ6v3B8vxUPp3u0N3OYELR7EywBtPqkIBkkvXnoYLhFIDhUKAxxMFUgOIXSaTrx00HFCkGBtvho7T7CgBDT5ahpQAlTE/MIIldHCrr6vQGVUB0Ij0FMrQuOMmiVn8V6bQ9TO2XwDFrVz6sq68KEmtOGYbDS/aeePFfzBhz+aTcS/D48xe7xlD+B0iYAtYrBlFr4QhEkT2UGS0sW0BS6ZbCS7qGWORjZgjmTJNCaLulzZ+a7JwjhZuv//cuF7/SHBIVmz/vgAqTp3WrM6X+4AAAAASUVORK5CYII=) no-repeat\n}\n\n.daijinquan {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAA3lBMVEUAAAD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/////qyr/68r/rS3/7dL//fn/xWr/1JH/9eb/+/T//Pf/9+z/vFT/tUP/t0f/sjz/+e//xGj/uEv/5Lr/3an/vln/qSX/6MT/1pf/043/yXX/wF7/8Nn/5r7/0If/zYD/rzT/4bH/2qD/6cZoepA5AAAAJXRSTlMAC+MUm/Xxd+zf208f1r24WQJsSAnp0ZRcp3BHB8jGkEUpJKgdTy/f7wAAA4VJREFUWMPFmYlu4jAQhl0CCUc5CuXosb3HgYZyBgIFSilHd9//hdYObC0SJ57QRf0l1AqJT/b8kxl7QhTS7orVXLasQyKZquSqxTuNHK6TzG0FfKrcZk4OoZ1dXSQgQImLq7Ooi7tMQahSl1GWeW4kQamkcY7lFWKAUqyAwp3mAa38qZpX0yGC9JoqenGIqHhoJLUbiKwbLSR8aThA6cBA3sfgIMXu5bwHHw9NfJDGLw0HKy2J4/Uv+IZ+XfuAqHyZDgZmQPb48hmBM393KK0HEGuehNERvDrlqoNU+n7y5NE8+hr0XO/VFzyPvkGACoJ3EkPyhs/s0wfblGajKLkGkve8mbbYn1aAM8bXApNIXgOg16ZcM2kN/7fEIprHZC+twEAWd/0theU5c2DasEDO5Z1r2wuvsLyNRV+A6Z3Srg0TSRxLLvACvd/mlmhyZzoyZx5dSxJIniBOts6M/ScAbksGzRNEe9xh367ApwwvM3ieIELjg9K1vOikUTxBFM60RlPHE8c0IVo0nnCmS5l8zmikhOINRsAlcebVmzgGgjf64FVw0dsn9pcSoEHiiPU1KLUai07bQ1xIgHGSw8SPPWy8/H+IXVs2N5rJgT3lSFa53/G6/0a5WgMRRwcaz7KykyVl1frm/Dnb8URldXmSllUmumq//N8dr9eemeE80IkyfoP12E2Q4YgX1085T4gk1Pm86FCXyHjdvoIHJInitZwhpRieTlIqntl14/dOmZp+ns+USmC93/6a9yXuxy6OCh5kfYn9ueP1LeuLuOV1h+xjhvMg5330+m6G8P2+UE7caczjNxpaTQUP4t7i0KRM7c++h2jOuB8jR8UDg5T8IeTIiZeo8FeULw2kxK5v1ygeaP4WYDrTXovSdxBEPC8d0KTWvM4JIpoH8YA2uuIVZmwLIpIHmYBGP6ZcHeGMmicaPXmUlocOz0dTEFU8cRSR9j1zAqOucGaD40Ep9Dg3Z864gLmD5KXOQg+cvJFYS1sZP6HL8CPxbPvM9LA8cSQmRlCjco/oUyQPDNW1wrTBHlK6QvJiJ5iLDw8kjgcF1NXsFc3L4y6PdSxPP1Veb0U1+6PmQQ17ATeX9dVUzYv/7xHB+XGHGN8fsxx3ECT0lD2El3064jDN73U1Kq96TcKViTaQzBxxZHr8oW70sfNPDMbxo/uff7mw//ojAZAoZzGvP/4CWXPlbGBaMMwAAAAASUVORK5CYII=) no-repeat\n}\n\n.ktv {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAw1BMVEUAAABwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+L////49/7g3/mUjurq6fv8/P53buPGwvR5ceSGf+eXkerU0vZ1bONyauPd2vjLyPWJgud+duXT0Pa2sfHBvfOyrvCkn+3u7fy9uPKtqO/z8v2cluvn5frZ1veOh+iDe+bmhqTeAAAAIHRSTlMA3+tHCZta9fK5dx8M208U49bHAmzRlBancAe+kCkkqEg3GqEAAAMrSURBVFjDxZnpdqowFIUBtSAOrdahtdMWmdSq1dZWezu9/1NdEwRWBZIDXtf9/gg/3OskZ+ckOSgSzkudXrWlGdA1tVvtdUrnSnHKzdsuEnRvm+UiapelKx0Z6Fely5xy9WsVQtTrep6xmhqkaCZ55GcqSKhnJLlaFWSqNUJ4BnJgyIIsV5CTinAm+23kpt0XTF8DBWhkTuTdBQpxcZeud8/0iinep5aBBgrTSCkZgzaOoD1ICFZwFJWEn3EkZweGMUDC9h3XdfwpEhi/zVMFhcliuGcxSa7r/AO2rWGEZYsGXVZJ8TG9WDERoxqvahMURkzn0fY8+5E9jXCIGdV7DQSmTOUFnBf2nMiMFu4KHVDwWXzYw2L0cUhnv7+poODsNOwoP7sXB4eowV5YAgl3p+Fhj7d7cZGgxAWvQMIiCD5wz+j4V0OGztLSBI2nw6Q8IUmTVmbmntw2cdFpQMp6NA6N/cyM/RwaO0Fjt9FByvvu32P50uP0Caax3SFTFBeH2DgmsSbwGEeh3miCdExpTlbMLqEipr7jWlGBTc3KjSTBrKZGinJulJbMfYzXBVWxpWgQ8cr1tvCoippiQMAH13uKlEceJBgKBHxb3MtztjQ4/hwyFF2Q4A2Paoa5z+Xcd8gRzOGMu+5zjNlj4OUp5BiKiiz4it2sMA7s7ExAQFO6yGDLo1riJ3D2YgwKrUxjv3G9byz/xOkgGbsiqAjuB2yLnA5OJaM4/PC43vDmhukgYqaXr7HDFxzeg3QsQaaUXmC573xsg3SsQKefvgVYbMHNWGFgv6DTSN+kZnwCv4JCgzxUMrZRJ6r0HyASb6N1PdWEnA09HfFGrzwgSeDm0Qr5eMg8LLk7M2+2M+SkFB/nkoIe6MTHOU4nNSs2cnOdfSRexwcjOlo9+9C+dKODEX3opuha4UcHI4eaarUsuvjMv4YhVMUz8dVsvg4FfZp7qtLL43LtuNbnegkSRu0E19sTXsCPbxGUT9zEOL7NcvpGEKfWQgFaNUFPuEgzTdg3HvSQk95AEdPM15BsnrRlenxT9/Rt59M3xumt+///ceH35w8d0LUW5fPHX9VjfATvxQFPAAAAAElFTkSuQmCC) no-repeat\n}\n\n.xiaochi {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAwFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7//////Pz/7+//39//+fn/6+v/9PT+u7v9Z2f9YmL+jIz9f3/9e3v9dnb9cHD/6Oj+w8P+l5f9YGD/2dn+lJT+nZ3+hob/29v9goL+y8v+s7P+tbX+tLT+paX+oqIHOmGKAAAAIHRSTlMAC+Hrm1r18dtuFghPRiLWvbiodkge5NGUeMjGkCkUEpSb2gUAAAMKSURBVFjDzZnbQuIwEIYj1ALlDCqgotNWSlsolJMHUPf932pNu6u79k96yoXfXUozTDLJP8mUpXDXbox73WqN9Gp91Bs32nesOGet2xElGN22zgqZaw90EqAP2rmda1RISqWRx83msEqpVIfNrPbOgXfQy/NM5i77lJn+ZQb3apSDWpqTTY1yokln0rih3NwYYnudOhWg3hHZm15RIa6mAv+4vWIWoY9GnQpTN0B8r6kE18lYa1QKLbGeqSTn3/ZbjUpS+38X9qk0fTBgZYM+E+nV09vetsx/sOz965NIzb4kd0iQx9CEhI8EGX46CPV5/WAKeVhDDf/rYgOOdm5KmMNxN1gM2nMLK+7oLtY+feKtFm78R9YCzeKffAl+Ws14r9nJowTeKf5tBbpdRAYHlGAXzZ8TECRwonncUYJBFBIdxDeytyYB68giiLXOw9ICPUI+piUJWfJRh+CHFpaZJ+7AiSSc+Bsg0hqO8RuPr0cSPB7rN6C0jBng9f3H2y5JcT9e2YPnBrsAT+dmJuZw4UzAUzMjoOuEaWoNaqyH9p2dxZyNdl+PdUkpXVYlpVSZJDvtfj1b8/3jLtkINrbpbAKUqxgJ+FLY5/X3xrsVS9gW9GJJaXj+UJKlv3z40mfcwKII5vDF+uzw7gka+yCyG4Ihg4S3jfvNDlFjhhqSoIzA09XGMe3NKq2Bl02PlNJjGilFA+JQautNoHwBe9Aiki8gsKXUxuApQKHBOk5SfLX5JMXjSx3EBKdRnkVfSMoLT9wgjeJEf8yWpI4g0eOjyJaPJyAJAd+dW3wUAQvHd/iiCCT2bP6CLzgsAX04RPLiLj0Yj6UbqccBH+fwgfPVTOUVHDjFR+Kdm2bP3YEjsezQfghl5kKkiEP5tcLfHh0LGbOc49aXXivUX3zUX81Yp/zlsaP6eqv6Aq68RKC6iKG8zAKZVqgQlamw0lfo9NmV1PzuixTT7qXlvjHlZJxWOG3lK0i2FJdMO4qLumrLzpOm4sK42tL9T/i4EGPEnz90Ir3a5Z8/DCbnN/EpfWbwFk+qAAAAAElFTkSuQmCC) no-repeat\n}\n\n.dangao {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAkFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7/////7+//9vb/8PD+jY3+y8v+jIz9dnb9bm7/7u7+p6f+0dH/29v+vr7+sbH9ZWXsrHB1AAAAH3RSTlMAC+Dr9LqbWm4fFttP8UbWqCYHdkjj0ciUeJDD5RQS0sp7AwAAAmRJREFUWMPNmdlyozAQRZs1GLAhhniJk1x5S+Ks//93M6pRivJguiWsh5w32cWpRk0LqSGBx1m2SqooRhwVi2SVzR5pPEF5v0CPxX0Z0BhmdYwB4nrmHFwWgiXMAhddE0EkaqyVNyGsCG/IhkkCa5KJRXhTODCVgpyncCSdE0O+hDPLnJm+AiMoBify9gGjeLgd8N1hJHcXjXmB0RT5hfwucQXLfq5TXEXae55xJTd0xmSKK5mePzwJribp3bDHmw5CSLy9QSLs1scGEgelDpBoyBBEEPg+KXX6hkD0E2Im37D6i3zTmRHKM/ihhR/yLJr3JUR2WriDSEuaGiJ7LdxDpNa+IIavOUSs01LCgk+lPmFBab3MfH1ZLzoFPFIQ5eB4Oe7UGbvjCzhyallfp+uUrLGlNRiO6gJHMKz5nPQCFB/wlF9a9fXvr9349V3/wi+zlSTUvs4oCSuKJCH3S5+Ipn6FMcGvEBT7FkZWRWJdLjGFFkXiUC4RLeQicSmXihK5SFzKZUOpZZFYlktKa7sisS2XNbWMEO7/tZTzFz1vt88wmBErzIkKVrhVaguDGXHCgohSSbg3oZkRK0yJqGSFh/3pYEIzI1ZYmhc9P/EmND4p3YuealFoQpOFNWlaf49Na7ZzvoThwIZT51SJ6Lz/Rza0JTY6UTm0JaZmnHCPc5r+saLLqawzee8IA/8HH/9HM/+HR//HW/8HcP8tAv9NDP9tls7ox9cxqTCCiun5PW3gzOaJGOYrOLKaE0/p1pAsfbdMPTd1/bad14Hnxrjf1v1v+Ljwj/zn8wfiqNKfP3Li+QPK9l+Ht9TpiwAAAABJRU5ErkJggg==) no-repeat\n}\n\n.shenghuo {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAjVBMVEUAAABMpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP7///+DwP71+/+l0f5zuP5frv7P5//t9v/T6f/M5f/F4v9nsv7u9v+fzv4OtEAYAAAAIHRSTlMAC+u6m/Xydx/h209G39bHqFkmFAdsSOTRlFwWcP6QEjqpXI0AAAJZSURBVFjDzdltk5owEAfw5UkEBPGJU/HuFmjRU6/f/+N1yjFNrUl2Q2Dm/q+cYfhNDLAhCxDZLHYHL3NnGLjx3jvsFhsYHid527/if3ndvyXOIG6RB6hIkC+MB3dKUZv05JhwoYtk3JBNriJkJVqxuLmH7Hhz2jvO0CCzI8FtfTSMv9V55RKNsyw10xfjgMTKiVy/4KC8rDmevbiJcXDijeT6LtEiy+dr7aNV/Kf7GS1zfPTmM1tw9njzeGgd76G+4AhZCc+h6lV7bs4tBUaiPoaoT32uqurjByWGfwfoEl71FUp0nR7ckR5T3PVgSnlcMe3XS4ZX48+GIRYdmHM8ZIl5d0kCjscTAwcAEo7HFRNRZkhPiETRiWmPL8YAJe2ZiCUUpGckFhBSnpkYgk97otrQog8ew8Ou2iBH9CBjeNgRyBEzcGlPjJAWXZCtTh/Ce55DIf6SrVWAknxWX0FF+sMXlARkpeHCAz+loHIOabCW/uVUcxKaH3NhPy6YgUeeVF+qPpeaBD3wSbDzepEEfQhJsPonJBhCwQGvLWJ75YAFlByw7R4XDlgCxBQoftBgLBYpW1AsUsmYYCIWeltQLPSQjwfm8CeFEmzlYKsEC+iSqsBrKwPbqwqMdC+cTaVNg5KcdK/ENz14070SS5/ne6Md4F32HOu3Ffdbo+RuMi9yxt74jL01G33zOO321n4DPnGLwL6JMWmbRYjRMC9aK1tV2RAv0/T83oc0095Bk+3B1DtsQZ/ErCGZTNoytW/qTt52nr4xzm/df4ePCw+fPwLEwM04nz9+A7UDc4H5zc1aAAAAAElFTkSuQmCC) no-repeat\n}\n\n.gouwu {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAABCFBMVEUAAAD/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/////+vv/OGf//f3/7/P/6u//ZIn/Vn7/NGT/3eX/wtD/fJv/XoT/1N7/prv/iaX/P2z/rsH/qr7/orj/kKr/gJ7/eZn/cpP/MmL/9/n/x9X/vc3/m7P/RnL/0dv/tsf/g6D/TXf/8/b/4ej/t8j9bqdtAAAAMnRSTlMABPTB4NIpDp+Z+81fFhAJ6Lxx5LFORUDtqXfw6tejj4R8Y1g5JBsL99q4yJRsW1VJNMPcgFIAAANFSURBVFjDrdjnVuJgEAbgCRDqAoIoxa6Ivb2hSBOwYq+7e/93svk8HJeSGVJ4/nlyMn5lCkBTxBePDlMrcz7s5vb01OHRYpzc21lY0zFBX1vYIRe007wPDF/+VCNnQukARIF0yMleCzlMlSvY3vnWPGyZ3yI7tlOwLbVNU/3ywQHfL5Ilw3AonBTTOAbHYkKqBwNwIRBk483BlbkgE28ZLi1bRizNw7X5ksX9xuCBPnnXq/BklcZswqPNsXrzwSPfaBX64Zl/pIAxA0NlHZqe0c3H6fn9v+VuQFTpt2tG9bzdr0C0QQOJJUguzo2B8wtIlhKDgGlxr9fGkOsmBIXBfBNr7sYYcSNWoEbKgrhfFaXc61QqnV7ZMIm7XiAlI91HTR1dA98a6jBr0s1kyBTaBa+v1tfAQEOtsQ/ersqcEwhezAg9/OiZf7YhOCEicSz9MSN08KOjDkAcWUQkzpEnM0JzKIfUCYjzhagEBwEr0wKiJCTNfatqWKm27oXE4ev40+B98vXM3sljTQhYe2RvhW2tX4bki2+zK8yTumG6bE7Wzqt60AFjhbjp/mC+1oIVdRYP7Mwnbjpdmq+9wEpXLZ2dVQSG2tktW46v4LABr9l13KpGywfk2n+bPalLqUMs0RzAnlSDva4uO/pIZ56oZnoFKw2p5azQPvPErOMnWLpS9QxGiiL8Wy1Y+80sXolQGuy+nmGtxRyvkqZFvvJuhASoM88WKRFlx+cdN6r5aRpNEHPNd+ZLXB+94/+ZTkRrTDnw27pnqxJrRMwhfpgvvTEB1ez74I6QSMvBwrOZa1xbfmMzIKeRKcKkRrkpBGwxWagUuS7aq1jn/F81VWClSN9imFQ2BNx0jgkf2d8N2bv0sV0LWFRKVYxXtUqpgCZ9jap3y/x+u3X5y5QWwwzoGv3IYgayNCQMz8I0LBGAR4EEjchG4Uk0S2MK8KRAs/1Kv0qTtBRc82tkIeQ6G2MhspTwu1xfghjJDFzIJImlReBYRHPy86H3HxApqMMBPUhTJdejtstjPUl2BPdhy36Q7Mr6bSRLlpwo5qPiZvNFciqePgDjIB0nV+JbkT2M2YtsxcmL0NnxejiT8vsz+cj68VmIpvgHxdTVimWzl58AAAAASUVORK5CYII=) no-repeat\n}\n\n.lvyou {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAA21BMVEUAAAAz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zj///8+1J72/fvg+fA30ppG1qJ74rzx/PjI8+O/8d+g6s/6/v3S9ehQ16c605zq+/S58NyB48Bt3rZn3bLl+fKy7tl04Llg26+s7dWQ5sdb2q2m69OF5MFU2anV9urN9OaK5cTb9+2W6Mqa6MyZ6Mx0HWwcAAAAI3RSTlMAC+MUm/R3btvsT/HfIta9qFkHArhIRx7p0ZRcyMaQKflFtwmd2OAAAAO9SURBVFjDxdlrd6IwEAZgKt5bL+222rr3fQMqCCoKaq1r7XX//y/aw4hVSSAox93nS23P6ZwJmWRCVCTUn4VWrXqbw49S8a7WKvxUleOdlb/dgXP3rXx2TLRPjXoOEXL1xqdDkytcINZF4eyQcPkSpEr5xCEvM0gkc5koXPMXErtuyuN9PscBzj9Lwl1lcaDsVWwZf8XBvsaUeqWIIxQrUfG+Z3CUzPeI/CjeURGFOapFHK2oCub3C1L4ws91FqlkuXpGSqEKb54jpfP9VXiN1K739hdEmz8MnqxFF1KXO/tfdAU6D4z0l9KQme3+mEeUTo9tmAYk8h8JlsJhjHFv/OKnZLM1fbxw72U5ljYpFrCvO1gHsZ0VW7M1JFEI+luoH2ltFpg+M+IimYt1L2xg34yFjFyvi0RuKGAde34zkYFBybtjy14hUp2mJNTPx+bMna9+TwbhkN3Om06fFoiS86elHJrhhUP1Z7Gw9h9rysijPxDXEMxUOWqb0QaMNwOGFs1/13v1f7jCTacYW8+BgT3us74/NRRxUwf33E6rKCoE7FC8B786e8z1Zk8m22Fyo1aVG/CGfbZn6lDa1oht9QzPsNsLvnDyCRKchQqevNNWxK1n4Zy8ciP2vTPW1tnWUtwKauDRiHWrt3leY/pre7Dan30DvJpSBY+e9wpw3hl5Ws+8E1pHow44VeUWPP/hv9Gne0q27/gBHW5heuDcKqLuNGaMDUFc5ptg4z7I2dLFazCngEP/pe8GZzY2llRGc2AuDgjlBwTarI1A1/QjYGPqPzvazJ5pofABSxDw2AAbL7tjnm9/sZmuiYZ8AZHl03Zdj6i01x6oKskjsyGalDtxt1tiL0XdoY+a6W81IEZbg6hsahDaKTFNpy2QstpZIMYKwsLOQobG+bqeLKqnOFlxkxd0GS8owp6s2d9AihJ7DjYNQ9b3VMj9oWKhBPuSlq9SC0g0ZqabpnTExSRnYe1tZ6c23zTZybiMeJNpqB9MEK3MNXrOC+O8xDd6pY4YBiO9x2GnM3zsMWLEHkViC2eoUxuefIy/TdMzjCqa0HGOR239WduZITrhWZHHOVKITpDy0/jTozjFAn8kFh0VQ713Tp069kgcvZ77LEJfuI7lrxUskvC1Qv7i442Y0MgD7/JUr2akkv7lsXLa19v0L+AnvyJIf4lx+muW9BdBvGYVR6g2/9FlGrlq4UCtKyVe+bALybIi1bw+YP1WTnqpm/7a+ZQX4+mv7v//lwsBtRF8/YHcbbXWKjRUJd5fzaC+oF7mul8AAAAASUVORK5CYII=) no-repeat\n}\n\n.xiyu {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAABC1BMVEUAAAAz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zj////7/v32/fvR9ehN16Wh6tBH1qJt37Y40ptl3bHx/Pid6c5B1J/t+/Y+1J7p+vTm+vNS2Khh3K/8/v3O9Oez7tl04Lnj+fGr7dWK5cRX2ar4/vze+O7V9uq78N2a6MyA48Dg+PDZ9+zT9elc263E8uGC48Cm69OU58n0/PmQ5sd54bto3bOmg95jAAAAK3RSTlMA5grgwfXs080nDp+ZeBYD+/FxRkC8sZFgV04Gqdm4pIJjXDkwGxEQyGwiyrBkmgAABJxJREFUWMOt2GlX2kAUBuBBVhVEwaWuta5t34EkEMK+iIgsKrjW//9LekOkgZAZtj7HDzkceZnJvblzgE2xEf+1txMMbGEz4A3u7P2Kb7DFrRzsBTEhuHewskhaNH7kh4D/KB6dM24t5oWUN7Y2z14jAUwViMy8830PZuLZnynu9w5mtvN7et63Lcxh69u0u7eOOa1L7+RGCHMLSVp91YsFeFdFeRceLMRzIVhfAAsKuK7x0oOFeS5d6hvCEkKTtf6OpXx35v3Akn44CuKHREZT8olEXtEyEPKPF8YHsYdb/s/tA0R8Yw8whNQ2H9NWITDyWK95xLs1uIMh2rfHHrkRiKQTfEIiDXeRYd61cGKVk9xFsiyYZdfMEoNI2xGllcsN8z7Klxj1COs7Hlf66ACdV7p6EdxF6yw8gMhXv9z3rDvZQF3T6nii7oG7A2baFVaYssyFNdFscdLHB+cf+KRLQaV3Bz0jfEg0zov0l6LLXI9StGyH805WMy8Fj4vZOfsQqVHT8fs+TIUWRVd0TdMrRQqswZ15sIqPpTz1HM/C0kzwfBOfaTTNwLzoyKJA8TmSoECjYN8Aqu7r64vV3KLzhQY1ZIH5BoZS99wmCsQlNY1sy72Pp6pSRlmpPvU73JaHsHEikBWlU0qUqjXUqqXE7Wib1yAQkdQEGgU2Cki94jWFQqPJbRqEVfEBksa2amIpcFtGPGaPAdmjl4VtZHBD5JgFIEYtct90W+GL+Mxn0tOpTYtJ4Yt9D9sQ8jPIlJPmbHAOMxqwYnag8Ai4z+Zg6thHgCxwa0pikiKMRlrV+9Wv9UnztpgHcmXHMfBYhoyHBTFOftAnGjlIBdkJpPQ7JTl24il3OiROWBgyqSc+4SkFsTCLSddHeS6JkjXG2DYk7swq1At0VaSrAvR0/ZEu7iAUZ9eQUCjPqkLDzNHfishRogKhayYpc6pCbV23rtXkcLDWqdUlRWZszzXrj1YzWs+Dfdodfl9MWzOiXdP+uJZmjwLjk2lvSjXfreiDgYUhtVFs9QHrRb3SLSpvk5lxCjx0DDD1JkE7VTF87zj7RZWa8kZ1DK9DCnR0Yuad5rHCi/YKx9kr5EqGv2ccXWg6x6gS/X9F79KJVx3cw3qlrOasSudyarlSNw/mVpXq09UrNNww6pwNhJyByayqp7P0zIkklWxaV7NJR2CIWc7GtmzF0DtyUNN32Zvn3mPeeKeX3o38Y+/5JnuXVpGjzxskj235jFkOvY6icIuh0Lvrn33astk8Bdpy/7NOn6EYX7NnvCjeQ8HXqNRbr8qnqvbeUqIvU9GQW2MnxWFJt8YORdmQYEKkMg/dm2elVTKMJIUYRqmlPN90HzLu82ubjVjH0tbZqCsvluS9YmO2N7GUzW3mEMFSIuz/fqX/ziYd7mBhvkPmYi2EBYUEvyVe+RZc35Xwp7RdLGB3hQlFw5hbOCr/+dCPufi/sSlWg5hDcJVNtXK6OfPjcTrb77qrJ5jJySqb1bZvhmbZZvM4P9qUbvbonM1rI/YTAj9jG2whG/vhYzgch/cpbQlrF2en67s7Pt/uUfj07GKNTfEXO+lnTVq3BIAAAAAASUVORK5CYII=) no-repeat\n}\n\n.jinri {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAwFBMVEUAAAD/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/////++7/89D/3nn/0ED/zzn//vr/0kX/11n/zjX//fT/55v/3HH/993/9NL/6qj/6qr/5JH/4on/8L//6aL/00v/22v/2GD/+eT/8cf/7bP/+ur/4IL/33plJB4nAAAAIXRSTlMAC99HFPSbWuzbT/Ei49bHvbh2BwJsHumU0KdwkHgpqNJkyWttAAAC1klEQVRYw8WZa1PqMBCGQ0uRm4AgF+/nTbRAWxBERFT0//+r0zDAOdBs0kJmfL4wA8zbze5mN9kyA3m33WvUuh68onPV6LXdPDueXPn2Cgmubss5dgSX7rUHAu/avcxq3I0DLc5NLotcswgjxWZqyTMHqXDOWBo6F0jNRSeFeRVkoGIyslVARgotbRrXkZm6JtWrJRxBqcoI7s9xFOf3hH2UnllRaWO+hKMpKfzYquME6slYF3AShUQ+40QOMrxTwYlU9nehaf8+8kfjvs60YM55lkXnHBuCzr/62IQNQTR3BhaBU30oKW5NbCMr769Q0d70N6UH3z6HoHji/E3pxUsmcaHglfPnjWJ/PJ2IwUBMpuP+Vo9/QoXLJNfKRfFY0QfgjwTfIUbyK7F+mIqHdUg8alk8iD8E30M8ATNKD54MS5lylJghfOEJXkIEPgjK+jITzrlkMP9eLobBz1fEJfNQX3RKIJlyydcCG/zRYG0jSEqM5aHJjphojP8IPuR3TyDJMxcUvpB6AfYYSkXhg8Jld6AY8ZgxDgikI0eguKNj0hfSf8qU56JPR6UBgrGM70LxoNXacIIGq+lCPKdcMQVBjXXpisW5sqgs4x8mIOiyilLpEZAuXCqdK524/dshHkMCLgFkDi+gIoqdu/1bAuaFhIV6QcpCMLL8yyUHyiUP5JIJPOaAYBILfkNBoA/KH13afEHBTJs2+sSOfCQIn7WJrd16yl70o996huIwSGTicKUvDqbytVoc2D0xlC9jgf0I9uybmAqstgWsW1Q02zksfBWmFpCqSYm3dx/oL2cf5iaVuo1GUdo2ar/RsweLRxHrhyXrxznLB84b60di24d269cK+xcf+1ezHdXTL49V29db2xdw6yMC20MM22MW64Mggk4NR1Dr2B+m0bR6yEivxfSUsw0ky5ZHplXLQ13bY2fLg3HLo/vff7lw+PoDXreW5vXHX8MzjyYiwaJpAAAAAElFTkSuQmCC) no-repeat\n}\n\n.gengduo {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAqFBMVEUAAAAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPD///+67vry/P47zfJe1/T0/f7A7/tI0fJH0PIwy/Hh+P3P8/xF0PInyPCp6fmP4/fe9/3J8fuw6/qo6flJ0fJpqpjBAAAAInRSTlMAC93jR5ta9G4fCHfsFPHWvbioAunRlBZNyMaQUCkk+VF1P5t+xgAAAptJREFUWMPFmWtzqkAMhuOCgqCieMG29nIiFuut2tv5///sDOxYWhI0wM6c50Or74zvBDabsAGu0Lfd2TCYOPjYU9PhzLX7UJ/W/G6KhOndvAU1GNuhgyU4oT2uGpyr8CLKrRKm96eHV+n5HgjpWCjC6oCE7gjFjLqC8AZYgcG1IL02VqR98U5Gt1iZ2+jC7VNYA1V6I+8trIV1DywPFtbEemDLgMLaqD6zvjfYgBu61m1sRJvkMzakU0iYATZk8Dt5RtiYEblggxfdstAAVl5yfSzyGq+W36zi17OefO2Xy/1Xghz+d4CkPm+1XW65zeTNx1n42CCldw7RxSLxskCchbfOhTUXpKv9xnTPrYqG6zS+X+qKiVHpXmgjIf3FyzNmPL+k3xCPhyzUZLdLMuVwRIINKSFvmPppR22YpP/etPSWfk6QEGZL4vCGxW+nNOqfN/mEBCddlgXKDPd5UDrcPVIWuswIDPXf3VnaaY0tOkpouJYYKoAIhYbvkkvGCGyp4afO73xRPpHBZvaxPG0YfLImksSO88SmqzIkmnDr/UWOIQRUlBcHSgATpOhgaCXYHM7CQQuUCfDdaRv/jCbeouaYnPbL9fspOWIJDqBh4NG0YQ8ptKewGofDbWW+p1CNX5QpFbm04TVKIE1sXqMMpVuP1yhtaXHgNYovLV+8RplDZNYwAlAmDRVpUg0N26SNNjRciBs9q/GNHkJzaRNCim0usW3yONds61ljyHBNFQe39JGY9hROK30kJvuZ9hRWK+IbP1aYPviYPpoZPzyaPt6aPoAbHxGYH2KYH7OYHwRRugHWIOhCKf06w7Q+XMCbYUVmHlzmqdpA8sn0yNT0UFeI5zcdOzcfjDcf3f//lwvF1x/oTALJ649/ZM+dgjoXHXsAAAAASUVORK5CYII=) no-repeat\n}\n\n.liren {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAA+VBMVEUAAAD/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D//////f3/8/b/N2b/Omn/1uD/+vv/+Pr/8PT/f53/bI//SnX/9fj/w9H/usv/cZL/t8j/mLH/g6H/Z4v/Yof/YIX/5ev/0Nv/wM//la7/T3j/MWL/4un/nbT/ssT/kav/RHD/QG3/2uP/zNj/x9T/o7n/i6f/WoH/6/D/rcD/NGT/eZj/PGr/U3v/3OWygcT5AAAAI3RSTlMAC+FHIFr17NtuFgjynda9qJYCuHbp5NGRyMZ4UE0pFFG3d2CpBfgAAASWSURBVFjDxVmHctpAEBXFNNsUB8dO7NhJVoUi0atppsSmGeP8/8fkigBZuhVtmLwZQNzNPfZud9/eHdIWPPrCiVj0+gICwdBNLBH2PUqHw/Pj9gYcuLn94TmE7coXDwCCQNx3ta9xYS+4whvex8zzZBC2Ipg835XvzAs7wXu2E53/F+yML/4dzLuAPXCxzcjzS9gTl64rGfkOe+N7xGX5QnAAQuhCPnyFg/D1AbGP8B3IKLQxEoKDEYoI/PsNjsA3p68v4ShcOuIZjsSZzSF75UdqoKoDzZYznx3zBfZBSSao2PN65wn/MQZpPZPR0wNjBL3OPNtSZIpWdt7piSftcdGrZpsN51Dab/yhVOGfVauabSQ3idLli7IQNYN/qmBBcm0gqs/vqoCsUSKvBllE8sp+0vCViWGMr8MZnvv10WIxqvef2dcxTJVuV5kCmfYrWBE26xuWc0M2/rW5aanrtGUI9eWyDjW2mJp1FXkt9GHzpQOyNWvTQKbI1Bl5hn0ZWPt9jDCO+IOun94EKwrEJKPRTbHo7jZqJZtb4swlSD0vUvtmn35iTAgrtcn7itCwEwaoW+6R+JMJDGvLx1zW8Slz3BPChJiwLdt8WGdLwIJwNF127U7hSBDCkDjfaH5YFrA35AmTJRwpVelW7WHDESJCDULQTHixLN8rTbwCD+wKffHAzoANESxonqyJqg0plfKeW6f1WBWkHg+cOyFfjw7N8eeFQdllnXyt0WYrqmDDHSL9HzLBiD6NqnMuVnkW7BtGhcmXsxTEhIRlOmShNTtpzqBOzaG5tVy0QISYFMXT+O/KHLX/Z+OetNnYARGi0rWw/c0iqq+G9ml5p9zINxDhWrpA8o5Cf2n3y0tH54x1FsX7OwmE4PPKiTtzrDMt7pQCSBhSDN109wkhFMu/unZkt10otPNgfXrhnkKm7HUhVIhOMdl/Btg8jUzXI065EbbLHBPinrKmlccAm6eK2YmETQwhRK3oZd0IY9IlOuUClT5nV9XsUpFd2B1KaNBIdHZRMgMlvJN8aNjkJ+Rtau/pk8Z+Hg0bnxRBA3sGLaKgKaeSl2CGBnYEKQFFlicp3SEqaSbkOSz1QrRIYeJg8IE1W5JkSWwbmDgksDI6pCvFiZWuRRYU/gN9LC/vsUJfphWSVhOSHvPlegF1Vuf4FrYsOup7sK3Ih1n0UtTduimvI53mXsrM5g9wIs43S0g6KBosxnw/xwp0g0vQeAGaQpayJwwaiiuRPrRondeKK9UelMuVVUFoa02kpHiv8A0nDeoqk9lMVVlXg2qGSWuV6YYTYXRLzAOGEWVzUF5V9TLksoxYrOZBj8umPWWa9TSj3u2/ZArpKvXN7EleSaUDSddjhcqmO9Hs7dokgwib1+N68GkTK4p58VFDESbemfvRrJnupNCzXifddF65IIfHQ3HhP+3x9vgD+ImvCI6/xDj1NQvHg/cwPu8DelUVPYQv6pdQPB5ymfboet13uy/f7baL05/BfeiCP6Wt8O9x5fLFf8JL3eOvnX+fn/Ji/Pir+///54KJCP/7I0DMuo7Svz8ikjv+ASJHzuLaOR8DAAAAAElFTkSuQmCC) no-repeat\n}\n\n.yanchu {\n  background: url(http://newebapp0.nuomi.bdimg.com/static/img/29dc256d21296a9476b03a5183eccdff.png) no-repeat\n}\n\n.chuancai {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAqFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7/////7+///f3+jIz+o6P+jY3/8PD/9fX9YWH+ysr+lJT9fHz9a2v/7u7/4+P/4OD+rq79ZmbcTD/zAAAAJXRSTlMAC+sU9fF3SOHf2x/Wx72oWQcCuJxs5NGUXFBwmJBNRSkknR23l0YTtAAAAkhJREFUWMPFmWmPokAQhltuEEVQR8U5HGdf8Z5x9vr//2yRZLejDAUFlezzyZj0k6aP6q5qVYP5Mp0PQ8OGZfiz4Xz6Yqr29J6fZigxe3rutbElbmShAityE27nlj5I/GWPo3MM1GI4jZUjD43wRo10/W9ozLhf71vYYGAvFE28BpN1TC7jAdgMTGL4ArQgqBzI1QNa8bD62veqfVzj65fjF6A1gVn2xQN0YFCe6wk6MSmtZ3RkcbdgbHTEvl08Y3RmfBNfwGSXZTvcMdK+ngcm2WaTlaKZjo9OTUfKbHJwj/OvgwbdES2nhcbfLk6RQ3REy2khpqog8euE+jct9JNC6EJKCLcQRnLCqJgSS05oXaclhZwQaS58lBQ+5sJAUhgoZUJSCFO5skJXObJCR01khRM1lBUOVSgrDJUhKzSULSu0FWSFUJa00JD+ZJ/wnfNmW+6kzGSFIbmwP/NmJ+bCJrfeJW/2g7n1yOCwz5u9M4MDGb7e82Z7bvgyiSHc5s0uzABLHQG/iiFkCQPqkPo86S/mHFIpNYKn3zxhShz0+43uIOOgr7yKfFxn5OeZJ4yIy9LVd7qAJ3Qrr3O77LqND+AJ/aTywln4Pu7/OtYIl9VX4qzkw+H4/VB3JS5f2nXr7R5laKFDphXnurTiSKQV/MRHf79mJJ2aiSeP0umtcAK+Fi8RyBcx5MssZVYeWuGtVAVvIVoQvokX0wjiOZjMY0WT8gqSqaqlP2bs375wUVe67CxcGBcu3f//x4Xb5w8LsIywyfPHH/8s05dRRCWCAAAAAElFTkSuQmCC) no-repeat\n}\n\n.meishi-1 {\n  background: url(http://newebapp0.nuomi.bdimg.com/static/img/08190c94440e7f89f64431b0b190e242.png) no-repeat\n}\n\n.dianying-1 {\n  background: url(http://newebapp0.nuomi.bdimg.com/static/img/119f0b497f0e056cb9d528a36752eb8e.png) no-repeat\n}\n\n.jiudian-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAflBMVEUAAABMpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP7E/8ELAAAAKXRSTlMAC+zhF0eUd/T5ShHx3Ncrm27mr2hZHwe4JQXFqI9qXDq9PdHIhlAviStd2KwAAAMVSURBVFjDrJTpcqMwEIRHCjcYQvAZDL7iePv9X3BnlEoVrCUMLN8Pl42h6TnU9ALPL4NLriPEenW7BKXv0XxU0tzwxK1JFM3BP0ZwEB39yebKNxjiOmiTwlN8ySuSNqhjGN5KNUUu1BDy+3VH/7C73nMIOhwtuTHudPMgB49GG5cbGsN2b25eq8Ea1ual+y295JSJu/aTXvDZisvsRMPs3sEEKY0gDcC87wbXuJZqzzSSs9RdewPtWwGoUhpNWgFYORtZfPDfIU0iBPBRkJUDFxBvaCKbmJt0sPaP6438GUc04qo9yxp8sT+fZuCzx6/nWcu+nGgWJ9ke28WQZhI+m9lmQEWzOQJZf3n2PKqUZqN4oPve7AFc6T84s8Cm8wLewKC3klUGK1l1ICsBl6i6TdVpVy+Dk8yumOrOUBX/aKlDBSfO2bWA/rVYst1e/mUYIHLkI7etpB9W8rWLCWPPcjpNmJMdsUUGX8w+CXrW8+4WNI3zf7eyoR7uxwYEqQGORjkCiiUEH0AklX4Duf0xML3PYUHKge+fmPmzjOBdQsfMOFlG8AqszOBitYzgLpbl8DluiRYYClNLsSEQLCUYAKHMZD1N0J07a5nKhW3OELTmTgJcKJe1njQUd+4UstIa8GYKRpajriWq1DRBd+4oeYlcnybozh0j9rc5M2phEISiMCQJayxBYpEPIxgE+/9/cPn00YOZHhnzcasPzeu99xxv/F4UNklgx5IVIEs2bIoCZFPehI0AJGwI7PymZIF9DGyOngLk6JEcJCDJgfQlAUlfJFh9U0JMsJQABUgJoEhJQIoUZVQCUkYp9DrQxUJPK6IAaUVolnQgzVLMDy8BSMdp6OwegX8G/7k4/MBbgS5zn+zhPMPLE3lr4sPRtAtAmnZkhbJkZAXCZ5WFT3tp1l48tpe37QU4Y25kEbQ3MRiLr7VZfELzOlNnBBmXtKrGGqtqfJ48UGOmnU5gtqV2n50zj21lhuT2e8sUU9euyW9nMXWb2s6VxvjUR2M83BfXTyljXLfu/+Fy4Xj9sU+rG69cf3wBGsLmw/gzw2EAAAAASUVORK5CYII=) no-repeat\n}\n\n.yule-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAh1BMVEUAAAD/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzP/qzMQqyNRAAAALHRSTlMACwf123bgbRbqSCvFlGiq79egm1kRvk75OlHtPuW4j3FSRh7RsIZdIVskib5ZomEAAANbSURBVFjDpNLJjoJAFEbhWwwFFIPYQiyjgBHnnPd/vo6ubJWxv/XN3fxHBoSHIK2XkYvdesc6DQ6hzKfWzZEPx2atZA6zcOngLoxMpPaaJ5ukmYlDJaLC2GRpYnnSezXlnR/xsDzvHHnj7M5LHiJ/9MtCA2ybWDrEzRZAFzJGWwPoTEkPlWmAupVBlxyIAkcGOEEE5JehsxVAWsoIZQrw4/RmnAB6IyNtNJD0pH71gFMpo5UnwLt2jlcBvkziA1VHDvcKbCETFRaqu3wReuAamezgghd+2TcBa2QGYyH53HoF3GSWG7D66Ll/j+Fl3gpvczjJbAvIW3lVgy5lNuVB/Wd7YCf/sAFeilO/rNRRa4MwFIbhL8YaTavFwmRrB2U3u9n7/3/f0h4GJXG50efKF0HUc0gHozYZoXOvP3UoPjgMQ6hE5m14GapLMSlzJYmVyExwczIBukaZE8lSiUzTQZCxy4wn8ZXIBej0FO1ltz7Q3SD+beVd2vLJ5g5nJc7DUdoyFHME7+z+rGTL2pgZrnbM/GgX33botBC1i09opR7enUqBJFSi1HjoFeGkFS1JW4vSCaIOMGonIxweM5m0k+kxlWV1Js3MU9tUohBh0fzfWpuvapSrPWuAXoUzmHMlCj0M8uBWF8D4phI5B17A6opykS7ARyUKgH6bM5vVhmEgCKuOY1ocG7tNG9ISSNwefND7P1/NlrIQvjGxFEN0EYOF0c9qZnc0yT4L7favO2vAP/yCJdsEDiEcLCWQgJdc0aHsop19bcQnAR/Kjw2Ae/dsA2KpAYYNB3YXbSOepq7TAAObr16c2n+vAV49I4fEHyI5MH1FX1jUAOmLCbbzre80QIJlCSg9OEoNUAJYpHYevh8aoEixjL76BXvTAGWUhX7rFHDWgISeUxHjlFMRTsYpEkAq4skS8GHbOgUigGTJ07l8xm5jrHTCeXHlkIASTp9se/W5dG3TgFNiTtr30dpeA0jaVykrfD7H7MJnzdIsjPnF47hueZtfgLNFMISENphFIEyMIdXEWMFmgVZXaUZQVUunr0+xqvrvmQEpZtrsBIpmqd3XFGG+fS4zJC93tkzHJaZuc5R716Cpm287ZxnjxftoxvgGjfF86/4RHheunj/i5qW/5fnjF09o4a97bDlMAAAAAElFTkSuQmCC) no-repeat\n}\n\n.huoguo-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAhFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7gXFZBAAAAK3RSTlMAC+zz4UcC+ZRKaQfcmxbmPNenW8aGbiPRdVEsELC8jxPCeFgfuCiBYco2043WpgAAA/JJREFUWMOczsmugkAURdFLNfQCCqIEFSLgZP///70nI6MizRreVOpsmdHa0r/tlcZT8fnml7aV7ZygOfPh3ASObODag2aCPlh3bVxpGHmFHwZ14vyfkjoI/cJjZMo1mU6leNofs0jeRNlxz5OqFn/ZjXWqqWVC3aixspMl+gHAhD/3ndAADL3MyjWgwkhmRKECdD73bAfgX2SBiw+w+zmdFIDJZKHMAEUik04xcG1lsfYKxCeZ8EiBypUV3ApIHxN9BrxcVso9MF8bkxi0ldWshjiRD1EBnpUNrAdFJO92QC6b5MDu2/EuG90/Y3oNV1e2OoDu5dUAppXNnBgGedEBmUwKUoA0kEkZ0L0M/PFVdjsKAjEULsO/AVkIuqKi0Qs1+d7//XbTgBczTL+rCYWmHXpOM6gkTofSSZwKskRWJnCGH7xYeBlO4WD6FuhgJ3EmFiaJswO3lniEzDKhB9A0wMMyvgyOohSNHqPsAaoKwHAqLavQU67FxvkAnM8AH2t0HOTrVN7FYAbK67UEZjG4w6CZU7hIFI0zioxAanVyWeJn6MVAe32LvLVzMejReAsHMWhBZfSDmorBAY03UFsmr9uy+D/ofi3E1F+jQ1Em5lvrz5i1VGsUS9hLDmPgjT471QIeQWcj1PIMfaHD51eXGD5d6BBPaQMdJ2Xkw85OqD20coPaTvg1wtrLGFx+DTfpw7EeWI3ANgyGcLR7caHk8+XGDerNV/bgJIXEH70TQJPYOwROhf8YUgG21cZgbbltHQLyV5zV8CYIQ8FQ+SgiMrI0dUyNuMSo/f//b3sryvDa10Ca7BITxVAt7bt3dy1+XoCjsQXsAZU1PX/ngMIYnJtewYgw3krTe5xy6uThL2NnnTieH8137JqwKDs3Gyrzi00J67ux3yg3I7Z2YyNyaSz6Mv9zteyNRW2vwn7rh9JD5MoMEPX1fqqq0/1aP0tFPcbD0iNyYAwGgjETRA4jfSH00ThxHNcX6Ysn2M5lbzuWYKEFgMktJvwCxhZaQLBJJZk6tKIoRHtQWRJuUthGeYTbKDZ6HnyjD0uRy26yIjosRVAsIfONaJOwWMpTRm8q84IzozjT/KnsNpVH6UK1+CZTkcoMSmL6LXMbP95AI6Ik5kU7rch6cpfZMaI9bCsa2gpTrdhwtgKND1qeeqrtmtInqd5frdk+gjWLaR51RHv7QROObcCjRwTxQwyEbpbGLI32MFW6LAhKL96kr50ZVe0PxGhM5ndaEqaxf6CSc+M+GUoaOzEnkBRd7Mh0Tqgr37zPTkKoGyN2PieLgvFerjMKxqu9/szWsodgPFZ0//+HCwO2j+MPsxItHX9sAzd8A4haytxf8D7WAAAAAElFTkSuQmCC) no-repeat\n}\n\n.zizhucan-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAh1BMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl4V0jWiAAAALHRSTlMASAre6/NalGoG1+L6F/e8OcaGbiMOE+aXdiov7dGnnY89rk4fuKl4J7FSZfop/0IAAAOQSURBVFjDzVnXcupADNW627jSMeCYEiCg//++K5nJpGxxu8zkvCRgIeuormVowVLM/CxyXIx39j7zZ2IJw2Gd6j1K2NcnC4ZAVC5q4Fait3EzGxukxToQZWLRV0kpgnWRYgN7ZvVRt3GQEU0PIfxCeJhGyHA2nVV6EyTs6q1OYFvvWGLiQRec3xtKgWXkEDQueT93MM9lOkHYJhcGDoenzUjrDQn+Ajpg4bPsm5FJUrBrcuiInJ1dJHqBOTvmo0ctLI/s7jloUK7o8gZ6YUM/WZUa+4hA7EFPeDE5SWljQnxTMaBEU2Kt8GNYkH1iUNGTjYWcZpwvHgyCx9mj+vIKA3GVjTm7lC8wGBeqmZ9V+E6OHdGLFzbV9W/CBxiB/CdpizLQh1HwKRut7+nuLGAUFs63IrPoQ2AUnx9d9zg3igRk1KeJM4qIsf/ddk0Lvxn7I8VlBk80/5pwxAZHoxCbBQ0E3dw8b1zKgQOlmlGIHSeAUSHW0Kowb1MINeKl0UziWxhPGbZ0S2Z6QoyMVMQ0i5EQZ1NhdE2EeKI/a8SpoTddUvyG9GLocFPE9VOvVuiuOiyddNKHhmtCXDRE5hkqkc01qUhkEk6aQj/yGfba2y7DcLn11jwVDeO9YLJXIq7xCCOu8h9dpeL46Lzuc5N+09Sx/2R3k8qQ/aAxIuBRQNeFzr70AQo8Up2NgizgIJfquYNOrummDqonWslhpouJHF+X9d203Yc1unKsE/oR16ncWzPmmxs6PrPO5KLieqcrcj4j4QEGPFjiLn3NymKFwr10fyWHvVKhI1MWSCjBiBvno1BRtuWgXEi2ghZUJHRRBWUvGWOxx/Mukzi15LRpEltmbEMrbFT9MlOU3rSprFasuVwUpXeVDg0fqjJQF9OH3BwU7StCachoRghGcvtSNFgHO8NRNFiwf/s2xs6IpRGgGlIr7IyVNKRUY1R01jgR0hjVDXozzIOeK62GwZCPIpw4jtWfMWMlVIcljnMgxaR3VAIqWOnAOUihfOBsjsSDKE+EdCR+waH9FY8VTefIRz/4vO7RbPzDYyXN/XGPtxsm/NoH8PErAuv1S4zxaxYZ5WTYImhSajd9PPCOfVdV0dkgMGSZZjQg9Puu+/wQzLjv+iwkd/fXrkzNS10/1/rOVyx1x6+dr1affvS1GPefi/FwOd+KwP9ajC/+7+r+L7xceCL5fP2BrhPx648EzPgHSZHVpvXqyv0AAAAASUVORK5CYII=) no-repeat\n}\n\n.daijinquan-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAkFBMVEUAAAD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyD/pyBrvNNzAAAAL3RSTlMAC8EPy+H7R/LqVSuUdxbGCPaBaTztuh9u3NedBadZMOVcT5AlEtGuhrKYiUE4ZJ5QA6sAAARQSURBVFjDzZkJc6owEICJFhCDHHJqUazi1Wr5///u7QZ8UYJJpPM6j5lOlYSPzZ7Jaiguz87ddOlMaitZHFI3tz1j+EW2u0MtXIfdlgzC2atJ/eSarOyXhcvN5tnQdyObegRuedSOXD9s7pv5K2IGM4c9tTzFgTAWn5Zs0JkFurw1ky7Zlc8mlLuESbnWwmUpmxwRqUoi9tI0U/M+0BROVKjmFZGD5vlQae8dX+yOdZYydnHuu1STno+rjXWVHeO6fU+ivgVMOO713WF/hAcWTxVJNzA8e81hZ/DIhvaPVcCz1q+GwNoCYtWrP1hvaA8I0RBW3aPHwgf57EFBDzL6oq3RXz6UzpdlpMd10XvEm2p7BG4IsvQQZ6IwGcTHWcEjoxqvUc/QCmLm0XlS8Oe9Fg8XJ46BQdMH28PEWI9Xf/XGDAys7yabEL86vOQNEkdlUFGPLiyR3CvVGWvw3rzAxMjosczYuTMqgS+RDg9eGjeFJhWmRCD/7TU5iFto8eCiqdWryAJkz9vPC/ioxZvOWYweOi7LxWpDB4QNdHheWM/bIHBK40I6bg91xr555U5vvVOLEQmmuVCwzK6uV+wBUDPV4XHipbHMsVMLIVzwHVuov3o8TqTnsCf2oV5v4d8n2EyTx4nG/iBa8lTXn42NbTVPIH6Dg1+LLXmMvwU4AeRVos/jlnFw7MEyAejBQ6fx1bysFIiXiZB8fFgsxrGr4pULfKkdPxKrM45/PmaIGab+SCXfHtQytsNJh7jtAiMUOAUxlfp7A98PuXsB0aLGmG1vp/wRVN8InYdKeddzTk/NJjPjepwa4zch7VB8pwOWkfFYBQpbXslt2vBG5KG0Q5AbYCsiXS9+bHnxJCUSnkEg+Ay4LddfFR2ZgyQlJteVhGcwmMWBIo9vNpAIPIfKeAyYwJLVPHML82Q8vmQTjCLlEYfp7xvvrkWeYBRwJtqf728eFk/QHq0eZTzmNoJjr1oetay/xIbnJPBHJDzm2N3Qq5iH4HrntcWj4Ij6KxNrKuOx0Osmh2lzlqs6RJKiPUo5jyWHbvoifs2Qly6xktuDpy+WYEWiI6xazSswwYolgEyLK9TJb4MT1TxeAvqLVI7a5UQZTyxSYhltM8yRcqKax8uoWOiZlyCSW0aHR7HQP9mKEJ+lwA3hRAWPb0X6N0vkYpQObu0ZMfQkPHGzZJj9dWp+O7vO5f7Mw8TkNl0U4owvQFhnVK8Or7jbZZKkV8S0iZlYyeNbYummHS2zwUwRKHh80646VpDSoDhPyePHCvXBBxWpwbtiOtc6mr2rePxopnd4HKl4/PCod7wlIzmPH291D+Ak9XPRSdUHcCP4YYvg3zcxft5mES9qDmsEmfTZaLYc0qpaZpIJQ5ppe3kn5dV2n6tqnG6TVxqSyfT3W6a8qeten+YWlzd1f7vtLDbGR21jvNhX2BgfyRvjw1v3/8OPC52fP+qJs9T5+eMP/iLf4jYTed0AAAAASUVORK5CYII=) no-repeat\n}\n\n.ktv-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAeFBMVEUAAABwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JwZ+JDpLW0AAAAJ3RSTlMACpLh+Q5qBvHsSNzIWtd2F5otsUEo9TsgRr0TxU/niKhu0rihfGHwVIimAAAD6klEQVRYw5yV2ZqCMAyF0wplX1UQxN35+v5vOEldkSXAf8UMcDxJTgow7Csl6/joassLrrVU1R6WIw7yqjtc5UHAEvxzoQcozv5sc5eVNliNVH6eoieR5r6SjaUNq4uYI5d4mohPpQM/OOUp1oSXTJaMjDtP5jBALj3jMoIp7G7mYSVGa1DmR2+7CfZccqccYHAUuXQ5kyLTiLRhArbUyH20krShakuYSEl1N+lI+wJ8YD1jF/ZrfCEYbOT2iLcTmEWCrxy3A3pYgBXBTCILm9SrmGK9hQ+zqQqsOu2JQYj+/EVLjx7DbswoLxEsIsJXs75//sFCkq6ZnYt5AZ5NFlhWkG2gzRl3ph2eG46Kz9+21k/q9lztAPf6t+CSt+fqN27bZNkuWmACJe+P9D6KbY8SSxTfTfVs4AhJZ70RYrOmq7BdtPe1ZAL/UHyA9ScIf3RdtW4rNPWyeEG7DnBk+isI6070HGzbBR4EdMlCJ9HmPR86ZeDX4goMvjHLQp87+90y+iBCC2qc/0qlBB73W1B0BWnQZ3Ov0DoHnpgpGXKtC6r0oHUME7j/DuXe85OHx/RO3BeOSvVHY0OcHpMPqJfjyNDmgk2Upg0pdpeZscK3bWb1CAeDkFIlIXMmWJoUO4dDl4aKTbjQGGNPj+FLL9z2tob2OWP2mL5db0Wo8IAt4qwa7E0G9fhMHLz/UWTA9tUUnpxJHxbSTFLMKdJHnMz454dyak9RpMQcaUWHHzto4v5Q5hUFTh/wseESCpNlh1bDIJljk8SsYcHdf3NWu5MwDEX7ATZkobqJ0GXZ0MXw/o+o7VEMaQ/XVSXym9z09p7e8zGbTqWVayHgAQeh4Ia2rBPq5kHpR2AZYJFatnQoqYwNagCcG2BZHMrMYHNMp+pU8KB26AARNhTYp2SZDqqbUr0W45CBzZ7eLjmmEQshJzH+9MhyeErO5hT1aWy80ANbDuX1tfbpwakXjKN4yWR9lRcs3ArmQn0DWbCggAJlPutXPDw2DkIBJZLSsdA2Li7BZuQkRWi0OW/6USxzSaOE6Lcf9awwjpzomRTZYFsJ48ilCBVLEX7TUaBXJpbifrjLC8qSlsm5CN/GZfe7W1bPQWUySWy+Y1tyScxFe/cljGjrRLQTW2HOwsjTUXNbAePDCJ5UJMaHWjNnPgu2InpgzUTz2Bm/2s8kDhLMI5q+/5G9/WsDjoigr6nXr6IaICFGXxtikNimMmbhwU1dEGSppgi+Jqry4cofasK0qwdwZmncZyRSHJcFkuMNIlMe6h7o3ZFQ90axMy48C8bdEC6D8fXvRvf/4eMCfg/4/LF/P9bk4+cPiQ/eAK3ZpsNxuICbAAAAAElFTkSuQmCC) no-repeat\n}\n\n.xiaochi-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAhFBMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl7gXFZBAAAAK3RSTlMA3QYK4pVa+mrqxvdJ8z0Q13eeDJBHH+66FTYq5sxTLiVuF6iGidGwY0ysyOGF7QAAA8FJREFUWMPNWeuWojAMbsv9og6KooDg3dG+//ttUnd2nTZFZDlz9vtloQ25J43sBTbL0Ft/RBMZFPyy9sLlhg2Hc8sv0sAlvzmDyC2PE2nB5Lh8l9piz6VCEnthWh0W8OhQpaEXJ1KB7xfvyJpFEvFxmgr9nZiePiQiynpL7rt4oMhb24Y2L3CH6/cit1orkUKnU4ZQqWS96sHeBMUJxat9IozQPK+YdOYS4M36iDLzcO+8U5JNjKqZsp6YorLjTYf6UDHXN2Jhc0V1WxVZ1fA6Y28hgyN1Rb/bgQCBz96EH4CSdiT7IG+SDgjRBKQm1CRi4C8dFPTAY2y6GfqLzwbBR++hHmZsIDKTmdUE/IUNxhFi5rvzrMFUs+EEFxziWhd4yv4B0+9COy7EL7nvHNeBfEJQx2fyyx6I6DwrNSIE/uSSBP8kMkX0ZNQFLEIzsLfSiq0ZviEw9VUV9vBRYUgbyQ5EhtwCxNmzB/An4f6IwrutxJM1q5tXPJS5JFjkv8/COUdPFKqEJqcZoa1TokqpnhAcECn98spc51/pj1eWNMeVHnUt5VIeFWVgptXtq4raypqIVVnUbd0C2yhpA/VXP8FR3pJZUaLUXH8K9bp5uOSZ8Ht5Yh044Y6p+dB70NXT4Bnt2xnas0JSfKCsG3AB3cax1EKRDDUZ66YERWxYar5gheyFgpmMpCwjmJE9QbCdYeoPxyIYYilYmzZhad2HnGuegzSLRq7YSKjQzBCBh7EIHqSMGATewtqxxUkRfwpz0c5r6c4NyRYQfGgA2/d+Z9j4oC/2mNuovgWJwTvTm7alKLd/87NjWQQpQTAyRC6DPwf2sym9iFv1RU6IzE2j+IlEJI190WGUC+E2u7kr6/nu1YJ2G+XYIwEdmwi94cDQU8lhWOjVKZUcyPRl0qMpUumLTLCyJ8gEi36TjkMQSwBdpLDKixcdIbo6UaToMor317KbYIkJkSijdKG/S7OZMNsEeScKPd2K+BhebRe9FmPQp1sRdJzI+W4uFwVqO+ipDcLSLDFuBEuj0kteOuQVuMxV1mmMMHHtDedZvsSZaDjtLbHwXtHzBNkS25v2hneR4w3VtHdfK4R/5wFFLOB3XxBu5DojXnxK9KKxr2ajXx7Hvt6OfQGnRwTLwSMCxzLEWI41xBh/zIKo3GGDILey3pAwVV/f8MfZFceWq44NQ4ZpGgNUlsn7jftyLevQaIp3BpJF8zMjU3qo65XW3OJpQ90fHTvTg3GHidmu1Qbjo47u/4c/F7S/P+Qk+ujz98cvn7PziGfLoBgAAAAASUVORK5CYII=) no-repeat\n}\n\n.dangao-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAe1BMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl4hhz2jAAAAKHRSTlMASOcK3mrs4pR3+Qb08dfGLBUMmxgRJbhuWR+oj086va2HPdGwXFuEnnGndgAAAy9JREFUWMOs1OmWojAQBeAKmxD2RcAWd+2+7/+Ek8QzPW5UhPH7pR4tU7cqkEUp/HCXOQlk4J12oS9Kms/dDCc8OQ0bl+YQ6wQjkrWgiaregyFz1WbRVOqjplDt5xKG11dTeo0CaNnhGNOD+HjIoAXR252vFuYHQ0EjiiGAsljRO74605Lvsj34JpLui6wuqT6dH5NF7OtTphdbejWUcElvWIZQaraTMtfRbOlNWx12XjLx6WDOE+5CedZxjwZZOAAimiQC4IysQ6sakCuaaCWBRfvy+B6QCJpMJID3IqY4B6SgGYQE8uc10/vyTbN86+152md+HvbJXB4WJgXONNsaSO+XpwO8Jc1WeUB3N3sAR/oPWwA3G+cugNASkyXgEFi4t6EGfMMC4FdqGdwMtVJvfGKoFswBOD4QVHTVA15MnB5KT5zY+/cN85KVQ8nJdkTvN5/AJZaEIonlBoD4u5UD8RwoDvEGYG0qJ0Bhv1vWWKgAEt3pBsjIJtTX3yYDNtfHzIGsfn7I6gDU17qCPuJoei0BOT7jdp/iTrpvx1dRAiUJbsHaFE/SlltXQRH3XNjjhT03uohq7h6neCHhLktNO24mULqGfjUdFO6ZtNNDLtiCDd1o2IKFHrMDNGxByycPf+fomKpPFax0wADoUwVNMfnpgn+aM5sVhGEgCGv9aUEtXvQgtBS89P2fULqXD1wma9ulmFtoMyTZv9nJ2Y4cBUkYLhz5iFF0kMThglHewm2GsTgG5TbSsW9lwKtybEIvCJIgXAg9Sw5xkAThQnKQ6YtF4ptKX5Zg9aJ9VXHFNtOAlmCtzO81YEX5ZAagLwEUKQ3I1hQgRYoyKo9cg2QzCWhlVBR6t8gA/Tdf6KEiRUDbmgaEikCWVrsNZMnsfFoLCJ3zhNNsOoYDB4VwKkoMXBlSUGJI+zJASLtvK7BpDGd2920FjU+f0PjktmbpzWN2e5vdgGdLBId8ESNfZvHjXi8Tguq7lKraSaqa4Y+PSapqX4UflohpxQ1cmrlyXxMpjd08QbLbXjJF1G16eXcNou62srMWxg+7y+PphPFM6f4fHhe+nj/Ga9X+8vzxAdMMudeYhpgDAAAAAElFTkSuQmCC) no-repeat\n}\n\n.shenghuo-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAe1BMVEUAAABMpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP5MpP6vZVBxAAAAKHRSTlMA+U/r4fCVakcJOfQMdwYffxHc1xjHuiwVSeZZJracwK+oj1xwhz3RT8F4EwAAA05JREFUWMPNmem2ojAMgAtIC7I4CogojLv2/Z9wEtRT7wUSFj1n8kel7WfSpmkaBCMbT8l14gTaclb3tVTeRowX3z7ddUPuJ9sfhfOOge6Q4OgNpYWX2WOslUlV5GkIj9K8UDKzHs9nl3CIrZGjUZLrLf7dFt+uSd3oRL0t383qAae8q0N+cmotd71wi6rurHzSBlX/abXgeWcXtVMx1y9WqKV75mbvrwaRS9FDlhL7/iUt2WRo7Vz0lDnanW2I6VtBh4NRj1fyAANWnRNZbqE5EoMkgiHbsoMHBlg7MVB2FkxSK3ED9gbeiC0agNUt8xhnoB/BI4igY9Z0M/SXsxglZ/SetoeRGClRU5mFC/4iRssR9sxP56lgqZbjgSEsaPVj7UHnm5ggcwC8eZwPHijJCLQO1nRgkWCi/z6pDmWwvQYF9n/ITei8LWoIPxTFe4Z9kqhAqdepcAF1Y5rHE2OYtsvz+wq+cjzL4ogK1HpuHVDWp3mWLeYuQ/Rh4ryXV55YnuCJJ62PNRmiRc7zeGIO0SrEMXD+srxeRDiv7YdLXjleP+IVt0e9xgXD60m8QaSFQA1jQprXlxjDgA06TUbz+hMzNDYCwxkeTzQRIsLQryieiTY8UeFRsAc1Wf3qaMPrWGCvBNyatTfAn7zVObo07MCU5BkNWWIKUUFAW8Nr9obXnENDjBpHC2w+AQ2Nf9rqh4gOeTZv2xqE9Wmg02Jy0Q9YtJo8w0VpEQ4IH+2Lcke3mQ40boOOTQ8qtvo1aQUN9NC5cOvRQOS9iDQQt14dHGigfhMaiMHBhC8KWKUw4xULxPBlAiwFBB4QCaAJsOYIoIDNL7rzCMBVuU4FmkPKHKNTgeYYDfGgnwg0B71JRSYCTSpikqUmMG0HpthGJEsYH1QrsEqbwKdDaiKdw4Rz1Ug4XU1K0HBCzDKplPhAAw+tKTGVtJekim7ZlrTT14ry4HbiDiV9ragvPvPJF58PX83WH788fvd6O/0C/ukSgf/9IgaWbcaVWajCzbhC0KzsvGcnY0pVyYLoMKaYRioQy6HlPslVGu1hBUn7eyVTvqgr551zJ01R99tlZ74wvpfKw8J4vFzknpJ7ojA+qXT/P7xc+PX6QwdO0uf1xz8e4bw8LGE6VAAAAABJRU5ErkJggg==) no-repeat\n}\n\n.gouwu-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAmVBMVEUAAAD/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2AddHyaAAAAMnRSTlMABfoM9phkLuRvXzjy4Nge66BNJwlCENTCvaeCPhjPemtHFJyQie3oy8Z0spRZVK0ztzs3ccMAAARlSURBVFjDpZiJkqJADIbDLYuKB4eoeOt4rk6//8NtAu7qQALIflVTNdqxTSd//ymEGjbr1TXpf3WVfugtkutqvYH2GKNdrErEu5EBbVhPTSVgTtcfJ+f2VIY+wWM6qYFvpQ4ef/L8lp5rfLLdcqCI/n6uFde0+b6viMOy8Za3TvaBqycFeNcDRXRu0AQ/yYJdo7ok2ZcmPtTyq4uBg5VWF6etqCzdXzVhwVAhViOxbSyKHQZVMemRGuhBQzySwjGVA8YUcI+gMdGUEhhLy84X6s6Fj3B1pb4cIT+ssjmCDxmZ2EM2R7+DTZvDx8y7KDKf6e8C88P9WuyIOS7KvUa96CNoxUhH9UABG9u1gpas8MN2oSFd+pLWbLH8PxuToLUE0JoADWjy4wJjAR/wHzywjG/X2kBF72u8oMYt9qjvlz8tUUlGhVfZlwNGXOyqGFTx8t+NxHC7wtAwNqcjmxXJpBtBzhk7oolntdQblhyHfTk//+1UJWipH1hVKXa0XOhYT008r0L0nWcY3k5XiHhqDTubX7V7RYuDLyqd87Q3KuYgqGj0PesP3u1xxTmU7vwzTF1VVGeM7kI6+I1eARIX3OH6ennFlxcxGP3qd24zMzGGZrr3NkTI8cXgWe4HOEdCMcbEHbS3wlMF5JmVfZuPJw+abmhUbqhhtE+imQiKiXXFoceSdCYknKUkVlvJ2OIlWFJPXDb/gZIZ8BfBxa5QmmteVTKScNdYPhKGw84yhbjlTIIZLcwlafdhQJ1hQL2rGDgOigTMkWIxAKfThq8HXU2OI6XO33yUIJDQBNmrHXDclXi3cCX749iKeexxZStuSEeOuLVvsVKu6BAGjgFAw0ulSvGTdYQrR6kpXxALsukooVvgkOdKKzEdbcQt6pQ+y4bus5R7QvfPZbMnkfLQc0IqVNeiGboVzvUNPLESyrSlSRryEyAUR2YugLXQyBAiXI348bmURrUwTQ092ypm9XauGMFLXDvzZkO3f0dzrcROsBTiJtzKXf72mh1kU8W50Gv2TZn3e1Ta3Jq90mKCWtOAx6fnUNZBD9lHLE44cc2GfVY0278nMEuXbEB1MuQHvEH5AnX/nXTBKERX1ehc7xcvzQ2KyZxUNaeSCAcvnWm9sgWHenWCIePwPe1tppt+ccejLm93LO3nm+/jX1swA+kz7lhB7S0dxu9FpKEbFjR08KE1/qGo5aiHjdOgJdoJOxIV7o1O/tcSC/s05zxpD63Y8945bfsIvhLMR0sY32TgrHjClj860qnbnPcYCQN3Qskb8AHGlPKLxAexCzmdA41x6DnmEgBUPsuaq8btMJknXu7nw9MDGvA4NfkBEcaxQoZ+7W0bUlw8hlqCmU4ONXQqizfMgmYBNGH8nZuyvRHUYOd+/j2GpoST3EiTs6cV2uadk9x5JyF8gjd9Gra5GM7sUTgPRzd7NlyYT8+eevApqXsSJ5SbQivSm9VXBfrWjXZrj/G4zbaXZJJcptbs9qi9mH8AaLnhsQ1O++kAAAAASUVORK5CYII=) no-repeat\n}\n\n.lvyou-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAilBMVEUAAAAz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0ZjuwZk0AAAALXRSTlMACwbg+fRaauvXR9x2ED7vGMZKlJAqvZ4jp1EUuLCYbzDlh9E4HsmrYYlmgHwkVXy5AAAEgUlEQVRYw81ZCZOqMAwG5AaVe4EVXcXb5f//vZe0Lq82HIqzb15mHLG0aZJ+ORqVEfp0rThzbKPRl16dxZb7qUwnNUrqhlCdROokdm5hND1kFO7Lwm1mfK0erq0oDVQYCtLIWoc6H59t1FfY+TZb5ewWmvxOW+wc9tL2n2ZpMumWyVffhK9kyaQ0n2J3WLHJljqog8U2XR2eEA83ty1tbJ5m2aiGOTbtAzeO58+oMo9x7sfg1kGI2i6UJ2mBeodB/4TcgwnVC77wWcECL+97nW7hta+8RD4s2aY98gE/3VReJFMHjnmn+KCv4U5wUQO07jCTdgT53ElODzIe6VkjXkxlEpmInq7Bb2Ui+VSYwxLwokymE/jMoxeuAM/zN0KxB34tK9znH/v18VhtghGfeVRaBReKe/Ze3wNtMuxAMaioika1uxXWVpzfaGCZ24KTqfDDemBjFtnJQi0vP1nk5J/LQbUtEOpHxA2IKwIzOHImFzXVub678Wivgdk292cPHkXpnR8tvYx/n8nybhFnd9cB+6gPPiPR7BoNnIhoOO66RdMkYgZquig0mfDnorqkPRyTpikYZ4gWYn4rlh/nffrlhjLLQPs2mEVJyGwlMVDTEvKvaFyebtWKCOndKo8/XXH52ZTtALYv4QuQe6GwOhJ+LKLkbB8jiGr8kg5r1zRrfsYRwUAm67s76Y2OQDwxYe/Dpex/HoAOjEJQtpP44caHrDlHH7UtDEv+pQFqAwRNSLKLLuFGY/NPW2FsZUbmxXs8nxCV9XF/iS7UeGhX72HwxkKRHCF8hLElM6yJxkg3gINYMibUWXDvrONMmMZGtVo2nAqOijBV5gI6aQqKmiZD8BDos2gFo+qNG7PmJ6+hjsS0AqUIaRtPRqJtm7FKxlHXkKFKHFPKuogYWwGrqDTntGKf4VFMDyVndayMjrJFBUOhetIwW2W0ro3rd2IEwPqM677psJWiw4eQ89e9P23k0L5B6GxZxsyYo1CGNlEZKBLAvhF13v/9sWOxhao8o4eCmh2F2C5UGnGLSsVihqCHUlPYIJdEEUX8EUZdwuN9f9PBMQobDmzKUQhlBguBSFfBQUwqhwvApq5HCXO90x6JVFwS1/N7igY5y7h3EK6Gywe/M3xRFPFJNXVgGr5ogKV042ApGzqXBFiSAnp1bgx7STQmKYAmKUrqtxCpl9+SiDRJYRoduy61RC5aJI2SRE+hQMgaSPS0FKHFPFJ2zTUtv2Y0VNNSBIFj9xkmZ0nEWbT6O+x48sFiSZn1O8uJiacKy5iQp8FyDr3f07oFZPLNFVI9phSEbZVJSmK5VNxLt4I2U9OSeLRo15se0juLdnqtmM4wwWvF+MUn2nbz20YKtYP5e1ez9y+PBTh5Tj3Cf+t6+8sX8PdbBL/fxHi/zUIpnU1rBM3S3k4fOn71Ah7nFQaPw8CEKc20QQG0mJXjz7X7WK0Yj3Uay9cakuW/a5nSpm6875uwj0lT99+1nWljPLZcbIxr8/zLteKRxvj01v3/8OeC9PcHFF/OM39//AFOKPF7lpEC0wAAAABJRU5ErkJggg==) no-repeat\n}\n\n.xiyu-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAhFBMVEUAAAAz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0Zgz0ZiZvww5AAAAK3RSTlMA+vQF2cXt4KA9EQonDuhIIMuK0JiSbRZUTRqBOS3lwYZyYqh6QbuwZjNd0MQadwAABW9JREFUWMOdWImSqjAQDIQgpwKCgIDKQ/Dg///vzQRxARNEpmprLRM6c/T0BMkXi3eHqNG2aqvom30THXYxWW92Gu3bD9tHqb0KbleprcTUavcrmltuumcVBmEWsQ3+xsXuHjGl5bYp3V9iver8Ke1i0ukaNS8aX9SviyN/nvgDUS7bkEf8wNNzEZzX8M2lPRtDyQ9tvO94/1T07k6/7aN39FL99y17Bh4cWmSBWSHuNWYjiX0sYE4WWo5U8Geo7uCGyiKLzarQAUe2XGyBdwfykx2Al9tC4h/gqSn50VIVEIU+Hk+AZ5KfzQTE01FQX7/DW4e4/6y1AflLySpLFWAPmdgdynUgK+0AD98nBVHhEHlQAdsqypYFkpRgeOq4MGeQFlvWjFr7Nk3cajZsOY/0BRL4kGiF347MF+rBA9I40B4XGBiI8Wq9nZgujDsANv5J7hWYJA54p7QfpuxEQQOLr++OBC+EucFaCUx1RJkG33sVKCHZVKh5/gQqcJwI80gFe6Eu5evjibNIeOrINmVFSIWI/8SbT7QjOuRTLNDaK2l+l8mIJEGQkD0EJAoHKtu12k1WYhPShY4VpODQD3LFzNfw0RQX+sY5A8c7REKF00tJLB8zmN3gmSxoxR44EAsyJwGtIEJjULie8K6Gs4EGAeW6fxZsx1wkXR9exIAo4O+1QkFl3u1IgQN0K9qfdXoAB9ZiQAUAdXeQgPYeRfeuTsKZBUGAUMOqLQXcRn8TsW8aKSCFEh6RNIxIQ/bLvcIc4jBl/6h6NFnIqFkpMiEk0qJUG2WjnMlZgf9Dmp+FD4TIKoN3jIw2VeSSOCJRTNyweMPJiFtCVdBNUA8ZsXV3IHIDQFOsTeg68KsgEtPGjBoIt2Sy4wpIF2qwTBzUQuSh5M4VQ0gESs1lTCZf2nFwPppEvtBscADj4MtSgd0Uvb8SgR0nhf/JDUeAeulCqAYjQA6IOXTnEFV+3U49misv/+R4Loa8xXaZMWcyBjRHvveILbQX0EY+6JXZ23KBtGmw/+RGD0wdTTx2kNYQdaHB/jvMBCF62TvOXJpC7L9Q7h/gCRBlPoaoCzVsmL2naYnLZRjZQNNEm7n3+ajVVjvTKgzwusUQcezriViaVEBtBaH4aJEk0FTea57aC2sCtZZwtgs2wgk+tTgJzrp2wzgHDFdPO96wrX8OkphMDZE63M3Esytrt5lJyagvvXCj5X1/UTM7seuk3JtOWqk+1ksvVJRe0qaNPvzSA48Nb6LH9JVvY/ySYLL2lOV0BpDm2all5uhFxOgJmMNR8cBvALQzHPI8h2nueFZXacvynDy9I5Vwwma2OcxWDJ7k7yvEdQSoZh7dXaDnZKayy456mToEvP4R+jkcRnUHA0/ExEsPF6Pxta2uIoq+1fzGuBxSj8RwHkeu39Kl/13bKXiV/RXFUPrrOYOnk/oBIbv4CIT8qBM4g+kv7RkUJQNv6XAYeUPa+O0C84e0OUIM/0YacPsgtirHUj+IfRtrBl5KE0HrPTPjxrSNrquYQn2jsZuRPc1P/UoAoJ68rOlHstqO+vRV0YK6MLoWjzKoyESyUFjCtYAhFLxvmSEv28s6vEuLnfFhFUro2tfvSpSIBhbK3/FKvH8K0+/yd5Ff8QKkuCtesxg6b/8CZ2OimCVdRr3SiuV4/JXtNuMCDdtffq06oIyE9PvPh+yxBO7BlvyASBx+WUBdmjfP4JcIZ0GeLwqXumI2eQbfdFlWQafpRPtuSdhwZ3xD45ClVp87RW7KnE7KlpdNp+jnmvxieaX0vw8Y2T2tzTpN7pnh999WOfnV4lI6CFgZk1UWJ6E2BdNCLv7rzX3gHGjO51sVZs+H+23/fw4h8ZZGW8GIAAAAAElFTkSuQmCC) no-repeat\n}\n\n.jinri-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAh1BMVEUAAAD/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTT/zTSWkNHYAAAALHRSTlMAC+HpBUfs+ZUQ9cQVdwi6adySx2xZStfx0506MCyvXB6njlZPIheHgXE+KW30/zIAAAOvSURBVFjDtVnndqswDDaYnRAIZAeyClnV+z/flUJ629QLSPl+tOcYWdaWrTADxu4sSJY8At+brpNg5o5Zf1jVaQ0C1qfK6sXOPUagQHR0Owt3s5u9fh6ki/Js4dK5XKRB7jfr9q2LmJPYA8Lycp8I3+6XJRC8eNKW39x+bMgKFUFx8h5SzluxOyQP4lSrkpU+Dk0OZn77FUk3c0x0zoykXO1N1tsAIghZC4QB0W60lhznpO2WtcSW9M41oV5PkWDXIRfGO9wwrVWfP+nAmHVCTCp9KuRDfv6cdcTcR461VHzUN3J7pGiEWkvM5OQon9sr6VHGXPQ1xcue9cKeoke2GLOeiEVhDiuMF9YbR8yZ1yxM0FW69BjBSJva6NDkxfcoszY/8Ls+Z5Bg/uMAG/OXvcOQBaii9dOoPHyPYch/ONXyAFL839uGhBTA+xJxhuI63WJ5JiYGmu1rFV0kEpwSddX5ADgJiyTW8zgUdiL5vH5ydBZZzn2f59nC+eIHiVib0XBuE5Wy81xq6RZZ+8rhP7wr+Y4/DhN1Ajg+XBIBlFK1oMAI5fACjtF2k/JjBUBEIlTYf6WG8m7MCUBA4LBC3hGxX1dNSF5UnW0HBH+XbutzOd+sgLBTRcQFT2t8vFBQZEDYPNOe7InmUSfVHSstFmqUwFJFB2L1cloxpbUPRQ/G48bkzlydTbAqXhfPU1DnaU7KxkoVrgASa3yS1ldlhYjZRpXHDhcrO+FGIsr9ktKGROWTBfn3wGRJq9mSUPCUShfvVKbIpFtKCmlU7KyoWGgMRXVWFLMzGoNhsFoCJ9rAVW3BIiM+yYQvkViLaYXWfPwrvU+SDD6RSbfSPiaR0MywIRMZeqSyDKRyIY0nn1RuIFHZVjpFdTcp9E5Z68LmKL14aMNGH9hRKC97UMl7Fwa2JvU8kFbKvT71DMXBLwQ7cX1xMJUv+/DLkbmhfBkLrF2+yJfT2lzRMajAalvAo0VF349EJ+XmFsA2xibFL3fUcVLEU3OTat1Go1W7NvqXjb6kRt/mKuJ1uIoMc1li9p9c51IMsW9ppu9fODEEbgNciQe5tDfPiuw9hhk9KwZ4+Az2NGP1+4/HeoDn7aAPcDZ5c0Qw9BDj/THL8IMgwmFJFT5szy6kHrE8aAhG3YdpI60AkwwQWbtxX0NrGpxW3QaS1R+PTOsuQ91gq7RdJgx1Bxs7mwfjoyB1aTDuhHXppsEoEgbjw43uzWJWmezHhawyC2f++QPF4ss2P3/8A17wuAwDpw3kAAAAAElFTkSuQmCC) no-repeat\n}\n\n.gengduo-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAilBMVEUAAAAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPAmyPBcv+SCAAAALXRSTlMACu/zahgnruv439V3lkgU4gbHP5EOtJ3btywfJL2oTzpZRv2HRHDEXFtYSl2HG5UhAAADhklEQVRYw81Z63qyMAxuocqxMAEPY/PEdO7E/d/el9hPUFKlgO5Z/ogBXpP0TdJG1iLxXshl4NqlZ/nBUop9zPoLX2dBSSTI1rwXXLSyyytir6LOxr376l0vkeI7H3FQjfJvIRNP6f133gUudJV3u3TSvDdJdyoObmgM+fWEL1hZzq5Inln4xNOXEdzL89ElwW/6II4heX5px/uw0B1BXCWuCxfd+GiL3hyeepNTZiBT+QYPz/lNGicYmg0zlA0GO4lvhG8BDzgdciF24IXF1UCO8QdD1klCdGmsv/cKeN6WdZStB4ivWvPBXztinaWwwetYQ4ME7It6JT3YmFCaIV8+WS/5RPYQPpP16LgyHw3CQH7MWG9ZQc5ckgfy1x9Qi6c+5PVFfYF827ABsoEsPGMcBwZKNkgksJGfB9WdXpLcscpKLKci7l4uPG8h99Rp92xROXwRl0mo4GrIsVIvT4olyTYBRvH62r8kplM2xEFtatcKO20mhl9bdbqsxSJ9jphtjamJvrqK4G6jSh7L+0hdj44tAS4S/JylnKczvEoagBi46MTKjFFAxFOICnBf1skU4nVzZbKyXB2RITK5BrD5bV6eJdNMk745RAY9XUP/ZQaAWM2rlUixUrOGQL9eK0ruTABxyzCtaIebCtaQnUqPBcTSBNA+B+Q6wPRodQx3uAlg0HTZJzUanIhZpAgwfFEUsSIWKsfbaRM1aVPoKkSIPyy0gLMTsWdGxEYRaPZSrcnw1FM5t2QBpbV5caDUDphbR6u9fCUnRULtU9F2mY3soojOuTVO9Xox9z07mBdMKxxjgwG/myCYd29Al7qs7ylUp3fZN10UqtMuijltqE5LG3NiU52W2HXqtfUUqtOmnnlxoDptcTAvX1SnK1/f5gWW6rQFtm4BwwGxBZAmNQQQmxRpo0MAsY3Wjb4fIG305lsRqtNuRRS/Xd7eU6hOu1ky385RHd3OddpwUh3ZcL532hJTHd0Sk037jZ5CddpNe32syNggyepjBcr2Lgefex/NHnt4ZD9Dj7c/jziA0xFB0QdvjyMCfmWIUfQdYjxgzPL4QRCSJ+gzqgpebjxw6D5MO9w0YJLhuC8zG/dlOO7L2iaN624DyfXvj0yRCWqoKzdXY/d/qLv9vbEzDXg1GD9IEeFgfBK/5pGQh2owPr3v6P4v/LmgJC7U3x9glot/fxRtefQP2/333RBw+5kAAAAASUVORK5CYII=) no-repeat\n}\n\n.liren-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAn1BMVEUAAAD/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2D/L2C8+xdiAAAANHRSTlMAC/T5PfCp7BYH3yACd0niWg+Ua9tGK9dRxbRoEo+H6SXRsJx8Zcy5gnG8TMiYocBCOTFeuaD15QAABR5JREFUWMPFWYl6ojAQTghyiGBBUTxQtOp6tLZV3v/ZdiZkIzSJ117zfa1Ikskc/8wkI7lB07SX7Idzq2Ruf7FPeumUPE/0kC9KhRb5gT7DrZM6Vmkgy0k7jwq3a1dr2ei9Fw08Cq+8QdR7H7HqfXtHH2EXunzVcGb738d8ezbkg254N8uXLl+Qn0wTTjnfsPtyF7vgB1dpQq/qMOEm+RHcIV4Lpev5t+b5PZSydUtI/xU3TuJ7VIkTnPt6dWtvhKaxyZ1ko7FH3hXz9WHC8oFYmC5hQd9oyAFuGHYegn+IKg30gwXwYyYjm53IgGOhtR/oa0XkYUot0NrT+PcN5AN+T3AEGd9UXyNehL4Pa43o0b1ckScpVIUJWoCXu/0bHy3rWA9NB2KmCR6I3/b9+HNKIKce2n2I6+8K28bwOR83LmPu5nj2SGfVZaOS04h1V7+UsptKU0BgYgqvMSsvNH6vPh2n+twSQQmgkdaNOo/1wTgutTRZV58tadY5BJkUEBJRz5TLVLId+LNBSviz5NQeJD16eW5rk9CqFJXg0/N971Pk/j3ZlUVR7tA3H5fAaEupOvho5vdR81YKiqFq6TROyYQbk5KaWJ1qlhRWxXrJJnV0HqtK+InPn5WzjnXDRb9Qlev8YWEt+Gq8g1fO2i5i7obCXjt1K+YCmxRm6RIa+tf6apYvzjB/kQyXdYYn+IKaZmB1Hf5Qn/W3/OsaVUYCn2XwAVCdaRgu0R91+6UtxB0HobeLBxenSJqV5Tt89NGWCnmsGY0dASGGPFplsZWwaSjVh5UwSePjM56zaubbIzfrAmynAjZr5GjYzSMRpFuiUrseqDREVux8kNGC7pGhJ2mEyoaouEIdnB2Jjdddvha+rssmyT1lhggx9U80FRVne1zZ7ZwvfQtEjZM0YvNVMydPsBTstT7JcIVP7dVGqLYTS6OW5KeuijDQh1pYh7gEhgS72fTiHr6FvgINENJzVE1TAyWxjzVtmHcHQurqHEfMHMOT6uMORhfjWaaWmq8qeaurKEYiDBGV3krpZpUq9GzUAc4M3GaAIc/p5jzZNjB0tSqjmSrEF0vLWhak/rQQmNar3NY6RYAj5qHOQ/TyFAjXG5yy0MJGeDgB92SUZljE5ZMjBvWwMQC7NEpBOszIMIL0Ywi9Fs8t2uK1xSG5mRp6ISimZ7jWr7LMQ5gcZPpSYRPk8G+nE3AWSNgo6cuQYDFgTwhvFiuOLJfkJIGtJFhDCRjzOIlbSlJZ8EQeqaEnSoCpSL1WJe8g/XIJEiuARKsmB1GkTGU0REtVu7GimRZ6uFSNS1FGTYU+Q1PhYL9+0pu6os4htjMNrC1qOooMRNGL0d2uJxziYuzF3JKqEPIoQiLNYamDaKPE35dIfZsfFaoUtPcJRWzLcqIclrTHuREWYCrPr8csc+SxmNpqSRHHOfOBE0G95eWDbWtVk/HUui1VK+GBc1cTdqLJyny1dSCZqOpWRg6y9XJQ49ilVw7tsVjXPqF3ZwtmbbZYXU5tMSDmK4d247WCi8JyJSppXgmu5oUuvXrxGaP5A+NVY6wWwpfrVzN7szK2MuhqA9urVzP18vgMycujeh4Mf+d6e/6rF3DZIkifbxEYmhjps02MP91m+ReNIKRg+EyrahhcmfBMM+2qAH7yaLsvudVpzB5rSGb/rmWqNnWTL9OEr0Q0df9H21ltjCcT3hj3p8EgmiRKY/yPte7//48Lgjzx8weINR/izx/ejQU/AUkQJl7Zu39/AAAAAElFTkSuQmCC) no-repeat\n}\n\n.yanchu-2 {\n  background: url(http://newebapp0.nuomi.bdimg.com/static/img/8ef8b87a339619dbb6e73880fadeeb2d.png) no-repeat\n}\n\n.chuancai-2 {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAb1BMVEUAAAD9Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl79Xl776TN0AAAAJHRSTlMAC+DmakjrlQf5Wncr9BXXOyDvxroR3KhwS5yPhlBF0bAYF2UNBJjfAAADB0lEQVRYw81Z25qiMAxOodCiFUHwwAiou33/Z9wEnc9hKpVgLzZXDMI/f5pzgDeS91LV23Rjs93hUivZ57BcRHO+WEcu50YsgkuOGzshm2PCJneK7u9mlZKNuQm8dTONVFV2vx+dBAdunVqSbVvo37/pot1aknQ9G3I1sNudDUyIOe8GlqtZcGU9PCyFVwc5/NO6nEFvR+pIDW9Ey5TUeEdSf1kUtYcZslf07Jf2unFF2hYwUwrSu8o9x3fAB66MWMiv+MKhnDRejD+vgSVrfCU2E/wQL1sBU1YZIpYv6aO+mwTY0m9Q6/yFfSvklywKeuRYubYmf1nBIlmR9zg3HXtwLOOSKXfoL7BYjhgzY8PU6M/75YACDVr/VrhgGSKORwYsxkoLDCHFohSj841uKFRR/DzUdO8h4opFGWeK9IdRBf4hPURccBcQJJL6pnhCutpD5AnuAdR4bKfH9fPSB0jXHkCiGD10QScSnwPSwSXfXnmGzwHhbO1xQMZsYUIAGsxWpGmH9RdCAALW6+7ukm0YwPYeHhiGSRjAAjMtQI55VYQB1Jhpc3KaCsIAQkXKrlHxUIAK45lSvwwFKKkU1EgzECAdX03OY0IBGnJpjMBbKMA/mMIAA0+EAhQYfEC/hAIcwLLQgGlolSOPUTTNFVyjXNBtQgGS23gdO6f+nenY3tAraLRjhp43OUh87chMDt70RS35iZe+Gl+CzWlQNMwE6ysBrSWrcUsAWaV9TXA3aMwrUr4yerRDS8Ero55CL+2TIKPQT7YiXUZOqAHYrQg5TuramfA2xJzfLEHkBksSUxh3dMlp56Ybztg+5z5+w0lkpQvYjW81cdzMa4ndpp3ezv4+LhlNu3es0J+MFfzBh/R3Bp/Qo1nw4TH8eBt+AHdXBP0SvP65InCXGH2oJUb4NQuJiZYtgiIzuara0qqK4Y/7K5Wd0vPAkmWal4BW3HWf0uCXjreQ7EKvTDlLXVVMnp1iLHX5a2f+YjyhxbjelyZhLMa5q/v/4ePC+PMH0kq3cz5//AOGHZoeSwuHIwAAAABJRU5ErkJggg==) no-repeat\n}\n\n</style>\n"
  },
  {
    "path": "src/demos/Actionsheet.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"Normal Usage\" v-model=\"show1\"></x-switch>\n      <x-switch title=\"Show cancel menu\" v-model=\"show2\"></x-switch>\n      <x-switch title=\"menu as tips\" v-model=\"show3\"></x-switch>\n    </group>\n    <actionsheet v-model=\"show1\" :menus=\"menus1\" @on-click-menu=\"click\"></actionsheet>\n    <actionsheet v-model=\"show2\" :menus=\"menus2\" @on-click-menu=\"click\" show-cancel></actionsheet>\n    <actionsheet v-model=\"show3\" :menus=\"menus3\" @on-click-menu=\"click\" @on-click-menu-delete=\"onDelete\" show-cancel></actionsheet>\n    <toast v-model=\"showSuccess\">Deleted~</toast>\n  </div>\n</template>\n\n<script>\nimport { Actionsheet, Group, XSwitch, Toast } from '../components'\n\nexport default {\n  components: {\n    Actionsheet,\n    Group,\n    XSwitch,\n    Toast\n  },\n  data () {\n    return {\n      show1: false,\n      menus1: {\n        menu1: 'Share to friends',\n        menu2: 'Share to timeline'\n      },\n      show2: false,\n      menus2: {\n        menu1: 'Take Photo',\n        menu2: 'Choose from photos'\n      },\n      show3: false,\n      showSuccess: false,\n      menus3: {\n        'title.noop': 'Are you sure?<br/><span style=\"color:#666;font-size:12px;\">Once deleted, you will never find it.</span>',\n        delete: '<span style=\"color:red\">Delete</span>'\n      }\n    }\n  },\n  methods: {\n    click (key) {\n      console.log(key)\n    },\n    onDelete () {\n      this.showSuccess = true\n    }\n  }\n}\n</script>\n\n<style>\n.popup0 {\n  padding-bottom:15px;\n  height:200px;\n}\n.popup1 {\n  width:100%;\n  height:100%;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Address.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-address @on-hide=\"logHide\" @on-show=\"logShow\" :title=\"title\" :value=\"value\" :list=\"addressData\" placeholder=\"请选择地址\" inline-desc=\"可以设置placeholder\"></x-address>\n      <cell title=\"上面value值\" :value=\"value+''\"></cell>\n      <x-address :title=\"title2\" :value=\"value2\" raw-value :list=\"addressData\"></x-address>\n      <x-address title=\"二级省市\" :value=\"value3\" raw-value :list=\"addressData\"></x-address>\n    </group>\n    <br/>\n    <x-button type=\"primary\" @click=\"changeData\">改变数据</x-button>\n    <br/>\n    <group>\n      <x-address title=\"只显示省市\" :value=\"value4\" raw-value :list=\"addressData\" hide-district @on-ok=\"onOK\"></x-address>\n      <cell title=\"value值\" :value=\"value4+''\"></cell>\n      <cell title=\"转换成文字值\" :value=\"getName(value4)\"></cell>\n    </group>\n\n    <br/>\n    <group title=\"错误的地址将不能正确渲染\">\n      <x-address title=\"广东省, 深圳 市, 南山区\" :value=\"value5\" raw-value :list=\"addressData\"></x-address>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, XAddress, AddressChinaData, XButton, Cell } from '../components'\nimport value2name from '../filters/value2name'\n\nexport default {\n  components: {\n    Group,\n    XAddress,\n    XButton,\n    Cell\n  },\n  data () {\n    return {\n      title: '默认为空',\n      value: [],\n      title2: '手动设定',\n      value2: ['广东省', '深圳市', '南山区'],\n      value3: ['海南省', '儋州市', '--'],\n      addressData: AddressChinaData,\n      value4: [],\n      value5: ['广东省', '深圳 市', '南山区']\n    }\n  },\n  methods: {\n    changeData () {\n      this.value2 = ['430000', '430400', '430407']\n    },\n    getName (value) {\n      return value2name(value, AddressChinaData)\n    },\n    onOK(val){\n      this.value4=val\n    },\n    logHide (closeType,val) {\n      console.log('on-hide', closeType)\n      this.value=val\n    },\n    logShow (str) {\n      console.log('on-show')\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Alert.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"Toggle\" v-model=\"show\"></x-switch>\n    </group>\n    <alert v-model=\"show\" title=\"congratulations\" @on-show=\"onShow\" @on-hide=\"onHide\">Message is sent successfully~</alert>\n    <group title=\"As a plugin(>=v0.1.3)\">\n      <x-switch title=\"Show\" v-model=\"show1\" @on-change=\"onChange\"></x-switch>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Alert, Group, XSwitch } from '../components'\n\nexport default {\n  components: {\n    Alert,\n    Group,\n    XSwitch\n  },\n  data () {\n    return {\n      show: false,\n      show1: false\n    }\n  },\n  methods: {\n    onHide () {\n      console.log('on hide')\n    },\n    onShow () {\n      console.log('on show')\n    },\n    onChange (val) {\n      const _this = this\n      if (val) {\n        this.$vux.alert.show({\n          title: 'Vux',\n          content: 'Be Careful',\n          onShow () {\n            console.log('Plugin: I\\'m showing')\n          },\n          onHide () {\n            console.log('Plugin: I\\'m hiding')\n            _this.show1 = false\n          }\n        })\n      } else {\n        this.$vux.alert.hide()\n      }\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Badge.vue",
    "content": "<template>\n  <div>\n    <badge text=\"1\"></badge>\n    <br>\n    <badge text=\"123\"></badge>\n    <br>\n    <group>\n      <cell title=\"Used in a Cell\" is-link>\n        <div class=\"badge-value vux-center-v\" slot=\"value\">\n          New Message &nbsp;\n          <badge text=\"8\"></badge>\n        </div>\n      </cell>\n      <cell title=\"Used in a Cell\" is-link>\n        <div class=\"badge-value vux-center-v\" slot=\"value\">\n          New Message &nbsp;\n          <badge text=\"888\"></badge>\n        </div>\n      </cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Badge, Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Badge,\n    Group,\n    Cell\n  }\n}\n</script>\n\n<style>\n.badge-value {\n  display: inline-block;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Blur.vue",
    "content": "<template>\n  <div style=\"\">\n    <blur :blur-amount=40 :url=\"url\">\n      <p class=\"center\"><img :src=\"url\"></p>\n    </blur>\n    <flexbox :gutter=\"0\">\n      <flexbox-item v-for=\"img in images\"><img :src=\"img\" style=\"width:100%\" @click=\"url = img\"/></flexbox-item>\n    </flexbox>\n  </div>\n</template>\n\n<script>\nimport { Flexbox, FlexboxItem, Blur } from '../components'\n\nexport default {\n  components: {\n    Blur,\n    Flexbox,\n    FlexboxItem\n  },\n  data () {\n    return {\n      images: [\n        'https://o3e85j0cv.qnssl.com/tulips-1083572__340.jpg',\n        'https://o3e85j0cv.qnssl.com/waterway-107810__340.jpg',\n        'https://o3e85j0cv.qnssl.com/hot-chocolate-1068703__340.jpg'\n      ],\n      url: 'https://o3e85j0cv.qnssl.com/tulips-1083572__340.jpg'\n    }\n  }\n}\n</script>\n\n<style scoped>\n.center {\n  text-align: center;\n  padding-top: 20px;\n  color: #fff;\n  font-size: 18px;\n}\n.center img {\n  width: 100px;\n  height: 100px;\n  border-radius: 50%;\n  border: 4px solid #ececec;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Button-tab.vue",
    "content": "<template>\n  <div>\n    <button-tab>\n      <button-tab-item>Today</button-tab-item>\n      <button-tab-item selected>This Week</button-tab-item>\n      <button-tab-item>This Month</button-tab-item>\n    </button-tab>\n    <br>\n    <button-tab>\n      <button-tab-item selected>文章订阅</button-tab-item>\n      <button-tab-item>商品订阅</button-tab-item>\n    </button-tab>\n    <br>\n    <divider>Red Dot</divider>\n    <button-tab>\n      <button-tab-item selected>All Message</button-tab-item>\n      <button-tab-item><span class=\"vux-reddot-s\">New Message</span></button-tab-item>\n    </button-tab>\n  </div>\n</template>\n\n<script>\nimport { ButtonTab, ButtonTabItem, Divider } from '../components'\n\nexport default {\n  components: {\n    ButtonTab,\n    ButtonTabItem,\n    Divider\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Calendar.vue",
    "content": "<template>\n  <div>\n    <group title=\"default\">\n      <calendar :value=\"demo1\" title=\"Calendar\" disable-past></calendar>\n    </group>\n    <group title=\"set value as TODAY\">\n      <calendar :value=\"demo2\" title=\"Calendar\" disable-past></calendar>\n    </group>\n    <group title=\"disable future\">\n      <calendar :value=\"demo3\" title=\"Calendar\" disable-future></calendar>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, Calendar, Cell } from '../components'\n\nexport default {\n  components: {\n    Calendar,\n    Group,\n    Cell\n  },\n  data () {\n    return {\n      demo1: '',\n      demo2: 'TODAY',\n      demo3: 'TODAY'\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Card.vue",
    "content": "<template>\n  <div>\n    <divider>simple card with header and content</divider>\n\t   <card :header=\"{title:'我的钱包'}\">\n      <div slot=\"content\" class=\"card-demo-flex card-demo-content01\">\n        <div class=\"vux-1px-l vux-1px-r\">\n          <span>1130</span>\n          <br/>\n          京豆\n        </div>\n        <div class=\"vux-1px-r\">\n          <span>15</span>\n          <br/>\n          京东券\n        </div>\n        <div class=\"vux-1px-r\">\n          <span>0</span>\n          <br/>\n          京东卡/E卡\n        </div>\n        <div>\n          <span>88</span>\n          <br/>\n          七天待还\n        </div>\n      </div>\n    </card>\n\n    <br>\n    <divider>with footer</divider>\n     <card :header=\"{title:'商品详情'}\" :footer=\"{title:'查看更多',link:'/component/panel'}\">\n      <p slot=\"content\" class=\"card-padding\">custom content</p>\n    </card>\n\n    <br>\n    <divider>use header slot and content slot</divider>\n    <card>\n      <img slot=\"header\" src=\"http://placeholder.qiniudn.com/640x300\" style=\"width:100%;display:block;\">\n      <div slot=\"content\" class=\"card-padding\">\n        <p style=\"color:#999;font-size:12px;\">Posted on January 21, 2015</p>\n        <p style=\"font-size:14px;line-height:1.2;\">Quisque eget vestibulum nulla. Quisque quis dui quis ex ultricies efficitur vitae non felis. Phasellus quis nibh hendrerit..</p>\n      </div>\n    </card>\n  </div>\n</template>\n\n<script>\nimport { Divider, Card } from '../components'\n\nexport default {\n  components: {\n    Card,\n    Divider\n  }\n}\n</script>\n\n<style scoped lang=\"less\">\n@import '../styles/1px.less';\n.card-demo-flex {\n  display: flex;\n}\n.card-demo-content01 {\n  padding: 10px 0;\n}\n.card-padding {\n  padding: 15px;\n}\n.card-demo-flex > div {\n  flex: 1;\n  text-align: center;\n  font-size: 12px;\n}\n.card-demo-flex span {\n  color: #f74c31;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Cell.vue",
    "content": "<template>\n  <div>\n    <group>\n      <cell title=\"My Account\" value=\"Protected\"></cell>\n    </group>\n\n    <group title=\"use is-link to show arrow\">\n      <cell title=\"Notifications\" is-link></cell>\n      <cell title=\"Privacy\" is-link></cell>\n      <cell title=\"General\" is-link>\n        <img slot=\"icon\" width=\"20\" style=\"display:block;margin-right:5px;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAuCAMAAABgZ9sFAAAAVFBMVEXx8fHMzMzr6+vn5+fv7+/t7e3d3d2+vr7W1tbHx8eysrKdnZ3p6enk5OTR0dG7u7u3t7ejo6PY2Njh4eHf39/T09PExMSvr6+goKCqqqqnp6e4uLgcLY/OAAAAnklEQVRIx+3RSRLDIAxE0QYhAbGZPNu5/z0zrXHiqiz5W72FqhqtVuuXAl3iOV7iPV/iSsAqZa9BS7YOmMXnNNX4TWGxRMn3R6SxRNgy0bzXOW8EBO8SAClsPdB3psqlvG+Lw7ONXg/pTld52BjgSSkA3PV2OOemjIDcZQWgVvONw60q7sIpR38EnHPSMDQ4MjDjLPozhAkGrVbr/z0ANjAF4AcbXmYAAAAASUVORK5CYII=\">\n      </cell>\n    </group>\n\n    <group>\n      <cell title=\"Notifications\" value=\"Enabled\"></cell>\n    </group>\n\n    <group title=\"use slot for complexed content\">\n      <cell title=\"slot content\">\n        <div slot=\"value\">\n          <span style=\"color: green\">Hi, I'm Vux.</span>\n        </div>\n      </cell>\n    </group>\n\n    <group title=\"isLink is set to true when link exists\">\n      <cell title=\"Go to Radio\" link=\"/component/radio\" inline-desc='link=\"/component/radio\"'></cell>\n      <cell title=\"Go to Demo\" :link=\"{path:'/demo'}\" inline-desc=':link={path:\"/demo\"}'></cell>\n      <cell title=\"http link\" link=\"https://vux.li\" inline-desc='link=\"https://vux.li\"'></cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Cell, Group } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Center.vue",
    "content": "<template>\n  <div>\n    <div style=\"margin:15px;border:1px solid green;height:100px;border-radius:5px;\" :class=\"item\" v-for=\"item in ['vux-center-h', 'vux-center-v', 'vux-center']\">\n      <div style=\"text-align:center;\">\n        <div style=\"color:red;\">.{{item}}</div>\n        <div>Be Cool with Vue and WeUI</div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style lang=\"less\">\n@import '../styles/center';\n</style>"
  },
  {
    "path": "src/demos/Checker.vue",
    "content": "<template>\n  <div style=\"padding: 15px 0;\">\n    <divider>radio:no default value</divider>\n    <checker :value=\"demo1\" default-item-class=\"demo1-item\" selected-item-class=\"demo1-item-selected\">\n      <checker-item value=\"1\">1</checker-item>\n      <checker-item value=\"2\">2</checker-item>\n      <checker-item value=\"3\">3</checker-item>\n    </checker>\n    <br>\n    <span>current value is: {{demo1.join('')}}</span>\n    <br>\n\n    <divider>checkbox</divider>\n    <checker :value=\"demo1Checkbox\" type=\"checkbox\" default-item-class=\"demo1-item\" selected-item-class=\"demo1-item-selected\">\n      <checker-item :value=\"1\">1</checker-item>\n      <checker-item :value=\"2\">2</checker-item>\n      <checker-item :value=\"3\">3</checker-item>\n    </checker>\n    <br>\n    <span>current value is: {{demo1Checkbox.join('')}}</span>\n    <br>\n\n    <divider>checkbox with max limit</divider>\n    <checker :value=\"demo1CheckboxMax\" :max=\"2\" type=\"checkbox\" default-item-class=\"demo1-item\" selected-item-class=\"demo1-item-selected\">\n      <checker-item value=\"1\">1</checker-item>\n      <checker-item value=\"2\">2</checker-item>\n      <checker-item value=\"3\">3</checker-item>\n    </checker>\n    <br>\n    <span>current value is: {{demo1CheckboxMax.join('')}}</span>\n    <br>\n\n    <divider>default value 2</divider>\n    <checker :value=\"demo2\" default-item-class=\"demo2-item\" selected-item-class=\"demo2-item-selected\">\n      <checker-item value=\"1\">1</checker-item>\n      <checker-item value=\"2\">2</checker-item>\n      <checker-item value=\"3\">3</checker-item>\n    </checker>\n    <br>\n    <span>current value is: {{demo2.join('')}}</span>\n    <br>\n    <divider>custom anything</divider>\n    <checker :value=\"demo3\" default-item-class=\"demo3-item\" selected-item-class=\"demo3-item-selected\">\n      <checker-item value=\"one\">\n        <img src=\"http://placeholder.qiniudn.com/80x50/FF3B3B/ffffff\" alt=\"\">\n      </checker-item>\n      <checker-item value=\"two\">\n        <img src=\"http://placeholder.qiniudn.com/80x50/FFEF7D/ffffff\" alt=\"\">\n      </checker-item>\n      <checker-item value=\"three\">\n        <img src=\"http://placeholder.qiniudn.com/80x50/8AEEB1/ffffff\" alt=\"\">\n      </checker-item>\n    </checker>\n    <br>\n    <span>current value is: {{demo3.join('')}}</span>\n    <br>\n    <divider>used in a popup</divider>\n    <group>\n      <cell title=\"select color\" :value=\"demo4.join('')\" is-link @click=\"showPopup=true\"></cell>\n    </group>\n    <popup v-model=\"showPopup\" class=\"checker-popup\">\n      <div style=\"padding:10px 10px 40px 10px;\">\n        <p style=\"padding: 5px 5px 5px 2px;color:#888;\">Colors</p>\n        <checker\n        :value=\"demo4\"\n        default-item-class=\"demo4-item\"\n        selected-item-class=\"demo4-item-selected\"\n        disabled-item-class=\"demo4-item-disabled\"\n        @on-item-click=\"showPopup=false\">\n          <checker-item value=\"花跟叶\">花跟叶</checker-item>\n          <checker-item value=\"鸟与树\">鸟与树</checker-item>\n          <checker-item value=\"我和你\">我和你</checker-item>\n          <checker-item value=\"全套礼品装\" disabled>全套礼品装</checker-item>\n        </checker>\n      </div>\n    </popup>\n\n    <divider>A real world radio example {{demo5.join('')}}</divider>\n    <checker\n    :value=\"demo5\"\n    default-item-class=\"demo5-item\"\n    selected-item-class=\"demo5-item-selected\"\n    >\n      <checker-item v-for=\"i in [1, 2, 3]\" :value=\"i\">￥{{i*300}}</checker-item>\n    </checker>\n    <br/>\n    <divider>A real world checkbox example {{demo6.join('')}}</divider>\n    <checker\n    :value=\"demo6\"\n    type=\"checkbox\"\n    default-item-class=\"demo5-item\"\n    selected-item-class=\"demo5-item-selected\"\n    >\n      <checker-item v-for=\"i in [1, 2, 3]\" :value=\"i\">{{['good', 'nice','awesome'][i - 1]}}</checker-item>\n    </checker>\n  </div>\n</template>\n\n<script>\nimport { Checker, CheckerItem, Divider, Group, Cell, Popup } from '../components'\n\nexport default {\n  components: {\n    Checker,\n    CheckerItem,\n    Divider,\n    Group,\n    Cell,\n    Popup\n  },\n  data () {\n    return {\n      demo1: [],\n      demo1Checkbox: [2, 1],\n      demo1CheckboxMax: ['2', '3'],\n      demo2: ['2'],\n      demo3: [],\n      demo4: ['花跟叶'],\n      showPopup: false,\n      demo5: [1],\n      demo6: [2, 3]\n    }\n  }\n}\n</script>\n\n<style scoped>\n.checker-popup {\n  background: rgba(255,255,255,0.5);\n}\n.demo1-item {\n  border: 1px solid #ececec;\n  padding: 5px 15px;\n}\n.demo1-item-selected {\n  border: 1px solid green;\n}\n.demo2-item {\n  width: 40px;\n  height: 40px;\n  border: 1px solid #ccc;\n  display: inline-block;\n  border-radius: 50%;\n  line-height: 40px;\n  text-align: center;\n}\n.demo2-item-selected {\n  border-color: green;\n}\n.demo3-item {\n  padding: 5px 5px;\n  font-size: 0;\n}\n.demo3-item-selected {\n  outline: 1px solid #8B8AEE;\n}\n.demo4-item {\n  background-color: #ddd;\n  color: #222;\n  font-size: 14px;\n  padding: 5px 10px;\n  margin-right: 10px;\n  line-height: 18px;\n  border-radius: 15px;\n}\n.demo4-item-selected {\n  background-color: #FF3B3B;\n  color: #fff;\n}\n.demo4-item-disabled {\n  color: #999;\n}\n.demo5-item {\n  width: 100px;\n  height: 26px;\n  line-height: 26px;\n  text-align: center;\n  border-radius: 3px;\n  border: 1px solid #ccc;\n  background-color: #fff;\n  margin-right: 6px;\n}\n.demo5-item-selected {\n  background: #ffffff url(../assets/demo/checker/active.png) no-repeat right bottom;\n  border-color: #ff4a00;\n}\n</style>"
  },
  {
    "path": "src/demos/Checklist.vue",
    "content": "<template>\n  <div>\n    <checklist title=\"default checklist\" :options=\"commonList\" :value=\"checklist001\" @on-change=\"change\"></checklist>\n\n    <checklist title=\"preselect China and Japan\" :options=\"commonList\" :value=\"checklist002\" @on-change=\"change\"></checklist>\n\n    <checklist title=\"set max=2\" :options=\"commonList\" :value=\"checklist003\" :max=2 @on-change=\"change\"></checklist>\n\n    <checklist title=\"set required=false and no min-error will show\" :options=\"commonList\" :value=\"checklist004\" :max=2 :required=false @on-change=\"change\"></checklist>\n\n    <checklist title=\"set random order\" random-order :options=\"checklist005\" :value=\"checklist005Value\" @on-change=\"change\"></checklist>\n\n    <checklist title=\"Option Array with key and value(key must be string)\" :options=\"objectList\" :value=\"objectListValue\" @on-change=\"change\"></checklist>\n\n    <checklist title=\"Async list\" :max=\"3\" :options=\"asyncList\" :value=\"asyncListValue\" @on-change=\"change\"></checklist>\n\n    <divider>Reference</divider>\n    <group title=\"See also\">\n      <cell title=\"Checker\" value=\"with which you can custom any style\" is-link link=\"/component/checker\"></cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, Checklist, Cell, Divider } from '../components'\n\nexport default {\n  mounted () {\n    setTimeout(() => {\n      this.asyncList = ['A', 'B', 'C', 'D']\n    }, 3000)\n  },\n  components: {\n    Group,\n    Checklist,\n    Cell,\n    Divider\n  },\n  methods: {\n    change (val) {\n      console.log('change', val)\n    }\n  },\n  data () {\n    return {\n      commonList: [ 'China', 'Japan', 'America' ],\n      checklist001: [],\n      checklist002: [ 'China', 'Japan' ],\n      checklist003: [ 'China', 'Japan' ],\n      checklist004: [],\n      checklist005: [ '01', '02', '03' ],\n      checklist005Value: [],\n      objectList: [{key: '1', value: '001 value'}, {key: '2', value: '002 value'}, {key: '3', value: '003 value'}],\n      objectListValue: ['1', '2'],\n      asyncList: [],\n      asyncListValue: []\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Circle.vue",
    "content": "<template>\n  <div class=\"vux-circle-demo\">\n    <br>\n    <div style='width:150px;height:150px;'>\n      <x-circle :percent=\"percent1\" :stroke-width=\"10\" stroke-color=\"#04BE02\">\n        <span>{{percent1}}</span>\n      </x-circle>\n    </div>\n    <br>\n    <div style='width:100px;height:100px;'>\n      <x-circle :percent=\"percent1\" :stroke-width=\"5\" stroke-color=\"#04BE02\">\n        <span>{{percent1}}</span>\n      </x-circle>\n    </div>\n    <br>\n    <div style='width:50px;height:50px;'>\n      <x-circle :percent=\"percent1\" :stroke-width=\"5\" stroke-color=\"#04BE02\">\n        <span>{{percent1}}</span>\n      </x-circle>\n    </div>\n    <br>\n    <div style=\"width:180px;\">\n      <range v-model=\"percent1\" :min=\"0\" :max=\"100\"></range>\n    </div>\n    <br>\n    <div style='width:100px;height:100px;'>\n      <x-circle :percent=\"100\" :stroke-width=\"3\" stroke-color=\"#04BE02\">\n        <icon type=\"success\"></icon>\n      </x-circle>\n    </div>\n    <br>\n    <div style='width:100px;height:100px;'>\n      <x-circle :percent=\"percent2\" :stroke-width=\"6\" :trail-width=\"6\" :stroke-color=\"strokeColor2\" trail-color=\"#ececec\">\n        <span :style=\"{color: strokeColor2}\">{{percent2}}%</span>\n      </x-circle>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { XCircle, Range, Icon } from '../components'\n\nexport default {\n  mounted () {\n    setInterval(this.update2, 2000)\n  },\n  components: {\n    XCircle,\n    Range,\n    Icon\n  },\n  data () {\n    return {\n      percent1: 10,\n      percent2: 30,\n      strokeColor2: '#3FC7FA'\n    }\n  },\n  methods: {\n    update2 () {\n      const colorMap = ['#3FC7FA', '#85D262', '#FE8C6A']\n      this.percent2 = parseInt(Math.random() * 100, 10)\n      this.strokeColor2 = colorMap[parseInt(Math.random() * 3, 10)]\n    }\n  }\n}\n</script>\n\n<style scoped>\n.vux-circle-demo {\n  text-align: center;\n}\n.vux-circle-demo > div {\n  margin: 0 auto;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Clocker.vue",
    "content": "<template>\n  <div>\n    <p style=\"padding:15px;\">\n      <span>Normal Usage</span>\n      <clocker :time=\"time1\"></clocker>\n    </p>\n\n    <group title=\"Use in cell\">\n      <cell title=\"Date:0801\">\n        <clocker time=\"2016-08-01\" slot=\"value\"></clocker>\n      </cell>\n    </group>\n\n    <group title=\"custom template\">\n      <cell title=\"Date:0801\">\n        <clocker time=\"2016-08-01\" slot=\"value\">\n          <span style=\"color:red\">%D 天</span>\n          <span style=\"color:green\">%H 小时</span>\n          <span style=\"color:blue\">%M 分 %S 秒</span>\n        </clocker>\n      </cell>\n      <cell title=\"20180808\">\n        <clocker time=\"2018-08-08\" slot=\"value\">\n          <span class=\"day\">%_D1</span>\n          <span class=\"day\">%_D2</span>天\n          <span class=\"day\">%_H1</span>\n          <span class=\"day\">%_H2</span>时\n          <span class=\"day\">%_M1</span>\n          <span class=\"day\">%_M2</span>分\n          <span class=\"day\">%_S1</span>\n          <span class=\"day\">%_S2</span>秒\n        </clocker>\n      </cell>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { Clocker, Cell, Group } from '../components'\n\nexport default {\n  components: {\n    Clocker,\n    Cell,\n    Group\n  },\n  mounted () {\n    setTimeout(() => {\n      this.time1 = '2016-08-13 22:54'\n    }, 5000)\n  },\n  data () {\n    return {\n      time1: '2016-07-13 21:54'\n    }\n  }\n}\n</script>\n\n<style>\n.day {\n  background-color:#000;\n  color:#fff;\n  text-align:center;\n  display:inline-block;\n  padding:0 3px;\n  border-radius:3px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Close.vue",
    "content": "<template>\n  <div>\n    <span class=\"vux-close\" style=\"width:14px;height:14px;\"></span>\n    <span class=\"vux-close\"></span>\n    <span class=\"vux-close\" style=\"width:30px;height:30px;color:#ccc;\"></span>\n    <span class=\"vux-close vux-close-2px\" style=\"width:40px;height:40px;color:#ccc;\"></span>\n  </div>\n</template>\n\n<style lang=\"less\">\n@import '../styles/close.less';\n\n.vux-close-2px{\n  &::before,\n  &::after {\n    height: 2px;\n    margin-top: -1px;\n    background-color: green;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/demos/Color-picker.vue",
    "content": "<template>\n  <div>\n    <div style=\"padding: 15px;\">\n      <color-picker :colors=\"colors1\" v-model=\"color1\"></color-picker>\n      <br>\n      <color-picker :colors=\"colors1\" v-model=\"color1\" size=\"middle\"></color-picker>\n    </div>\n    <group title=\"as a cell's content\">\n      <cell :title=\"'Color:' + color1\">\n        <color-picker slot=\"value\" :colors=\"colors1\" v-model=\"color1\" size=\"small\"></color-picker>\n      </cell>\n    </group>\n    <group title=\"a cell without title\">\n      <cell primary=\"content\">\n        <color-picker slot=\"value\" :colors=\"colors1\" v-model=\"color1\" size=\"middle\"></color-picker>\n      </cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { ColorPicker, Group, Cell } from '../components'\n\nexport default {\n  components: {\n    ColorPicker,\n    Group,\n    Cell\n  },\n  data () {\n    return {\n      color1: '#FFEF7D',\n      colors1: ['#FF3B3B', '#FFEF7D', '#8AEEB1', '#8B8AEE', '#CC68F8', '#fff']\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Comment.vue",
    "content": "<template>\n  <div style=\"padding: 15px; background-color: #fff;\">\n    <ul class=\"discuss_list\">\n      <li class=\"discuss_item\" v-for=\"comment in list\">\n\n        <div class=\"discuss_opr\">\n          <span class=\"media_tool_meta tips_global meta_praise\" :class=\"{'praised': comment.has_praised}\">\n            <i class=\"icon_praise_gray\" @click=\"praise(comment)\"></i>\n            <span class=\"praise_num\">{{comment.like_num}}</span>\n          </span>\n        </div>\n\n        <div class=\"user_info\">\n          <strong class=\"nickname\">{{comment.name}}</strong>\n          <img class=\"avatar\" :src=\"comment.avatar\">\n        </div>\n\n        <div class=\"discuss_message\">\n          <span class=\"discuss_status\">{{comment.status}}</span>\n          <div class=\"discuss_message_content\">{{comment.content}}</div>\n        </div>\n        <p class=\"discuss_extra_info\">{{comment.time}}\n\n          <a v-if=\"comment.is_from_me\" class=\"discuss_del js_del\" href=\"javascript:;\" data-my-id=\"<#=my_id#>\" data-content-id=\"<#=content_id#>\">删除</a>\n        </p>\n\n        <div class=\"reply_result\" v-if=\"comment.reply_list && comment.reply_list.length\">\n          <div class=\"nickname\">作者回复</div>\n          <div class=\"discuss_message\">\n            <div class=\"discuss_message_content\">{{comment.reply_list[0].content}}</div>\n          </div>\n          <p class=\"discuss_extra_info\">{{comment.reply_list[0].time}}</p>\n        </div>\n\n      </li>\n    </ul>\n  </div>\n</template>\n\n<script>\nconst list = [{\n  name: 'Airyland',\n  avatar: 'http://og1rlwcj8.bkt.clouddn.com/zxy.jpg',\n  time: '昨天',\n  like_num: 99,\n  content: '沙发',\n  has_praised: true,\n  reply_list: [{\n    content: '恭喜~',\n    time: '今天早上'\n  }]\n}, {\n  name: 'Vux',\n  avatar: 'http://og1rlwcj8.bkt.clouddn.com/default.png',\n  time: '未来时间',\n  like_num: 0,\n  content: '板凳'\n}, {\n  name: 'Secret',\n  avatar: 'http://og1rlwcj8.bkt.clouddn.com/favicon.jpg',\n  time: '未来时间',\n  like_num: 99,\n  content: '居然没抢到沙发'\n}]\nexport default {\n  data () {\n    return {\n      list: list\n    }\n  },\n  methods: {\n    praise (item) {\n      if (!item.has_praised) {\n        item.like_num++\n        item.has_praised = true\n        console.log(JSON.stringify(item))\n      }\n    }\n  }\n}\n</script>\n\n<style>\n.discuss_btn_wrp {\n  display: none;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  text-align: right\n}\n\n.btn_discuss {\n  padding-left: 1.5em;\n  padding-right: 1.5em\n}\n\n.discuss_list {\n  margin-top: -5px;\n  padding-bottom: 20px;\n  font-size: 16px\n}\n\n.discuss_item {\n  position: relative;\n  padding-left: 45px;\n  margin-top: 15px;\n}\n\n.discuss_item:after {\n  content: \"\\200B\";\n  display: block;\n  height: 0;\n  clear: both\n}\n\n.discuss_item .user_info {\n  min-height: 20px;\n  overflow: hidden\n}\n\n.discuss_item .nickname {\n  display: block;\n  font-weight: 400;\n  font-style: normal;\n  color: #727272;\n  width: 9em;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  word-wrap: normal\n}\n\n.discuss_item .avatar {\n  position: absolute;\n  top: 0;\n  left: 0;\n  top: 3px;\n  width: 35px;\n  height: 35px;\n  background-color: #ccc;\n  vertical-align: top;\n  margin-top: 0;\n  border-radius: 2px;\n}\n\n.discuss_item .discuss_message {\n  color: #3e3e3e;\n  line-height: 1.5\n}\n\n.discuss_item .discuss_extra_info {\n  color: #8c8c8c;\n  font-size: 12px\n}\n\n.discuss_item .discuss_extra_info a {\n  margin-left: .5em\n}\n\n.discuss_item .discuss_status {\n  color: #ff7a21;\n  white-space: nowrap\n}\n\n.discuss_item .discuss_status i {\n  font-style: normal;\n  margin-right: 2px\n}\n\n.discuss_item .discuss_opr {\n  float: right\n}\n\n.discuss_item .discuss_opr .meta_praise {\n  display: inline-block;\n  text-align: right;\n  padding-top: 5px;\n  margin-top: -5px\n}\n\n.discuss_item .discuss_del {\n  margin-left: .5em\n}\n\n.discuss_icon_tips {\n  margin-bottom: 20px\n}\n\n.discuss_icon_tips img {\n  vertical-align: middle;\n  margin-left: 3px;\n  margin-top: -4px\n}\n\n.discuss_icon_tips .icon_edit {\n  width: 12px\n}\n\n.discuss_icon_tips .icon_access {\n  width: 13px\n}\n\n.reply_result {\n  position: relative;\n  margin-top: .5em;\n  padding-top: .5em;\n  padding-left: .4em\n}\n\n.reply_result:before {\n  content: \" \";\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 1px;\n  border-top: 1px solid #dadada;\n  transform-origin: 0 0;\n  transform: scaleY(0.5)\n}\n\n.reply_result .nickname {\n  position: relative;\n  overflow: visible\n}\n\n.reply_result .nickname:before {\n  content: \" \";\n  position: absolute;\n  left: -0.4em;\n  top: 50%;\n  margin-top: -7px;\n  width: 3px;\n  height: 14px;\n  background-color: #02bb00\n}\n\n.rich_tips.discuss_title_line {\n  margin-top: 50px\n}\n\n\n.meta_praise {\n  tap-highlight-color: rgba(0,0,0,0);\n  outline: 0;\n  min-width: 3.5em\n}\n\n.meta_praise .praise_num {\n  display: inline-block;\n  vertical-align: middle;\n  font-size: 13px;\n  color: #666;\n}\n\n.icon_praise_gray {\n  background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAA+CAYAAAA1dwvuAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACd0lEQVRYhe2XMWhUMRjHfycdpDg4iJN26CQih4NUlFIc3iTasaAO+iZBnorIId2CDg6PLqWDXSy0p28TJ6ejILgoKiLFSeRcnASLnDf2HPKll8b3ah5NQPB+cHzJl0v+73J5Sf6NwWCAD6kqxoEV4BywCTwA2j59V9QlxrxUNJeBOSkfBtaAHvDcp/O+GkJHJd4H7kr5nm/nOkJHJH4FHkv5WAyhUxLfAgelvBlUKFXFBNCU6oYl+j6oEHohADwFtoDTUn8dTChVxX7gjlSfSJyS+CaYEDCPXs4d4IXkzDR+8BWqfI9SVUyil/ENST20ml8BF4Afu4z9HT3V80B/TAY9CxTABNAHxp1Oj4B1q34dWAamGa5Al0PALfSs3TS/aE1EcERWgQXgozPIN+Ai6O2ljFQVM8BLZJqN0KTEhgj9kvrViqf1wYz5BcoXQ38Pg9uckfiuSigU0xLXowmlqpgCjgNd4FM0IeCKxGcmEUtoRqLZScILpaqYA06iN9/tTTfGLzKvxLKdDCqUquIEcB59xK9GE2J4xLeBn3ZD1abaq/sQqSpmgWvo82rBbTdCPeAA4N69/noXS1XhphaBz27SPPVtapz/FXSBFsNDcgcN3wvkiBEjRoSndAtqLXXKvuvtYfMs+SP3T3tYm6ge1iaqh7UJ62HRTqNZko/mYV3CeVjA9rAuUTxsGd4edrcX1vWwddn2sHmWaA/bWuq4HnYLff3aC7U8bAiaMPyPJp3GhnxCUOlhQxPdwxrieViLbp4lUT2sIbqHNcTzsBYbeZZE9bCGeB7WIrqHNbTzLNnhYWMIlXpYI9Rz8gM8/GsFi3mW/Ace9jf8QZwIX5o4uQAAAABJRU5ErkJggg==) no-repeat 0 0;width: 13px;\n  height: 13px;\n  vertical-align: middle;\n  display: inline-block;\n  background-size: 100% auto\n}\n\n.icon_praise_gray.praised {\n  background-position: 0 -18px\n}\n\n.praised .icon_praise_gray {\n  background-position: 0 -18px\n}\n</style>\n"
  },
  {
    "path": "src/demos/Confirm.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"Toggle\" v-model=\"show\"></x-switch>\n    </group>\n    <confirm v-model=\"show\" title=\"confirm deleting the item\" @on-cancel=\"onCancel\" @on-confirm=\"onConfirm\" @on-show=\"onShow\" @on-hide=\"onHide\">\n      <p style=\"text-align:center;\">Are you sure?</p>\n    </confirm>\n  </div>\n</template>\n\n<script>\nimport { Confirm, Group,  XSwitch } from '../components'\n\nexport default {\n  components: {\n    Confirm,\n    Group,\n    XSwitch\n  },\n  data () {\n    return {\n      show: false\n    }\n  },\n  methods: {\n    onCancel () {\n      console.log('on cancel')\n    },\n    onConfirm () {\n      console.log('on confirm')\n    },\n    onHide () {\n      console.log('on hide')\n    },\n    onShow () {\n      console.log('on show')\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Countdown.vue",
    "content": "<template>\n  <div>\n    <group title=\"auto countdown\">\n      <cell title=\"15s\" :value=\"value\">\n        <countdown slot=\"value\" :time=\"15\" @on-finish=\"finish\" v-show=\"show\"></countdown>\n      </cell>\n    </group>\n    <group title=\"manually\">\n      <x-switch title=\"start\" v-model=\"start\"></x-switch>\n      <cell title=\"15s\">\n        <countdown slot=\"value\" v-model=\"time\" :start=\"start\" @on-finish=\"finish2\"></countdown>\n      </cell>\n      <cell title=\"双向绑定time\" :value=\"time\"></cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, Cell, Countdown, XSwitch } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell,\n    Countdown,\n    XSwitch\n  },\n  methods: {\n    finish (index) {\n      this.show = false\n      this.value = 'completed'\n      console.log('current index', index)\n    },\n    finish2 (index) {\n      this.start = false\n      this.time = 20\n    }\n  },\n  data () {\n    return {\n      show: true,\n      time: 15,\n      value: '',\n      start: false\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Countup.vue",
    "content": "<template>\n  <div style=\"text-align:center;\">\n    <countup :start-val=\"1\" :end-val=\"1388\" :duration=\"4\" class=\"demo1\"></countup>\n    <br/>\n    <countup :end-val=\"88.88\" :duration=\"3\" :decimals=\"2\" class=\"demo1\"></countup>\n  </div>\n</template>\n\n<script>\nimport { Countup } from '../components'\n\nexport default {\n  components: {\n    Countup\n  }\n}\n</script>\n\n<style scoped>\n.demo1 {\n  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n  font-size: 8em;\n  color: #04BE02;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Date-formatter.vue",
    "content": "<template>\n  <div>\n    <span v-text=\"time1 | date-formatter 'YYYY-MM-DD'\"></span>\n    <br/>\n    <span v-text=\"time2 | date-formatter 'YYYY-MM-DD HH:mm:ss'\"></span>\n  </div>\n</template>\n\n<script>\nimport { DateFormatter } from '../components'\n\nexport default {\n  filters: {\n    DateFormatter\n  },\n  data () {\n    return {\n      time1: new Date('2016/01/03 19:19:19'),\n      time2: new Date('2016-01-03 09:09:09')\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Datetime.vue",
    "content": "<template>\n  <div>\n    <group title=\"default format: YYYY-MM-DD\">\n      <datetime v-model=\"value1\" @on-change=\"change\" title=\"Birthday\"></datetime>\n    </group>\n\n    <group title=\"YYYY-MM-DD HH:mm\">\n      <datetime v-model=\"value2\" format=\"YYYY-MM-DD HH:mm\" @on-change=\"change\" title=\"start time\" inline-desc=\"select hour and minute\"></datetime>\n    </group>\n\n    <group title=\"Placeholder\">\n      <datetime v-model=\"value3\" format=\"YYYY-MM-DD\" placeholder=\"Please select\" @on-change=\"change\" title=\"start time\"></datetime>\n    </group>\n\n    <group title=\"specified min-year and max-year\">\n      <datetime v-model=\"value4\" placeholder=\"Please select\" :min-year=2000 :max-year=2016 format=\"YYYY-MM-DD HH:mm\" @on-change=\"change\" title=\"years after 2000\"></datetime>\n    </group>\n\n    <group title=\"specified template text in Chinese\">\n      <datetime v-model=\"value5\" placeholder=\"请选择日期\" :min-year=2000 :max-year=2016 format=\"YYYY-MM-DD HH:mm\" @on-change=\"change\" title=\"Chinese\" year-row=\"{value}年\" month-row=\"{value}月\" day-row=\"{value}日\" hour-row=\"{value}点\" minute-row=\"{value}分\" confirm-text=\"完成\" cancel-text=\"取消\"></datetime>\n    </group>\n\n    <group title=\"show center button and clear the value\">\n      <datetime v-model=\"value6\" @on-change=\"change\" title=\"Birthday\" clear-text=\"clear\" @on-clear=\"clearValue\"></datetime>\n    </group>\n\n    <group title=\"show center button to set date to today\">\n      <datetime v-model=\"value7\" @on-change=\"change\" title=\"Birthday\" clear-text=\"today\" @on-clear=\"setToday\"></datetime>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { Datetime, Group } from '../components'\n\nexport default {\n  components: {\n    Datetime,\n    Group\n  },\n  data () {\n    return {\n      value1: '2016-02-11',\n      value2: '',\n      value3: '',\n      value4: '',\n      value5: '',\n      value6: '2016-08-18',\n      value7: ''\n    }\n  },\n  methods: {\n    change (value) {\n      console.log('change', value)\n    },\n    clearValue (value) {\n      this.$data.value6 = ''\n      console.log('clear')\n    },\n    setToday (value) {\n      let now = new Date()\n      let cmonth = now.getMonth() + 1\n      let day = now.getDate()\n      if (cmonth < 10) cmonth = '0' + cmonth\n      this.$data.value7 = now.getFullYear() + '-' + cmonth + '-' + day\n      console.log('set today ok')\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Demo.vue",
    "content": "<template>\n  <div>\n    <group title=\"Form\" title-color=\"#04be02\">\n      <cell title=\"address\" link=\"component/address\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe61b;</span>\n      </cell>\n      <cell title=\"calendar\" link=\"component/calendar\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe62b;</span>\n      </cell>\n      <cell title=\"cell\" link=\"component/cell\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe62a;</span>\n      </cell>\n      <cell title=\"checklist\" link=\"component/checklist\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe61d;</span>\n      </cell>\n      <cell title=\"checker\" link=\"component/checker\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe655;</span>\n      </cell>\n      <cell title=\"color-picker\" link=\"component/color-picker\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:#f2c400;\">&#xe63f;</span>\n      </cell>\n      <cell title=\"datetime\" link=\"component/datetime\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe60a;</span>\n      </cell>\n      <cell title=\"inline-calendar\" link=\"component/inline-calendar\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe62b;</span>\n      </cell>\n      <cell title=\"radio\" link=\"component/radio\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe60f;</span>\n      </cell>\n      <cell title=\"range\" link=\"component/range\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe60b;</span>\n      </cell>\n      <cell title=\"rater\" link=\"component/rater\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe606;</span>\n      </cell>\n      <cell title=\"selector\" link=\"component/selector\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe607;</span>\n      </cell>\n      <cell title=\"switch\" link=\"component/switch\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe61c;</span>\n      </cell>\n      <cell title=\"x-button\" link=\"component/x-button\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe616;</span>\n      </cell>\n      <cell title=\"x-input\" link=\"component/input\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe614;</span>\n      </cell>\n      <cell title=\"x-textarea\" link=\"component/textarea\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe611;</span>\n      </cell>\n      <cell title=\"x-number\" link=\"component/number\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe605;</span>\n      </cell>\n    </group>\n\n    <group title=\"Message && Tip\" title-color=\"#04be02\">\n      <cell title=\"alert\" link=\"component/alert\" value=\"Based on Dialog\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe603;</span>\n      </cell>\n      <cell title=\"confirm\" link=\"component/confirm\" value=\"Based on Dialog\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe608;</span>\n      </cell>\n      <cell title=\"dialog\" link=\"component/dialog\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe608;</span>\n      </cell>\n      <cell title=\"loading\" link=\"component/loading\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe610;</span>\n      </cell>\n      <cell title=\"toast\" link=\"component/toast\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe625;</span>\n      </cell>\n      <cell title=\"popover\" link=\"component/popover\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe65f;</span>\n      </cell>\n      <cell title=\"actionsheet\" link=\"component/actionsheet\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe624;</span>\n      </cell>\n    </group>\n\n    <group title=\"UI\" title-color=\"#04be02\">\n      <cell title=\"badge\" link=\"component/badge\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:#f74c31;\">&#xe65b;</span>\n      </cell>\n      <cell title=\"blur\" link=\"component/blur\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe640;</span>\n      </cell>\n      <cell title=\"button-tab\" link=\"component/button-tab\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"font-size: 15px;vertical-align: 6px;\">&#xe659;</span>\n      </cell>\n      <cell title=\"circle\" link=\"component/circle\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe63d;</span>\n      </cell>\n      <cell title=\"countup\" link=\"component/countup\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe63e;</span>\n      </cell>\n      <cell title=\"countdown\" link=\"component/countdown\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe653;</span>\n      </cell>\n      <cell title=\"clocker\" link=\"component/clocker\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe620;</span>\n      </cell>\n      <cell title=\"flexbox\" link=\"component/flexbox\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe61f;</span>\n      </cell>\n      <cell title=\"icon\" link=\"component/icon\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe619;</span>\n      </cell>\n      <cell title=\"divider\" link=\"component/divider\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe65d;</span>\n      </cell>\n      <cell title=\"panel\" link=\"component/panel\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe658;</span>\n      </cell>\n      <cell title=\"card\" link=\"component/card\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe658;</span>\n      </cell>\n      <cell title=\"previewer\" link=\"component/previewer\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe65c;</span>\n      </cell>\n      <cell title=\"picker\" link=\"component/picker\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe627;</span>\n      </cell>\n      <cell title=\"popup\" link=\"component/popup\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe61e;</span>\n      </cell>\n      <cell title=\"popup-picker\" link=\"component/popup-picker\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe626;</span>\n      </cell>\n      <cell title=\"progress\" link=\"component/progress\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe618;</span>\n      </cell>\n      <cell title=\"reddot\" link=\"component/reddot\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color:#f74c31;\">&#xe63f;</span>\n      </cell>\n      <cell title=\"swiper\" link=\"component/swiper\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe612;</span>\n      </cell>\n      <cell title=\"sticky\" link=\"component/sticky\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe623;</span>\n      </cell>\n      <cell title=\"search\" link=\"component/search\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe63b;</span>\n      </cell>\n      <cell title=\"spinner\" link=\"component/spinner\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe610;</span>\n      </cell>\n      <cell title=\"tab\" link=\"component/tab\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe615;</span>\n      </cell>\n      <cell title=\"tabbar\" link=\"component/tabbar\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe657;</span>\n      </cell>\n      <cell title=\"tabbar with link\" link=\"component/tabbar-link\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe657;</span>\n      </cell>\n      <cell title=\"timeline\" link=\"component/timeline\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe656;</span>\n      </cell>\n      <cell title=\"step\" link=\"component/step\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe65e;</span>\n      </cell>\n      <cell title=\"x-header\" link=\"component/x-header\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe654;</span>\n      </cell>\n    </group>\n\n    <group title=\"Scroller\" title-color=\"#04be02\">\n      <cell title=\"pulldown\" link=\"component/pulldown\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe64f;</span>\n      </cell>\n      <cell title=\"pullup\" link=\"component/pullup\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe650;</span>\n      </cell>\n      <cell title=\"pulldown & pullup\" link=\"component/pulldown-pullup\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe64f;</span>\n      </cell>\n      <cell title=\"scroller\" link=\"component/scroller\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe641;</span>\n      </cell>\n      <cell title=\"multi full-height scroller\" link=\"component/scroller/full\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe641;</span>\n      </cell>\n      <cell title=\"Swiper within Scroller\" link=\"component/scroller-swiper\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe641;</span>\n      </cell>\n      <cell title=\"Scroller with XHeader\" link=\"component/scroller/header\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe641;</span>\n      </cell>\n    </group>\n\n    <group title=\"Other\" title-color=\"#04be02\">\n      <cell title=\"comment\" value=\"评论\" link=\"component/comment\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe652;</span>\n      </cell>\n      <cell title=\"emotion\" value=\"微信表情\" link=\"component/emotion\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe63c;</span>\n      </cell>\n      <cell title=\"masker\" link=\"component/masker\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe651;</span>\n      </cell>\n<!--       <cell title=\"orientation\" value=\"横竖屏切换提示\" link=\"component/orientation\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe628;</span>\n      </cell> -->\n<!--       <cell title=\"shake\" value=\"摇一摇\" link=\"component/shake\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe629;</span>\n      </cell> -->\n<!--       <cell title=\"x-img\" value=\"延迟加载及webp切换支持\" link=\"component/x-img\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe602;</span>\n      </cell> -->\n      <cell title=\"qrcode\" link=\"component/qrcode\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe65a;</span>\n      </cell>\n    </group>\n\n    <group title=\"CSS Utils\" title-color=\"#04be02\">\n      <cell title=\"1px\" value=\"1px解决方案(FrozenUI)\" link=\"component/1px\"></cell>\n      <cell title=\"Center(Based on Flexbox)\" value=\"水平垂直居中\" link=\"component/center\"></cell>\n      <cell title=\"Close icon\" value=\"关闭字符\" link=\"component/close\"></cell>\n    </group>\n\n     <group title=\"Plugins\" title-color=\"#04be02\">\n      <cell title=\"Device\" value=\"简单设备信息检测\" link=\"plugin/device\"></cell>\n    </group>\n\n    <group title=\"TODO\" title-color=\"#04be02\" v-if=\"showTodo\">\n      <cell title=\"短信验证组件\" link=\"component/address\"></cell>\n      <cell title=\"图片验证码\" link=\"component/rater\"></cell>\n      <cell title=\"Calendar\" link=\"component/calendar\"></cell>\n    </group>\n\n    <group title=\"Demo\" title-color=\"#04be02\">\n      <cell title=\"微信设置页面\" link=\"demo/wechat\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe600;</span>\n      </cell>\n      <cell title=\"小蚁摄像设置\" link=\"demo/yi\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe622;</span>\n      </cell>\n    </group>\n\n    <group title=\"Todo\" title-color=\"#04be02\" style=\"display: none;\">\n      <cell title=\"Step\" link=\"component/step\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe62c;</span>\n      </cell>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { Cell, Group } from '../components'\n\n/**\n* fix firefox cell bottom border missing\n*/\n\nif (/firefox/i.test(navigator.userAgent)) {\n  document.querySelector('body').classList.add('firefox')\n}\n\nexport default {\n  components: {\n    Cell,\n    Group\n  },\n  data () {\n    return {\n    }\n  },\n  beforeRouteLeave (to, from, next) {\n    console.log('router');\n    this.$parent.$refs.viewboxbody.scrollTop=0;\n    next();\n  }\n}\n</script>\n\n<style>\n@import './style.css';\n.center {\n  margin-top: 15px;\n  text-align: center;\n}\n\nbody {\n  font-family: Helvetica, sans-serif;\n  background-color: #fbf9fe;\n}\n\n.firefox .weui_cells:after {\n  transform-origin: 50% 50%;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Device.vue",
    "content": "<template>\n  <div>\n    <group>\n      <cell v-for=\"(val, key) in $device\" :title=\"key\">{{val}}</cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Dialog.vue",
    "content": "<template>\n  <div style=\"height: 1000px\">\n    <group>\n      <x-switch v-model=\"show\" title=\"Toggle\"></x-switch>\n    </group>\n    <group style=\"padding-top: 300px\">\n      <x-switch v-model=\"showNoScroll\" title=\"背景不可滚动\"></x-switch>\n    </group>\n    <x-dialog v-model=\"show\" class=\"dialog-demo\">\n      <p class=\"dialog-title\">I'm a bg scroll Dialog.</p>\n      <div class=\"img-box\">\n        <img src=\"../assets/demo/dialog/01.jpg\" style=\"max-width:100%\">\n      </div>\n      <span class=\"vux-close\" @click=\"show=false\"></span>\n    </x-dialog>\n    <x-dialog v-model=\"showNoScroll\" class=\"dialog-demo\" :scroll=\"false\">\n      <p class=\"dialog-title\">I'm a no scroll Dialog.</p>\n      <div class=\"img-box\">\n        <img src=\"../assets/demo/dialog/01.jpg\" style=\"max-width:100%\">\n      </div>\n      <span class=\"vux-close\" @click=\"showNoScroll=false\"></span>\n    </x-dialog>\n  </div>\n</template>\n\n<script>\nimport { XDialog, XButton, Group, XSwitch } from '../components'\n\nexport default {\n  components: {\n    XDialog,\n    XButton,\n    Group,\n    XSwitch\n  },\n  mounted () {\n    setTimeout(() => {\n      this.show = true\n    }, 10)\n  },\n  data () {\n    return {\n      show: false,\n      showNoScroll: false\n    }\n  }\n}\n</script>\n\n<style lang=\"less\" scoped>\n@import '../styles/close';\n.dialog-demo {\n  .weui_dialog{\n    border-radius: 8px;\n    padding-bottom: 8px;\n  }\n  .dialog-title {\n    line-height: 30px;\n    color: #666;\n  }\n  .img-box {\n    height: 350px;\n    overflow: hidden;\n  }\n  .vux-close {\n    margin-top: 8px;\n    margin-bottom: 8px;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/demos/Divider.vue",
    "content": "<template>\n<div>\n  <divider>Alipay: I have bottom line</divider>\n  <divider>我是有底线的</divider>\n</div>\n</template>\n\n<script>\nimport { Divider } from '../components'\n\nexport default {\n  components: {\n    Divider\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Donate.vue",
    "content": "<template>\n  <div>\n    <img src=\"../assets/demo/wechat_pay_10_24.jpg\">\n    <divider>Proudly sponsored by </divider>\n  </div>\n</template>\n\n<script>\nimport { Divider } from '../components'\n\nexport default {\n  components: {\n    Divider\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Flexbox.vue",
    "content": "<template>\n  <div>\n    <divider>Horizontal</divider>\n    <flexbox>\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox>\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">3</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox>\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">3</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">4</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox>\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">3</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">4</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">5</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox>\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">3</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">4</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">5</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">6</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>Honrizontal with no gutter</divider>\n    <flexbox :gutter=\"0\">\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">3</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">4</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>Vertical</divider>\n    <flexbox orient=\"vertical\">\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>Vertical with no gutter</divider>\n    <flexbox orient=\"vertical\" :gutter=\"0\">\n      <flexbox-item><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>Grid support(12 columns)</divider>\n    <flexbox>\n      <flexbox-item :span=\"4\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">2/3</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox>\n      <flexbox-item :span=\"6\"><div class=\"flex-demo\">6/12</div></flexbox-item>\n      <flexbox-item :span=\"2\"><div class=\"flex-demo\">2/12</div></flexbox-item>\n      <flexbox-item ><div class=\"flex-demo\">rest</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>flexiable grid</divider>\n    <flexbox>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/6\"><div class=\"flex-demo\">1/6</div></flexbox-item>\n      <flexbox-item :span=\"1/8\"><div class=\"flex-demo\">1/8</div></flexbox-item>\n      <flexbox-item :span=\"1/8\"><div class=\"flex-demo\">1/8</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">rest</div></flexbox-item>\n    </flexbox>\n    <br>\n    <flexbox :gutter=\"0\">\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/6\"><div class=\"flex-demo\">1/6</div></flexbox-item>\n      <flexbox-item :span=\"1/8\"><div class=\"flex-demo\">1/8</div></flexbox-item>\n      <flexbox-item :span=\"1/8\"><div class=\"flex-demo\">1/8</div></flexbox-item>\n      <flexbox-item><div class=\"flex-demo\">rest</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>flexiable grid</divider>\n    <flexbox :gutter=\"0\">\n      <flexbox-item :span=\"1/3\" :order=\"4\"><div class=\"flex-demo\">1</div></flexbox-item>\n      <flexbox-item :span=\"1/6\" :order=\"3\"><div class=\"flex-demo\">2</div></flexbox-item>\n      <flexbox-item :span=\"1/8\" :order=\"2\"><div class=\"flex-demo\">3</div></flexbox-item>\n      <flexbox-item :span=\"1/8\" :order=\"1\"><div class=\"flex-demo\">4</div></flexbox-item>\n      <flexbox-item :order=\"-99\"><div class=\"flex-demo\">5</div></flexbox-item>\n    </flexbox>\n    <br>\n    <divider>flex-wrap</divider>\n    <flexbox :gutter=\"0\" wrap=\"wrap\">\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n      <flexbox-item :span=\"1/3\"><div class=\"flex-demo\">1/3</div></flexbox-item>\n    </flexbox>\n    \n  </div>\n</template>\n\n<script>\nimport { Flexbox, FlexboxItem, Divider } from '../components'\n\nexport default {\n  components: {\n    Flexbox,\n    FlexboxItem,\n    Divider\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../styles/1px.less';\n\n.flex-demo {\n  text-align: center;\n  color: #fff;\n  background-color: #20b907;\n  border-radius: 4px;\n  background-clip: padding-box;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Icon-loading.vue",
    "content": "<template>\n<div>\n  <divider>default usage</divider>\n  <span class=\"vux-loading\"></span>\n  <group>\n    <cell title=\"Cell Loading\"><span class=\"vux-loading\"></span></cell>\n    <x-input title=\"XInput loading\" disabled :required=\"false\" :show-clear=\"false\">\n      <span class=\"vux-loading\" slot=\"right\"></span>\n    </x-input>\n  </group>\n</div>\n</template>\n\n<script>\nimport { Group, Cell, Divider, XInput } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell,\n    Divider,\n    XInput\n  }\n}\n</script>\n\n<style>\n@import '../styles/loading.less';\n</style>"
  },
  {
    "path": "src/demos/Icon.vue",
    "content": "<template>\n  <div>\n    <box gap=\"10px 10px\">\n      <icon type=\"success\"></icon>\n      <icon type=\"info\"></icon>\n      <icon type=\"info_circle\"></icon>\n      <icon type=\"warn\"></icon>\n      <icon type=\"waiting\"></icon>\n      <icon type=\"waiting_circle\"></icon>\n      <icon type=\"safe_success\"></icon>\n      <icon type=\"safe_warn\"></icon>\n      <icon type=\"success_circle\"></icon>\n      <icon type=\"success_no_circle\"></icon>\n      <icon type=\"circle\"></icon>\n      <icon type=\"download\"></icon>\n      <icon type=\"cancel\"></icon>\n      <icon type=\"search\"></icon>\n      <icon type=\"clear\"></icon>\n      <br/>\n      <icon type=\"success\" class=\"icon_big\"></icon>\n      <icon type=\"info\" class=\"icon_big\"></icon>\n      <icon type=\"safe_success\" class=\"icon_big\"></icon>\n      <icon type=\"safe_warn\" class=\"icon_big\"></icon>\n    </box>\n  </div>\n</template>\n\n<script>\nimport { Box, Icon } from '../components'\n\nexport default {\n  components: {\n    Box,\n    Icon\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Inline-calendar-start-date.vue",
    "content": "<template>\n<div>\n  <divider>set start-date as TODAY</divider>\n  <inline-calendar\n  start-date=\"TODAY\"\n  end-date=\"2017-06-18\">\n  </inline-calendar>\n   <divider>set end-date as TODAY</divider>\n  <inline-calendar\n  end-date=\"TODAY\">\n  </inline-calendar>\n  \n</div>\n</template>\n\n<script>\nimport { InlineCalendar, Divider } from '../components'\n\nexport default {\n  data () {\n    return {\n    }\n  },\n  components: {\n    InlineCalendar,\n    Divider\n  }\n}\n</script>\n\n"
  },
  {
    "path": "src/demos/Inline-calendar.vue",
    "content": "<template>\n<div>\n  <inline-calendar ref=\"calendar\"\n  @on-change=\"onCalendarValueChange\"\n  class=\"inline-calendar-demo\"\n  :show=\"show\"\n  v-model=\"value\"\n  start-date=\"2016-04-01\"\n  end-date=\"2017-06-18\"\n  :range=\"range\"\n  :show-last-month=\"showLastMonth\"\n  :show-next-month=\"showNextMonth\"\n  :highlight-weekend=\"highlightWeekend\"\n  :return-six-rows=\"return6Rows\"\n  :hide-header=\"hideHeader\"\n  :hide-week-list=\"hideWeekList\"\n  :replace-text-list=\"replaceTextList\"\n  :weeks-list=\"weeksList\"\n  :custom-slot-fn=\"buildSlotFn\"\n  :disable-past=\"disablePast\"\n  :disable-future=\"disableFuture\">\n  </inline-calendar>\n  <group title=\"control days\" style=\"margin-top: 30px;\">\n    <x-switch v-model=\"disablePast\" title=\"Disable Past\"></x-switch>\n    <x-switch v-model=\"disableFuture\" title=\"Disable Future\"></x-switch>\n    <x-switch v-model=\"showLastMonth\" title=\"Show Last Month\"></x-switch>\n    <x-switch v-model=\"showNextMonth\" title=\"Show Next Month\"></x-switch>\n    <x-switch v-model=\"return6Rows\" inline-desc=\"if not, the calendar's height would change\" title=\"Always show 6 rows\"></x-switch>\n    <x-switch v-model=\"highlightWeekend\" title=\"highlight weekend\"></x-switch>\n    <cell title=\"current value\" :value=\"value\"></cell>\n  </group>\n  <group title=\"control navs\">\n    <x-switch v-model=\"hideHeader\" title=\"Hide header\"></x-switch>\n    <x-switch v-model=\"hideWeekList\" title=\"Hide week list\"></x-switch>\n    <x-switch v-model=\"changeWeeksList\" title=\"Change weeks list\"></x-switch>\n  </group>\n  <group title=\"replace text\">\n    <x-switch v-model=\"replace\" title=\"Replace date text\"></x-switch>\n  </group>\n  <br>\n  <div style=\"margin: 15px;\">\n    <x-button type=\"primary\" @click=\"value='2020-11-11'\">Set time to 2020-11-11</x-button>\n    <x-button type=\"primary\" @click=\"value='2020-11-22'\">Set time to 2020-11-22</x-button>\n    <x-button type=\"primary\" @click=\"value='2016-08-09'\">Set time to 2016-08-09</x-button>\n    <x-button type=\"primary\" @click=\"value='TODAY'\">Set time to today</x-button>\n    <x-button type=\"primary\" @click=\"value='2016-06-05'\">Set time to 2016-06-05</x-button>\n  </div>\n  <br>\n  <group title=\"custom every day cell\">\n    <x-switch v-model=\"useCustomFn\" inline-desc=\"Add red dot for dates with 8\" title=\"add custom contents in day cell\"></x-switch>\n  </group>\n\n  <br>\n\n  <divider>We can render a list of calendars order by month</divider>\n  <group>\n    <cell title=\"current value\" :value=\"listValue\"></cell>\n  </group>\n  <br>\n  <div v-for=\"i in 5\" v-if=\"i >= 1\">\n    <divider>2016 / {{i}}</divider>\n    <inline-calendar\n    @on-change=\"onCalendar2Cchange\"\n    :render-month=\"[2016, i]\"\n    hide-header\n    :return-six-rows=\"false\"\n    :value=\"listValue\"\n    :show-last-month=\"false\"\n    :show-next-month=\"false\"\n    :render-on-value-change=\"false\"></inline-calendar>\n  </div>\n</div>\n</template>\n\n<script>\nimport InlineCalendar from '../components/inline-calendar'\nimport { Group, XSwitch, Radio, XButton, Cell, Divider } from '../components'\n\nmodule.exports = {\n  data () {\n    return {\n      show: true,\n      value: '',\n      listValue: '',\n      range: false,\n      showLastMonth: true,\n      showNextMonth: true,\n      highlightWeekend: false,\n      return6Rows: true,\n      hideHeader: false,\n      hideWeekList: false,\n      replaceTextList: {},\n      replace: false,\n      changeWeeksList: false,\n      weeksList: [],\n      useCustomFn: false,\n      buildSlotFn: () => '',\n      disablePast: false,\n      disableFuture: false\n    }\n  },\n  watch: {\n    replace (val) {\n      this.replaceTextList = val ? {\n        'TODAY': '今'\n      } : {}\n    },\n    useCustomFn (val) {\n      this.buildSlotFn = val ? (line, index, data) => {\n        return /8/.test(data.day) ? '<div style=\"font-size:12px;text-align:center;\"><span style=\"display:inline-block;width:5px;height:5px;background-color:red;border-radius:50%;\"></span></div>' : ''\n      } : () => ''\n    },\n    changeWeeksList (val) {\n      this.weeksList = val ? ['日', '一', '二', '三', '四', '五', '六 '] : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n    }\n  },\n  methods:{\n    onCalendarValueChange(val){\n      this.value=val\n    },\n    onCalendar2Cchange(val){\n      this.listValue=val\n    }\n  },\n  components: {\n    InlineCalendar,\n    Group,\n    XSwitch,\n    Radio,\n    XButton,\n    Cell,\n    Divider\n  }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.inline-calendar-demo {\n  background: rgba(255,255,255,0.9);\n}\n</style>\n"
  },
  {
    "path": "src/demos/Input.vue",
    "content": "<template>\n  <div>\n\n    <group title=\"Default\">\n      <x-input title=\"message\" placeholder=\"I'm placeholder\" v-model=\"value\"></x-input>\n      <span style=\"margin-left: 15px;\" >value: {{value}}</span>\n      <br>\n    </group>\n\n    <group title=\"不显示清除按钮\">\n      <x-input title=\"message\" placeholder=\"I'm placeholder\" :show-clear=\"false\" autocapitalize=\"characters\"></x-input>\n    </group>\n\n    <group title=\"set is-type=china-name\">\n      <x-input title=\"姓名\" name=\"username\" placeholder=\"请输入姓名\" is-type=\"china-name\"></x-input>\n    </group>\n\n    <group title=\"set keyboard=number and is-type=china-mobile\">\n      <x-input title=\"手机号码\" name=\"mobile\" placeholder=\"请输入手机号码\" keyboard=\"number\" is-type=\"china-mobile\"></x-input>\n    </group>\n\n    <group title=\"set is-type=email\">\n      <x-input title=\"邮箱\" name=\"email\" placeholder=\"请输入邮箱地址\" is-type=\"email\"></x-input>\n    </group>\n\n    <group title=\"set min=2 and max=5\">\n      <x-input title=\"2-5个字符\" placeholder=\"\" :min=\"2\" :max=\"5\"></x-input>\n    </group>\n\n    <group title=\"确认输入\">\n      <x-input title=\"请输入6位数字\" type=\"text\" placeholder=\"\" v-model=\"password\" :min=\"6\" :max=\"6\" @on-change=\"change\"></x-input>\n      <x-input title=\"请确认6位数字\" type=\"text\" placeholder=\"\" :equal-with=\"password\"></x-input>\n    </group>\n\n    <group title=\"验证码\" class=\"weui_cells_form\">\n      <x-input title=\"验证码\" class=\"weui_vcode\">\n        <img slot=\"right\" src=\"http://weui.github.io/weui/images/vcode.jpg\">\n      </x-input>\n      <x-input title=\"发送验证码\" class=\"weui_vcode\">\n        <x-button slot=\"right\" type=\"primary\">发送验证码</x-button>\n      </x-input>\n    </group>\n    <group title=\"check if value is valid when required===true\">\n      <x-input title=\"message\" placeholder=\"I'm placeholder\" ref=\"input\" @input=\"oninput1\"></x-input>\n      <cell title=\"get valid value\" :value=\"'$valid value:' + valid\"></cell>\n    </group>\n\n     <group title=\"check if value is valid when required===false\">\n      <x-input title=\"message\" placeholder=\"I'm placeholder\" :required=\"false\" ref=\"input02\" @input=\"oninput2\"></x-input>\n      <cell title=\"get valid value\" :value=\"'$valid value:' + valid\"></cell>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { XInput, Group, XButton, Cell } from '../components'\n\nexport default {\n  components: {\n    XInput,\n    XButton,\n    Group,\n    Cell\n  },\n  data () {\n    return {\n      value:'',\n      password: '123465',\n      valid: false\n    }\n  },\n  methods: {\n    change (val) {\n      console.log(val)\n    },\n    oninput1(val){\n      this.valid=this.$refs.input.valid\n    },\n    oninput2(val){\n      this.valid=this.$refs.input02.valid\n    }\n  }\n}\n</script>\n<style scoped>\n.weui_cell_ft .weui_btn {\n  margin-left: 5px;\n  vertical-align: middle;\n  display: inline-block;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Inview.vue",
    "content": "<template>\n  <div>\n    <div v-inview=\"{id:'box1'}\">box1</div>\n    <p v-for=\"i in 80\">placeholder</p>\n    <div v-inview=\"{id:'box2'}\">box1</div>\n  </div>\n</template>\n\n<script>\nimport Inview from '../directives/inview'\n\nexport default {\n  directives: {\n    Inview\n  },\n  data () {\n    return {\n      div2: 'not inview'\n    }\n  },\n  events: {\n    'on-view-enter' (id) {\n      console.log(id, 'in view')\n    },\n    'on-view-leave' (id) {\n      console.log(id, 'not in view')\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Issue189.vue",
    "content": "<template>\n  <div>\n    <divider>issue 189</divider>\n    <group>\n      <popup-picker title=\"test\" :data=\"list3\" :columns=\"3\" :value.sync=\"value3\" @on-shadow-change=\"onShadowChange\" placeholder=\"Please select\"></popup-picker>\n    </group>\n    <picker v-if=\"fuck\" :data=\"list3\" :columns=\"3\" :value.sync=\"value3\"></picker>\n    <group>\n      <cell title=\"value\" :value=\"value3 | json\"></cell>\n    </group>\n    <br>\n    <div style=\"margin: 0 10px;\">\n      <x-button @click=\"update\" type=\"primary\">list 2</x-button>\n      <x-button @click=\"update2\" type=\"primary\">list 1</x-button>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { Cell, Group, Picker, PopupPicker, XButton, Divider } from '../components'\nconst list =\n[{\n  name: '中国',\n  value: 'china',\n  parent: 0\n}, {\n  name: '美国',\n  value: 'USA',\n  parent: 0\n}, {\n  name: '广东',\n  value: 'china001',\n  parent: 'china'\n}, {\n  name: '广西',\n  value: 'china002',\n  parent: 'china'\n}, {\n  name: '美国001',\n  value: 'usa001',\n  parent: 'USA'\n}, {\n  name: '美国002',\n  value: 'usa002',\n  parent: 'USA'\n}, {\n  name: '广州',\n  value: 'gz',\n  parent: 'china001'\n}, {\n  name: '深圳',\n  value: 'sz',\n  parent: 'china001'\n}, {\n  name: '广西001',\n  value: 'gx001',\n  parent: 'china002'\n}, {\n  name: '广西002',\n  value: 'gx002',\n  parent: 'china002'\n}, {\n  name: '美国001_001',\n  value: '0003',\n  parent: 'usa001'\n}, {\n  name: '美国001_002',\n  value: '0004',\n  parent: 'usa001'\n}, {\n  name: '美国002_001',\n  value: '0005',\n  parent: 'usa002'\n}, {\n  name: '美国002_002',\n  value: '0006',\n  parent: 'usa002'\n}]\n\nexport default {\n  components: {\n    Cell,\n    PopupPicker,\n    Group,\n    XButton,\n    Divider,\n    Picker\n  },\n  methods: {\n    onShadowChange (val) {\n      console.log('on-shadow-change', val)\n    },\n    update () {\n      this.list3 = [{\n        name: 'a',\n        value: 'a',\n        parent: 0\n      }, {\n        name: 'b',\n        value: 'b',\n        parent: 0\n      }, {\n        name: 'c',\n        value: 'c',\n        parent: 'a'\n      }, {\n        name: 'd',\n        value: 'd',\n        parent: 'b'\n      }]\n    },\n    update2 () {\n      this.list3 = list\n    }\n  },\n  data () {\n    return {\n      list3: list,\n      value3: []\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Issue414.vue",
    "content": "<template>\n  <div>\n    <tab :line-width=2 :index.sync=\"index\">\n      <tab-item class=\"vux-center\" :selected=\"demo2 === item\" v-for=\"item in list2\" @click=\"demo2 = item\">{{item}}\n      </tab-item>\n    </tab>\n    <swiper :index.sync=\"index\" height=\"600px\" :show-dots=\"false\">\n      <swiper-item v-for=\"(index, item) in list2\">\n        <card :header=\"{title:'标题' + index}\">\n          <div slot=\"content\" class=\"card-padding\">\n            <scroller lock-y :scrollbar-x=false stop-propagation>\n              <div class=\"box1\">\n                <div class=\"box1-item\" v-for=\"i in 7\"><span>{{' ' + i + ' '}}</span></div>\n              </div>\n            </scroller>\n          </div>\n        </card>\n      </swiper-item>\n    </swiper>\n  </div>\n</template>\n\n<script>\nimport { Group, Cell, Tab, TabItem, Swiper, SwiperItem, Card, Scroller } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell,\n    Tab,\n    TabItem,\n    Swiper,\n    SwiperItem,\n    Card,\n    Scroller\n  },\n  data () {\n    return {\n      index: 0,\n      list2: ['1', '2', '3']\n    }\n  }\n}\n</script>\n\n<style scoped>\n.box1 {\n  height: 100px;\n  position: relative;\n  width: 1490px;\n}\n.box1-item {\n  width: 200px;\n  height: 100px;\n  background-color: #ccc;\n  display:inline-block;\n  margin-left: 15px;\n  float: left;\n  text-align: center;\n  line-height: 100px;\n}\n.box1-item:first-child {\n  margin-left: 0;\n}\n</style>"
  },
  {
    "path": "src/demos/Issue461.vue",
    "content": "<template>\n\t<div>\n\t\t<swiper height=\"150px\" dots-position=\"center\">\n      <swiper-item>\n        <p style=\"text-align:center;\">1</p>\n        <group>\n          <cell title=\"TEST\" :value=\"docType\" @click=\"showPopupPicker = true\"></cell>\n        </group>\n      </swiper-item>\n      <swiper-item>\n        <p style=\"text-align:center;\">2</p>\n      </swiper-item>\n      <swiper-item>\n        <p style=\"text-align:center;\">3</p>\n      </swiper-item>\n    </swiper>\n    <group>\n      <popup-picker :show.sync=\"showPopupPicker\" :show-cell=\"false\" title=\"TEST\" :data=\"docTypeList\" :value.sync=\"docType\"></popup-picker>\n    </group>\n\t</div>\n</template>\n\n<script>\nimport { Group, Cell, Swiper, SwiperItem, PopupPicker } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell,\n    Swiper,\n    SwiperItem,\n    PopupPicker\n  },\n  data () {\n    return {\n      docTypeList: [['1', '2', '3', '4', '5']],\n      docType: ['2'],\n      showPopupPicker: false\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Loading.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"Toggle\" :value=\"show1\" @on-change=\"show1change\"></x-switch>\n    </group>\n    <loading :show=\"show1\" :text=\"text1\"></loading>\n  </div>\n</template>\n\n<script>\nimport { Loading, Group, XSwitch } from '../components'\n\nexport default {\n  components: {\n    Loading,\n    Group,\n    XSwitch\n  },\n  data () {\n    return {\n      show1: false,\n      text1: 'Processing'\n    }\n  },\n  methods: {\n    show1change (val) {\n      this.show1=val\n      if (val) {\n        tick(0, (percent) => {\n          if (percent === 100) {\n            this.show1 = false\n            this.text1 = 'Start processing'\n            return\n          }\n          this.text1 = `${percent}% completed`\n        })\n      }\n    }\n  }\n}\n\nfunction tick (i, cb) {\n  setTimeout(function () {\n    i++\n    cb(i)\n    if (i < 100) {\n      tick(i, cb)\n    }\n  }, 50)\n}\n</script>\n"
  },
  {
    "path": "src/demos/Masker.vue",
    "content": "<template>\n  <div>\n    <div style=\"margin: 10px;overflow: hidden;\" v-for=\"item in list\">\n      <masker style=\"border-radius: 2px;\">\n        <div class=\"m-img\" :style=\"{backgroundImage: 'url(' + item.img + ')'}\"></div>\n        <div slot=\"content\" class=\"m-title\">\n          {{item.title}}\n          <br/>\n          <span class=\"m-time\">2016-03-18</span>\n        </div>\n      </masker>\n    </div>\n    <div style=\"margin: 10px;overflow: hidden;\">\n      <masker style=\"border-radius: 2px;\" color=\"F9C90C\" :opacity=\"0.8\">\n        <div class=\"m-img\" style=\"background-image:url(https://cdn.xiaotaojiang.com/uploads/56/4b3601364b86fdfd234ef11d8712ad/_.jpg)\"></div>\n        <div slot=\"content\" class=\"m-title\">\n          VUX\n          <br/>\n          <span class=\"m-time\">2016-03-18</span>\n        </div>\n      </masker>\n    </div>\n  </div>\n</template>\n\n<script>\nimport Masker from '../components/masker'\n\nexport default {\n  components: {\n    Masker\n  },\n  data () {\n    return {\n      list: [{\n        title: '洗颜新潮流！人气洁面皂排行榜',\n        img: 'https://cdn.xiaotaojiang.com/uploads/82/1572ec37969ee263735262dc017975/_.jpg'\n      }, {\n        title: '美容用品 & 日用品（上）',\n        img: 'https://cdn.xiaotaojiang.com/uploads/59/b22e0e62363a4a652f28630b3233b9/_.jpg'\n      }, {\n        title: '远离车内毒气，日本车载空气净化器精选',\n        img: 'https://cdn.xiaotaojiang.com/uploads/56/4b3601364b86fdfd234ef11d8712ad/_.jpg'\n      }]\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n.m-img {\n  padding-bottom: 33%;\n  display: block;\n  position: relative;\n  max-width: 100%;\n  background-size: cover;\n  background-position: center center;\n  cursor: pointer;\n  border-radius: 2px;\n}\n\n.m-title {\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  font-weight: 500;\n  font-size: 16px;\n  position: absolute;\n  left: 0;\n  right: 0;\n  width: 100%;\n  text-align: center;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n.m-time {\n  font-size: 12px;\n  padding-top: 4px;\n  border-top: 1px solid #f0f0f0;\n  display: inline-block;\n  margin-top: 5px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Number-roller.vue",
    "content": "<template>\n  <div>\n    <number-roller :number=\"number\" :width=\"6\" class=\"vux-center-h\"></number-roller>\n    <divider>set width dynamically</divider>\n    <number-roller :number=\"number2\" :width=\"length\" class=\"vux-center-h\"></number-roller>\n  </div>\n</template>\n\n<script>\nimport { NumberRoller, Divider } from '../components'\n\nexport default {\n  components: {\n    NumberRoller,\n    Divider\n  },\n  mounted () {\n    setInterval(() => {\n      this.number = 100000 + Math.round(Math.random() * 899999)\n    }, 3000)\n    setTimeout(() => {\n      this.number2 = 333\n    }, 3000)\n    setTimeout(() => {\n      this.number2 = 333\n    }, 5000)\n    setTimeout(() => {\n      this.number2 = 88\n    }, 8000)\n  },\n  computed: {\n    length () {\n      return String(this.number2).length\n    }\n  },\n  data () {\n    return {\n      number: 123765,\n      number2: 88\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../styles/center.less';\n</style>\n"
  },
  {
    "path": "src/demos/Number.vue",
    "content": "<template>\n  <div>\n    <group title=\"Default\">\n      <x-number name=\"number\" title=\"Number\"></x-number>\n    </group>\n\n    <group title=\"listen to change events\">\n      <x-number name=\"listen\" title=\"Number\" :value=\"0\" :min=\"0\" @on-change=\"change\"></x-number>\n    </group>\n\n    <group title=\"set width=100\">\n      <x-number title=\"Number\" :width=\"100\"></x-number>\n    </group>\n\n    <group title=\"set step=0.5\">\n      <x-number title=\"Number\" :step=\"0.5\"></x-number>\n    </group>\n\n    <group title=\"set value=1, min=-5 and max=8\">\n      <x-number title=\"Number\" :min=\"-5\" :max=\"8\" :value=\"1\"></x-number>\n    </group>\n\n    <group title=\"fillable = false\">\n      <x-number :value=\"10\" title=\"Number\" :fillable=\"false\"></x-number>\n    </group>\n\n    <group title=\"with other element\">\n      <x-number title=\"Number\" :min=\"-5\" :max=\"8\" :value=\"1\" type=\"inline\"></x-number>\n      <x-number title=\"Number\" :min=\"-5\" :max=\"8\" :value=\"1\" type=\"inline\"></x-number>\n      <x-switch title=\"Other element\" :value=\"true\"></x-switch>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, XNumber, XSwitch } from '../components'\n\nexport default {\n  components: {\n    XNumber,\n    Group,\n    XSwitch\n  },\n  methods: {\n    change (val) {\n      console.log('change', val)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Orientation.vue",
    "content": "<template>\n  <div>\n    <div v-orientation=\"landscape\" class=\"landscape\"><div>竖屏观看更合适哦</div></div>\n    <div v-orientation=\"portrait\" class=\"portrait\"><div>翻转手机看效果</div></div>\n  </div>\n</template>\n\n<script>\nimport Orientation from '../components/orientation'\n\nexport default {\n  directives: {\n    Orientation\n  }\n}\n</script>\n\n<style scoped>\n.landscape, .portrait {\n  position: fixed;\n  width: 100%;\n  height: 100%;\n  background-color: rgba(0, 0, 0, 0.8);\n  left: 0;\n  top: 0;\n  color: #fff;\n}\n.landscape > div, .portrait > div {\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  vertical-align: middle;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Panel.vue",
    "content": "<template>\n  <div>\n    <group title=\"switch the type\">\n      <radio title=\"type\" v-model=\"type\" :options=\"['1', '2', '3']\"></radio>\n    </group>\n    <panel header=\"图文组合列表\" :footer=\"footer\" :list=\"list\" :type=\"type\"></panel>\n  </div>\n</template>\n\n<script>\nimport { Panel, Group, Radio } from '../components'\n\nexport default {\n  components: {\n    Panel,\n    Group,\n    Radio\n  },\n  data () {\n    return {\n      type: '1',\n      list: [{\n        src: 'http://placeholder.qiniudn.com/60x60/3cc51f/ffffff',\n        title: '标题一',\n        desc: '由各种物质组成的巨型球状天体，叫做星球。星球有一定的形状，有自己的运行轨道。',\n        url: '/component/cell'\n      }, {\n        src: 'http://placeholder.qiniudn.com/60x60/3cc51f/ffffff',\n        title: '标题二',\n        desc: '由各种物质组成的巨型球状天体，叫做星球。星球有一定的形状，有自己的运行轨道。',\n        url: {\n          path: '/component/radio',\n          replace: false\n        }\n      }],\n      footer: {\n        title: '查看更多',\n        url: 'http://vux.li'\n      }\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Picker.vue",
    "content": "<template>\n  <div>\n    <group-title>默认，不设置默认值时选中第一个</group-title>\n    <picker :data='years' :value='year1' @on-change='change'></picker>\n    <br>\n    <group-title>异步加载及动态改变数据</group-title>\n    <picker :data='years001' :value='year001' @on-change='change'></picker>\n    <br>\n    <group>\n      <cell title=\"current value\" :value=\"val1\"></cell>\n    </group>\n    <x-button type=\"primary\" @click=\"changeValue([['1','3','5','7','9','11'],['2','3','4','5'],['a','b','c']])\">Set Data1</x-button>\n    <x-button type=\"primary\" @click=\"changeValue([['1','3','5','7','9','11'],['2','3','4','5']])\">Set Data1</x-button>\n    <x-button type=\"primary\" @click=\"changeValue([['2','4','6','8','10','11']])\">Set Data2</x-button>\n    <br>\n    <group-title>设置默认值时</group-title>\n    <picker :data='years' :value='year2' @on-change='change'></picker>\n    <br>\n    <group-title>双向绑定</group-title>\n    <picker :data=\"years\" :value=\"year3\" @on-change='change3'></picker>\n    <select v-model=\"year5\">\n      <option v-for='one in years[0]' :value=\"one.value\">{{one.name}}</option>\n    </select>\n    <br>\n    <group-title>非联动多列</group-title>\n    <picker :data='years1' :value='year4' @on-change='change'></picker>\n    <br>\n    <group-title>五列</group-title>\n    <picker :data='year6' :value='year6Value' @on-change='change'></picker>\n    <br>\n    <group-title>地区联动: 当前值{{year7Value}}</group-title>\n    <picker :data=\"year7\" :columns=\"3\" :value=\"year7Value\" @on-change=\"change\"></picker>\n    <x-button @click=\"setData1\" type=\"primary\">set Value to [\"USA\", \"usa002\", \"0005\"]</x-button>\n    <x-button @click=\"setData2\" type=\"primary\">set Value to [\"china\", \"china002\", \"gz\"]</x-button>\n    <x-button @click=\"setList\" type=\"primary\">set List</x-button>\n    <br>\n    <group-title>3列的数据，只显示两列</group-title>\n    <picker :data='year7' :fixed-columns=\"2\" :columns=3 :value='year8Value' @on-change='change'></picker>\n  </div>\n</template>\n\n<script>\nimport { Cell, Group, Picker, GroupTitle, XButton } from '../components'\n\nlet years = []\nfor (var i = 2000; i <= 2030; i++) {\n  years.push({\n    name: i + '年',\n    value: i + ''\n  })\n}\nexport default {\n  mounted () {},\n  components: {\n    Picker,\n    GroupTitle,\n    XButton,\n    Cell,\n    Group\n  },\n  methods: {\n    changeValue (value) {\n      this.years001 = value\n    },\n    change (value) {\n      this.year001=value\n      console.log('new Value', value)\n    },\n    change3 (value) {\n      this.year5 = value[0]+''\n      console.log(this.year5)\n    },\n    setData1 () {\n      this.year7Value = ['USA', 'usa002', '0005']\n    },\n    setData2 () {\n      this.year7Value = ['china', 'china002', 'gz']\n    },\n    setList () {\n      this.year7.push({\n        name: '美国002_003',\n        value: '0007',\n        parent: 'usa002'\n      })\n    }\n  },\n  computed: {\n    val1(){\n      return this.year001.join(\"-\")\n    }\n  },\n  watch: {\n    year5: {\n      handler (val) {\n        this.year3[0] = val\n        // this.year3.$set(0, val)\n        this.$set(this.year3,0,val)\n      },\n      deep: true\n    },\n    change3 (value) {\n      this.year5 = value[0]\n    }\n  },\n  data () {\n    return {\n      years: [years],\n      years001: [],\n      year001: [''],\n      years1: [years, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]],\n      year1: [''],\n      year2: ['2002'],\n      year3: ['2005'],\n      year4: ['2002', '4'],\n      year5: '2005',\n      year6: [\n        ['你', '我', '他'],\n        ['you', 'I', 'him'],\n        ['ni', 'wo', 'ta'],\n        [1, 2, 3, 4, 5],\n        [5, 4, 3, 2, 1]\n      ],\n      year6Value: ['我', 'him', 'ni', '1', '2'],\n      year7: [{\n        name: '中国',\n        value: 'china',\n        parent: 0\n      }, {\n        name: '美国',\n        value: 'USA',\n        parent: 0\n      }, {\n        name: '广东',\n        value: 'china001',\n        parent: 'china'\n      }, {\n        name: '广西',\n        value: 'china002',\n        parent: 'china'\n      }, {\n        name: '美国001',\n        value: 'usa001',\n        parent: 'USA'\n      }, {\n        name: '美国002',\n        value: 'usa002',\n        parent: 'USA'\n      }, {\n        name: '广州',\n        value: 'gz',\n        parent: 'china001'\n      }, {\n        name: '深圳',\n        value: 'sz',\n        parent: 'china001'\n      }, {\n        name: '广西001',\n        value: 'gz',\n        parent: 'china002'\n      }, {\n        name: '广西002',\n        value: 'sz',\n        parent: 'china002'\n      }, {\n        name: '美国001_001',\n        value: '0003',\n        parent: 'usa001'\n      }, {\n        name: '美国001_002',\n        value: '0004',\n        parent: 'usa001'\n      }, {\n        name: '美国002_001',\n        value: '0005',\n        parent: 'usa002'\n      }, {\n        name: '美国002_002',\n        value: '0006',\n        parent: 'usa002'\n      }],\n      year7Value: [],\n      year8Value: []\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Popup-picker.vue",
    "content": "<template>\n  <div>\n    <group title=\"single column\">\n      <popup-picker :title=\"title1\" :data=\"list1\" :value=\"value1\" @on-show=\"onShow\" @on-hide=\"onHide\"></popup-picker>\n    </group>\n    <br>\n    <div class=\"picker-buttons\">\n      <x-button type=\"primary\" @click=\"changeList10\">重新赋值列表</x-button>\n      <x-button type=\"primary\" @click=\"changeList11\">push方式更改列表</x-button>\n    </div>\n    <group title=\"double columns\">\n      <popup-picker :title=\"title2\" :data=\"list2\" :value=\"value2\"></popup-picker>\n    </group>\n    <br>\n\n    <group title=\"chained columns\">\n      <popup-picker :title=\"title3\" :data=\"list3\" :columns=\"3\" :value=\"value3\" ref=\"picker3\" @on-hide=\"onPopPickerHide\"></popup-picker>\n      <cell title=\"获取值对应的值\" :value=\"value8\"></cell>\n      <cell title=\"获取值对应的文字\" :value=\"nameValues\"></cell>\n      <popup-picker :title=\"title4\" :data=\"list3\" :columns=\"3\" :value=\"value4\" show-name></popup-picker>\n    </group>\n\n    <br>\n    <div class=\"picker-buttons\">\n      <x-button type=\"primary\" @click=\"changeList21\">push方式更改列表</x-button>\n    </div>\n\n    <br>\n    <divider ref=\"kkk\">Control the visibility of popup-picker 隐藏cell</divider>\n    <div style=\"margin: 0 15px;\">\n      <x-button @click=\"onShowPopupPicker(true)\" type=\"primary\">Show PopupPicker. value: {{value5}}</x-button>\n    </div>\n    <group>\n      <popup-picker :show=\"showPopupPicker\" title=\"TEST\" :showCell=\"false\" :data=\"[['1', '2', '3', '4', '5']]\" :value=\"value5\" @on-shadow-change=\"changeList20\" @on-ok=\"getValue\" @on-hide=\"showPopupPicker=false\"></popup-picker>\n    </group>\n\n    <br>\n    <br>\n    <br>\n\n  </div>\n</template>\n\n<script>\nimport { PopupPicker, Group, Cell, Picker, XButton, Divider,  XSwitch } from '../components'\n\nexport default {\n  components: {\n    PopupPicker,\n    Group,\n    Picker,\n    XButton,\n    Divider,\n    Cell,\n    XSwitch\n  },\n  methods: {\n    //on-hide(ture是确定false是取消，当前的值)\n    onPopPickerHide(closeType,val){\n      if(closeType) this.value8 = val.join('')\n      this.nameValues=this.$refs.picker3.getNameValues()\n    },\n    changeList10 () {\n      this.list1 = [['小米1', 'iPhone1', '华为1', '情怀1', '三星1', '其他1', '不告诉你1']]\n    },\n    changeList11 () {\n      this.list1[0].push('我是push条目')\n    },\n    changeList20 (val) {\n      console.log('你当前选择的是：'+val)\n    },\n    changeList21 () {\n      this.list3.push({\n        name: '美国002_007',\n        value: '0007',\n        parent: 'usa002'\n      })\n    },\n    onShow () {\n      console.log('on show')\n    },\n    onHide (type) {\n      console.log('on hide', type)\n    },\n    onShowPopupPicker(is){\n      this.showPopupPicker=is\n    },\n    getValue(val){\n      this.value5=val;\n    }\n  },\n  mounted(){\n    // this.NameValues=this.$refs.picker3.getNameValues()\n  },\n  data () {\n    return {\n      nameValues: '',\n      title1: '手机机型',\n      title2: '详细机型',\n      title3: '联动显示值',\n      title4: '联动显示文字',\n      list1: [['小米', 'iPhone', '华为', '情怀', '三星', '其他', '不告诉你']],\n      list2: [['小米', 'iPhone', '华为', '情怀', '三星', '其他', '不告诉你'], ['小米1', 'iPhone2', '华为3', '情怀4', '三星5', '其他6', '不告诉你7']],\n      list3: [{\n        name: '中国',\n        value: 'china',\n        parent: 0\n      }, {\n        name: '美国',\n        value: 'USA',\n        parent: 0\n      }, {\n        name: '广东',\n        value: 'china001',\n        parent: 'china'\n      }, {\n        name: '广西',\n        value: 'china002',\n        parent: 'china'\n      }, {\n        name: '美国001',\n        value: 'usa001',\n        parent: 'USA'\n      }, {\n        name: '美国002',\n        value: 'usa002',\n        parent: 'USA'\n      }, {\n        name: '广州',\n        value: 'gz',\n        parent: 'china001'\n      }, {\n        name: '深圳',\n        value: 'sz',\n        parent: 'china001'\n      }, {\n        name: '广西001',\n        value: 'gx001',\n        parent: 'china002'\n      }, {\n        name: '广西002',\n        value: 'gx002',\n        parent: 'china002'\n      }, {\n        name: '美国001_001',\n        value: '0003',\n        parent: 'usa001'\n      }, {\n        name: '美国001_002',\n        value: '0004',\n        parent: 'usa001'\n      }, {\n        name: '美国002_001',\n        value: '0005',\n        parent: 'usa002'\n      }, {\n        name: '美国002_002',\n        value: '0006',\n        parent: 'usa002'\n      }],\n      value1: ['iPhone'],\n      value2: ['iPhone', '华为3'],\n      value3: [],\n      value4: [],\n      showPopupPicker: false,\n      value5: ['2'],\n      switch6: false,\n      value6: [],\n      value8:''\n    }\n  }\n}\n</script>\n\n<style scoped>\n.picker-buttons {\n  margin: 0 15px;\n}\n</style>\n\n"
  },
  {
    "path": "src/demos/Popup.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"Default popup\" v-model=\"show\"></x-switch>\n      <x-switch title=\"Full popup\" v-model=\"show1\"></x-switch>\n      <x-switch title=\"with a Scroller\" v-model=\"show2\"></x-switch>\n      <x-switch title=\"Multi popup (first)\" v-model=\"show3\"></x-switch>\n      <x-switch title=\"Mask disable\" v-model=\"show5\"></x-switch>\n      <x-switch title=\"Popup address\" v-model=\"show6\"></x-switch>\n    </group>\n    <popup v-model=\"show\" @on-hide=\"log('hide')\" @on-show=\"log('show')\">\n      <div class=\"popup0\">\n        <group>\n          <x-switch title=\"Another Switcher\" v-model=\"show\"></x-switch>\n          <x-switch title=\"Show Toast\" v-model=\"showToast\"></x-switch>\n        </group>\n      </div>\n    </popup>\n\n    <toast v-model=\"showToast\">You did it!</toast>\n\n    <popup v-model=\"show1\" height=\"100%\">\n      <div class=\"popup1\">\n        <group>\n          <x-switch title=\"Another Switcher\" v-model=\"show1\"></x-switch>\n        </group>\n      </div>\n    </popup>\n\n    <popup v-model=\"show2\" height=\"200px\" @on-first-show=\"resetScroller\">\n      <scroller height=\"100px\" lock-x style=\"border:1px solid red;\" ref=\"scroller\">\n        <div>\n          <p v-for=\"i of 10\">{{i}}</p>\n        </div>\n      </scroller>\n    </popup>\n\n    <popup v-model=\"show3\">\n      <div class=\"popup2\">\n        <group>\n          <x-switch title=\"Multi Popup (first)\" v-model=\"show3\"></x-switch>\n          <x-switch title=\"Multi Popup (second)\" v-model=\"show4\"></x-switch>\n        </group>\n        this is the first popup\n      </div>\n    </popup>\n\n    <popup v-model=\"show4\">\n      <div class=\"popup2\">\n        <group>\n          <x-switch title=\"Multi Popup (second)\" v-model=\"show4\"></x-switch>\n        </group>\n        this is the second popup\n      </div>\n    </popup>\n\n    <popup v-model=\"show5\" :hide-on-blur=false>\n      <div class=\"popup2\">\n        <group>\n          <x-switch title=\"Mask disable\" v-model=\"show5\"></x-switch>\n        </group>\n        The mask cannot be clicked!\n      </div>\n    </popup>\n\n    <popup v-model=\"show6\">\n      <div class=\"popup1\">\n        <group>\n          <x-switch title=\"Popup address\" v-model=\"show6\"></x-switch>\n        </group>\n        <group>\n          <!-- <address :title=\"title6\" v-model=\"value6\" :list=\"addressData\" placeholder=\"请选择地址\" inline-desc=\"可以设置placeholder\"></address> -->\n        </group>\n      </div>\n    </popup>\n\n  </div>\n</template>\n\n<script>\nimport { Popup, Group, XSwitch, Scroller, Toast, Address, AddressChinaData } from '../components'\n// import { Popup, Group, XSwitch, Toast } from '../components'\nexport default {\n  components: {\n    Popup,\n    Group,\n    XSwitch,\n    Scroller,\n    Toast,\n    // Address\n  },\n  data () {\n    return {\n      // addressData: AddressChinaData,\n      show: false,\n      show1: false,\n      show2: false,\n      show3: false,\n      show4: false,\n      show5: false,\n      show6: false,\n      title6: '默认空的',\n      value6: [],\n      showToast: false,\n      value :false\n    }\n  },\n  methods: {\n    resetScroller () {\n      this.$refs.scroller.reset()\n    },\n    log (str) {\n      console.log(str)\n    },\n    onclick(){\n      this.show=!this.show;\n    }\n  }\n}\n</script>\n\n<style>\n.popup0 {\n  padding-bottom:15px;\n  height:200px;\n}\n.popup1 {\n  width:100%;\n  height:100%;\n}\n.popup2 {\n  padding-bottom:15px;\n  height:400px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Previewer.vue",
    "content": "<template>\n  <div>\n    <img class=\"previewer-demo-img\" v-for=\"(item, index) in list\" :src=\"item.src\" width=\"100\" @click=\"onImgClick(index)\">\n    <!-- <previewer :list=\"list\" ref=\"previewer\" :options=\"options\"></previewer> -->\n    <previewer :list=\"list\" ref=\"previewer\"></previewer>\n\n  </div>\n</template>\n\n<script>\nimport { Previewer } from '../components'\n\nexport default {\n  components: {\n    Previewer\n  },\n  data () {\n    return {\n      list: [{\n        src: 'http://og1rlwcj8.bkt.clouddn.com/005JqWi9gw1ewwctbyvbsj30c8096t8y.jpg',\n        w: 600,\n        h: 400\n      },\n      {\n        src: 'http://og1rlwcj8.bkt.clouddn.com/20141111234454_AwKCm.thumb.700_0.jpeg',\n        w: 1200,\n        h: 900\n      },\n      {\n        src: 'http://og1rlwcj8.bkt.clouddn.com/zxy.jpg',\n        w: 400,\n        h: 400\n      }],\n      options: {\n        getThumbBoundsFn (index) {\n          // find thumbnail element\n          let thumbnail = document.querySelectorAll('.previewer-demo-img')[index]\n          // get window scroll Y\n          let pageYScroll = window.pageYOffset || document.documentElement.scrollTop\n          // optionally get horizontal scroll\n          // get position of element relative to viewport\n          let rect = thumbnail.getBoundingClientRect()\n          // w = width\n          return {x: rect.left, y: rect.top + pageYScroll, w: rect.width}\n          // Good guide on how to get element coordinates:\n          // http://javascript.info/tutorial/coordinates\n        }\n      }\n    }\n  },\n  methods:{\n    onImgClick(index){\n      this.$refs.previewer.show(index)\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Progress.vue",
    "content": "<template>\n  <div>\n    <br>\n    <x-progress :percent=\"percent\" @on-cancel=\"onCancel\"></x-progress>\n    <br>\n    <box gap=\"10px\">\n      <x-progress :percent=\"percent1\" :show-cancel=\"false\"></x-progress>\n    </box>\n    <toast v-model=\"show\" text=\"Bingo!!!!\"></toast>\n  </div>\n</template>\n\n<script>\nimport { XProgress, Box,Toast } from '../components'\n\nfunction tick (i, cb) {\n  setTimeout(function () {\n    i++\n    cb(i)\n    if (i < 100) {\n      tick(i, cb)\n    }\n  }, 50)\n}\n\nexport default {\n  components: {\n    XProgress,\n    Box,\n    Toast\n  },\n  data () {\n    return {\n      percent: 80,\n      percent1: 20,\n      show:false\n    }\n  },\n  mounted(){\n    tick(this.percent1, (percent) => {\n      this.percent1=percent\n      if(percent===100) this.show=true\n    })\n  },\n  methods:{\n    onCancel(){\n      this.percent=0\n\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Pulldown.vue",
    "content": "<template>\n  <div>\n\n    <divider>Pull Down to Refresh</divider>\n    <scroller lock-x scrollbar-y use-pulldown height=\"200px\" @pulldown:loading=\"load\">\n      <div class=\"box2\">\n        <p v-for=\"i in 80\">placeholder {{i}}</p>\n      </div>\n    </scroller>\n\n    <divider>Chinese: 下拉刷新</divider>\n    <scroller lock-x scrollbar-y use-pulldown :pulldown-config=\"{content:'下拉刷新',downContent:'下拉刷新',upContent:'释放刷新',loadingContent:'加载中'}\" height=\"200px\" @pulldown:loading=\"load\">\n      <div class=\"box2\">\n        <p v-for=\"i in 80\">占位 {{i}}</p>\n      </div>\n    </scroller>\n\n    <divider>custom pulldown html template</divider>\n\n    <scroller lock-x scrollbar-y use-pulldown height=\"200px\" :pullStatus=\"pullStatus\" @pulldown:loading=\"load\">\n      <!--content slot-->\n      <div class=\"box2\">\n        <p v-for=\"i in 80\">placeholder {{i}}</p>\n      </div>\n\n      <!--pulldown slot-->\n      <div slot=\"pulldown\" class=\"xs-plugin-pulldown-container xs-plugin-pulldown-down\" style=\"position: absolute; width: 100%; height: 60px; line-height: 60px; top: -60px; text-align: center;\">\n        <span v-show=\"pullStatus.down === 'default'\"></span>\n        <span class=\"pulldown-arrow\" v-show=\"pullStatus.down === 'down' || pullStatus.down === 'up'\" :class=\"{'rotate': pullStatus.down === 'up'}\">↓</span>\n        <span v-show=\"pullStatus.down === 'loading'\"><spinner type=\"ios-small\"></spinner></span>\n      </div>\n    </scroller>\n   {{pullStatus.down}}\n\n  </div>\n</template>\n\n<script>\nimport { Scroller, Divider, Spinner } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Divider,\n    Spinner\n  },\n  methods: {\n    load (that) {\n      setTimeout(function () {\n        that.$emit('pulldown:reset', that.uuid)\n      }, 1000)\n    }\n  },\n  data () {\n    return {\n      // pulldownStatus: 'default',\n      pullStatus:{\n        down:'default'\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.box1 {\n  height: 100px;\n  position: relative;\n  width: 1490px;\n}\n.box1-item {\n  width: 200px;\n  height: 100px;\n  background-color: #ccc;\n  display:inline-block;\n  margin-left: 15px;\n  float: left;\n  text-align: center;\n  line-height: 100px;\n}\n.box1-item:first-child {\n  margin-left: 0;\n}\n.box2-wrap {\n  height: 300px;\n  overflow: hidden;\n}\n.rotate {\n  transform: rotate(-180deg);\n}\n.pulldown-arrow {\n  display: inline-block;\n  transition: all linear 0.2s;\n  color: #666;\n  font-size: 25px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/PulldownPullup.vue",
    "content": "<template>\n  <div>\n    <divider>下拉刷新和上拉加载更多组合</divider>\n    <scroller lock-x scrollbar-y use-pullup use-pulldown height=\"200px\" @pullup:loading=\"loadMore\" @pulldown:loading=\"refresh\" :pullStatus=\"pullStatus\" ref=\"scroller\">\n      <div class=\"box2\">\n        <p v-for=\"i in n\">placeholder {{i}}</p>\n      </div>\n      <!--pullup slot-->\n      <div slot=\"pullup\" class=\"xs-plugin-pullup-container xs-plugin-pullup-up\" style=\"position: absolute; width: 100%; height: 40px; bottom: -40px; text-align: center;\">\n        <span v-show=\"pullStatus.up === 'default'\"></span>\n        <span class=\"pullup-arrow\" v-show=\"pullStatus.up === 'down' || pullStatus.up === 'up'\" :class=\"{'rotate': pullStatus.up === 'up'}\">↑</span>\n        <span v-show=\"pullStatus.up === 'loading'\"><spinner type=\"ios-small\"></spinner></span>\n      </div>\n    </scroller>\n    <group>\n      <x-switch :title=\"pullupEnabled ? '禁用Pullup' : '启用Pullup'\" :value=\"true\" @on-change=\"changePullupStatus\"></x-switch>\n    </group>\n\n    <divider>上拉加载重置</divider>\n    <scroller lock-x scrollbar-y use-pullup height=\"200px\" @pullup:loading=\"loadMore1\" ref=\"scroller1\">\n      <div class=\"box2\">\n        <p v-for=\"j in n1\">placeholder {{j}}</p>\n      </div>\n    </scroller>\n  </div>\n</template>\n\n<script>\nimport { Scroller, Divider, XSwitch, Group, Spinner } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Divider,\n    XSwitch,\n    Group,\n    Spinner\n  },\n  methods: {\n    loadMore (that) {\n      setTimeout(() => {\n        this.n += 10\n        this.$nextTick(() => {\n          // this.$broadcast('pullup:reset', uuid)\n          that.$emit('pullup:reset', that.uuid)\n        })\n      }, 2000)\n    },\n    refresh (that) {\n      setTimeout(() => {\n        this.n = 10\n        this.$nextTick(() => {\n          // this.$broadcast('pulldown:reset', uuid)\n          that.$emit('pulldown:reset', that.uuid)\n        })\n      }, 2000)\n    },\n    changePullupStatus (enabled) {\n      if (enabled) {\n        // this.$broadcast('pullup:enable', this.$refs.scroller.uuid)\n        this.$refs.scroller.$emit('pullup:enable',this.$refs.scroller.uuid)\n        this.pullupEnabled = true\n      } else {\n        // this.$broadcast('pullup:disable', this.$refs.scroller.uuid)\n        this.$refs.scroller.$emit('pullup:disable',this.$refs.scroller.uuid)\n        this.pullupEnabled = false\n      }\n    },\n    loadMore1 (that) {\n      setTimeout(() => {\n        this.n1 += 10\n        this.$nextTick(() => {\n          // this.$broadcast('pullup:reset', uuid)\n          that.$emit('pullup:reset', that.uuid)\n          if (this.n1 >= 30) {\n            // this.$broadcast('pullup:disable', uuid)\n            that.$emit('pullup:disable', that.uuid)\n            console.log('No more data, Pullup disabled!')\n          }\n        })\n      }, 2000)\n    }\n  },\n  data () {\n    return {\n      n: 10,\n      n1: 10,\n      pullupEnabled: true,\n      // pullupStatus: 'default'\n      pullStatus:{\n        down:'default',\n        up:'default'\n      }\n    }\n  }\n}\n</script>\n<style lang=\"less\" scoped>\n.box2-wrap {\n  height: 300px;\n  overflow: hidden;\n}\n.rotate {\n  display: inline-block;\n  transform: rotate(-180deg);\n}\n.pullup-arrow {\n  transition: all linear 0.2s;\n  color: #666;\n  font-size: 25px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Pullup.vue",
    "content": "<template>\n  <div>\n    <divider>Pull Up to Refresh</divider>\n    <scroller lock-x scrollbar-y use-pullup height=\"200px\" @pullup:loading=\"load1\">\n      <div class=\"box2\">\n        <p v-for=\"i in n1\">placeholder {{i}}</p>\n      </div>\n    </scroller>\n\n    <divider>Chinese: 上拉刷新</divider>\n    <scroller lock-x scrollbar-y use-pullup :pullup-config=\"pullupConfig2\" height=\"200px\" @pullup:loading=\"load2\">\n      <div class=\"box2\">\n        <p v-for=\"i in n2\">占位 {{i}}</p>\n      </div>\n    </scroller>\n\n    <divider>custom pullup html template</divider>\n    <scroller lock-x scrollbar-y use-pullup height=\"200px\" :pullStatus=\"pullStatus\" @pullup:loading=\"load3\">\n      <!--content slot-->\n      <div class=\"box2\">\n        <p v-for=\"i in n3\">placeholder {{i}}</p>\n      </div>\n\n      <!--pullup slot-->\n      <div slot=\"pullup\" class=\"xs-plugin-pullup-container xs-plugin-pullup-up\" style=\"position: absolute; width: 100%; height: 40px; bottom: -40px; text-align: center;\">\n        <span v-show=\"pullStatus.up === 'default'\"></span>\n        <span class=\"pullup-arrow\" v-show=\"pullStatus.up === 'down' || pullStatus.up === 'up'\" :class=\"{'rotate': pullStatus.up === 'up'}\">↑</span>\n        <span v-show=\"pullStatus.up === 'loading'\"><spinner type=\"ios-small\"></spinner></span>\n      </div>\n    </scroller>\n\n  </div>\n</template>\n\n<script>\nimport { Scroller, Divider, Spinner } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Divider,\n    Spinner\n  },\n  methods: {\n    load1 (that) {\n      setTimeout(() => {\n        this.n1 += 10\n        setTimeout(() => {\n          // this.$broadcast('pullup:reset', uuid)\n          that.$emit('pullup:reset', that.uuid)\n        }, 10)\n      }, 2000)\n    },\n    load2 (that) {\n      setTimeout(() => {\n        if (this.n2 === 30) {\n          // this.$broadcast('pullup:done', uuid)\n          that.$emit('pullup:done', that.uuid)\n        } else {\n          this.n2 += 10\n          setTimeout(() => {\n            // this.$broadcast('pullup:reset', uuid)\n            that.$emit('pullup:reset', that.uuid)\n          }, 10)\n        }\n      }, 2000)\n    },\n    load3 (that) {\n      setTimeout(() => {\n        this.n3 += 10\n        setTimeout(() => {\n          // this.$broadcast('pullup:reset', uuid)\n          that.$emit('pullup:reset', that.uuid)\n        }, 10)\n      }, 2000)\n    }\n  },\n  data () {\n    return {\n      pullStatus:{\n        up:'default'\n      },\n      // pullupStatus: 'default',\n      n1: 10,\n      n2: 10,\n      n3: 10,\n      pullupConfig2: {\n        content: '上拉加载更多',\n        downContent: '松开进行加载',\n        upContent: '上拉加载更多',\n        loadingContent: '加载中...'\n      }\n    }\n  }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.box1 {\n  height: 100px;\n  position: relative;\n  width: 1490px;\n}\n.box1-item {\n  width: 200px;\n  height: 100px;\n  background-color: #ccc;\n  display:inline-block;\n  margin-left: 15px;\n  float: left;\n  text-align: center;\n  line-height: 100px;\n}\n.box1-item:first-child {\n  margin-left: 0;\n}\n.box2-wrap {\n  height: 300px;\n  overflow: hidden;\n}\n.rotate {\n  display: inline-block;\n  transform: rotate(-180deg);\n}\n.pullup-arrow {\n  transition: all linear 0.2s;\n  color: #666;\n  font-size: 25px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Qrcode.vue",
    "content": "<template>\n  <div style=\"text-align:center;margin-top:15px;\">\n    <divider>Notice: It cannot be extracted by Wechat</divider>\n    <qrcode value=\"https://vux.li\"></qrcode>\n    <br>\n    <br>\n    <qrcode :value=\"value\" :fg-color=\"fgColor\"></qrcode>\n    <br>\n    <span>current url: {{value}}</span>\n    <br>\n    <span>current fgColor: {{fgColor}}</span>\n  </div>\n</template>\n\n<script>\nimport Qrcode from '../components/qrcode'\nimport { Divider } from '../components'\n\nexport default {\n  mounted () {\n    setInterval(() => {\n      this.value = `https://vux.li?t=${Math.random()}`\n      this.fgColor = `#${Math.floor(Math.random() * 16777215).toString(16)}`\n    }, 1000)\n  },\n  components: {\n    Qrcode,\n    Divider\n  },\n  data () {\n    return {\n      value: 'https://vux.li',\n      fgColor: '#000000'\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Radio.vue",
    "content": "<template>\n  <div>\n    <group title=\"default\">\n      <radio :options=\"radio001\" @on-change=\"change\"></radio>\n    </group>\n\n    <group title=\"preselect 'China'\">\n      <radio :options=\"radio001\" value=\"China\"></radio>\n    </group>\n\n    <group :title=\"'fill mode value is '+radio001Value\">\n      <radio fill-mode :options=\"radio001\" v-model=\"radio001Value\" @on-change=\"change\"></radio>\n    </group>\n\n    <group title=\"fill mode with custom placeholder and label\">\n      <radio fill-mode fill-label=\"Other\" fill-placeholder=\"填写其他的哦\" :options=\"radio001\" @on-change=\"change\"></radio>\n    </group>\n\n    <group title=\"object options\">\n      <radio fill-mode fill-label=\"Other\" fill-placeholder=\"other\" :options=\"radio003\" @on-change=\"change\"></radio>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Radio, Group, DevTip } from '../components'\n\nexport default {\n  components: {\n    Radio,\n    Group,\n    DevTip\n  },\n  data () {\n    return {\n      radio001: [ 'China', 'Japan' ],\n      radio001Value: 'China',\n      radio002Value: 'Japan',\n      radio003: [{\n        key: '001',\n        value: 'radio001'\n      }, {\n        key: '002',\n        value: 'radio002'\n      }]\n    }\n  },\n  methods: {\n    change (value) {\n      console.log('change:', value)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Range.vue",
    "content": "<template>\n  <div>\n    <group title=\"default range\">\n      <cell title=\"Default\" :inline-desc=\"'value: '+data1\" primary=\"content\">\n        <range v-model=\"data1\"></range>\n      </cell>\n      <cell title=\"allow decimals\" :inline-desc=\"'value is: '+data2\" primary=\"content\">\n        <range v-model=\"data2\" decimal></range>\n      </cell>\n      <cell title=\"value=20\" :inline-desc=\"'value is: '+data3\" primary=\"content\">\n        <range v-model=\"data3\"></range>\n      </cell>\n    </group>\n    <group title=\"min and max\">\n      <cell title=\"min=8\" :inline-desc=\"'value is: '+data4\" primary=\"content\">\n        <range v-model=\"data4\" :min=\"8\"></range>\n      </cell>\n      <cell title=\"max=88\" :inline-desc=\"'value is: '+data5\" primary=\"content\">\n        <range v-model=\"data5\" :max=\"88\"></range>\n      </cell>\n      <cell title=\"min and max\" :inline-desc=\"'value is: '+data6\" primary=\"content\">\n        <range v-model=\"data6\" :min=\"7\" :max=\"77\"></range>\n      </cell>\n      <cell title=\"change min and max\" primary=\"content\">\n        <range v-model=\"dynamiValue\" :min=\"min\" :max=\"max\"></range>\n      </cell>\n      <cell title=\"current value\" :value=\"dynamiValue + ''\"></cell>\n    </group>\n    <br>\n    <div style=\"margin:0 10px;\">\n      <x-button type=\"primary\" @click=\"update\">update min and max</x-button>\n    </div>\n\n    <group title=\"Step\">\n      <cell title=\"step=10\" :inline-desc=\"'valus is: '+data7\" primary=\"content\">\n        <range v-model=\"data7\" :min=\"7\" :max=\"77\" :step=\"10\"></range>\n      </cell>\n    </group>\n\n    <group title=\"disabled\">\n      <cell title=\"disabled=true\" :inline-desc=\"'valus is: '+data8\" primary=\"content\">\n        <range v-model=\"data8\" disabled></range>\n      </cell>\n      <cell title=\"Opacity\" :inline-desc=\"'valus is: '+data8\" primary=\"content\">\n        <range v-model=\"data8\" disabled :disabled-opacity=\"0.1\"></range>\n      </cell>\n    </group>\n\n    <group title=\"bar height\">\n      <cell title=\"Line width\" :inline-desc=\"'value is: '+data9\" primary=\"content\">\n        <range v-model=\"data9\" :range-bar-height=\"4\"></range>\n      </cell>\n    </group>\n\n    <group title=\"custom min and max html\">\n      <cell title=\"文字大小\" :inline-desc=\"'fontSize: ' + data10\" primary=\"content\">\n        <range v-model=\"data10\" :min=\"12\" :max=\"22\" minHTML=\"<span style='font-size:12px;'>小</span>\" maxHTML=\"<span style='font-size:22px;'>大</span>\"></range>\n      </cell>\n      <cell title=\"bcontentness\" :inline-desc=\"'value is: ' + data11 + '%'\" primary=\"content\">\n        <range v-model=\"data11\" minHTML=\"<span style='font-size:16px;color:#F90;'>☼</span>\" maxHTML=\"<span style='font-size:30px;color:#F90;'>☼</span>\"></range>\n      </cell>\n    </group>\n\n    <group title=\"two way binding\">\n      <cell title=\"Default\" primary=\"content\">\n        <range v-model=\"data12\"></range>\n      </cell>\n      <cell title=\"Default\" primary=\"content\">\n        <range v-model=\"data12\"></range>\n      </cell>\n    </group>\n\n    <group :title=\"'use v-show ' + 'data: ' + data13\">\n      <cell title=\"Default\" primary=\"content\">\n        <range :step=\"10\" v-model=\"data13\" v-show=\"showData13\"></range>\n      </cell>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { XButton, Range, Group, GroupTitle, Cell } from '../components'\n\nexport default {\n  components: {\n    Range,\n    Group,\n    GroupTitle,\n    Cell,\n    XButton\n  },\n  mounted () {\n    setTimeout(() => {\n      this.showData13 = true\n    }, 2000)\n  },\n  data () {\n    return {\n      data1: 0,\n      data2: 0,\n      data3: 20,\n      data4: 18,\n      data5: 28,\n      data6: 37,\n      data7: 17,\n      data8: 25,\n      data9: 50,\n      data10: 14,\n      data11: 30,\n      data12: 0,\n      data13: 10,\n      showData13: false,\n      min: 0,\n      max: 100,\n      dynamiValue: 0\n    }\n  },\n  methods: {\n    update () {\n      this.min = Math.floor(Math.random() * 30)\n      this.max = Math.floor(50 + Math.random() * 100)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Rater.vue",
    "content": "<template>\n  <div>\n    <group title=\"Normal Usage\">\n      <cell title=\"set default score = 5\" inline-desc=\"total 5 stars if not specified\">\n        <rater v-model=\"data3\" slot=\"value\"></rater>\n      </cell>\n      <cell title=\"change color\">\n        <rater v-model=\"data3\" slot=\"value\" :max=\"6\" active-color=\"#04BE02\"></rater>\n      </cell>\n    </group>\n\n    <group title=\"disabled = true\">\n      <cell title=\"Your history score\">\n        <rater v-model=\"data4\" slot=\"value\" disabled></rater>\n      </cell>\n      <cell :title=\"'Decimal score ' + data41 \">\n        <rater v-model=\"data41\" slot=\"value\" active-color=\"#04BE02\" disabled></rater>\n      </cell>\n      <cell title=\"custom font-size(15px)\">\n        <rater v-model=\"data42\" slot=\"value\" active-color=\"#04BE02\" :font-size=\"15\" disabled></rater>\n      </cell>\n    </group>\n\n    <group title=\"custom star, some symbols like ♥ ❤ are not proper.\">\n      <cell title=\"loving\">\n        <rater v-model=\"data4\" slot=\"value\" star=\"♡\" active-color=\"red\" :margin=\"15\"></rater>\n      </cell>\n      <cell title=\"Sunshine\">\n        <rater v-model=\"data5\" slot=\"value\" star=\"☼\" active-color=\"#FF9900\" :margin=\"4\"></rater>\n      </cell>\n      <cell title=\"Smilies\">\n        <rater v-model=\"data5\" slot=\"value\" star=\"☻\" active-color=\"#FF9900\" :margin=\"4\"></rater>\n      </cell>\n      <cell title=\"Different stars\">\n        <rater v-model=\"data5\" slot=\"value\" star=\"✩\" active-color=\"#FF9900\" :margin=\"4\"></rater>\n      </cell>\n      <cell title=\"How embarrass\">\n        <rater v-model=\"data5\" slot=\"value\" star=\"囧\" active-color=\"#FF9900\" :margin=\"4\"></rater>\n      </cell>\n    </group>\n\n    <group title=\"two way binding\">\n      <cell title=\"Your history score\">\n        <rater v-model=\"data6\" active-color=\"#04BE02\" slot=\"value\"></rater>\n      </cell>\n      <cell title=\"range\" primary=\"content\" :inline-desc=\"data6 + ''\">\n        <range slot=\"value\" v-model=\"data6\" :step=\"1\" :min=\"0\" :max=\"5\"></range>\n      </cell>\n    </group>\n\n  </div>\n</template>\n\n<script>\nimport { Rater, Group, Cell, Range } from '../components'\n\nexport default {\n  components: {\n    Rater,\n    Group,\n    Cell,\n    Range\n  },\n  data () {\n    return {\n      data1: 0,\n      data2: 5,\n      data3: 5,\n      data4: 3,\n      data41: 3.7,\n      data42: 3.5,\n      data5: 3,\n      data6: 3\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Reddot.vue",
    "content": "<template>\n  <div>\n    <br>\n    <div class=\"reddot-demo vux-reddot\">Hi, you got a new message </div>\n    <br>\n    <div class=\"reddot-demo vux-reddot-border\">中文文字</div>\n    <br>\n    <div class=\"reddot-demo vux-reddot-s\">small dot</div>\n  </div>\n</template>\n\n<style scoped>\n.reddot-demo {\n  display: inline-block\n}\n</style>\n"
  },
  {
    "path": "src/demos/Scroller-full.vue",
    "content": "<template>\n  <div>\n    <div class=\"menu vux-1px-r\">\n       <scroller lock-x>\n          <div class=\"box1\">\n            <ul>\n              <li class=\"vux-1px-b\"><span>热搜推荐</span></li>\n              <li class=\"vux-1px-b\"><span>手机数码</span></li>\n              <li class=\"vux-1px-b\"><span>家用电器</span></li>\n              <li class=\"vux-1px-b\"><span>女装内衣</span></li>\n              <li class=\"vux-1px-b\"><span>男装内衣</span></li>\n              <li class=\"vux-1px-b\"><span>鞋靴箱包</span></li>\n              <li class=\"vux-1px-b\"><span>电脑办公</span></li>\n              <li class=\"vux-1px-b\"><span>运动户外</span></li>\n              <li class=\"vux-1px-b\"><span>个护化妆</span></li>\n              <li class=\"vux-1px-b\"><span>家具建材</span></li>\n              <li class=\"vux-1px-b\"><span>家居家纺</span></li>\n              <li class=\"vux-1px-b\"><span>母婴玩具</span></li>\n              <li class=\"vux-1px-b\"><span>食品生鲜</span></li>\n              <li class=\"vux-1px-b\"><span>酒水饮料</span></li>\n              <li class=\"vux-1px-b\"><span>钟表奢品</span></li>\n              <li class=\"vux-1px-b\"><span>汽车用品</span></li>\n              <li class=\"vux-1px-b\"><span>医药保健</span></li>\n              <li class=\"vux-1px-b\"><span>珠宝饰品</span></li>\n              <li class=\"vux-1px-b\"><span>图书音像</span></li>\n              <li class=\"vux-1px-b\"><span>全球购</span></li>\n            </ul>\n          </div>\n        </scroller>\n    </div>\n    <div class=\"content\">\n      <scroller lock-x scrollbar-y>\n        <div>\n          <div style=\"margin: 10px;overflow: hidden;\" v-for=\"item in list\">\n            <masker style=\"border-radius: 2px;\">\n              <div class=\"m-img\" :style=\"{backgroundImage: 'url(' + item.img + ')'}\"></div>\n              <div slot=\"content\" class=\"m-title\">\n                {{item.title}}\n                <br/>\n                <span class=\"m-time\">2016-03-18</span>\n              </div>\n            </masker>\n          </div>\n        </div>\n      </scroller>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { Scroller, Masker } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Masker\n  },\n  data () {\n    return {\n      list: [{\n        title: '洗颜新潮流！人气洁面皂排行榜',\n        img: 'https://cdn.xiaotaojiang.com/uploads/82/1572ec37969ee263735262dc017975/_.jpg'\n      }, {\n        title: '美容用品 & 日用品（上）',\n        img: 'https://cdn.xiaotaojiang.com/uploads/59/b22e0e62363a4a652f28630b3233b9/_.jpg'\n      }, {\n        title: '日本车载空气净化器精选',\n        img: 'https://cdn.xiaotaojiang.com/uploads/56/4b3601364b86fdfd234ef11d8712ad/_.jpg'\n      }, {\n        title: '洗颜新潮流！人气洁面皂排行榜',\n        img: 'https://cdn.xiaotaojiang.com/uploads/82/1572ec37969ee263735262dc017975/_.jpg'\n      }, {\n        title: '美容用品 & 日用品（上）',\n        img: 'https://cdn.xiaotaojiang.com/uploads/59/b22e0e62363a4a652f28630b3233b9/_.jpg'\n      }, {\n        title: '日本车载空气净化器精选',\n        img: 'https://cdn.xiaotaojiang.com/uploads/56/4b3601364b86fdfd234ef11d8712ad/_.jpg'\n      }]\n    }\n  }\n}\n</script>\n\n<style scoped lange=\"less\">\n@import '../styles/1px.less';\n.menu {\n  width: 75px;\n  float: left;\n  background-color: #fff;\n}\n.box1 {\n}\n.box1 ul {\n  width: 74px;\n}\n.box1 li{\n  text-align: center;\n  padding: 0 5px;\n  font-size: 14px;\n  line-height: 40px;\n}\n.content {\n  padding-left: 20px;\n}\n.box1-item {\n  width: 200px;\n  height: 100px;\n  background-color: #ccc;\n  text-align: center;\n  line-height: 100px;\n}\n.box1-item:first-child {\n  margin-left: 0;\n}\n.shop-item {\n  padding: 5px;\n}\n.m-img {\n  padding-bottom: 33%;\n  display: block;\n  position: relative;\n  max-width: 100%;\n  background-size: cover;\n  background-position: center center;\n  cursor: pointer;\n  border-radius: 2px;\n}\n\n.m-title {\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 0 2px rgba(0, 0, 0, .5);\n  font-weight: 500;\n  font-size: 16px;\n  position: absolute;\n  left: 0;\n  right: 0;\n  width: 100%;\n  text-align: center;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n.m-time {\n  font-size: 12px;\n  padding-top: 4px;\n  border-top: 1px solid #f0f0f0;\n  display: inline-block;\n  margin-top: 5px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Scroller-header.vue",
    "content": "<template>\n  <div class=\"vux-scroller-header-box\">\n    <div style=\"height:46px;\">\n     <x-header class=\"vux-scroller-header\">I'm header</x-header>\n    </div>\n    <scroller lock-x ref=\"scroller\" :height=\"-46-46+'px'\">\n      <div class=\"box2\" style=\"padding-bottom:50px\">\n        <p v-for=\"i in 80\">placeholder {{i}}</p>\n      </div>\n    </scroller>\n  </div>\n</template>\n\n<script>\nimport { Scroller, XHeader } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    XHeader\n  },\n  mounted () {\n    this.$nextTick(() => {\n      this.$refs.scroller.reset()\n    })\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Scroller-swiper.vue",
    "content": "<template>\n  <div>\n    <scroller lock-x scrollbar-y use-pulldown @pulldown:loading=\"load\" enable-horizontal-swiping>\n       <div class=\"box2\">\n          <swiper :list=\"list\" direction=\"horizontal\" auto :min-moving-distance=\"20\" height=\"180px\"></swiper>\n          <p v-for=\"i in 80\">placeholder {{i}}</p>\n       </div>\n    </scroller>\n  </div>\n</template>\n\n<script>\nimport { Scroller, Swiper } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Swiper\n  },\n  methods: {\n    load (that) {\n      // const _this = this\n      setTimeout(function () {\n        // _this.$broadcast('pulldown:reset', uuid)\n        that.$emit('pulldown:reset',that.uuid)\n      }, 2000)\n    }\n  },\n  data () {\n    return {\n      list: [{\n        url: 'http://mp.weixin.qq.com/s?__biz=MzAxNjU0MDYxMg==&ampmid=400385458&ampidx=1&ampsn=78f6b8d99715384bdcc7746596d88359&ampscene=19#wechat_redirect',\n        img: 'http://7xqzw4.com2.z0.glb.qiniucdn.com/1.jpg',\n        title: '如何手制一份秋意的茶？'\n      }, {\n        url: 'http://mp.weixin.qq.com/s?__biz=MzAxNjU0MDYxMg==&ampmid=400160890&ampidx=1&ampsn=29ef02af25793a11a3f6aec92bfb46c1&ampscene=19#wechat_redirect',\n        img: 'http://7xqzw4.com2.z0.glb.qiniucdn.com/2.jpg',\n        title: '茶包VS原叶茶'\n      }, {\n        url: 'http://mp.weixin.qq.com/s?__biz=MzAxNjU0MDYxMg==&ampmid=400094682&ampidx=1&ampsn=8231a2053b772b2108784fccc254d28c&ampscene=19#wechat_redirect',\n        img: 'http://7xqzw4.com2.z0.glb.qiniucdn.com/3.jpg',\n        title: '播下茶籽，明春可发芽？'\n      }]\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Scroller.vue",
    "content": "<template>\n  <div>\n    <divider>A Horizontal Scroller without Scrollbar</divider>\n    <scroller lock-y :scrollbar-x=false>\n      <div class=\"box1\">\n        <div class=\"box1-item\" v-for=\"i in 7\"><span>{{' ' + i + ' '}}</span></div>\n      </div>\n    </scroller>\n\n    <divider>A Horizontal Scroller with Scrollbar</divider>\n    <scroller lock-y scrollbar-x>\n      <div class=\"box1\">\n        <div class=\"box1-item\" v-for=\"i in 7\"><span>{{' ' + i + ' '}}</span></div>\n      </div>\n    </scroller>\n\n    <divider>A Horizontal Scroller without bounce effect</divider>\n    <scroller lock-y scrollbar-x :bounce=false>\n      <div class=\"box1\">\n        <div class=\"box1-item\" v-for=\"i in 7\"><span>{{' ' + i + ' '}}</span></div>\n      </div>\n    </scroller>\n\n    <divider>A Vertical Scroller</divider>\n    <scroller lock-x height=\"200px\">\n      <div class=\"box2\">\n        <p v-for=\"i in 80\">placeholder {{i}}</p>\n      </div>\n    </scroller>\n\n    <divider>A Vertical Scroller with scrollbar y</divider>\n    <scroller lock-x scrollbar-y height=\"200px\" :prevent-default=\"false\" ref=\"scroller\">\n      <div class=\"box2\">\n        <p v-for=\"i in 80\" v-if=\"showList1\">placeholder {{i}}</p>\n        <p v-for=\"i in 10\" v-if=\"!showList1\">placeholder {{i}}</p>\n        <x-button style=\"margin:10px 0;\" type=\"primary\">Button</x-button>\n      </div>\n    </scroller>\n    <x-button @click=\"changeList\" type=\"primary\">show another list</x-button>\n  </div>\n</template>\n\n<script>\nimport { Scroller, Divider, Spinner, XButton } from '../components'\n\nexport default {\n  components: {\n    Scroller,\n    Divider,\n    Spinner,\n    XButton\n  },\n  data () {\n    return {\n      showList1: true\n    }\n  },\n  methods: {\n    changeList () {\n      this.showList1 = !this.showList1\n      this.$nextTick(() => {\n        this.$refs.scroller.reset({\n          top: 0\n        })\n      })\n    }\n  }\n}\n</script>\n\n<style scoped>\n.box1 {\n  height: 100px;\n  position: relative;\n  width: 1490px;\n}\n.box1-item {\n  width: 200px;\n  height: 100px;\n  background-color: #ccc;\n  display:inline-block;\n  margin-left: 15px;\n  float: left;\n  text-align: center;\n  line-height: 100px;\n}\n.box1-item:first-child {\n  margin-left: 0;\n}\n.box2-wrap {\n  height: 300px;\n  overflow: hidden;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Search-static.vue",
    "content": "<template>\n  <div>\n    <img src=\"../assets/demo/filter_bg.jpg\" style=\"width: 100%\">\n    <br>\n    <search @on-submit=\"onSubmit\" :auto-fixed=\"autoFixed\"></search>\n    <divider>set value</divider>\n    <search @on-submit=\"onSubmit\" :auto-fixed=\"false\" v-model=\"value2\"></search>\n  </div>\n</template>\n\n<script>\nimport { Search, Divider } from '../components'\n\nexport default {\n  components: {\n    Search,\n    Divider\n  },\n  methods: {\n    resultClick (item) {\n      alert('you click the result item: ' + JSON.stringify(item))\n    },\n    getResult (val) {\n      this.results = val ? getResult(this.value) : []\n    },\n    onSubmit (val) {\n      alert('on submit' + val)\n    }\n  },\n  data () {\n    return {\n      results: [],\n      autoFixed: false,\n      value: '',\n      value1: 'hello',\n      value2: 'vux'\n    }\n  }\n}\n\nfunction getResult (val) {\n  let rs = []\n  for (let i = 0; i < 8; i++) {\n    rs.push({\n      title: `${val} result: ${i + 1} `,\n      other: i\n    })\n  }\n  return rs\n}\n</script>\n\n<style scoped>\np {\n  padding: 10px 15px;\n  font-size: 14px;\n  color: #888;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Search.vue",
    "content": "<template>\n  <div>\n    <img src=\"../assets/demo/filter_bg.jpg\" style=\"width: 100%\">\n    <search @result-click=\"resultClick\" @on-change=\"getResult\" :results=\"results\" v-model=\"value\" top=\"46px\"></search>\n    <br>\n    <group>\n      <cell title=\"static position demo\" is-link link=\"/component/search-static\"></cell>\n    </group>\n    <p style=\"margin-top:50px\">当前输入value:{{value}}</p>\n  </div>\n</template>\n\n<script>\nimport { Search, Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Search,\n    Group,\n    Cell\n  },\n  methods: {\n    resultClick (item) {\n      alert('you click the result item: ' + JSON.stringify(item))\n    },\n    getResult (val) {\n      this.results = val ? getResult(this.value) : []\n    }\n  },\n  data () {\n    return {\n      results: [],\n      value: ''\n    }\n  }\n}\n\nfunction getResult (val) {\n  let rs = []\n  for (let i = 0; i < 8; i++) {\n    rs.push({\n      title: `${val} result: ${i + 1} `,\n      other: i\n    })\n  }\n  return rs\n}\n</script>\n"
  },
  {
    "path": "src/demos/Selector.vue",
    "content": "<template>\n  <div>\n    <group :title=\"'no placeholder, the current value is : ' + defaultValue\">\n      <selector title=\"省份\" :options=\"list\" v-model=\"defaultValue\"></selector>\n    </group>\n\n    <group title=\"with placeholder\">\n      <selector placeholder=\"请选择省份\" title=\"省份\" :options=\"list\" @on-change=\"onChange\"></selector>\n    </group>\n\n    <group title=\"without title\">\n      <selector placeholder=\"请选择省份\" :options=\"list\"></selector>\n    </group>\n\n    <group title=\"set value=广西\">\n      <selector v-model=\"value1\" title=\"省份\" :options=\"plainList\" @on-change=\"onChange\"></selector>\n    </group>\n\n    <group title=\"readonly, displays just like a cell\">\n      <selector value=\"gd\" readonly title=\"省份\" :options=\"list\"></selector>\n    </group>\n\n    <group title=\"use plain options\">\n      <selector value=\"C\" title=\"Selector\" :options=\"list1\" @on-change=\"onChange\"></selector>\n    </group>\n\n    <group title='multi selector'>\n      <selector placeholder=\"请选择省份\" title=\"省份\" :options=\"list\"></selector>\n      <selector v-model=\"value2\" title=\"省份\" :options=\"list\"></selector>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Selector, Group } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Selector\n  },\n  data () {\n    return {\n      defaultValue: '',\n      plainList: ['广东', '广西'],\n      list: [{key: 'gd', value: '广东'}, {key: 'gx', value: '广西'}],\n      value1: '广西',\n      value2: 'gd',\n      list1: ['A', 'B', 'C']\n    }\n  },\n  methods: {\n    onChange (val) {\n      console.log(val)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Shake.vue",
    "content": "<template>\n  <div>\n    <p style=\"text-align:center\">shake your phone</p>\n    <shake @shake=\"onShake\" :threshold=\"5\"></shake>\n  </div>\n</template>\n\n<script>\nimport { Shake } from '../components'\n\nexport default {\n  components: {\n    Shake\n  },\n  methods: {\n    onShake() {\n      alert('share')\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Spinner.vue",
    "content": "<template>\n  <div>\n    <group>\n      <cell v-for=\"type in types\" :title=\"type\">\n        <spinner :type=\"type\" slot=\"value\"></spinner>\n      </cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Spinner, Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Spinner,\n    Cell,\n    Group\n  },\n  data () {\n    return {\n      types: ['android', 'ios', 'ios-small', 'bubbles', 'circles', 'crescent', 'dots', 'lines', 'ripple', 'spiral']\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Step.vue",
    "content": "<template>\n  <div style=\"width: 95%;margin: 0 auto;\">\n    <br>\n    <div>\n      <step :current=\"step1\" background-color='#fbf9fe'>\n        <step-item title=\"步骤1\" description=\"step 1\"></step-item>\n        <step-item title=\"步骤2\" description=\"step 2\"></step-item>\n        <step-item title=\"步骤3\" description=\"step 3\"></step-item>\n      </step>\n    </div>\n    <divider>切换到下一步</divider>\n    <div>\n      <step :current=\"step2\" background-color='#fbf9fe' gutter=\"20px\">\n        <step-item title=\"已完成\"></step-item>\n        <step-item title=\"进行中\"></step-item>\n        <step-item title=\"待完成\"></step-item>\n      </step>\n      <div class=\"btn_wrap\">\n        <x-button type=\"primary\" @click=\"nextStep\">下一步</x-button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { Step, StepItem, XButton, Divider } from '../components'\n\nexport default {\n  components: {\n    Step,\n    StepItem,\n    XButton,\n    Divider\n  },\n\n  data () {\n    return {\n      step1: 1,\n      step2: 0\n    }\n  },\n\n  methods: {\n    nextStep () {\n      this.step2 ++\n    }\n  }\n}\n</script>\n\n<style>\n.btn_wrap {\n  padding: 0 1rem;\n  margin-top: 2rem;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Sticky.vue",
    "content": "<template>\n  <div>\n    <br/>\n    <br/>\n    <br/>\n    <sticky>\n      <tab :line-width=\"1\">\n        <tab-item selected>正在正映</tab-item>\n        <tab-item>即将上映</tab-item>\n      </tab>\n    </sticky>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n  </div>\n</template>\n\n<script>\nimport { Tab, TabItem, Sticky } from '../components'\n\nexport default {\n  components: {\n    Tab,\n    TabItem,\n    Sticky\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Swiper.vue",
    "content": "<template>\n  <div>\n    <group-title>THX to: https://github.com/wechatui/swiper</group-title>\n    <group-title>list模式下，默认高度为180px, 如果设置aspect-ratio会根据宽度自动计算高度</group-title>\n    <swiper :list=\"demo01_list\" :index=\"demo01_index\" @on-index-change=\"demo01_onIndexChange\"></swiper>\n    <p>current index: {{demo01_index}}</p>\n    <x-button @click=\"demo01_index = 0\">go to 0</x-button>\n    <x-button @click=\"demo01_index = 1\">go to 1</x-button>\n    <x-button @click=\"demo01_index = 2\">go to 2</x-button>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n\n    <group-title>设置aspect-ratio, 将自动根据宽度计算高度</group-title>\n    <swiper :list=\"demo02_list\" style=\"width:85%;margin:0 auto;\" :aspect-ratio=\"300/800\" dots-position=\"center\"></swiper>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>自动轮播</group-title>\n    <swiper :list=\"demo03_list\" auto style=\"width:80%;margin:0 auto;\" height=\"180px\" dots-class=\"custom-bottom\" dots-position=\"center\"></swiper>\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>use swiper-item for image list</group-title>\n    <swiper :aspect-ratio=\"300/800\">\n      <swiper-item class=\"swiper-demo-img\" v-for=\"item in demo04_list\"><img :src=\"item\"></swiper-item>\n    </swiper>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>Async setting list data</group-title>\n    <swiper :list=\"demo05_list\" auto height=\"180px\" @on-index-change=\"demo05_onIndexChange\"></swiper>\n    <p> current index: {{demo05_index}}</p>\n    <x-button @click=\"demo05_onLoad(1)\" type=\"primary\" style=\"margin: 10px 0;\">Load list1</x-button>\n    <x-button @click=\"demo05_onLoad(2)\" type=\"primary\" style=\"margin: 10px 0;\">Load list2</x-button>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>引入swiper-item自定义item内容，用height定义高度</group-title>\n    <swiper auto height=\"100px\">\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">它无孔不入</h2></swiper-item>\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">你无处可藏</h2></swiper-item>\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">不是它可恶</h2></swiper-item>\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">而是它不懂你</h2></swiper-item>\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">我们试图</h2></swiper-item>\n      <swiper-item class=\"black\"><h2 class=\"title fadeInUp animated\">做些改变</h2></swiper-item>\n    </swiper>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>垂直方向文字滚动</group-title>\n    <swiper auto height=\"30px\" direction=\"vertical\" :interval=2000 class=\"text-scroll\" :show-dots=\"false\">\n      <swiper-item><p>义务爱了 完成传奇世界H5-王者归来任务 获得20金币</p></swiper-item>\n      <swiper-item><p>基本世神 兑换《传奇世界H5》畅玩级礼包 消耗30金币</p></swiper-item>\n      <swiper-item><p>零哥章魚 完成传奇世界H5-王者归来任务 获得30金币</p></swiper-item>\n      <swiper-item><p>做迎而為 兑换【饿了么】畅享美食红包 消耗20金币</p></swiper-item>\n      <swiper-item><p>只知道不知道 兑换【饿了么】畅享美食红包 消耗20金币</p></swiper-item>\n      <swiper-item><p>基本世神 兑换《传奇世界H5》畅玩级礼包 消耗30金币</p></swiper-item>\n    </swiper>\n\n    <br/>\n    <br/>\n    <divider>华丽的分割线</divider>\n\n    <group-title>循环模式</group-title>\n    <swiper loop auto :list=\"demo06_list\" :index=\"demo06_index\" @on-index-change=\"demo06_onIndexChange\"></swiper>\n    <p>current index: {{demo06_index}}</p>\n\n    <group-title>循环模式（只有两个）</group-title>\n    <swiper loop auto :list=\"demo07_list\" :index=\"demo07_index\" @on-index-change=\"demo07_onIndexChange\"></swiper>\n    <p>current index: {{demo07_index}}</p>\n  </div>\n</template>\n\n<script>\nimport { Swiper, GroupTitle, SwiperItem, XButton, Divider } from '../components'\n\nconst baseList =\n[{\n  url: 'javascript:',\n  img: 'http://og1rlwcj8.bkt.clouddn.com/20141111234454_AwKCm.thumb.700_0.jpeg',\n  title: '如何手制一份秋意的茶？'\n}, {\n  url: 'javascript:',\n  img: 'http://og1rlwcj8.bkt.clouddn.com/u=897623406,24655471&fm=21&gp=0.jpg',\n  title: '茶包VS原叶茶'\n}, {\n  url: 'javascript:',\n  img: 'http://og1rlwcj8.bkt.clouddn.com/u=3737719926,1965507257&fm=21&gp=0.jpg',\n  title: '播下茶籽，明春可发芽？'\n}]\n\nconst imgList = [\n  'http://placeholder.qiniudn.com/800x300/FF3B3B/ffffff',\n  'http://placeholder.qiniudn.com/800x300/FFEF7D/ffffff',\n  'http://placeholder.qiniudn.com/800x300/8AEEB1/ffffff'\n]\n\nconst urlList = baseList.map((item, index) => ({\n  url: 'http://m.baidu.com',\n  img: item.img,\n  title: `(可点击)${item.title}`\n}))\n\nconst demoList = imgList.map((one, index) => ({\n  url: 'javascript:',\n  img: one\n}))\n\nconst only2List = baseList.slice(0, 2)\n\nexport default {\n  components: {\n    Swiper,\n    SwiperItem,\n    GroupTitle,\n    XButton,\n    Divider\n  },\n  mounted () {\n\n  },\n  methods: {\n    demo01_onIndexChange (index) {\n      this.demo01_index = index\n    },\n    demo05_onIndexChange (index) {\n      this.demo05_index = index\n    },\n    demo05_onLoad (id) {\n      this.demo05_list = id === 1 ? baseList : demoList\n    },\n    demo06_onIndexChange (index) {\n      this.demo06_index = index\n    },\n    demo07_onIndexChange (index) {\n      this.demo07_index = index\n    }\n  },\n  data () {\n    return {\n      demo01_list: baseList,\n      demo02_list: demoList,\n      demo03_list: demoList,\n      demo04_list: imgList,\n      demo05_list: [],\n      demo06_list: urlList,\n      demo07_list: only2List,\n      demo01_index: 0,\n      demo05_index: 0,\n      demo06_index: 0,\n      demo07_index: 0\n    }\n  }\n}\n</script>\n\n<style scoped>\n.text-scroll {\n  border: 1px solid #ddd;\n  border-left: none;\n  border-right: none;\n}\n.text-scroll p{\n  font-size: 12px;\n  text-align: center;\n  line-height: 30px;\n}\n.black {\n  background-color: #000;\n}\n.title{\n  line-height: 100px;\n  text-align: center;\n  color: #fff;\n}\n.animated {\n  animation-duration: 1s;\n  animation-fill-mode: both;\n}\n.vux-indicator.custom-bottom {\n  bottom: 30px;\n}\n@-webkit-keyframes fadeInUp {\n  from {\n    opacity: 0;\n    transform: translate3d(0, 100%, 0);\n  }\n  100% {\n    opacity: 1;\n    transform: none;\n  }\n}\n@keyframes fadeInUp {\n  from {\n    opacity: 0;\n    transform: translate3d(0, 100%, 0);\n  }\n  100% {\n    opacity: 1;\n    transform: none;\n  }\n}\n.fadeInUp {\n  animation-name: fadeInUp;\n}\n.swiper-demo-img img {\n  width: 100%;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Switch.vue",
    "content": "<template>\n  <div>\n    <group title=\"default\">\n      <x-switch title=\"default setting\"></x-switch>\n      <x-switch title=\"default true\" :value=\"true\"></x-switch>\n    </group>\n    <group title=\"disabled\">\n      <x-switch title=\"default setting\" disabled></x-switch>\n      <x-switch title=\"default true\" :value=\"true\" disabled></x-switch>\n    </group>\n    <group title=\"html title\">\n      <x-switch title=\"<span style='color:red'>I'm Red.</span>\">I'm red</span>\" disabled></x-switch>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { XSwitch, Group } from '../components'\n\nexport default {\n  components: {\n    XSwitch,\n    Group\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Tab.vue",
    "content": "<template>\n  <div>\n    <tab :index=\"2\">\n      <tab-item @click=\"demo1 = '已发货'\">已发货</tab-item>\n      <tab-item @click=\"demo1 = '未发货'\">未发货</tab-item>\n      <tab-item @click=\"demo1 = '全部订单'\">全部订单</tab-item>\n    </tab>\n    <br/>\n    <br/>\n    <br/>\n    <divider>different active class</divider>\n    <tab :animate=\"false\">\n      <tab-item active-class=\"active-6-1\" :selected=\"demo6 === '已发货'\" @click=\"demo6 = '已发货'\">已发货</tab-item>\n      <tab-item active-class=\"active-6-2\" :selected=\"demo6 === '未发货'\" @click=\"demo6 = '未发货'\">未发货</tab-item>\n      <tab-item active-class=\"active-6-3\" :selected=\"demo6 === '全部订单'\" @click=\"demo6 = '全部订单'\">全部订单</tab-item>\n    </tab>\n    <br/>\n    <br/>\n    <br/>\n    <divider>no animation</divider>\n    <tab :animate=\"false\">\n      <tab-item :selected=\"demo5 === '已发货'\" @click=\"demo5 = '已发货'\">已发货</tab-item>\n      <tab-item :selected=\"demo5 === '未发货'\" @click=\"demo5 = '未发货'\">未发货</tab-item>\n      <tab-item :selected=\"demo5 === '全部订单'\" @click=\"demo5 = '全部订单'\">全部订单</tab-item>\n    </tab>\n    <br/>\n    <br/>\n    <br/>\n    <divider>disabled</divider>\n    <tab>\n      <tab-item :selected=\"demoDisabled === 'A'\" @click=\"demoDisabled = 'A'\">A</tab-item>\n      <tab-item :selected=\"demoDisabled === 'B'\" @click=\"demoDisabled = 'B'\">B</tab-item>\n      <tab-item :selected=\"demoDisabled === 'Disabled'\" disabled style=\"color:#ececec;\">Disabled</tab-item>\n    </tab>\n    <br/>\n    <br/>\n    <br/>\n    v-model方式同步index ↓↓↓\n    <br/><br/>\n    <tab :line-width=2 active-color='#fc378c' v-model=\"index2\">\n      <tab-item class=\"vux-center\" :selected=\"demo2 === item\" v-for=\"item in list2\" @click=\"demo2 = item\">{{item}}</tab-item>\n    </tab>\n    <swiper v-model=\"index2\" height=\"100px\" :show-dots=\"false\">\n      <swiper-item v-for=\"item in list2\">\n        <div class=\"tab-swiper vux-center\">{{item}} Container</div>\n      </swiper-item>\n    </swiper>\n    <br/>\n    <br/>\n    自定义事件由父组件控制数据的同步index ↓↓↓\n    <br/><br/>\n    <tab :line-width=2 active-color='#fc378c' :index=\"index\" @on-index-change=\"onIndexChange\">\n      <tab-item class=\"vux-center\" :selected=\"demo2 === item\" v-for=\"item in list2\" @click=\"demo2 = item\">{{item}}</tab-item>\n    </tab>\n    <swiper :index=\"index\" height=\"100px\" :show-dots=\"false\" @on-index-change=\"onIndexChange\">\n      <swiper-item v-for=\"item in list2\">\n        <div class=\"tab-swiper vux-center\">{{item}} Container</div>\n      </swiper-item>\n    </swiper>\n    <br/>\n\n\n    <x-button @click=\"addTab\" :disabled=\"list2.length === 5\" type=\"primary\">Add tab item</x-button>\n    <x-button @click=\"removeTab\" :disabled=\"list2.length <= 2\" type=\"primary\">Remove tab item</x-button>\n    <x-button @click=\"next\" type=\"primary\">Active next current: {{index}}</x-button>\n    <x-button @click=\"prev\" type=\"primary\">Active prev current: {{index}}</x-button>\n    <br/>\n    <br/>\n    <tab :line-width=2>\n      <tab-item :selected=\"demo3 === item\" v-for=\"(index, item) in list3\" :class=\"{'vux-1px-r': index===0}\" @click=\"demo3 = item\">{{item}}</tab-item>\n    </tab>\n    <br/>\n    <br/>\n    <br/>\n    <sticky>\n      <tab :line-width=1>\n        <tab-item :selected=\"demo4 === item\" v-for=\"item in list4\" @click=\"demo4 = item\">{{item}}</tab-item>\n      </tab>\n    </sticky>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n    <br/>\n  </div>\n</template>\n\n<script>\nimport { Tab, TabItem, Sticky, Divider, XButton, Swiper, SwiperItem } from '../components'\nconst list = () => ['精选', '美食', '电影', '酒店', '外卖']\n\nexport default {\n  components: {\n    Tab,\n    TabItem,\n    Sticky,\n    Divider,\n    XButton,\n    Swiper,\n    SwiperItem\n  },\n  data () {\n    return {\n      demo1: '未发货',\n      list2: list(),\n      demo5: '未发货',\n      demo2: '美食',\n      list3: ['收到的消息', '发出的消息'],\n      demo3: '收到的消息',\n      list4: ['正在正映', '即将上映'],\n      demo4: '即将上映',\n      demo6: '已发货',\n      demoDisabled: 'A',\n      index: 0,\n      index2:0\n    }\n  },\n  methods: {\n    addTab () {\n      if (this.list2.length < 5) {\n        this.list2 = list().slice(0, this.list2.length + 1)\n      }\n    },\n    removeTab () {\n      if (this.list2.length > 1) {\n        this.list2 = list().slice(0, this.list2.length - 1)\n      }\n    },\n    next () {\n      if (this.index === this.list2.length - 1) {\n        this.index = 0\n      } else {\n        ++this.index\n      }\n    },\n    prev () {\n      if (this.index === 0) {\n        this.index = this.list2.length - 1\n      } else {\n        --this.index\n      }\n    },\n    //1.0中的.sync方式改成自定义事件由父组件控制数据的同步\n    onIndexChange(currentIndex){\n      this.index=currentIndex;\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n@import '../styles/1px.less';\n.active-6-1 {\n  color: rgb(252, 55, 140) !important;\n  border-color: rgb(252, 55, 140) !important;\n}\n.active-6-2 {\n  color: #04be02 !important;\n  border-color: #04be02 !important;\n}\n.active-6-3 {\n  color: rgb(55, 174, 252) !important;\n  border-color: rgb(55, 174, 252) !important;\n}\n.tab-swiper {\n  background-color: #fff;\n  height: 100px;\n}\n</style>\n"
  },
  {
    "path": "src/demos/Tabbar.vue",
    "content": "<template>\n  <div>\n    <tabbar>\n      <tabbar-item>\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_button.png\">\n        <span slot=\"label\">Wechat</span>\n      </tabbar-item>\n      <tabbar-item show-dot>\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_msg.png\">\n        <span slot=\"label\">Message</span>\n      </tabbar-item>\n      <tabbar-item selected>\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_article.png\">\n        <span slot=\"label\">Explore</span>\n      </tabbar-item>\n      <tabbar-item>\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_cell.png\">\n        <span slot=\"label\">News</span>\n      </tabbar-item>\n    </tabbar>\n  </div>\n</template>\n\n<script>\nimport { Tabbar, TabbarItem } from '../components'\n\nexport default {\n  components: {\n    Tabbar,\n    TabbarItem\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/TabbarLink.vue",
    "content": "<template>\n  <div class=\"weui_tab\">\n    <div class=\"weui_tab_bd\">\n      <p v-for=\"i in 100\">{{i}}</p>\n    </div>\n    <tabbar>\n      <!--use v-link-->\n      <tabbar-item :link=\"{name:'cell'}\">\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_button.png\">\n        <span slot=\"label\">命名路由</span>\n      </tabbar-item>\n      <!--use http link-->\n      <tabbar-item show-dot link=\"https://vux.li\">\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_msg.png\">\n        <span slot=\"label\">外部跳转</span>\n      </tabbar-item>\n      <!--use vue-router link-->\n      <tabbar-item selected link=\"/component/cell\">\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_article.png\">\n        <span slot=\"label\">字符串</span>\n      </tabbar-item>\n      <!--use vue-router object link-->\n      <tabbar-item :link=\"{path:'/component/cell'}\">\n        <img slot=\"icon\" src=\"../assets/demo/icon_nav_cell.png\">\n        <span slot=\"label\">path</span>\n      </tabbar-item>\n    </tabbar>\n  </div>\n</template>\n\n<script>\nimport { Tabbar, TabbarItem } from '../components'\n\nexport default {\n  mounted () {\n    // document.querySelector('body').style.height = '100%'\n    // document.querySelector('html').style.height = '100%'\n    // document.querySelector('#app').style.height = '100%'\n  },\n  components: {\n    Tabbar,\n    TabbarItem\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Test.vue",
    "content": "<template>\n\t<div>\n\t\ttest template\n\t</div>\n</template>\n\n<script>\nimport { Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell\n  },\n  data () {\n    return {\n      msg: 'test'\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/Textarea.vue",
    "content": "<template>\n  <div>\n    <group title=\"textarea\">\n      <x-input placeholder=\"双向绑定\" v-model=\"value\"></x-input>\n      <x-textarea :max=\"20\" placeholder=\"请填写详细信息\" v-model=\"value\"></x-textarea>\n    </group>\n    <group title=\"和input一起使用\">\n      <x-input placeholder=\"标题\"></x-input>\n      <x-textarea :max=\"200\" name=\"description\" placeholder=\"描述\"></x-textarea>\n    </group>\n    <group title=\"不显示计数器\">\n      <x-textarea :max=\"200\" name=\"detail\" placeholder=\"请填写详细信息\" :show-counter=\"false\"></x-textarea>\n    </group>\n    <group title=\"set height=200\">\n      <x-textarea :max=\"200\" placeholder=\"请填写详细信息\" :show-counter=\"false\" :height=\"200\" :rows=\"8\" :cols=\"30\"></x-textarea>\n    </group>\n    <group title=\"autosize\">\n      <x-textarea placeholder=\"Type something\" :show-counter=\"false\" :rows=\"1\" ref=\"autosize\"></x-textarea>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { XTextarea, Group, XInput } from '../components'\nimport Autosize from 'autosize'\n\nexport default {\n  components: {\n    XTextarea,\n    Group,\n    XInput\n  },\n  data(){\n    return{\n      value:\"\"\n    }\n  },\n  mounted () {\n    Autosize(this.$refs.autosize.$refs.textarea)\n  },\n  beforeDestroy () {\n    Autosize.destroy(this.$refs.autosize.$refs.textarea)\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Thanks.vue",
    "content": "<template>\n  <div>\n    <group title=\"Thx\" title-color=\"#04be02\">\n      <cell title=\"Router\" link=\"https://github.com/vuejs/vue-router\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe636;</span>\n        <span slot=\"value\"><img src=\"http://cn.vuejs.org/images/logo.png\" width=\"20\" style=\"vertical-align: middle;padding-right: 5px;\">Powered by Vue-router</span>\n      </cell>\n      <cell title=\"Style\" link=\"https://github.com/weui/weui\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe638;</span>\n        <span slot=\"value\"><span class=\"demo-icon\">&#xe600</span>Based on Weui</span>\n      </cell>\n      <cell title=\"Dev && Build\" link=\"https://github.com/webpack/webpack\">\n        <span class=\"demo-icon\" slot=\"icon\" style=\"color: #000;\">&#xe639;</span>\n        <span slot=\"value\"><img src=\"https://webpack.github.io/assets/favicon.png\" width=\"20\" style=\"vertical-align: middle;padding-right: 5px;\">Webpack</span>\n      </cell>\n      <cell title=\"Demo Icon\" link=\"http://iconfont.cn/\">\n        <span class=\"demo-icon\" slot=\"icon\">&#xe619;</span>\n        <span slot=\"value\"><img src=\"http://gtms04.alicdn.com/tps/i4/TB1_oz6GVXXXXaFXpXXJDFnIXXX-64-64.ico\" width=\"20\" style=\"vertical-align: middle;padding-right: 5px;\">Iconfont</span>\n      </cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Group, Cell } from '../components'\n\nexport default {\n  components: {\n    Group,\n    Cell\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Timeline.vue",
    "content": "<template>\n\t<div class=\"timeline-demo\">\n\t\t<timeline>\n\t\t\t<timeline-item>\n\t\t\t\t<h4 class=\"recent\">【广东】 广州市 已发出</h4>\n\t\t\t\t<p class=\"recent\">2016-04-17 12:00:00</p>\n\t\t\t</timeline-item>\n\t\t\t<timeline-item>\n\t\t\t\t<h4> 申通快递员 广东广州 收件员 xxx 已揽件</h4>\n\t\t\t\t<p>2016-04-16 10:23:00</p>\n\t\t\t</timeline-item>\n\t\t\t<timeline-item>\n\t\t\t\t<h4> 商家正在通知快递公司揽件</h4>\n\t\t\t\t<p>2016-04-15 9:00:00</p>\n\t\t\t</timeline-item>\n\t\t</timeline>\n\t\t<timeline>\n\t\t\t<timeline-item v-for=\"i in count\">\n\t\t\t\t<h4 :class=\"[i === 0 ? 'recent' : '']\">Timeline Node {{i + 1}}</h4>\n\t\t\t\t<p :class=\"[i === 0 ? 'recent' : '']\">index {{i + 1}}</p>\n\t\t\t</timeline-item>\n\t\t</timeline>\n    <x-button type=\"primary\" @click=\"count = 6\"> Set to 6 nodes</x-button>\n    <x-button type=\"primary\" @click=\"count = 3\"> Set to 3 nodes</x-button>\n\t</div>\n</template>\n\n<script>\nimport { Timeline, TimelineItem, XButton } from '../components'\n\nexport default {\n  components: {\n    Timeline,\n    TimelineItem,\n    XButton\n  },\n  data () {\n    return {\n      count: 3\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n\t.timeline-demo {\n\n\t\tp {\n\t\t\tcolor: #888;\n\t\t\tfont-size: 0.8rem;\n\t\t}\n\n\t\th4 {\n\t\t\tcolor: #666;\n\t\t\tfont-weight: normal;\n\t\t}\n\n\t\t.recent {\n\t\t\tcolor: rgb(4, 190, 2)\n\t\t}\n\n\t}\n</style>\n"
  },
  {
    "path": "src/demos/Tip.vue",
    "content": "<template>\n  <number description=\"Default\" title=\"Number\"></number>\n  <tip>I am a tip.</tip>\n\n  <number description=\"Default\" title=\"Number\"></number>\n  <tip align=\"center\">I am a tip align center.</tip>\n</template>\n\n<script>\nimport { Tip, Number } from '../components'\nexport default {\n  components: {\n    Tip,\n    Number\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Toast.vue",
    "content": "<template>\n  <div>\n    <group>\n      <x-switch title=\"默认提示\" v-model=\"show1\"></x-switch>\n      <x-switch title=\"文字提示\" v-model=\"show2\"></x-switch>\n      <x-switch title=\"提示取消\" v-model=\"show3\"></x-switch>\n      <x-switch title=\"提示禁止\" v-model=\"show4\"></x-switch>\n      <x-switch title=\"设置出现时间1s\" v-model=\"show5\"></x-switch>\n      <x-switch title=\"long text\" v-model=\"show6\"></x-switch>\n    </group>\n    <toast v-model=\"show1\" @on-hide=\"onHide\">默认提示</toast>\n    <toast v-model=\"show2\" type=\"text\">处理成功</toast>\n    <toast v-model=\"show3\" type=\"cancel\">取消操作</toast>\n    <toast v-model=\"show4\" type=\"warn\">禁止操作</toast>\n    <toast v-model=\"show5\" :time=\"1000\">1s关闭</toast>\n    <toast v-model=\"show6\" type=\"text\" width=\"20em\">Talk is cheap, show me the code.</toast>\n    <group title=\"prop:text\">\n      <x-switch title=\"default\" v-model=\"show7\"></x-switch>\n      <x-switch title=\"text\" v-model=\"show8\"></x-switch>\n    </group>\n    <toast v-model=\"show7\" text=\"Hello World\"></toast>\n    <toast v-model=\"show8\" type=\"text\" text=\"Hello World\"></toast>\n    <group title=\"As a plugin(>=v0.1.3)\">\n      <x-switch title=\"default\" v-model=\"show9\" @on-change=\"onChange\"></x-switch>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { Toast, Group, XSwitch } from '../components'\nexport default {\n  components: {\n    Toast,\n    Group,\n    XSwitch\n  },\n  methods: {\n    onHide () {\n      console.log('on hide')\n    },\n    onChange (val) {\n      const _this = this\n      if (val) {\n        this.$vux.toast.show({\n          text: 'Hello World',\n          onShow () {\n            console.log('Plugin: I\\'m showing')\n          },\n          onHide () {\n            console.log('Plugin: I\\'m hiding')\n            _this.show9 = false\n          }\n        })\n      } else {\n        this.$vux.toast.hide()\n      }\n    }\n  },\n  data () {\n    return {\n      show1: false,\n      show2: false,\n      show3: false,\n      show4: false,\n      show5: false,\n      show6: false,\n      show7: false,\n      show8: false,\n      show9: false\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/Wechat-emotion.vue",
    "content": "<template>\n  <div>\n    <emotion>微笑</emotion>\n    <emotion is-gif>微笑</emotion>\n    <emotion>色</emotion>\n    <emotion is-gif>色</emotion>\n  </div>\n</template>\n\n<script>\nimport { WechatEmotion as Emotion } from '../components'\nexport default {\n  components: {\n    Emotion\n  }\n}\n</script>\n"
  },
  {
    "path": "src/demos/X-button.vue",
    "content": "<template>\n  <div>\n    <divider>default</divider>\n    <box gap=\"10px 10px\">\n      <x-button>submit</x-button>\n      <x-button type=\"primary\">primary</x-button>\n      <x-button type=\"warn\">Delete</x-button>\n\n      <divider>mini</divider>\n      <x-button mini>submit</x-button>\n      <x-button mini type=\"primary\">primary</x-button>\n      <x-button mini type=\"warn\">Delete</x-button>\n      <br>\n      <x-button mini plain>submit</x-button>\n      <x-button mini plain type=\"primary\">primary</x-button>\n\n      <divider>plain</divider>\n      <x-button plain>submit</x-button>\n      <x-button plain type=\"primary\">primary</x-button>\n\n      <divider>disabled</divider>\n      <x-button disabled>disable submit</x-button>\n      <x-button type=\"primary\" disabled>disable primary</x-button>\n      <x-button type=\"warn\" disabled>disable Delete</x-button>\n\n      <divider>use :text and :disabled</divider>\n      <x-button :text=\"submit001\" :disabled=\"disable001\" @click=\"processButton001\" type=\"primary\"></x-button>\n\n      <divider>combined with flexbox</divider>\n      <flexbox>\n        <flexbox-item>\n          <x-button type=\"primary\">primary</x-button>\n        </flexbox-item>\n        <flexbox-item>\n          <x-button type=\"warn\">Delete</x-button>\n        </flexbox-item>\n      </flexbox>\n      <divider>combined with flexbox</divider>\n      <flexbox>\n        <flexbox-item>\n          <x-button type=\"default\">default</x-button>\n        </flexbox-item>\n        <flexbox-item>\n          <x-button type=\"primary\">primary</x-button>\n        </flexbox-item>\n        <flexbox-item>\n          <x-button type=\"warn\">Delete</x-button>\n        </flexbox-item>\n      </flexbox>\n\n    </box>\n\n  </div>\n</template>\n\n<script>\nimport { XButton, Box, GroupTitle, Group, Flexbox, FlexboxItem, Divider } from '../components'\n\nexport default {\n  components: {\n    XButton,\n    Box,\n    GroupTitle,\n    Group,\n    Flexbox,\n    FlexboxItem,\n    Divider\n  },\n  methods: {\n    change (value) {\n      console.log('change:', value)\n    },\n    processButton001 () {\n      this.submit001 = 'processing'\n      this.disable001 = true\n    }\n  },\n  data () {\n    return {\n      submit001: 'click me',\n      disable001: false\n    }\n  }\n}\n</script>\n\n"
  },
  {
    "path": "src/demos/X-header.vue",
    "content": "<template>\n  <div>\n    <x-header>This is the page title.</x-header>\n    <br>\n    <x-header :left-options=\"{showBack: false}\">do not show Back</x-header>\n    <br>\n    <x-header :right-options=\"{showMore: true}\" @on-click-more=\"showMenus = true\">with more menu</x-header>\n    <br>\n    <x-header>with right link<a slot=\"right\">Feedback</a></x-header>\n    <br>\n    <x-header>long long long long long long long text<a slot=\"right\">Feedback</a></x-header>\n    <br>\n    <x-header>with left slot<a slot=\"left\" @click=\"onclose\">Close</a></x-header>\n    <br>\n    <x-header style=\"background-color:#f24549;\">custom background color</x-header>\n    <actionsheet :menus=\"menus\" v-model=\"showMenus\" show-cancel></actionsheet>\n  </div>\n</template>\n\n<script>\nimport XHeader from '../components/x-header'\nimport { Actionsheet } from '../components'\n\nexport default {\n  components: {\n    XHeader,\n    Actionsheet\n  },\n  data () {\n    return {\n      menus: {\n        menu1: 'Take Photo',\n        menu2: 'Choose from photos'\n      },\n      showMenus: false\n    }\n  },\n  methods:{\n    onclose(){\n      alert(\"Close!\")\n    }\n  }\n}\n</script>"
  },
  {
    "path": "src/demos/X-img-scroller.vue",
    "content": "<template>\n  <div>\n    <scroller :lock-x :scrollbar-y height=\"600px\" v-ref:scroller style=\"border-bottom:1px solid green\">\n      <div>\n        <div v-for=\"src in list\" style=\"background-color:yellow;text-align:center;\">\n          <span style=\"font-size:20px;\">Loading</span>\n          <x-img :src=\"src\" :scroller=\"$refs.scroller\" @on-success=\"success\" @on-error=\"error\" class=\"ximg-demo\" error-class=\"ximg-error\" :offset=\"300\"></x-img>\n        </div>\n      </div>\n    </scroller>\n  </div>\n</template>\n\n<script>\nimport { XImg, Scroller } from '../components'\nexport default {\n  components: {\n    XImg,\n    Scroller\n  },\n  methods: {\n    success (src, ele) {\n      console.log('success load', src)\n      const span = ele.parentNode.querySelector('span')\n      ele.parentNode.removeChild(span)\n    },\n    error (src, ele, msg) {\n      console.log('error load', msg, src)\n      const span = ele.parentNode.querySelector('span')\n      span.innerText = 'load error'\n    }\n  },\n  data () {\n    return {\n      list: [\n        'https://o5omsejde.qnssl.com/demo/test1.jpg',\n        'https://o5omsejde.qnssl.com/demo/test2.jpg',\n        'https://o5omsejde.qnssl.com/demo/test0.jpg',\n        'https://o5omsejde.qnssl.com/demo/test4.jpg',\n        'https://o5omsejde.qnssl.com/demo/test5.jpg',\n        'https://o5omsejde.qnssl.com/demo/test6.jpg',\n        'https://o5omsejde.qnssl.com/demo/test7.jpg',\n        'https://o5omsejde.qnssl.com/demo/test8.jpg'\n      ]\n    }\n  }\n}\n</script>\n\n<style>\n.ximg-demo {\n  width: 100%;\n  height: auto;\n}\n.ximg-error {\n  background-color: yellow;\n}\n.ximg-error:after {\n  content: '加载失败';\n  color: red;\n}\n</style>\n"
  },
  {
    "path": "src/demos/XImg.vue",
    "content": "<template>\n  <div>\n    <div v-for=\"src in list\" style=\"background-color:yellow;text-align:center;\">\n      <span style=\"font-size:20px;\">Loading</span>\n      <x-img :src=\"src\" @on-success=\"success\" @on-error=\"error\" class=\"ximg-demo\" error-class=\"ximg-error\" :offset=\"-100\"></x-img>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { XImg } from '../components'\nexport default {\n  components: {\n    XImg\n  },\n  methods: {\n    success (src, ele) {\n      console.log('success load', src)\n      const span = ele.parentNode.querySelector('span')\n      ele.parentNode.removeChild(span)\n    },\n    error (src, ele, msg) {\n      console.log('error load', msg, src)\n      const span = ele.parentNode.querySelector('span')\n      span.innerText = 'load error'\n    }\n  },\n  data () {\n    return {\n      list: [\n        'http://og1rlwcj8.bkt.clouddn.com/005JqWi9gw1ewwctbyvbsj30c8096t8y.jpg',\n        'https://o5omsejde.qnssl.com/demo/test2.jpg',\n        'http://og1rlwcj8.bkt.clouddn.com/f1.jpg',\n        'http://og1rlwcj8.bkt.clouddn.com/ty.jpg',\n        'https://o5omsejde.qnssl.com/demo/test5.jpg',\n        'https://o5omsejde.qnssl.com/demo/test6.jpg',\n        'http://og1rlwcj8.bkt.clouddn.com/zxy.jpg',\n        'http://og1rlwcj8.bkt.clouddn.com/u=3737719926,1965507257&fm=21&gp=0.jpg'\n      ]\n    }\n  }\n}\n</script>\n\n<style>\n.ximg-demo {\n  width: 100%;\n  height: auto;\n}\n.ximg-error {\n  background-color: yellow;\n}\n.ximg-error:after {\n  content: '加载失败';\n  color: red;\n}\n</style>\n"
  },
  {
    "path": "src/demos/style.css",
    "content": "@font-face {\n  font-family: 'vux-demo';\n  src: url('//at.alicdn.com/t/font_1471971686_084563.eot'); /* IE9*/\n  src: url('//at.alicdn.com/t/font_1471971686_084563.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */\n  url('//at.alicdn.com/t/font_1471971686_084563.woff') format('woff'), /* chrome、firefox */\n  url('//at.alicdn.com/t/font_1471971686_084563.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/\n  url('//at.alicdn.com/t/font_1471971686_084563.svg#iconfont') format('svg'); /* iOS 4.1- */\n}\n\n.demo-icon {\n  font-family: 'vux-demo';\n  font-size:20px;\n  padding-right: 10px;\n  color: #04BE02;\n}\n\n.demo-icon:before {\n  content: attr(icon);\n}\n"
  },
  {
    "path": "src/directives/click-outside/index.js",
    "content": "export default {\n  bind: function (el, {value}, vnode) {\n    let onClickOutside=value\n    document.addEventListener('click', function (e) {\n      if (el && !el.contains(e.target)) {\n        onClickOutside(e)\n      }\n    }, true)\n  },\n  unbind: function (el, {value}, vnode) {\n    let onClickOutside=value\n    document.removeEventListener('click', function (e) {\n      if (el && !el.contains(e.target)) {\n        onClickOutside(e)\n      }\n    }, true)\n  }\n}\n"
  },
  {
    "path": "src/directives/inview/index.js",
    "content": "import Inview from './inview'\nexport default {\n  update (option) {\n    if (!option || !option.id) {\n      return console.error('no id specified')\n    }\n    const _this = this\n    let id = option.id\n    const vm = this.vm\n    vm.$nextTick(function () {\n      _this._inview = Inview(_this.el, function (isInView, data) {\n        if (isInView) {\n          vm.$emit('on-view-enter', id)\n        } else {\n          vm.$emit('on-view-leave', id)\n        }\n      })\n    })\n  },\n  unbind () {}\n}\n"
  },
  {
    "path": "src/directives/inview/inview.js",
    "content": "/**\n * @desc Create an InView instance.\n *\n * @class\n * @func InView\n * @param {HTMLElement} element - element to detect when scrolled to view\n * @param {scrollCallback} scrollCallback - callback function fired on scroll event\n * @return {HTMLElement} - element\n *\n * @example\n * var el = document.querySelector('.item')\n *\n * var InView = InView(el, function(isInView, data) {\n *   if (isInView) {\n *     console.log('in view')\n *   } else {\n *     if (data.windowScrollTop - (data.elementOffsetTop - data.inViewHeight) > data.inViewHeight) {\n *       console.log('not in view (scroll up)')\n *     } else {\n *       console.log('not in view (scroll down)')\n *     }\n *   }\n * })\n */\n\nfunction InView (el, callback, className) {\n  var _this = this\n  if (!(_this instanceof InView)) {\n    return new InView(el, callback)\n  }\n  _this.el = el\n  _this.callback = callback\n\n  function check (e) {\n    var params = {\n      windowScrollTop: getScrollTop(),\n      elementOffsetTop: _this.el.offsetTop,\n      inViewHeight: window.outerHeight,\n      elementOffsetTopInViewHeight: window.outerHeight - (getScrollTop() - (_this.el.offsetTop - window.outerHeight))\n    }\n    if (isInView(_this.el)) {\n      addClass(_this.el, className)\n      _this.callback.call(_this.el, true, params)\n    } else {\n      removeClass(_this.el, className)\n      _this.callback.call(_this.el, false, params)\n    }\n  }\n\n  var throttledCheck = throttle(check, 100)\n\n  check()\n  addEvent(window, 'scroll', throttledCheck)\n}\n\nfunction throttle (fn, threshhold, scope) {\n  threshhold || (threshhold = 100)\n  var last,\n    deferTimer\n\n  return function () {\n    var context = scope || this\n\n    var now = +(new Date())\n    var args = arguments\n    if (last && now < last + threshhold) {\n      clearTimeout(deferTimer)\n      deferTimer = setTimeout(function () {\n        last = now\n        fn.apply(context, args)\n      }, threshhold)\n    } else {\n      last = now\n      fn.apply(context, args)\n    }\n  }\n}\n\nfunction hasClass (el, name) {\n  return new RegExp(' ' + name + ' ').test(' ' + el.className + ' ')\n}\n\nfunction addClass (el, name) {\n  if (!hasClass(el, name)) {\n    el.className += ' ' + name\n  }\n  return el\n}\n\nfunction removeClass (el, name) {\n  var newClass = ' ' + el.className.replace(/[\\t\\r\\n]/g, ' ') + ' '\n  if (hasClass(el, name)) {\n    while (newClass.indexOf(' ' + name + ' ') >= 0) {\n      newClass = newClass.replace(' ' + name + ' ', ' ')\n    }\n    el.className = newClass.replace(/^\\s+|\\s+$/g, '')\n  }\n  return el\n}\n\nfunction addEvent (el, name, fn) {\n  if (el.addEventListener) {\n    return el.addEventListener(name, fn, false)\n  } else if (el.attachEvent) {\n    return el.attachEvent('on' + name, fn)\n  }\n}\n\nfunction getScrollTop () {\n  if (typeof window.pageYOffset !== 'undefined') {\n    return window.pageYOffset\n  } else {\n    var b = document.body\n    var d = document.documentElement\n    d = d.clientHeight ? d : b\n    return d.scrollTop\n  }\n}\n\nfunction isInView (obj) {\n  var winTop = getScrollTop()\n  var winBottom = winTop + window.innerHeight\n  var objTop = obj.offsetTop\n  var objBottom = objTop + obj.offsetHeight\n  var offset = 0\n\n  if ((objTop <= winBottom + offset) && (objBottom >= winTop)) {\n    return true\n  }\n}\n\nexport default InView\n"
  },
  {
    "path": "src/filters/array2String.js",
    "content": "export default function (array) {\n  return array.length === 1 ? array[0] : array.join(' ')\n}\n"
  },
  {
    "path": "src/filters/friendly-time.js",
    "content": "export default function (time) {\n  let date = (typeof time === 'number') ? new Date(time) : new Date((time || '').replace(/-/g, '/'))\n  let diff = (((new Date()).getTime() - date.getTime()) / 1000)\n  let dayDiff = Math.floor(diff / 86400)\n\n  let isValidDate = Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime())\n\n  if (!isValidDate) {\n    console.error('not a valid date')\n  }\n  const formatDate = function (date) {\n    let today = new Date(date)\n    let year = today.getFullYear()\n    let month = ('0' + (today.getMonth() + 1)).slice(-2)\n    let day = ('0' + today.getDate()).slice(-2)\n    let hour = today.getHours()\n    let minute = today.getMinutes()\n    let second = today.getSeconds()\n    return `${year}-${month}-${day} ${hour}:${minute}:${second}`\n  }\n\n  if (isNaN(dayDiff) || dayDiff < 0 || dayDiff >= 31) {\n    return formatDate(date)\n  }\n\n  return dayDiff === 0 && (\n      diff < 60 && '刚刚' ||\n      diff < 120 && '1分钟前' ||\n      diff < 3600 && Math.floor(diff / 60) + '分钟前' ||\n      diff < 7200 && '1小时前' ||\n      diff < 86400 && Math.floor(diff / 3600) + '小时前') ||\n    dayDiff === 1 && '昨天' ||\n    dayDiff < 7 && dayDiff + '天前' ||\n    dayDiff < 31 && Math.ceil(dayDiff / 7) + '周前'\n}\n"
  },
  {
    "path": "src/filters/name2value.js",
    "content": "import map from 'array-map'\nimport find from 'array-find'\n\nexport default function (name, list) {\n  let rs = map(name, (one, index) => {\n    let parent = ''\n    if (index === 2) {\n      // 可能存在区名一样的情况，比如南山区\n      parent = find(list, item => {\n        return item.name === name[1]\n      }) || { value: '__' }\n      return find(list, item => {\n        return item.name === one && item.parent === parent.value\n      })\n    } else {\n      return find(list, item => {\n        return item.name === one\n      })\n    }\n  })\n  return map(rs, one => {\n    return one ? one.value : '__'\n  }).join(' ')\n}\n"
  },
  {
    "path": "src/filters/value2name.js",
    "content": "import armap from 'array-map'\nimport find from 'array-find'\n\nexport default function (value, list) {\n  let rs = armap(value, (one, index) => {\n    return find(list, item => {\n      return item.value === one\n    })\n  })\n  return armap(rs, one => {\n    return one.name\n  }).join(' ').replace('--', '')\n}\n"
  },
  {
    "path": "src/libs/base.js",
    "content": "import uuidMixin from './mixin_uuid'\n\nexport default {\n  mixins: [uuidMixin],\n  props: {\n    required: {\n      type: Boolean,\n      default: true\n    }\n  },\n  created () {\n    this.handleChangeEvent = false\n  },\n  computed: {\n    dirty () {\n      return !this.prisine\n    },\n    invalid () {\n      return !this.valid\n    }\n  },\n  methods: {\n    setTouched () {\n      this.touched = true\n    }\n  },\n  watch: {\n    value (newVal) {\n      console.log(this.prisine)\n      if (this.prisine === true) {\n        this.prisine = false\n      }\n      if (!this.handleChangeEvent) {\n        this.$emit('on-change', newVal)\n      }\n    }\n  },\n  data () {\n    return {\n      errors: {},\n      prisine: true,\n      touched: false,\n      valid: true\n    }\n  }\n}\n\n"
  },
  {
    "path": "src/libs/eventor.js",
    "content": "// Events\n// -----------------\n// Thanks to:\n//  - https://github.com/documentcloud/backbone/blob/master/backbone.js\n//  - https://github.com/joyent/node/blob/master/lib/events.js\n\n// Regular expression used to split event strings\nvar eventSplitter = /\\s+/\n\n// A module that can be mixed in to *any object* in order to provide it\n// with custom events. You may bind with `on` or remove with `off` callback\n// functions to an event; `trigger`-ing an event fires all callbacks in\n// succession.\n//\n// var object = new Events();\n// object.on('expand', function(){ alert('expanded'); });\n// object.trigger('expand');\n//\nfunction Events () {\n}\n\n// Bind one or more space separated events, `events`, to a `callback`\n// function. Passing `\"all\"` will bind the callback to all events fired.\nEvents.prototype.on = function (events, callback, context) {\n  var cache, event, list\n  if (!callback) return this\n\n  cache = this.__events || (this.__events = {})\n  events = events.split(eventSplitter)\n  while (event = events.shift()) { // eslint-disable-line\n    list = cache[event] || (cache[event] = [])\n    list.push(callback, context)\n  }\n\n  return this\n}\n\nEvents.prototype.once = function (events, callback, context) {\n  var that = this\n  var cb = function () {\n    that.off(events, cb)\n    callback.apply(context || that, arguments)\n  }\n  return this.on(events, cb, context)\n}\n\n// Remove one or many callbacks. If `context` is null, removes all callbacks\n// with that function. If `callback` is null, removes all callbacks for the\n// event. If `events` is null, removes all bound callbacks for all events.\nEvents.prototype.off = function (events, callback, context) {\n  var cache, event, list, i\n\n  // No events, or removing *all* events.\n  if (!(cache = this.__events)) return this\n  if (!(events || callback || context)) {\n    delete this.__events\n    return this\n  }\n\n  events = events ? events.split(eventSplitter) : keys(cache)\n\n  // Loop through the callback list, splicing where appropriate.\n  while (event = events.shift()) { // eslint-disable-line\n    list = cache[event]\n    if (!list) continue\n\n    if (!(callback || context)) {\n      delete cache[event]\n      continue\n    }\n\n    for (i = list.length - 2; i >= 0; i -= 2) {\n      if (!(callback && list[i] !== callback ||\n          context && list[i + 1] !== context)) {\n        list.splice(i, 2)\n      }\n    }\n  }\n\n  return this\n}\n\n// Trigger one or many events, firing all bound callbacks. Callbacks are\n// passed the same arguments as `trigger` is, apart from the event name\n// (unless you're listening on `\"all\"`, which will cause your callback to\n// receive the true name of the event as the first argument).\nEvents.prototype.trigger = function (events) {\n  var cache, event, all, list, i, len\n  var rest = []\n  var returned = true\n  if (!(cache = this.__events)) return this\n\n  events = events.split(eventSplitter)\n\n  // Fill up `rest` with the callback arguments.  Since we're only copying\n  // the tail of `arguments`, a loop is much faster than Array#slice.\n  for (i = 1, len = arguments.length; i < len; i++) {\n    rest[i - 1] = arguments[i]\n  }\n\n  // For each event, walk through the list of callbacks twice, first to\n  // trigger the event, then to trigger any `\"all\"` callbacks.\n  while (event = events.shift()) { // eslint-disable-line\n    // Copy callback lists to prevent modification.\n    if (all = cache.all) all = all.slice() // eslint-disable-line\n    if (list = cache[event]) list = list.slice() // eslint-disable-line\n\n    // Execute event callbacks except one named \"all\"\n    if (event !== 'all') {\n      returned = triggerEvents(list, rest, this) && returned\n    }\n\n    // Execute \"all\" callbacks.\n    returned = triggerEvents(all, [event].concat(rest), this) && returned\n  }\n\n  return returned\n}\n\nEvents.prototype.emit = Events.prototype.trigger\n\n// Helpers\n// -------\n\nvar keys = Object.keys\n\nif (!keys) {\n  keys = function (o) {\n    var result = []\n\n    for (var name in o) {\n      if (o.hasOwnProperty(name)) {\n        result.push(name)\n      }\n    }\n    return result\n  }\n}\n\n// Mix `Events` to object instance or Class function.\nEvents.mixTo = function (receiver) {\n  var proto = Events.prototype\n\n  if (isFunction(receiver)) {\n    for (let key in proto) {\n      if (proto.hasOwnProperty(key)) {\n        receiver.prototype[key] = proto[key]\n      }\n    }\n  } else {\n    var event = new Events()\n    for (let key in proto) {\n      if (proto.hasOwnProperty(key)) {\n        copyProto(key)\n      }\n    }\n  }\n\n  function copyProto (key) {\n    receiver[key] = function () {\n      proto[key].apply(event, Array.prototype.slice.call(arguments))\n      return this\n    }\n  }\n}\n\n// Execute callbacks\nfunction triggerEvents (list, args, context) {\n  var pass = true\n\n  if (list) {\n    var i = 0\n    var l = list.length\n    var a1 = args[0]\n    var a2 = args[1]\n    var a3 = args[2]\n    // call is faster than apply, optimize less than 3 argu\n    // http://blog.csdn.net/zhengyinhui100/article/details/7837127\n    switch (args.length) {\n      case 0: for (; i < l; i += 2) {pass = list[i].call(list[i + 1] || context) !== false && pass} break\n      case 1: for (; i < l; i += 2) {pass = list[i].call(list[i + 1] || context, a1) !== false && pass} break\n      case 2: for (; i < l; i += 2) {pass = list[i].call(list[i + 1] || context, a1, a2) !== false && pass} break\n      case 3: for (; i < l; i += 2) {pass = list[i].call(list[i + 1] || context, a1, a2, a3) !== false && pass} break\n      default: for (; i < l; i += 2) {pass = list[i].apply(list[i + 1] || context, args) !== false && pass} break\n    }\n  }\n  // trigger will return false if one of the callbacks return false\n  return pass\n}\n\nfunction isFunction (func) {\n  return Object.prototype.toString.call(func) === '[object Function]'\n}\n\nmodule.exports = Events\n"
  },
  {
    "path": "src/libs/mixin_uuid.js",
    "content": "export default {\n  created () {\n    this.uuid = Math.random().toString(36).substring(3, 8)\n  }\n}\n"
  },
  {
    "path": "src/libs/router.js",
    "content": "export function go (url, $router) {\n  if (/^javas/.test(url) || !url) return\n  const useRouter = typeof url === 'object' || ($router && typeof url === 'string' && !/http/.test(url))\n  if (useRouter) {\n    $router.push(url)\n  } else {\n    window.location.href = url\n  }\n}\n\nexport function getUrl (url, $router) {\n  // Make sure the href is right in hash mode\n  if ($router && !$router._history && typeof url === 'string' && !/http/.test(url)) {\n    return `#!${url}`\n  }\n  return url && typeof url !== 'object' ? url : 'javascript:void(0);'\n}\n"
  },
  {
    "path": "src/libs/trim.js",
    "content": "// http://www.cnblogs.com/rubylouvre/archive/2009/09/18/1568794.html\nexport default function (str, replaceBreak) {\n  str = str.replace(/^\\s\\s*/, '')\n  var ws = /\\s/\n  var i = str.length\n  while (ws.test(str.charAt(--i))) {\n    var rs = str.slice(0, i + 1)\n  }\n  if (!rs) {\n    return ''\n  }\n  if (!replaceBreak) {\n    return rs\n  } else {\n    return rs.replace(/(?:\\r\\n|\\r|\\n)/g, '')\n  }\n}\n"
  },
  {
    "path": "src/main.js",
    "content": "// 消除点击延迟\nconst FastClick = require('fastclick')\nFastClick.attach(document.body)\n\nimport Vue from 'vue'\nimport App from './App'\n\n//============================================= 插件 ===================================\nimport ToastPlugin from './plugins/toast'\nimport AlertPlugin from './plugins/alert'\nimport Device from './plugins/device'\n\nVue.use(Device)\nVue.use(ToastPlugin)\nVue.use(AlertPlugin)\n\n//============================================= 路由 ===================================\nimport router from './routers/router.js'\nimport VueRouter from 'vue-router'\nVue.use(VueRouter)\n\n//时间格式化\nVue.filter('time', timestamp => {\n  return new Date(timestamp).toLocaleTimeString()\n})\n\n\nimport { sync } from 'vuex-router-sync'\nimport store from './vuex/store'\n\nlet history = window.sessionStorage\nhistory.clear()\nlet historyCount = history.getItem('count') * 1 || 0\nhistory.setItem('/', 0)\n\nconst commit = store.commit || store.dispatch\nrouter.beforeEach((to, from, next) => {\n  const toIndex = history.getItem(to.path)\n  const fromIndex = history.getItem(from.path)\n  if (toIndex) {\n    if (toIndex > fromIndex || !fromIndex) {\n      commit('UPDATE_DIRECTION', 'forward')\n    } else {\n      commit('UPDATE_DIRECTION', 'reverse')\n    }\n  } else {\n    ++historyCount\n    history.setItem('count', historyCount)\n    to.path !== '/' && history.setItem(to.path, historyCount)\n    commit('UPDATE_DIRECTION', 'forward')\n  }\n  commit('UPDATE_LOADING', true)\n  setTimeout(next, 50)\n})\nrouter.afterEach(() => {\n  commit('UPDATE_LOADING', false)\n})\n\nsync(store, router)\n\n\n// save position for demo page\nlet demoScrollTop = 0\nfunction saveDemoScrollTop () {\n  demoScrollTop = window.scrollY\n}\n\nrouter.beforeEach((to, from, next) => {\n  if (to.fullPath !== '/demo') {\n    window.removeEventListener('scroll', saveDemoScrollTop, false)\n  }\n  if (/\\/http/.test(to.path)) {\n    let url = to.path.split('http')[1]\n    window.location.href = `http${url}`\n  } else {\n    if (/\\/demo\\/component\\/\\w+/.test(to.path)) {\n      router.go({\n        replace: true,\n        path: to.path.replace('/demo', ''),\n        append: false\n      })\n    } else {\n      next()\n    }\n  }\n})\n\nrouter.afterEach((to, from, next) => {\n  if (to.path !== '/demo') {\n    window.scrollTo(0, 0)\n  } else {\n    window.removeEventListener('scroll', saveDemoScrollTop, false)\n    // if from component page\n    if (demoScrollTop && /component/.test(from.path)) {\n      setTimeout(function () {\n        window.scrollTo(0, demoScrollTop)\n      }, 100)\n    }\n    setTimeout(function () {\n      window.addEventListener('scroll', saveDemoScrollTop, false)\n    }, 1000)\n  }\n})\n\n\n\nVue.config.devtools = true\nnew Vue({\n\trouter,\n\tstore,\n    el: '#app',\n    test:\"test\",\n    template: '<App/>',\n    components: { App }\n})\n"
  },
  {
    "path": "src/mixins/multi-items.js",
    "content": "const parentMixin = {\n    mounted() {\n        this.updateIndex()\n    },\n    methods: {\n        updateIndex() {\n            if (!this.$children) return\n            this.number = this.$children.length\n            let children = this.$children\n            for (let i = 0; i < children.length; i++) {\n                children[i].index = i\n                if (children[i].selected) {\n                    this.index = i\n                }\n            }\n        }\n    },\n    props: {\n        index: {\n            type: Number,\n            default: -1\n        }\n    },\n    watch: {\n        index(val, oldVal) {\n            oldVal > -1 && this.$children[oldVal] && (this.$children[oldVal].selected = false)\n            val > -1 && (this.$children[val].selected = true)\n        }\n    },\n    data() {\n        return {\n            number: this.$children.length\n        }\n    }\n}\n\nconst childMixin = {\n    props: {\n        selected: {\n            type: Boolean,\n            default: false\n        }\n    },\n    mounted() {\n        this.$parent.updateIndex()\n    },\n    beforeDestroy() {\n        const $parent = this.$parent\n        this.$nextTick(() => {\n            $parent.updateIndex()\n        })\n    },\n    methods: {\n        onItemClick() {\n            if (typeof this.disabled === 'undefined' || this.disabled === false) {\n                this.selected = true\n                this.$parent.index = this.index\n                this.$emit('on-item-click')\n            }\n        }\n    },\n    watch: {\n        selected(val) {\n            if (val) {\n                this.$parent.index = this.index\n            } else {\n                this.$parent.index = -1\n            }\n        }\n    },\n    data() {\n        return {\n            index: -1\n        }\n    }\n}\n\nexport {\n    parentMixin,\n    childMixin\n}\n"
  },
  {
    "path": "src/pages/home/home.vue",
    "content": "<template>\n    <div  class=\"home\" :class=\"styles.main\">\n        <ul>\n            <li>1</li>\n            <li>2</li>\n            <li>3</li>\n      </ul>\n    </div>\n</template>\n\n<script>\n//import Lib from 'assets/Lib.js'\n\nexport default {\n    data() {\n        return {\n            styles : {\n                main : \"home_main\"\n            },\n            hhhh : 'Home'\n        }\n    },\n    components: {\n    },\n    created : function() {\n        console.log('实例已创建.');\n    },\n    mounted : function(){\n        console.log('模板一编译/挂载.');\n    },\n    methods: {\n    }\n}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\n    /*一定要加lang不然无法编译*/\n    /*测试一下对sass的编译*/\n    $qwe:#098;\n    $f5:50px;\n    $mainColor : #2c3e50;\n    .home{\n        border: 1px solid #b9b9b9;\n    }\n    .home_main{\n        color : $mainColor;\n        button{\n            width : 100px;\n            height : 30px; \n        }\n        li{\n            margin-top : 20px\n        }\n    }\n    body{\n\n        background-color: $qwe;\n        p{\n            font-size : $f5;   \n        }\n        h1{\n            background-color: #eee;\n            color: red;\n            transform: translate(10%, 10%);/*测试自动添加前缀*/\n        }\n        h1:hover{\n            height:100px;\n        }\n        h2{\n            background-color: #999;\n        }\n    }\n\n</style>\n\n\n\n\n\n"
  },
  {
    "path": "src/plugins/alert/index.js",
    "content": "import AlertComponent from '../../components/alert'\n\nlet $vm\nlet watcher\n\nexport default {\n  install (vue) {\n    if (!$vm) {\n      const Alert = vue.extend(AlertComponent)\n      $vm = new Alert({\n        el: document.createElement('div')\n      })\n      document.body.appendChild($vm.$el)\n    }\n\n    const alert = {\n      show (options) {\n        // destroy watcher\n        watcher && watcher()\n        if (typeof options === 'object') {\n          for (let i in options) {\n            if (i !== 'content') {\n              $vm[i] = options[i]\n            } else {\n              $vm.$el.querySelector('.weui_dialog_bd').innerHTML = options['content']\n            }\n          }\n        } else if (typeof options === 'string') {\n          $vm.$el.querySelector('.weui_dialog_bd').innerHTML = options\n        }\n        if (typeof options === 'object' && (options.onShow || options.onHide)) {\n          watcher = $vm.$watch('props_show', (val) => {\n            val && options.onShow && options.onShow($vm)\n            val === false && options.onHide && options.onHide($vm)\n          })\n        }\n        $vm.props_show = true\n      },\n      hide () {\n        $vm.props_show = false\n      }\n    }\n\n    // all Vux's plugins are included in this.$vux\n    if (!vue.$vux) {\n      vue.$vux = {\n        alert\n      }\n    } else {\n      vue.$vux.alert = alert\n    }\n\n    vue.mixin({\n      created: function () {\n        this.$vux = vue.$vux\n      }\n    })\n  }\n}\n"
  },
  {
    "path": "src/plugins/device/index.js",
    "content": "const ua = navigator.userAgent\n\nconst isAndroid = /(Android);?[\\s\\/]+([\\d.]+)?/.test(ua)\nconst isIpad = /(iPad).*OS\\s([\\d_]+)/.test(ua)\nconst isIpod = /(iPod)(.*OS\\s([\\d_]+))?/.test(ua)\nconst isIphone = !isIpad && /(iPhone\\sOS)\\s([\\d_]+)/.test(ua)\nconst isWechat = /micromessenger/i.test(ua)\n\nexport default function (Vue) {\n  Vue.mixin({\n    created: function () {\n      this.$device = {\n        isAndroid,\n        isIpad,\n        isIpod,\n        isIphone,\n        isWechat\n      }\n    }\n  })\n}\n"
  },
  {
    "path": "src/plugins/toast/index.js",
    "content": "import ToastComponent from '../../components/toast'\n\nlet $vm\nlet watcher\n\nexport default {\n  install (vue, options) {\n    const Toast = vue.extend(ToastComponent)\n\n    if (!$vm) {\n      $vm = new Toast({\n        el: document.createElement('div')\n      })\n      document.body.appendChild($vm.$el)\n    }\n\n    const toast = {\n      show (options) {\n        // destroy watcher\n        watcher && watcher()\n        if (typeof options === 'string') {\n          $vm.text = options\n        } else if (typeof options === 'object') {\n          for (let i in options) {\n            $vm[i] = options[i]\n          }\n        }\n        if (typeof options === 'object' && options.onShow || options.onHide) {\n          watcher = $vm.$watch('props_show', (val) => {\n            val && options.onShow && options.onShow($vm)\n            val === false && options.onHide && options.onHide($vm)\n          })\n        }\n        $vm.props_show = true\n      },\n      hide () {\n        $vm.props_show = false\n      }\n    }\n\n    // all Vux's plugins are included in this.$vux\n    if (!vue.$vux) {\n      vue.$vux = {\n        toast\n      }\n    } else {\n      vue.$vux.toast = toast\n    }\n\n    vue.mixin({\n      created: function () {\n        this.$vux = vue.$vux\n      }\n    })\n  }\n}\n"
  },
  {
    "path": "src/routers/router.js",
    "content": "import VueRouter from 'vue-router'\n\nvar config = require('../../config');\n// var rootPath=config.build.assetsPublicPath;\nvar rootPath=\"/\";\n\n\n/** -------------------------------------------------- 懒加载start --------------------------------------------*/\n\nconst Home = resolve => require(['../Home.vue'], resolve)\nconst Demo = resolve => require(['../demos/Demo.vue'], resolve)\nconst Cell = resolve => require(['../demos/Cell'], resolve)\nconst Tab = resolve => require(['../demos/Tab'], resolve)\nconst Swiper = resolve => require(['../demos/Swiper'], resolve)\nconst Tabbar = resolve => require(['../demos/Tabbar'], resolve)\nconst TabbarLink = resolve => require(['../demos/TabbarLink'], resolve)\nconst Flexbox = resolve => require(['../demos/Flexbox'], resolve)\nconst Popup = resolve => require(['../demos/Popup'], resolve)\nconst PopupPicker = resolve => require(['../demos/Popup-picker'], resolve)\nconst Switch = resolve => require(['../demos/Switch'], resolve)\nconst Toast = resolve => require(['../demos/Toast'], resolve)\nconst Scroller = resolve => require(['../demos/Scroller'], resolve)\nconst ScrollerFull = resolve => require(['../demos/Scroller-full'], resolve)\nconst ScrollerHeader = resolve => require(['../demos/Scroller-header'], resolve)\nconst ScrollerSwiper = resolve => require(['../demos/Scroller-swiper'], resolve)\nconst Pulldown = resolve => require(['../demos/Pulldown'], resolve)\nconst Pullup = resolve => require(['../demos/Pullup'], resolve)\nconst PulldownPullup = resolve => require(['../demos/PulldownPullup'], resolve)\nconst Spinner = resolve => require(['../demos/Spinner'], resolve)\nconst Masker = resolve => require(['../demos/Masker'], resolve)\nconst Picker = resolve => require(['../demos/Picker'], resolve)\nconst Address = resolve => require(['../demos/Address'], resolve)\nconst InlineCalendar = resolve => require(['../demos/Inline-calendar'], resolve)\nconst Calendar = resolve => require(['../demos/Calendar'], resolve)\nconst Checklist = resolve => require(['../demos/Checklist'], resolve)\nconst Checker = resolve => require(['../demos/Checker'], resolve)\nconst ColorPicker = resolve => require(['../demos/Color-picker'], resolve)\nconst Icon = resolve => require(['../demos/Icon'], resolve)\nconst Datetime = resolve => require(['../demos/Datetime'], resolve)\nconst Radio = resolve => require(['../demos/Radio'], resolve)\nconst Range = resolve => require(['../demos/Range'], resolve)\nconst Rater = resolve => require(['../demos/Rater'], resolve)\nconst XButton = resolve => require(['../demos/X-button'], resolve)\nconst Selector = resolve => require(['../demos/Selector'], resolve)\nconst Loading = resolve => require(['../demos/Loading'], resolve)\nconst Badge = resolve => require(['../demos/Badge'], resolve)\nconst Input = resolve => require(['../demos/Input'], resolve)\nconst Textarea = resolve => require(['../demos/Textarea'], resolve)\nconst XNumber = resolve => require(['../demos/Number'], resolve)\nconst Dialog = resolve => require(['../demos/Dialog'], resolve)\nconst Alert = resolve => require(['../demos/Alert'], resolve)\nconst Confirm = resolve => require(['../demos/Confirm'], resolve)\nconst Blur = resolve => require(['../demos/Blur'], resolve)\nconst Popover = resolve => require(['../components/popover/DemoIndex'], resolve)\nconst Circle = resolve => require(['../demos/Circle'], resolve)\nconst Countup = resolve => require(['../demos/Countup'], resolve)\nconst Countdown = resolve => require(['../demos/Countdown'], resolve)\nconst Actionsheet = resolve => require(['../demos/Actionsheet'], resolve)\nconst ButtonTab = resolve => require(['../demos/Button-tab'], resolve)\nconst Clocker = resolve => require(['../demos/Clocker'], resolve)\nconst Divider = resolve => require(['../demos/Divider'], resolve)\nconst Panel = resolve => require(['../demos/Panel'], resolve)\nconst Card = resolve => require(['../demos/Card'], resolve)\nconst Previewer = resolve => require(['../demos/Previewer'], resolve)\nconst Progress = resolve => require(['../demos/Progress'], resolve)\nconst Reddot = resolve => require(['../demos/Reddot'], resolve)\nconst Sticky = resolve => require(['../demos/Sticky'], resolve)\nconst Search = resolve => require(['../demos/Search'], resolve)\nconst SearchStatic = resolve => require(['../demos/Search-static'], resolve)\nconst Timeline = resolve => require(['../demos/Timeline'], resolve)\nconst Step = resolve => require(['../demos/Step'], resolve)\nconst XHeader = resolve => require(['../demos/X-header'], resolve)\nconst Comment = resolve => require(['../demos/Comment'], resolve)\nconst Emotion = resolve => require(['../demos/Wechat-emotion'], resolve)\nconst Qrcode = resolve => require(['../demos/Qrcode'], resolve)\nconst Onepx = resolve => require(['../demos/1px'], resolve)\nconst Center = resolve => require(['../demos/Center'], resolve)\nconst Close = resolve => require(['../demos/Close'], resolve)\nconst DeviceDemo = resolve => require(['../demos/Device'], resolve)\nconst Wechat = resolve => require(['../Wechat'], resolve)\nconst Yi = resolve => require(['../yi'], resolve)\n\n// const Shake = resolve => require(['../demos/Shake'], resolve)\n// const XImg = resolve => require(['../demos/XImg'], resolve)\n\n\n/** -------------------------------------------------- 懒加载end --------------------------------------------*/\n\nconst router = new VueRouter({\n    mode: 'hash',\n    base: __dirname,\n    //路由映射map\n    routes: [\n\n        { path: rootPath, component: Home, meta: { scrollToTop: true }, name: 'home' },\n        { path: rootPath + 'demo', component: Demo , name: 'demo'},\n        { path: rootPath + 'component/cell', component: Cell , name: 'cell'},\n        { path: rootPath + 'component/tab', component: Tab , name: 'tab'},\n        { path: rootPath + 'component/swiper', component: Swiper , name: 'swiper'},\n        { path: rootPath + 'component/tabbar', component: Tabbar , name: 'tabbar'},\n        { path: rootPath + 'component/tabbar-link', component: TabbarLink , name: 'tabbarLink'},\n        { path: rootPath + 'component/flexbox', component: Flexbox , name: 'flexbox'},\n        { path: rootPath + 'component/popup', component: Popup , name: 'popup'},\n        { path: rootPath + 'component/popup-picker', component: PopupPicker , name: 'popupPicker'},\n        { path: rootPath + 'component/switch', component: Switch , name: 'switch'},\n        { path: rootPath + 'component/toast', component: Toast , name: 'toast'},\n        { path: rootPath + 'component/scroller', component: Scroller , name: 'scroller'},\n        { path: rootPath + 'component/scroller/full', component: ScrollerFull , name: 'scrollerFull'},\n        { path: rootPath + 'component/scroller/header', component: ScrollerHeader , name: 'scrollerheader'},\n        { path: rootPath + 'component/scroller-swiper', component: ScrollerSwiper , name: 'scrollerSwiper'},\n        { path: rootPath + 'component/pulldown', component: Pulldown , name: 'pulldown'},\n        { path: rootPath + 'component/pullup', component: Pullup , name: 'pullup'},\n        { path: rootPath + 'component/pulldown-pullup', component: PulldownPullup , name: 'pulldown-pullup'},\n        { path: rootPath + 'component/spinner', component: Spinner , name: 'spinner'},\n        { path: rootPath + 'component/masker', component: Masker , name: 'masker'},\n        { path: rootPath + 'component/picker', component: Picker , name: 'picker'},\n        { path: rootPath + 'component/address', component: Address , name: 'address'},\n        { path: rootPath + 'component/inline-calendar', component: InlineCalendar , name: 'inline-calendar'},\n        { path: rootPath + 'component/calendar', component: Calendar , name: 'calendar'},\n        { path: rootPath + 'component/checklist', component: Checklist , name: 'checklist'},\n        { path: rootPath + 'component/checker', component: Checker , name: 'checker'},\n        { path: rootPath + 'component/color-picker', component: ColorPicker , name: 'colorPicker'},\n        { path: rootPath + 'component/icon', component: Icon , name: 'icon'},\n        { path: rootPath + 'component/datetime', component: Datetime , name: 'datetime'},\n        { path: rootPath + 'component/radio', component: Radio , name: 'radio'},\n        { path: rootPath + 'component/range', component: Range , name: 'range'},\n        { path: rootPath + 'component/rater', component: Rater , name: 'rater'},\n        { path: rootPath + 'component/x-button', component: XButton , name: 'xbutton'},\n        { path: rootPath + 'component/selector', component: Selector , name: 'selector'},\n        { path: rootPath + 'component/loading', component: Loading , name: 'loading'},\n        { path: rootPath + 'component/badge', component: Badge , name: 'badge'},\n        { path: rootPath + 'component/input', component: Input , name: 'input'},\n        { path: rootPath + 'component/textarea', component: Textarea , name: 'textarea'},\n        { path: rootPath + 'component/number', component: XNumber , name: 'number'},\n        { path: rootPath + 'component/dialog', component: Dialog , name: 'dialog'},\n        { path: rootPath + 'component/alert', component: Alert , name: 'alert'},\n        { path: rootPath + 'component/confirm', component: Confirm , name: 'confirm'},\n        { path: rootPath + 'component/popover', component: Popover , name: 'popover'},\n        { path: rootPath + 'component/blur', component: Blur , name: 'blur'},\n        { path: rootPath + 'component/circle', component: Circle , name: 'circle'},\n        { path: rootPath + 'component/countup', component: Countup , name: 'countup'},\n        { path: rootPath + 'component/countdown', component: Countdown , name: 'countdown'},\n        { path: rootPath + 'component/actionsheet', component: Actionsheet , name: 'actionsheet'},\n        { path: rootPath + 'component/button-tab', component: ButtonTab , name: 'buttonTab'},\n        { path: rootPath + 'component/clocker', component: Clocker , name: 'clocker'},\n        { path: rootPath + 'component/divider', component: Divider , name: 'divider'},\n        { path: rootPath + 'component/panel', component: Panel , name: 'panel'},\n        { path: rootPath + 'component/card', component: Card , name: 'card'},\n        { path: rootPath + 'component/previewer', component: Previewer , name: 'previewer'},\n        { path: rootPath + 'component/progress', component: Progress , name: 'progress'},\n        { path: rootPath + 'component/reddot', component: Reddot , name: 'reddot'},\n        { path: rootPath + 'component/sticky', component: Sticky , name: 'sticky'},\n        { path: rootPath + 'component/search', component: Search , name: 'search'},\n        { path: rootPath + 'component/search-static', component: SearchStatic , name: 'searchStatic'},\n        { path: rootPath + 'component/timeline', component: Timeline , name: 'timeline'},\n        { path: rootPath + 'component/step', component: Step , name: 'step'},\n        { path: rootPath + 'component/x-header', component: XHeader , name: 'header'},\n        { path: rootPath + 'component/comment', component: Comment , name: 'comment'},\n        { path: rootPath + 'component/emotion', component: Emotion , name: 'emotion'},\n        { path: rootPath + 'component/qrcode', component: Qrcode , name: 'qrcode'},\n        { path: rootPath + 'component/1px', component: Onepx , name: '1px'},\n        { path: rootPath + 'component/center', component: Center , name: 'center'},\n        { path: rootPath + 'component/close', component: Close , name: 'close'},\n        { path: rootPath + 'plugin/device', component: DeviceDemo , name: 'device'},\n        { path: rootPath + 'demo/wechat', component: Wechat , name: 'wechat'},\n        { path: rootPath + 'demo/yi', component: Yi , name: 'yi'},\n\n        // { path: rootPath + 'component/shake', component: Shake , name: 'shake'},\n        // { path: rootPath + 'component/x-img', component: XImg , name: 'XImg'},\n\n\n        //找不到页面就返回404页面\n        {\n            path: '*',\n            component: { template: '<p style=\"height:300px;text-align:center\">404</p>' }\n        }\n    ]\n});\n\n\n// // 跳转前的逻辑\n// router.beforeEach((to, from, next) => {\n\n//     console.log('before---------------');\n\n//     console.log(to.auth);\n//     next()\n// })\n\n// window.routeList = [];\n\n// // 跳转后的逻辑\n// router.afterEach(function(transition) {\n//     console.log('-----------------after');\n//     for (var i = 0; i < routeList.length; i++) {\n//         console.log(routeList[i].name);\n//     };\n// });\n\n\nexport default router\n"
  },
  {
    "path": "src/styles/1px.less",
    "content": "/** \n* https://github.com/frozenui/frozenui/ \n* MIT License\n*/\n\n.vux-1px-t {\n  border-top: 1px solid #e0e0e0;\n}\n\n.vux-1px-b {\n  border-bottom: 1px solid #e0e0e0;\n}\n\n.vux-1px-tb {\n  border-top: #e0e0e0 1px solid;\n  border-bottom: #e0e0e0 1px solid;\n  background-image: none;\n}\n\n.vux-1px-l {\n  border-left: 1px solid #e0e0e0;\n}\n\n.vux-1px-r {\n  border-right: 1px solid #e0e0e0;\n}\n\n.vux-1px {\n  border: 1px solid #e0e0e0;\n}\n\n.vux-1px-radius {\n  border: 1px solid #e0e0e0;\n  border-radius: 4px;\n}\n\n@media screen and (min-device-pixel-ratio: 2) {\n  .vux-1px-radius {\n    position: relative;\n    border: 0;\n  }\n\n  .vux-1px-radius:before {\n    content: \"\";\n    width: 200%;\n    height: 200%;\n    position: absolute;\n    top: 0;\n    left: 0;\n    border: 1px solid #e0e0e0;\n    transform: scale(0.5);\n    transform-origin: 0 0;\n    padding: 1px;\n    box-sizing: border-box;\n    border-radius: 8px;\n    pointer-events: none;\n  }\n}\n\n@media screen and (-webkit-min-device-pixel-ratio: 2) {\n  .vux-1px {\n    position: relative;\n    border: 0;\n  }\n\n  .vux-1px-t, .vux-1px-b, .vux-1px-l, .vux-1px-r, .vux-1px-tb {\n    border: 0;\n  }\n\n  .vux-1px-t {\n    background-position: left top;\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)); }\n\n  .vux-1px-b {\n    background-position: left bottom;\n    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)); }\n\n  .vux-1px-t,\n  .vux-1px-b,\n  .vux-1px-tb {\n    background-repeat: repeat-x;\n    -webkit-background-size: 100% 1px;\n  }\n\n  .vux-1px-tb {\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)), -webkit-gradient(linear, left top, left bottom, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0));\n    background-position: top, bottom;\n  }\n\n  .vux-1px-l {\n    background-position: left top;\n    background-image: -webkit-gradient(linear, right top, left top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)); }\n\n  .vux-1px-r {\n    background-position: right top;\n    background-image: -webkit-gradient(linear, left top, right top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)); }\n\n  .vux-1px-l,\n  .vux-1px-r {\n    background-repeat: repeat-y;\n    background-size: 1px 100%;\n  }\n\n  .vux-1px:after {\n    content: \"\";\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    top: 0;\n    left: 0;\n    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)), -webkit-gradient(linear, left top, right top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)), -webkit-gradient(linear, left top, left bottom, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0)), -webkit-gradient(linear, right top, left top, color-stop(0.5, transparent), color-stop(0.5, #e0e0e0));\n    background-size: 100% 1px,1px 100% ,100% 1px, 1px 100%;\n    background-repeat: no-repeat;\n    background-position: top, right, bottom, left;\n    padding: 1px;\n    box-sizing: border-box;\n    z-index: 10;\n    pointer-events: none;\n  }\n}"
  },
  {
    "path": "src/styles/center.less",
    "content": ".vux-center-v, .vux-center-h, .vux-center {\n  display: flex;\n}\n\n.vux-center-v, .vux-center {\n  align-items: center;\n}\n\n.vux-center-h, .vux-center {\n  justify-content: center;\n}"
  },
  {
    "path": "src/styles/close.less",
    "content": ".vux-close {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 24px;\n  height: 24px;\n  overflow: hidden;\n  color: #ccc;\n  &::before,\n  &::after {\n    content: '';\n    position: absolute;\n    height: 1px;\n    width: 100%;\n    top: 50%;\n    left: 0;\n    background: #98979d;\n  }\n  &::before {\n    transform: rotate(45deg);\n  }\n  &::after {\n    transform: rotate(-45deg);\n  }\n}\n\n/**\n--------custom line width and color----------\n.vux-close-2px{\n  &::before,\n  &::after {\n    height: 2px;\n    margin-top: -1px;\n    background-color: green;\n  }\n}\n*/"
  },
  {
    "path": "src/styles/index.less",
    "content": "@import 'reset.less';\n@import '1px.less';\n@import 'center.less';\n@import 'reddot.less';\n@import 'transition.less';\n@import 'loading.less';\n@import 'close.less';\n@import 'tap.less';"
  },
  {
    "path": "src/styles/index.vue",
    "content": "// this component is used only for building vux.css\n<style>\n@import './index.less';\n</style>"
  },
  {
    "path": "src/styles/loading.less",
    "content": ".vux-loading {\n  animation-duration: 0.6s;\n  animation-iteration-count: infinite;\n  animation-name: vux-loading;\n  animation-timing-function: linear;\n  border-radius: 99em;\n  border: 3px solid #DDD;\n  border-left-color: #666;\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  border-width: 2px;\n  display:table-cell;\n  vertical-align:middle;\n}\n\n@keyframes vux-loading {\n  from {\n    transform: rotate(0deg)\n  }\n  to {\n    transform: rotate(360deg)\n  }\n}"
  },
  {
    "path": "src/styles/reddot.less",
    "content": ".vux-reddot,.vux-reddot-border,.vux-reddot-s {\n  position: relative;\n}\n\n.vux-reddot:after,.vux-reddot-border:after,.vux-reddot-s:after {\n  content: '';\n  position: absolute;\n  display: block;\n  width: 8px;\n  height: 8px;\n  background-color: #f74c31;\n  border-radius: 5px;\n  right: -3px;\n  top: -3px;\n  background-clip: padding-box;\n}\n\n.vux-reddot-border:before {\n  content: '';\n  position: absolute;\n  display: block;\n  width: 8px;\n  height: 8px;\n  background-color: #fff;\n  border-radius: 5px;\n  right: -4px;\n  top: -4px;\n  background-clip: padding-box;\n  padding: 1px;\n}\n\n.vux-reddot-s:after {\n  width: 6px;\n  height: 6px;\n  top: -5px;\n  right: -5px;\n}"
  },
  {
    "path": "src/styles/reset.less",
    "content": "html {\n    -ms-text-size-adjust: 100%;\n    -webkit-text-size-adjust: 100%;\n}\n\nbody {\n    line-height: 1.6;\n    font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n}\n\n* {\n    margin: 0;\n    padding: 0;\n}\n\na img {\n    border: 0;\n}\n\na {\n    text-decoration: none;\n}"
  },
  {
    "path": "src/styles/tap.less",
    "content": ".vux-tap-active {\n  tap-highlight-color: rgba(0,0,0,0);\n}\n.vux-tap-active:active {\n  background-color: #ECECEC;\n}\n\n"
  },
  {
    "path": "src/styles/transition.less",
    "content": ".vux-fade-enter-active, .vux-fade-leave-active {\n  opacity: 1;\n  transition: opacity linear 0.2s\n}\n.vux-fade-enter, .vux-fade-leave {\n  opacity: 0;\n}\n\n.vux-dialog-enter-active, .vux-dialog-leave-active {\n  opacity: 1;\n  transition-duration: .4s;\n  transform: translate(-50%, -50%) scale(1)!important;\n  transition-property: transform, opacity!important;\n}\n.vux-dialog-enter, .vux-dialog-leave {\n  opacity: 0;\n}\n\n.vux-dialog-enter {\n  transform: translate(-50%, -50%) scale(1.185)!important;\n}\n\n.vux-dialog-leave {\n  transform: translate(-50%, -50%) scale(1)!important;\n}\n"
  },
  {
    "path": "src/styles/variable.less",
    "content": "/**\n* Before v1.0, the variable names may change anytime.\n*/\n@namespace: vux;\n\n@color-wechat-green: #04BE02;\n\n@theme-color: #04BE02;\n@opacity-disabled: 0.5;\n\n/**\n* tabbar\n*/\n@tabbar-text-color-active: #09BB07;\n\n/**\n* dialog\n*/\n@dialog-button-text-primary-color: #0BB20C;\n@dialog-button-text-default-color: #353535;\n\n/**\n* x-number\n*/\n@x-number-button-color: #3cc51f;\n@x-number-number-color: #666;\n\n/**\n* checkbox\n*/\n@checkbox-icon-color-checked: #09BB07;\n\n/**\n* check-icon\n*/\n@check-icon-color-checked: @checkbox-icon-color-checked;\n\n/**\n* Cell\n*/\n@cell-label-color: #000;\n\n/**\n* Mask\n*/\n@dialog-mask-background: rgba(0, 0, 0, .6);\n\n/**\n* Range\n*/\n@range-opacity-disabled: @opacity-disabled;\n@range-color-bar-default: #a9acb1;\n@range-color-bar-active: @theme-color;\n\n/**\n* Tabbar\n*/\n@tabbar-index: 100;\n\n/**\n* XHeader\n*/\n@x-header-background-color: #35495e;\n@x-header-title-color: #fff;\n@x-header-text-color: #ccc;\n@x-header-arrow-color: #ccc;\n\n/**\n* Timeline\n*/\n@timeline-item-bg-color: @theme-color;\n\n/**\n* Switch\n*/\n@switch-checked-bg-color: @theme-color;\n@switch-checked-border-color: @theme-color;\n\n/**\n* Button\n*/\n@button-warn-bg-color: #EF4F4F;\n@button-warn-active-color: #C13E3E;\n\n/**\n* Cell\n*/\n@cell-body-label-color: #000;\n\n/**\n* Badge\n*/\n@badge-bg-color: #f74c31;\n\n/**\n* Popover\n*/\n@popover-bg-color: #35495e;\n@popover-font-color: #fff;\n@popover-border-radius: 3px;\n@popover-border-width: 5px;\n"
  },
  {
    "path": "src/styles/weui/base/fn.less",
    "content": "// mixin\n@import \"./mixin/mobile\";\n@import \"./mixin/setOnepx\";\n@import \"./mixin/setArrow\";\n@import \"./mixin/text\";\n\n\n// variable\n@import \"./variable/global\";\n@import \"./variable/monokai\";\n\n\n@import \"./variable/weui_cell\";\n@import \"./variable/weui_button\";\n@import \"./variable/weui_msg\";\n@import \"./variable/weui_progress\";\n@import \"./variable/weui_grid\";"
  },
  {
    "path": "src/styles/weui/base/mixin/mobile.less",
    "content": "// tapcolor\n.setTapColor(@c:rgba(0,0,0,0)) {\n    -webkit-tap-highlight-color: @c;\n}\n\n//user action\n.no_select() {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n    -khtml-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n}\n\n\n\n\n\n\n\n"
  },
  {
    "path": "src/styles/weui/base/mixin/setArrow.less",
    "content": "// css2 arrow\n.arrow(@borderWidth, @borderColor) {\n    .setArrowWidth(@borderWidth);\n    .setArrowColor(@borderColor);\n}\n\n.setArrowColor(@borderColor) {\n    &.arrow_t {\n        border-bottom-color: @borderColor;\n    }\n    &.arrow_r {\n        border-left-color: @borderColor;\n    }\n    &.arrow_b {\n        border-top-color: @borderColor;\n    }\n    &.arrow_l {\n        border-right-color: @borderColor;\n    }\n}\n\n.setArrowWidth(@borderWidth) {\n    border-width: @borderWidth;\n}\n\n.setArrow(@direction, @borderWidth, @borderColor) when (@direction = top) {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    border-width: @borderWidth;\n    border-style: dashed;\n    border-color: transparent;\n\n    .arrow_t(@borderColor);\n}\n\n.setArrow(@direction, @borderWidth, @borderColor) when (@direction = right) {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    border-width: @borderWidth;\n    border-style: dashed;\n    border-color: transparent;\n    .arrow_r(@borderColor);\n}\n\n.setArrow(@direction, @borderWidth, @borderColor) when (@direction = bottom) {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    border-width: @borderWidth;\n    border-style: dashed;\n    border-color: transparent;\n    .arrow_b(@borderColor);\n}\n\n.setArrow(@direction, @borderWidth, @borderColor) when (@direction = left) {\n    display: inline-block;\n    width: 0;\n    height: 0;\n    border-width: @borderWidth;\n    border-style: dashed;\n    border-color: transparent;\n    .arrow_l(@borderColor);\n}\n\n.arrow_t(@c) {\n    border-top-width: 0;\n    border-bottom-color: @c;\n    border-bottom-style: solid;\n}\n\n.arrow_r(@c) {\n    border-right-width: 0;\n    border-left-color: @c;\n    border-left-style: solid;\n}\n\n.arrow_b(@c) {\n    border-bottom-width: 0;\n    border-top-color: @c;\n    border-top-style: solid;\n}\n\n.arrow_l(@c) {\n    border-left-width: 0;\n    border-right-color: @c;\n    border-right-style: solid;\n}\n\n// css3 arrow\n.setArrowWidth_Wap(@borderWidth) {\n    border-width: @borderWidth @borderWidth 0 0;\n}\n\n.setArrowSize_Wap(@arrowsize) {\n    height: @arrowsize;\n    width: @arrowsize;\n}\n\n.setArrow_Wap(@direction, @arrowsize, @borderColor,@borderWidth) when (@direction = top) {\n    display: inline-block;\n    .transform(translate(0, 0) rotate(-45deg));\n    .setArrowSize_Wap(@arrowsize);\n    .setArrowWidth_Wap(@borderWidth);\n    border-color: @borderColor;\n    border-style: solid;\n}\n\n.setArrow_Wap(@direction, @arrowsize, @borderColor,@borderWidth) when (@direction = right) {\n    display: inline-block;\n    transform: rotate(45deg);\n    .setArrowSize_Wap(@arrowsize);\n    .setArrowWidth_Wap(@borderWidth);\n    border-color: @borderColor;\n    border-style: solid;\n    position: relative;\n    top: -2px;\n}\n\n.setArrow_Wap(@direction, @arrowsize, @borderColor,@borderWidth) when (@direction = down) {\n    display: inline-block;\n    transform: rotate(135deg);\n    .setArrowSize_Wap(@arrowsize);\n    .setArrowWidth_Wap(@borderWidth);\n    border-color: @borderColor;\n    border-style: solid;\n\n    position: relative;\n    top: -3px;\n}\n\n.setArrow_Wap(@direction, @arrowsize, @borderColor,@borderWidth) when (@direction = left) {\n    display: inline-block;\n    transform: rotate(-135deg);\n    .setArrowSize_Wap(@arrowsize);\n    .setArrowWidth_Wap(@borderWidth);\n    border-color: @borderColor;\n    border-style: solid;\n\n    position: relative;\n    top: -2px;\n}"
  },
  {
    "path": "src/styles/weui/base/mixin/setChecked.less",
    "content": ".setChecked(@c:#FFFFFF) {\n    display: inline-block;\n    content: '';\n    width: 4px;\n    height: 8px;\n    border-bottom: 2px solid @c;\n    border-right: 2px solid @c;\n    transform: translate(0, 0) rotate(45deg);\n}\n\n.setCheckedAbs(@c:#FFFFFF) {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    content: '';\n    width: 4px;\n    height: 8px;\n    border-bottom: 2px solid @c;\n    border-right: 2px solid @c;\n    transform: translate(-50%, -65%) rotate(45deg);\n}"
  },
  {
    "path": "src/styles/weui/base/mixin/setOnepx.less",
    "content": "\n.setTopLine(@c: #C7C7C7) {\n    content: \" \";\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 1px;\n    border-top: 1px solid @c;\n    color: @c;\n    transform-origin: 0 0;\n    transform: scaleY(0.5);\n}\n\n.setBottomLine(@c: #C7C7C7) {\n    content: \" \";\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    width: 100%;\n    height: 1px;\n    border-bottom: 1px solid @c;\n    color: @c;\n    transform-origin: 0 100%;\n    transform: scaleY(0.5);\n}\n\n.setLeftLine(@c: #C7C7C7) {\n    content: \" \";\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 1px;\n    height: 100%;\n    border-left: 1px solid @c;\n    color: @c;\n    transform-origin: 0 0;\n    transform: scaleX(0.5);\n}\n\n.setRightLine(@c: #C7C7C7) {\n    content: \" \";\n    position: absolute;\n    right: 0;\n    top: 0;\n    width: 1px;\n    height: 100%;\n    border-right: 1px solid @c;\n    color: @c;\n    transform-origin: 100% 0;\n    transform: scaleX(0.5);\n}"
  },
  {
    "path": "src/styles/weui/base/mixin/text.less",
    "content": ".ellipsis(@w:auto) {\n    width: @w;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    word-wrap: normal;\n}\n\n.ellipsisLn(@line) {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    display: -webkit-box;\n    -webkit-box-orient: vertical;\n    -webkit-line-clamp: @line;\n}\n.text_wrap() {\n    word-wrap:break-word;\n    word-break:break-all;\n}"
  },
  {
    "path": "src/styles/weui/base/reset.less",
    "content": "@import \"fn\";\n\nhtml {\n    -ms-text-size-adjust: 100%;\n    -webkit-text-size-adjust: 100%;\n}\n\nbody {\n    line-height: 1.6;\n    font-family: @sansFont;\n}\n\n* {\n    margin: 0;\n    padding: 0;\n}\n\na img {\n    border: 0;\n}\n\na {\n    text-decoration: none;\n}"
  },
  {
    "path": "src/styles/weui/base/variable/global.less",
    "content": "// font family\n@sansFont:\"Helvetica Neue\",Helvetica,Arial,sans-serif;\n@serifFont:Georgia, \"Times New Roman\",Times,serif;\n@wpFont:\"Microsoft YaHei\",sans-serif;\n@bizFont:\"Helvetica Neue\",Helvetica,\"Hiragino Sans GB\",\"Microsoft YaHei\",\"微软雅黑\",Arial,sans-serif;\n@globalFont:@sansFont;\n@globalFontSize:14px;\n\n// font color\n@globalLinkColor: #61749B;\n@globalDescColor: #B2B2B2;\n@globalWarnColor: #E64340;\n@globalNickNameColor: #576B95;\n@globalTextColor: #888;\n@globalTitleColor: #000;\n\n//border\n@globalBorderColor: #BCBAB6;\n\n//arrow\n@globalArrowColor: #C7C7CC;\n\n//component\n@itemActiveColor: #E4E4E4;\n\n//page\n@pageDefaultBackgroundColor:#EFEFF4;\n\n// gap\n@gap5:5px;\n@gap10:10px;\n@gap15:15px;\n\n// vux theme\n@import \"../../../variable.less\";"
  },
  {
    "path": "src/styles/weui/base/variable/monokai.less",
    "content": "@monokaiCaret:#F8F8F0;\n@monokaiGreen:#A6E22E;\n@monokaiOrange:#FD971F;\n@monokaiBlue:#66D9EF;\n@monokaiRed:#F92672;\n@monokaiPurple:#AE81FF;\n@monokaiBrown:#E6DB74;\n@monokaiFindHighlight:#FFE792;\n@monokaiLineHighlight:#3E3D32;\n@monokaiSelection:#49483E;\n@monokaiBg:#272822;"
  },
  {
    "path": "src/styles/weui/base/variable/weui_button.less",
    "content": "@weuiBtnDefaultGap:15px;\n@weuiBtnHeight:42px;\n@weuiBtnMiniHeight:1.9;\n@weuiBtnFontSize:18px;\n@weuiBtnFontColor:#FFFFFF;\n@weuiBtnDisabledFontColor:rgba(255,255,255,.6);\n@weuiBtnActiveFontColor:rgba(255,255,255,.4);\n@weuiBtnMiniFontSize:14px;\n@weuiBtnBorderRadius:5px;\n\n@weuiBtnDefaultBg:#F7F7F7;\n@weuiBtnDefaultActiveBg:#DEDEDE;\n@weuiBtnDefaultFontColor:#454545;\n@weuiBtnDefaultDisabledFontColor:#C9C9C9;\n@weuiBtnDefaultActiveFontColor:#A1A1A1;\n\n@weuiBtnPrimaryBg:#04BE02;\n@weuiBtnPrimaryActiveBg:#039702;\n\n@weuiBtnWarnBg:@button-warn-bg-color;\n@weuiBtnWarnActiveBg:@button-warn-active-color;\n"
  },
  {
    "path": "src/styles/weui/base/variable/weui_cell.less",
    "content": "@weuiCellBg:#FFFFFF;\n@weuiCellBorderColor:#D9D9D9;\n@weuiCellGapV:10px;\n@weuiCellGapH:15px;\n@weuiCellInnerGapH:.35em;\n@weuiCellHeight: 44px;\n@weuiCellFontSize:17px;\n@weuiCellTipsFontSize:14px;\n@weuiCellLabelWidth:105px;\n\n@weuiCellLineHeight: unit((@weuiCellHeight - 2 * @weuiCellGapV) / @weuiCellFontSize); // 高度为44px，减去上下padding的行高\n@weuiCellsMarginTop:unit(20 / @weuiCellFontSize, em);"
  },
  {
    "path": "src/styles/weui/base/variable/weui_grid.less",
    "content": "@weuiGridBorderColor:#D9D9D9;\n@weuiGridFontSize: 14px;\n@weuiGridIconSize: 28px;\n@weuiGridColumnCount: 3;"
  },
  {
    "path": "src/styles/weui/base/variable/weui_msg.less",
    "content": "@weuiMsgPaddingTop:36px;\n@weuiMsgIconGap:30px;\n@weuiMsgTitleGap:5px;\n@weuiMsgTextGap:25px;\n@weuiMsgOprGap:25px;\n@weuiMsgExtraAreaGap:15px;\n@weuiMsgExtraAreaOfMinHeight:438px;"
  },
  {
    "path": "src/styles/weui/base/variable/weui_progress.less",
    "content": "@weuiProgressBg: #EBEBEB;\n@weuiProgressColor: #09BB07;\n@weuiProgressHeight: 3px;\n@weuiProgressCloseBg: #EF4F4F;\n@weuiProgressActiveBg: #C13E3E;\n"
  },
  {
    "path": "src/styles/weui/icon/weui_font.less",
    "content": "@font-face {\n    font-weight: normal;\n    font-style: normal;\n    font-family: \"weui\";\n    src: url('data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx1AAABfAAAAFZjbWFw64JcfgAAAhQAAAI0Z2x5ZvCBJt8AAARsAAAHLGhlYWQIuM5WAAAA4AAAADZoaGVhCC0D+AAAALwAAAAkaG10eDqYAAAAAAHUAAAAQGxvY2EO3AzsAAAESAAAACJtYXhwAR4APgAAARgAAAAgbmFtZeNcHtgAAAuYAAAB5nBvc3RP98ExAAANgAAAANYAAQAAA+gAAABaA+gAAP//A+kAAQAAAAAAAAAAAAAAAAAAABAAAQAAAAEAAKZXmK1fDzz1AAsD6AAAAADS2MTEAAAAANLYxMQAAAAAA+kD6QAAAAgAAgAAAAAAAAABAAAAEAAyAAQAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOqAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqDwPoAAAAWgPpAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAAAAAUAAAADAAAALAAAAAQAAAFwAAEAAAAAAGoAAwABAAAALAADAAoAAAFwAAQAPgAAAAQABAABAADqD///AADqAf//AAAAAQAEAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAMQAAAAAAAAADwAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAAAAAALgBmAKIA3gEaAV4BtgHkAgoCRgKIAtIDFANOA5YAAAACAAAAAAOvA60ACwAXAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEB9bz5BQX5vLv5BQX5u6zjBQXjrKvjBQXjA60F+by7+gQE+ru8+fy0BOSrq+QEBOSrq+QAAAIAAAAAA7MDswALACEAAAEOAQceARc+ATcuAQMHBiIvASY2OwERNDY7ATIWFREzMhYB7rn7BQX7ucL+BQX+JHYPJg92DgwYXQsHJggKXRgMA7MF/sK5+wUF+7nC/v31mhISmhIaARcICwsI/ukaAAADAAAAAAOtA6sACwAZACIAAAEOAQceARc+ATcuAQMUBisBIiY1ETY3MxYXJy4BNDYyFhQGAfC49gUF9ri++gUF+poKBxwHCgEILAgBHxMZGSYZGQOrBfq+uPYFBfa4vvr9dQcKCgcBGggBAQg5ARklGRklGQAAAAACAAAAAAOSA8IADQAfAAABDgEHERYEFzYkNxEuARMBBi8BJj8BNh8BFjclNh8BFgH0gchUCQEDkZEBAwlUyHr+vwQDlAMCFQMDegMEAScEAxMDA8IePRz+w9TwJCTw1AE9HD3+3f7DAgOZBAMcBANdAgL2AwMTBAADAAAAAAOCA7AADQAZACIAAAEOAQcRHgEXPgE3ES4BBzMWFQcGByMmLwE0EyImNDYyFhQGAfV7wVEJ+YuL+QlRwZIuCQoBBCIEAQogDhISHBISA7AdOxr+z8vnIyPnywExGjv3AQjYBAEBBNgI/rETHBISHBMAAAACAAAAAAO9A70AFwAjAAABLgE/AT4BHwEWMjclNhYXJxYUBwEGJiclJgAnBgAHFgAXNgABIAUCBQMFEAdiBxIGARMHEQYCBgb+0AYQBgIcBf79x77/AAUFAQC+xwEDAccGEQcEBwIFTAQF5QYBBgIGEAb+1QYBBqzHAQMFBf79x77/AAUFAQAABAAAAAADrwOtAAsAFwAtADEAAAEOAQceARc+ATcuAQMuASc+ATceARcOARMFDgEvASYGDwEGFh8BFjI3AT4BJiIXFjEXAfW8+QUF+by7+QUF+bus4wUF46yr4wUF4yv+9gcRBmAGDwUDBQEGfQUQBgElBQELDxQBAQOtBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAiLdBQEFSQUCBgQHEQaABgUBIQUPCwQBAQAAAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUIGQzLDSALAh0MHgsNCgr9uQscCwGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA7gDuAALABEAAAEGAgceARc2JDcmABMhETMRMwHuvP0FBf28xQEABQX/ADr+2i35A7gF/wDFvP0FBf28xQEA/d4BTv7fAAAEAAAAAAOvA60AAwAPABsAIQAAARYxFwMOAQceARc+ATcuAQMuASc+ATceARcOAQMjFTM1IwLlAQHyvPkFBfm8u/kFBfm7rOMFBeOsq+MFBePZJP3ZAoMBAQEsBfm8u/oEBPq7vPn8tATkq6vkBATkq6vkAi39JAADAAAAAAPDA8MACwAbACQAAAEGAAcWABc2ADcmAAczMhYVAw4BKwEiJicDNDYTIiY0NjIWFAYB7sD+/AUFAQTAyQEHBQX++d42CAoOAQUEKgQFAQ4KIxMaGiYaGgPDBf75ycD+/AUFAQTAyQEH5woI/tMEBgYEASwIC/4oGicZGScaAAAEAAAAAAPAA8AACAASAB4AKgAAAT4BNCYiBhQWFyMVMxEjFTM1IwMGAAcWBBc+ATcmAgMuASc+ATceARcOAQH0GCEhMCEhUY85Ock6K83++AQEAQjNuf8FBf/Hq+MEBOOrq+MEBOMCoAEgMSAgMSA6Hf7EHBwCsQT++M25/wUF/7nNAQj8pwTjq6vjBATjq6vjAAAAAwAAAAADpwOnAAsAFwAjAAABBycHFwcXNxc3JzcDDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgECjpqaHJqaHJqaHJqatrn1BQX1ubn1BQX1uajfBATfqKjfBATfAqqamhyamhyamhyamgEZBfW5ufUFBfW5ufX8xwTfqKjfBATfqKjfAAAAAwAAAAAD6QPpABEAHQAeAAABDgEjLgEnPgE3HgEXFAYHAQcBPgE3LgEnDgEHHgEXAo41gEmq4gQE4qqq4gQvKwEjOf3giLUDA7WIiLUDBLSIASMrLwTiqqriBATiqkmANP7dOQEZA7WIiLUDA7WIiLUDAAACAAAAAAPoA+gACwAnAAABBgAHFgAXNgA3JgADFg4BIi8BBwYuATQ/AScmPgEyHwE3Nh4BFA8BAfTU/uUFBQEb1NQBGwUF/uUDCgEUGwqiqAobEwqoogoBFBsKoqgKGxMKqAPoBf7l1NT+5QUFARvU1AEb/WgKGxMKqKIKARQbCqKoChsTCqiiCgEUGwqiAAAAABAAxgABAAAAAAABAAQAAAABAAAAAAACAAcABAABAAAAAAADAAQACwABAAAAAAAEAAQADwABAAAAAAAFAAsAEwABAAAAAAAGAAQAHgABAAAAAAAKACsAIgABAAAAAAALABMATQADAAEECQABAAgAYAADAAEECQACAA4AaAADAAEECQADAAgAdgADAAEECQAEAAgAfgADAAEECQAFABYAhgADAAEECQAGAAgAnAADAAEECQAKAFYApAADAAEECQALACYA+ndldWlSZWd1bGFyd2V1aXdldWlWZXJzaW9uIDEuMHdldWlHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQB3AGUAdQBpAFIAZQBnAHUAbABhAHIAdwBlAHUAaQB3AGUAdQBpAFYAZQByAHMAaQBvAG4AIAAxAC4AMAB3AGUAdQBpAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzc19jaXJjbGURc3VjY2Vzc19ub19jaXJjbGUHd2FpdGluZw53YWl0aW5nX2NpcmNsZQR3YXJuC2luZm9fY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xvc2UAAAAA') format('truetype');\n}\n\n[class^=\"weui_icon_\"]:before, [class*=\" weui_icon_\"]:before {\n    font-family: \"weui\";\n    font-style: normal;\n    font-weight: normal;\n    speak: none;\n\n    display: inline-block;\n    vertical-align: middle;\n    text-decoration: inherit;\n    width: 1em;\n    margin-right: .2em;\n    text-align: center;\n    /* opacity: .8; */\n\n    /* For safety - reset parent styles, that can break glyph codes*/\n    font-variant: normal;\n    text-transform: none;\n\n    /* fix buttons height, for twitter bootstrap */\n    line-height: 1em;\n\n    /* Animation center compensation - margins should be symmetric */\n    /* remove if not needed */\n    margin-left: .2em;\n\n    /* you can be more comfortable with increased icons size */\n    /* font-size: 120%; */\n\n    /* Uncomment for 3D effect */\n    /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */\n}\n\n.weui_icon_circle:before { content: \"\\EA01\" } /* '' */\n.weui_icon_download:before { content: \"\\EA02\" } /* '' */\n.weui_icon_info:before { content: \"\\EA03\" } /* '' */\n.weui_icon_safe_success:before { content: \"\\EA04\" } /* '' */\n.weui_icon_safe_warn:before { content: \"\\EA05\" } /* '' */\n.weui_icon_success:before { content: \"\\EA06\" } /* '' */\n.weui_icon_success_circle:before { content: \"\\EA07\" } /* '' */\n.weui_icon_success_no_circle:before { content: \"\\EA08\" } /* '' */\n.weui_icon_waiting:before { content: \"\\EA09\" } /* '' */\n.weui_icon_waiting_circle:before { content: \"\\EA0A\" } /* '' */\n.weui_icon_warn:before { content: \"\\EA0B\" } /* '' */\n.weui_icon_info_circle:before { content: \"\\EA0C\" } /* '' */\n.weui_icon_cancel:before { content: \"\\EA0D\" } /* '' */\n.weui_icon_search:before { content: \"\\EA0E\" } /* '' */\n.weui_icon_clear:before { content: \"\\EA0F\" } /* '' */"
  },
  {
    "path": "src/styles/weui/icon/weui_icon_font.less",
    "content": "@import \"weui_font\";\n\n[class^=\"weui_icon_\"]:before, [class*=\" weui_icon_\"]:before {\n    margin: 0;\n}\n\n:before {\n    .weui_icon_success& {\n        font-size: 23px;\n        color: #09BB07;\n    }\n    .weui_icon_waiting& {\n        font-size: 23px;\n        color: #10AEFF;\n    }\n    .weui_icon_warn& {\n        font-size: 23px;\n        color: #F43530;\n    }\n    .weui_icon_info& {\n        font-size: 23px;\n        color: #10AEFF;\n    }\n\n    .weui_icon_success_circle& {\n        font-size: 23px;\n        color: #09BB07;\n    }\n    .weui_icon_success_no_circle& {\n        font-size: 23px;\n        color: #09BB07;\n    }\n    .weui_icon_waiting_circle& {\n        font-size: 23px;\n        color: #10AEFF;\n    }\n    .weui_icon_circle& {\n        font-size: 23px;\n        color: #C9C9C9;\n    }\n    .weui_icon_download& {\n        font-size: 23px;\n        color: #09BB07;\n    }\n\n    .weui_icon_info_circle& {\n        font-size: 23px;\n        color: #09BB07;\n    }\n\n    .weui_icon_safe_success& {\n        color: #09BB07;\n    }\n    .weui_icon_safe_warn& {\n        color: #FFBE00;\n    }\n\n    .weui_icon_cancel& {\n        color: #F43530;\n        font-size: 22px;\n    }\n\n    .weui_icon_search& {\n        color: #B2B2B2;\n        font-size: 14px;\n    }\n\n    .weui_icon_clear& {\n        color: #B2B2B2;\n        font-size: 14px;\n    }\n}\n\n:before {\n    .weui_icon_msg& {\n        font-size: 104px;\n        .weui_icon_warn& {\n            color: #F76260;\n        }\n    }\n}\n\n:before {\n    .weui_icon_safe& {\n        font-size: 104px;\n    }\n}"
  },
  {
    "path": "src/styles/weui/weui.less",
    "content": "@import \"./base/reset\";\n\n// icon font\n@import \"./icon/weui_icon_font\";\n\n\n// button\n@import \"./widget/weui_button/weui_button\";\n\n// cell\n@import \"./widget/weui_cell/weui_cell_global\";\n\n@import \"./widget/weui_cell/weui_access\";\n@import \"./widget/weui_cell/weui_check\";\n@import \"./widget/weui_cell/weui_form\";\n@import \"./widget/weui_cell/weui_switch\";\n@import \"./widget/weui_cell/weui_uploader\";\n\n// msg\n@import \"./widget/weui_page/weui_msg\";\n\n// article\n@import \"./widget/weui_page/weui_article\";\n\n// tab\n@import \"./widget/weui_tab/weui_tab\";\n\n// progress\n@import \"./widget/weui_progress/weui_progress\";\n\n// card\n@import \"./widget/weui_panel/weui_panel\";\n\n// media box\n@import \"./widget/weui_media_box/weui_media_box\";\n\n// grid\n@import \"./widget/weui_grid/weui_grid\";\n\n// tips\n@import \"./widget/weui_tips/weui_dialog\";\n@import \"./widget/weui_tips/weui_toast\";\n@import \"./widget/weui_tips/weui_mask\";\n\n//action sheet\n@import \"./widget/weui_tips/weui_actionsheet\";\n\n//searchbar\n@import \"./widget/weui_searchbar/weui_searchbar\";"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_default.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn_default {\n    background-color: @weuiBtnDefaultBg;\n    color: @weuiBtnDefaultFontColor;\n    &:not(.weui_btn_disabled):visited {\n        color: @weuiBtnDefaultFontColor;\n    }\n    &:not(.weui_btn_disabled):active {\n        color: @weuiBtnDefaultActiveFontColor;\n        background-color: @weuiBtnDefaultActiveBg;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_disabled.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn_disabled {\n    color: @weuiBtnDisabledFontColor;\n    &.weui_btn_default {\n        color: @weuiBtnDefaultDisabledFontColor;\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_global.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn {\n    position: relative;\n    display: block;\n    margin-left: auto;\n    margin-right: auto;\n    padding-left: 14px;\n    padding-right: 14px;\n    box-sizing: border-box;\n    font-size: @weuiBtnFontSize;\n    text-align: center;\n    text-decoration: none;\n    color: @weuiBtnFontColor;\n    line-height: unit(@weuiBtnHeight/@weuiBtnFontSize);\n    border-radius: @weuiBtnBorderRadius;\n    .setTapColor();\n    overflow: hidden;\n    &:after {\n        content: \" \";\n        width: 200%;\n        height: 200%;\n        position: absolute;\n        top: 0;\n        left: 0;\n        border: 1px solid rgba(0, 0, 0, .2);\n        transform: scale(.5);\n        transform-origin: 0 0;\n        box-sizing: border-box;\n        border-radius: @weuiBtnBorderRadius*2;\n    }\n\n    &.weui_btn_inline {\n        display: inline-block;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_plain.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn_plain_primary {\n    color: @weuiBtnPrimaryBg;\n    border: 1px solid @weuiBtnPrimaryBg;\n    button&, input& {\n        border-width: 1px;\n        background-color: transparent;\n    }\n    &:active {\n        border-color: @weuiBtnPrimaryActiveBg;\n    }\n    &:after {\n        border-width: 0;\n    }\n}\n\n.weui_btn_plain_default {\n    color: #5A5A5A;\n    border: 1px solid #5A5A5A;\n    button&, input& {\n        border-width: 1px;\n        background-color: transparent;\n    }\n    &:after {\n        border-width: 0;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_primary.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn_primary {\n    background-color: @weuiBtnPrimaryBg;\n    &:not(.weui_btn_disabled):visited {\n        color: @weuiBtnFontColor;\n    }\n    &:not(.weui_btn_disabled):active {\n        color: @weuiBtnActiveFontColor;\n        background-color: @weuiBtnPrimaryActiveBg;\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_btn_warn.less",
    "content": "@import \"../../base/fn\";\n\n.weui_btn_warn {\n    background-color: @weuiBtnWarnBg;\n    &:not(.weui_btn_disabled):visited {\n        color: @weuiBtnFontColor;\n    }\n    &:not(.weui_btn_disabled):active {\n        color: @weuiBtnActiveFontColor;\n        background-color: @weuiBtnWarnActiveBg;\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_button/weui_button.less",
    "content": "@import \"../../base/fn\";\n// 存在样式优先级的问题，故这里对其他weui_btn的引用放在底部\n// 主要是button.weui_btn在weui_btn_plain下重写border-width\n\n.weui_btn {\n    &.weui_btn_mini {\n        line-height: @weuiBtnMiniHeight;\n        font-size: @weuiBtnMiniFontSize;\n        padding: 0 .75em;\n        display: inline-block;\n    }\n}\n\nbutton, input {\n    &.weui_btn {\n        width: 100%;\n        border-width: 0;\n        outline: 0;\n        -webkit-appearance: none;\n        &:focus {\n            outline: 0;\n        }\n    }\n    &.weui_btn_inline,&.weui_btn_mini {\n        width: auto;\n    }\n}\n\n/*gap between btn*/\n.weui_btn + .weui_btn {\n    margin-top: @weuiBtnDefaultGap;\n}\n\n.weui_btn.weui_btn_inline + .weui_btn.weui_btn_inline {\n    margin-top: auto;\n    margin-left: @weuiBtnDefaultGap;\n}\n\n.weui_btn_area {\n    margin: @weuiCellsMarginTop @weuiBtnDefaultGap .3em;\n    &.weui_btn_area_inline {\n        display: flex;\n        .weui_btn {\n            margin-top: auto;\n            margin-right: @weuiBtnDefaultGap;\n            width: 100%;\n            flex: 1;\n            &:last-child {\n                margin-right: 0;\n            }\n        }\n    }\n}\n\n@import \"weui_btn_global\";\n@import \"weui_btn_default\";\n@import \"weui_btn_primary\";\n@import \"weui_btn_warn\";\n@import \"weui_btn_disabled\";\n@import \"weui_btn_plain\";"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_access.less",
    "content": "@import \"../../base/fn\";\n\n.weui_cells_access {\n    .weui_cell:not(.no_access) {\n        // 在cell_access和其它类型的cell混着用的场景下，其它cell要加no_access，避免有点击态\n        .setTapColor;\n        &:active {\n            background-color: #ECECEC;\n        }\n    }\n    a.weui_cell {\n        color: inherit;\n    }\n    .weui_cell_ft {\n        &:after {\n            content: \" \";\n            .setArrow_Wap(right, 6px, #C8C8CD, 2px);\n            top: -1px;\n            margin-left:.3em;\n        }\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_cell_global.less",
    "content": "@import \"../../base/fn\";\n\n.weui_cell {\n    // onepx\n    position: relative;\n    &:before {\n        .setTopLine(@weuiCellBorderColor);\n        left: @weuiCellGapH;\n    }\n    &:first-child {\n        &:before {\n            display: none;\n        }\n    }\n}\n\n.weui_cells {\n    margin-top: @weuiCellsMarginTop;\n    background-color: @weuiCellBg;\n    line-height: @weuiCellLineHeight;\n    font-size: @weuiCellFontSize; //cell中间有效高度23px，跟客户端默认图标尺寸一致\n\n    overflow: hidden; //因为每个cell的border使用before元素left搞的，ie下伪元素的containing block估计跟标准不同，在cell上用oh不生效\n\n    // onepx\n    position: relative;\n    &:before {\n        .setTopLine(@weuiCellBorderColor);\n    }\n    &:after {\n        .setBottomLine(@weuiCellBorderColor);\n    }\n}\n\n.weui_cells_title {\n    margin-top: .77em; // 15px - 行高\n    margin-bottom: .3em; // 8px - 行高\n    padding-left: @weuiCellGapH;\n    padding-right: @weuiCellGapH;\n    color: @globalTextColor;\n    font-size: @weuiCellTipsFontSize;\n\n    & + .weui_cells {\n        margin-top: 0;\n    }\n}\n\n.weui_cells_tips {\n    margin-top: .3em; // 8px - 行高\n    color: @globalTextColor;\n    padding-left: @weuiCellGapH;\n    padding-right: @weuiCellGapH;\n    font-size: @weuiCellTipsFontSize;\n}\n\n.weui_cell {\n    padding: @weuiCellGapV @weuiCellGapH;\n    position: relative; //这个是为了兼容cells容器onepx方案被before挡住而做的\n    display: flex;\n    align-items: center;\n}\n\n.weui_cell_ft {\n    text-align: right;\n    color: @globalTextColor;\n}\n\n.weui_cell_primary {\n    flex: 1;\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_check/weui_check_common.less",
    "content": "@import \"../../../base/fn\";\n\n.weui_check_label {\n    .setTapColor();\n}\n\n.weui_check{\n    position: absolute;\n    left: -9999em;\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_check/weui_checkbox.less",
    "content": "@import \"../../../base/fn\";\n\n.weui_cells_checkbox {\n    .weui_cell_hd {\n        padding-right: @weuiCellInnerGapH;\n    }\n    .weui_cell {\n        &:active {\n            background-color: #ECECEC;\n        }\n    }\n    .weui_icon_checked {\n        &:before {\n            content: '\\EA01';\n            color: #C9C9C9;\n            font-size: 23px;\n            display: block;\n        }\n    }\n}\n\n// method2 accessbility\n.weui_check {\n    // checkbox\n    .weui_cells_checkbox & {\n        &:checked {\n            & + .weui_icon_checked {\n                &:before {\n                    content: '\\EA06';\n                    color: @checkbox-icon-color-checked;\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_check/weui_radio.less",
    "content": "@import \"../../../base/fn\";\n\n// method2 accessbility\n.weui_cells_radio{\n    .weui_cell_ft {\n        padding-left: @weuiCellInnerGapH;\n    }\n    .weui_cell {\n        &:active {\n            background-color: #ECECEC;\n        }\n    }\n}\n.weui_check {\n    // radio\n    .weui_cells_radio & {\n        &:checked {\n            & + .weui_icon_checked {\n                &:before {\n                    display: block;\n                    content: '\\EA08';\n                    color: #09BB07;\n                    font-size: 16px;\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_check.less",
    "content": "@import \"../../base/fn\";\n@import \"./weui_check/weui_check_common\";\n@import \"./weui_check/weui_radio\";\n@import \"./weui_check/weui_checkbox\";\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form/weui_form_common.less",
    "content": "@import \"../../../base/fn\";\n\n.weui_label{\n    color: @cell-label-color;\n    display:block;\n    width:@weuiCellLabelWidth;\n    .text_wrap();\n}\n.weui_input {\n    width: 100%;\n    border: 0;\n    outline: 0;\n    -webkit-appearance: none;\n    background-color: transparent;\n    font-size: inherit;\n    color: inherit;\n    height: unit(@weuiCellLineHeight, em);\n    line-height: @weuiCellLineHeight;\n\n    // hides the spin-button\n    &::-webkit-outer-spin-button, &::-webkit-inner-spin-button{\n        -webkit-appearance: none;\n        margin: 0;\n    }\n}\n.weui_textarea {\n    display: block;\n    border: 0;\n    resize: none;\n    width: 100%;\n    color: inherit;\n    font-size: 1em;\n    line-height: inherit;\n    outline: 0;\n}\n\n.weui_textarea_counter{\n    color: @globalDescColor;\n    text-align: right;\n    .weui_cell_warn &{\n        color: @globalWarnColor;\n    }\n}\n\n.weui_toptips {\n    display:none;\n    position: fixed;\n    -webkit-transform: translateZ(0);\n    width: 100%;\n    top: 0;\n    line-height: 2.3;\n    font-size:14px;\n    text-align: center;\n    color: #FFF;\n    z-index: 50000;\n    &.weui_warn {\n        background-color: @globalWarnColor;\n    }\n}\n.weui_cells_form {\n    .weui_cell_warn{\n        color:@globalWarnColor;\n        .weui_icon_warn{display:inline-block;}\n    }\n    .weui_cell_ft{font-size:0;}\n    .weui_icon_warn{\n        display:none;\n    }\n    input, textarea, label[for]{\n        -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form/weui_select.less",
    "content": "@import \"../../../base/fn\";\n\n.weui_cell_select {\n    padding-top: 0!important;\n    padding-bottom: 0!important;\n    .weui_select {\n        padding-right: 30px;\n    }\n    .weui_access_icon {\n\n    }\n    .weui_cell_bd{\n        &:after{\n            content: \" \";\n            .setArrow_Wap(right, 6px, #C8C8CD, 2px);\n\n            position: absolute;\n            top: 50%;\n            right: @weuiCellGapH;\n            margin-top: -3px;\n        }\n    }\n}\n\n.weui_select {\n    -webkit-appearance: none;\n    border: 0;\n    outline: 0;\n    background-color: transparent;\n    width: 100%;\n    font-size: inherit;\n    height: @weuiCellHeight;\n    line-height: @weuiCellHeight;\n    position: relative;\n    z-index: 1;\n    padding-left: @weuiCellGapH;\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form/weui_select_after.less",
    "content": "@import \"../../../base/fn\";\n@import \"./weui_select\";\n\n.weui_select_after {\n    padding-left:@weuiCellGapH;\n    .weui_select {\n        padding-left:0;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form/weui_select_before.less",
    "content": "@import \"../../../base/fn\";\n@import \"./weui_select\";\n\n.weui_select_before {\n    padding-right:@weuiCellGapH;\n    .weui_select {\n        width:@weuiCellLabelWidth;\n        box-sizing: border-box;\n    }\n    .weui_cell_hd {\n        position:relative;\n        &:after {\n            .setRightLine(@weuiCellBorderColor);\n        }\n        &:before{\n            content: \" \";\n            .setArrow_Wap(right, 6px, #C8C8CD, 2px);\n\n            position: absolute;\n            top: 50%;\n            right: @weuiCellGapH;\n            margin-top: -3px;\n        }\n    }\n    .weui_cell_bd {\n        padding-left:@weuiCellGapH;\n        &:after{\n            display:none;\n        }\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form/weui_vcode.less",
    "content": "@import \"../../../base/fn\";\n\n.weui_vcode {\n    padding-top: 0!important;\n    padding-right: 0!important;\n    padding-bottom: 0!important;\n    .weui_cell_ft {\n        img {\n            margin-left: 5px;\n            height: @weuiCellHeight;\n            vertical-align: middle;\n        }\n    }\n    .weui_btn {\n        margin-left: 5px;\n        width: auto;\n        display: inline-block;\n        height: @weuiCellHeight;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_form.less",
    "content": "@import \"../../base/fn\";\n@import \"./weui_form/weui_form_common\";\n@import \"./weui_form/weui_select\";\n@import \"./weui_form/weui_select_before\";\n@import \"./weui_form/weui_select_after\";\n@import \"./weui_form/weui_vcode\";\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_switch.less",
    "content": "@import \"../../base/fn\";\n@weuiSwitchHeight: 32px;\n.weui_cell.weui_cell_switch{\n    padding-top: (@weuiCellHeight - @weuiSwitchHeight) / 2;\n    padding-bottom: (@weuiCellHeight - @weuiSwitchHeight) / 2;\n}\n.weui_switch{\n    appearance: none;\n    position: relative;\n    width: 52px;\n    height: @weuiSwitchHeight;\n    border: 1px solid #DFDFDF;\n    outline: 0;\n    border-radius: 16px;\n    box-sizing: border-box;\n    background: #DFDFDF;\n    &:before{\n        content: \" \";\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 50px;\n        height: @weuiSwitchHeight - 2;\n        border-radius: 15px;\n        background-color: #FDFDFD;\n        transition:transform .3s;\n    }\n    &:after{\n        content: \" \";\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: @weuiSwitchHeight - 2;\n        height: @weuiSwitchHeight - 2;\n        border-radius: 15px;\n        background-color: #FFFFFF;\n        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n        transition:transform .3s;\n    }\n\n    &:checked{\n        border-color: @switch-checked-border-color;\n        background-color: @switch-checked-bg-color;\n        &:before{\n            transform: scale(0);\n        }\n        &:after{\n            transform: translateX(20px);\n        }\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_cell/weui_uploader.less",
    "content": "@import \"../../base/fn\";\n\n@weuiUploaderBorderColor:#D9D9D9;\n@weuiUploaderActiveBorderColor:#999999;\n@weuiUploaderFileSpacing: 9px;\n@weuiUploaderSize: 79px;\n@weuiUploaderBorderWidth: 1px;\n\n.weui_uploader{}\n.weui_uploader_hd{\n    padding-top: 0;\n    padding-right: 0;\n    padding-left: 0;\n    .weui_cell_ft{\n        font-size: 1em;\n    }\n}\n.weui_uploader_bd{\n    margin-bottom: @weuiCellGapH - (@weuiCellGapV + @weuiUploaderFileSpacing);\n    margin-right: -@weuiUploaderFileSpacing;\n    overflow: hidden;\n}\n\n.weui_uploader_files{\n    list-style: none;\n}\n.weui_uploader_file{\n    float: left;\n    margin-right: @weuiUploaderFileSpacing;\n    margin-bottom: @weuiUploaderFileSpacing;\n    width: @weuiUploaderSize;\n    height: @weuiUploaderSize;\n    background: no-repeat center center;\n    background-size: cover;\n}\n.weui_uploader_status{\n    position: relative;\n    &:before{\n        content: \" \";\n        position: absolute;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        background-color: rgba(0, 0, 0, .5);\n    }\n    .weui_uploader_status_content{\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        color: #FFFFFF;\n    }\n    .weui_icon_warn{\n        display: block;\n    }\n}\n\n.weui_uploader_input_wrp{\n    float:left;\n    position: relative;\n    margin-right: @weuiUploaderFileSpacing;\n    margin-bottom: @weuiUploaderFileSpacing;\n    width: @weuiUploaderSize - @weuiUploaderBorderWidth * 2;\n    height: @weuiUploaderSize - @weuiUploaderBorderWidth * 2;\n    border: @weuiUploaderBorderWidth solid @weuiUploaderBorderColor;\n    &:before, &:after{\n        content: \" \";\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        background-color: @weuiUploaderBorderColor;\n    }\n    &:before{\n        width: @weuiUploaderBorderWidth + 1;\n        height: @weuiUploaderSize / 2;\n    }\n    &:after{\n        width: @weuiUploaderSize / 2;\n        height: @weuiUploaderBorderWidth + 1;\n    }\n    &:active{\n        border-color: @weuiUploaderActiveBorderColor;\n        &:before, &:after{\n            background-color: @weuiUploaderActiveBorderColor;\n        }\n    }\n}\n.weui_uploader_input{\n    position: absolute;\n    z-index: 1;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    opacity: 0;\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_grid/weui_grid.less",
    "content": "@import \"../../base/fn\";\n\n.weui_grids {\n    position: relative;\n    overflow: hidden;\n\n    &:before {\n        content: '';\n        position: absolute;\n        box-sizing: border-box;\n        width: 200%;\n        height: 200%;\n        left: 0;\n        top: 0;\n        border: 1px solid @weuiGridBorderColor;\n        transform-origin: 0 0;\n        transform: scale(.5);\n    }\n}\n\n.weui_grid {\n    position: relative;\n    float: left;\n    padding: 20px 10px;\n    width: 100% / @weuiGridColumnCount;\n    box-sizing: border-box;\n\n    &:before {\n        content: '';\n        position: absolute;\n        box-sizing: border-box;\n        width: 200%;\n        height: 200%;\n        left: 0;\n        top: 0;\n        border-bottom: 1px solid @weuiGridBorderColor;\n        border-right: 1px solid @weuiGridBorderColor;\n        transform-origin: 0 0;\n        transform: scale(.5);\n    }\n\n    &:nth-child(3n) {\n        &:before {\n            border-right-width: 0;\n        }\n    }\n\n    &:active {\n        background-color: @itemActiveColor;\n    }\n}\n\n.weui_grid_icon {\n    width: @weuiGridIconSize;\n    height: @weuiGridIconSize;\n    margin: 0 auto;\n\n    img {\n        display: block;\n        width: 100%;\n        height: 100%;\n    }\n\n    & + .weui_grid_label {\n        margin-top: 5px;\n    }\n}\n\n.weui_grid_label {\n    display: block;\n    text-align: center;\n    color: @globalTitleColor;\n    font-size: @weuiGridFontSize;\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_media_box/weui_media_box.less",
    "content": "@import \"../../base/fn\";\n\n@lineColor: #E5E5E5;\n@grayColor: #999999;\n\n.weui_media_box {\n    padding: 15px;\n    position: relative;\n    &:before {\n        .setTopLine(@lineColor);\n        left: 15px;\n    }\n    &:first-child {\n        &:before {\n            display: none\n        }\n    }\n\n    a&{\n        color:#000000;\n        .setTapColor;\n        &:active{\n            background-color:#ECECEC;\n        }\n    }\n\n    .weui_media_title {\n        font-weight: 400;\n        font-size: 17px;\n        .ellipsis();\n        word-wrap: break-word;\n        word-break: break-all;\n    }\n    .weui_media_desc {\n        color: @grayColor;\n        font-size: 13px;\n        line-height: 1.2;\n        .ellipsisLn(2);\n    }\n\n    &.weui_media_text {\n        .weui_media_title {\n            margin-bottom: 8px;\n        }\n        .weui_media_info {\n            margin-top: 15px;\n            padding-bottom: 5px;\n            font-size: 13px;\n            color: #CECECE;\n            line-height: 1em;\n            list-style: none;\n            overflow: hidden;\n        }\n        .weui_media_info_meta {\n            float: left;\n            padding-right: 1em;\n            &.weui_media_info_meta_extra {\n                padding-left: 1em;\n                border-left: 1px solid #CECECE;\n            }\n        }\n\n    }\n    &.weui_media_appmsg {\n        display: flex;\n        align-items: center;\n        .weui_media_hd {\n            margin-right: .8em;\n            width: 60px;\n            height: 60px;\n            line-height: 60px;\n            text-align: center;\n        }\n        .weui_media_appmsg_thumb {\n            width: 100%;\n            max-height: 100%;\n            vertical-align: top;\n        }\n        .weui_media_bd {\n            flex: 1;\n            min-width: 0;\n        }\n    }\n    &.weui_media_small_appmsg {\n        padding: 0;\n        .weui_cells {\n            margin-top: 0;\n            &:before {\n                display: none;\n            }\n        }\n        .weui_cells_access {\n        }\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_page/weui_article.less",
    "content": "@import \"../../base/fn\";\n\n.weui_article {\n    padding: 20px 15px;\n    font-size: 15px;\n    section {\n        margin-bottom: 1.5em;\n    }\n    h1 {\n        font-size: 17px;\n        font-weight:400;\n        margin-bottom: .75em;\n    }\n    h2 {\n        font-size: 16px;\n        font-weight:400;\n        margin-bottom: .3em;\n    }\n    h3 {\n        font-weight:400;\n        font-size: 15px;\n    }\n    * {\n        max-width: 100%;\n        -webkit-box-sizing: border-box;\n        box-sizing: border-box;\n        word-wrap: break-word;\n    }\n    p {\n        margin: 10px 0;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_page/weui_msg.less",
    "content": "@import \"../../base/fn\";\n@import \"../weui_button/weui_button\";\n\n.weui_msg {\n    padding-top: @weuiMsgPaddingTop;\n    text-align: center;\n\n    .weui_icon_area {\n        margin-bottom: @weuiMsgIconGap;\n    }\n\n    .weui_text_area {\n        margin-bottom: @weuiMsgTextGap;\n        padding:0 20px;\n    }\n    .weui_msg_title {\n        margin-bottom: @weuiMsgTitleGap;\n        font-weight: 400;\n        font-size: 20px;\n    }\n    .weui_msg_desc {\n        font-size: 14px;\n        color: @globalTextColor;\n    }\n\n    .weui_opr_area {\n        margin-bottom: @weuiMsgOprGap;\n    }\n\n    .weui_extra_area {\n        margin-bottom: @weuiMsgExtraAreaGap;\n        font-size: 14px;\n        color: @globalTextColor;\n        a{color: @globalLinkColor;}\n    }\n}\n\n@media screen and (min-height: @weuiMsgExtraAreaOfMinHeight) {\n    .weui_extra_area {\n        position: fixed;\n        left: 0;\n        bottom: 0;\n        width: 100%;\n        text-align: center;\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_panel/weui_panel.less",
    "content": "@import \"../../base/fn\";\n\n@lineColor: #E5E5E5;\n@grayColor: #999999;\n\n.weui_panel {\n    background-color: #FFFFFF;\n    margin-top: 10px;\n    &:first-child {\n        margin-top: 0;\n    }\n\n    position: relative;\n    overflow: hidden;\n    &:before {\n        .setTopLine(@lineColor);\n    }\n    &:after {\n        .setBottomLine(@lineColor);\n    }\n}\n\n.weui_panel_hd {\n    padding: 14px 15px 10px;\n    color: @grayColor;\n    font-size: 13px;\n    position: relative;\n    &:after {\n        .setBottomLine(@lineColor);\n        left: 15px;\n    }\n}\n\n.weui_panel_ft {\n    padding: 10px 15px 12px;\n    color: @grayColor;\n    font-size: 14px;\n    position: relative;\n    &:before {\n        .setTopLine(@lineColor);\n        left: 15px;\n    }\n    .weui_panel_access & {\n        display: block;\n        color: #586C94;\n        .setTapColor;\n        &:active{\n            background-color:#ECECEC;\n        }\n        &:after {\n            content: \" \";\n            .setArrow_Wap(right, 6px, #C7C7CC, 2px);\n            position: absolute;\n            right: 15px;\n            top: 50%;\n            margin-top: -4px;\n        }\n    }\n}\n\n\n\n\n\n"
  },
  {
    "path": "src/styles/weui/widget/weui_progress/weui_progress.less",
    "content": "@import \"../../base/fn\";\n\n.weui_progress {\n    display: flex;\n    align-items: center;\n}\n\n.weui_progress_bar {\n    background-color: @weuiProgressBg;\n    height: @weuiProgressHeight;\n    flex: 1;\n}\n\n.weui_progress_inner_bar {\n    width: 0;\n    height: 100%;\n    background-color: @weuiProgressColor;\n}\n\n.weui_progress_opr {\n    display: block;\n    margin-left: 15px;\n    font-size: 0;\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_searchbar/weui_searchbar.less",
    "content": "@import \"../../base/fn\";\n.weui_search_bar {\n    position: relative;\n    padding: 8px 10px;\n    display: flex;\n    box-sizing: border-box;\n    background-color: #EFEFF4;\n    &:before {\n        .setTopLine();\n    }\n    &:after {\n        .setBottomLine();\n    }\n    &.weui_search_focusing{\n        .weui_search_cancel{\n            display: block;\n        }\n        .weui_search_text{\n            display: none;\n        }\n    }\n}\n.weui_search_outer {\n    position: relative;\n    flex: auto;\n    background-color: #EFEFF4;\n    &:after{\n        content: '';\n        position: absolute;\n        left: 0;\n        top:0;\n        width: 200%;\n        height: 200%;\n        transform: scale(.5);\n        transform-origin: 0 0;\n        border-radius: 10px;\n        border: 1px solid #E6E6EA;\n        box-sizing: border-box;\n        background: #FFFFFF;\n    }\n}\n.weui_search_inner {\n    position: relative;\n    padding-left: 30px;\n    padding-right: 30px;\n    height: 100%;\n    width: 100%;\n    box-sizing: border-box;\n    z-index: 1;\n    .weui_search_input {\n        padding: 4px 0;\n        width: 100%;\n        height: 20/14em;\n        border: 0;\n        font-size: 14px;\n        line-height: 20/14em;\n        box-sizing: content-box;\n        background: transparent;\n        &:focus {\n            outline: none;\n        }\n    }\n    .weui_icon_search {\n        position: absolute;\n        left: 10px;\n        top: -2px;\n        line-height: 28px;\n    }\n    .weui_icon_clear {\n        position: absolute;\n        top: -2px;\n        right: 0;\n        padding: 0 10px;\n        line-height: 28px;\n    }\n}\n.weui_search_text {\n    position: absolute;\n    top: 1px;\n    right: 1px;\n    bottom: 1px;\n    left: 1px;\n    z-index: 2;\n    border-radius: 3px;\n    text-align: center;\n    color: #9B9B9B;\n    background: #FFFFFF;\n    span {\n        display: inline-block;\n        font-size: 14px;\n        vertical-align: middle;\n    }\n    .weui_icon_search {\n        margin-right: 5px;\n    }\n}\n.weui_search_cancel {\n    display: none;\n    margin-left: 10px;\n    line-height: 28px;\n    white-space: nowrap;\n    color: #09BB07;\n}\n.weui_search_input:not(:valid) ~ .weui_icon_clear {\n    display: none;\n}\n\n//干掉input[search]默认的clear button\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n    display: none;\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_tab/navbar.less",
    "content": "@import \"../../base/fn\";\n\n.weui_navbar {\n    display: flex;\n    position: absolute;\n    z-index: 500;\n    top: 0;\n    width: 100%;\n    background-color: #fafafa;\n\n    &:after {\n        .setBottomLine(@globalBorderColor);\n    }\n\n    & + .weui_tab_bd {\n        padding-top: 50px;\n        padding-bottom: 0;\n    }\n}\n\n.weui_navbar_item {\n    position: relative;\n    display: block;\n    flex: 1;\n    padding: 13px 0;\n    text-align: center;\n    font-size: 15px;\n    -webkit-tap-highlight-color: transparent;\n\n    &:active {\n        background-color: #ededed;\n    }\n\n    &.weui_bar_item_on {\n        background-color: #eaeaea;\n    }\n\n    &:after {\n        .setRightLine(#cccccc);\n    }\n\n    &:last-child {\n        &:after {\n            display: none;\n        }\n    }\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_tab/tabbar.less",
    "content": "@import \"../../base/fn\";\n\n.weui_tabbar {\n    display: flex;\n    position: absolute;\n    z-index: @tabbar-index;\n    bottom: 0;\n    width: 100%;\n    background-color: #f7f7fa;\n\n    &:before {\n        .setTopLine(#979797);\n    }\n}\n\n.weui_tabbar_item {\n    display: block;\n    flex: 1;\n    padding: 7px 0 0;\n    -webkit-tap-highlight-color: transparent;\n\n    &.weui_bar_item_on {\n        .weui_tabbar_label {\n            color: @tabbar-text-color-active;\n        }\n    }\n}\n\n.weui_tabbar_icon {\n    margin: 0 auto;\n    width: 24px;\n    height: 24px;\n\n    img {\n        display: block;\n        width: 100%;\n        height: 100%;\n    }\n\n    & + .weui_tabbar_label {\n        margin-top: 5px;\n    }\n}\n\n.weui_tabbar_label {\n    text-align: center;\n    color: @globalTextColor;\n    font-size: 12px;\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_tab/weui_tab.less",
    "content": "@import \"../../base/fn\";\n@import \"tabbar\";\n@import \"navbar\";\n\n.weui_tab {\n    position: relative;\n    height: 100%;\n}\n\n.weui_tab_bd {\n    box-sizing: border-box;\n    height: 100%;\n    padding-bottom: 55px;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n}\n\n.weui_tab_bd_item {\n    display: none;\n}\n\n.weui_tab_bd_item_active {\n    display: block;\n} "
  },
  {
    "path": "src/styles/weui/widget/weui_tab/weui_tab_tabbar.less",
    "content": "/**\n* @vux Copy weui_tab.less and Remove navbar\n*/\n\n@import \"../../base/fn\";\n@import \"tabbar\";\n\n.weui_tab {\n    position: relative;\n    height: 100%;\n}\n\n.weui_tab_bd {\n    box-sizing: border-box;\n    height: 100%;\n    padding-bottom: 55px;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n}\n\n.weui_tab_bd_item {\n    display: none;\n}\n\n.weui_tab_bd_item_active {\n    display: block;\n} "
  },
  {
    "path": "src/styles/weui/widget/weui_tips/weui_actionsheet.less",
    "content": "@import \"../../base/fn\";\n@bgColor:#ECECEC;\n.weui_actionsheet {\n    position: fixed;\n    left: 0;\n    bottom: 0;\n    transform: translate(0, 100%);\n    backface-visibility: hidden;\n    z-index: 5000;\n    width: 100%;\n    background-color: @pageDefaultBackgroundColor;\n    //slide up animation\n    transition: transform .3s;\n}\n.weui_actionsheet_menu{\n    background-color: #FFFFFF;\n}\n.weui_actionsheet_action {\n    margin-top: 6px;\n    background-color: #FFFFFF;\n}\n.weui_actionsheet_cell {\n    position: relative;\n    padding: 10px 0;\n    text-align: center;\n    font-size: 18px;\n    &:before {\n        .setTopLine(@weuiCellBorderColor);\n    }\n    &:active{\n        background-color: @bgColor;\n    }\n    &:first-child{\n        &:before{\n            display: none;\n        }\n    }\n}\n\n//actionSheet aniamtion\n.weui_actionsheet_toggle{\n    transform: translate(0, 0);\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_tips/weui_dialog.less",
    "content": "@import \"../../base/fn\";\n\n@weuiDialogBackgroundColor: #FAFAFC;\n@weuiDialogLineColor: #D5D5D6;\n@weuiDialogLinkColor: #3CC51F;\n@weuiDialogLinkActiveBc: #EEEEEE;\n\n.weui_dialog {\n    position: fixed;\n    z-index: 5000;\n    width: 85%;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n\n    background-color: @weuiDialogBackgroundColor;\n    text-align: center;\n    border-radius: 3px;\n    overflow: hidden;\n    .weui_dialog_confirm & {\n        .weui_dialog_hd {\n            padding: 1.2em 20px .5em;\n        }\n        .weui_dialog_bd {\n            text-align: left;\n        }\n    }\n}\n\n.weui_dialog_hd {\n    padding: 1.2em 0 .5em;\n}\n\n.weui_dialog_title {\n    font-weight: 400;\n    font-size: 17px;\n}\n\n.weui_dialog_bd {\n    padding: 0 20px;\n    font-size: 15px;\n    color: @globalTextColor;\n    word-wrap: break-word;\n    word-break: break-all;\n}\n\n.weui_dialog_ft {\n    position: relative;\n    line-height: 42px;\n    margin-top: 20px;\n    font-size: 17px;\n    display: flex;\n    a {\n        display: block;\n        flex: 1;\n        color: @weuiDialogLinkColor;\n        text-decoration: none;\n        .setTapColor;\n        &:active {\n            background-color: @weuiDialogLinkActiveBc;\n        }\n    }\n    &:after {\n        content: \" \";\n        .setTopLine(@weuiDialogLineColor);\n    }\n    .weui_dialog_confirm & {\n        a {\n            position: relative;\n            &:after {\n                content: \" \";\n                .setLeftLine(@weuiDialogLineColor);\n            }\n            &:first-child {\n                &:after {\n                    display: none;\n                }\n            }\n        }\n    }\n}\n\n.weui_btn_dialog {\n    &.default {\n        color: @dialog-button-text-default-color;\n    }\n    &.primary {\n        color: @dialog-button-text-primary-color;\n    }\n}\n\n@media screen and (min-width: 1024px) {\n    .weui_dialog {\n        width: 35%;\n    }\n}\n"
  },
  {
    "path": "src/styles/weui/widget/weui_tips/weui_mask.less",
    "content": "@import \"../../base/fn\";\n\n.weui_mask {\n    position: fixed;\n    z-index: 1000;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    background: @dialog-mask-background;\n}\n\n.weui_mask_transparent {\n    position: fixed;\n    z-index: 5001;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n}\n\n.weui_mask_transition {\n    display: none;\n    position: fixed;\n    z-index: 1000;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0;\n    background: rgba(0,0,0,0);\n    transition:background .3s;\n}\n\n.weui_fade_toggle {\n    background: rgba(0,0,0,.6);\n}"
  },
  {
    "path": "src/styles/weui/widget/weui_tips/weui_toast.less",
    "content": "@import \"../../base/fn\";\n\n.weui_toast {\n    position: fixed;\n    z-index: 50000;\n    width: 7.6em;\n    min-height: 7.6em;\n    top: 180px;\n    left: 50%;\n    margin-left: -3.8em;\n    background: rgba(40, 40, 40, 0.75);\n    text-align: center;\n    border-radius: 5px;\n    color: #FFFFFF;\n}\n.weui_icon_toast {\n    margin: 22px 0 0;\n    display: block;\n    &:before {\n        content: '\\EA08';\n        color: #FFFFFF;\n        font-size: 55px;\n    }\n}\n.weui_toast_content {\n    margin: 0 0 15px;\n}\n\n// loading toast\n.weui_loading_toast{\n    .weui_toast_content{\n      margin-top:64%;\n      font-size:14px;\n    }\n}\n.weui_loading{\n    position: absolute;\n    width: 0px;\n    z-index: 1;\n    left: 50%;\n    top: 38%;\n}\n.weui_loading_leaf{\n    position: absolute;\n    top: -1px;\n    opacity: 0.25;\n    &:before{\n        content:\" \";\n        position: absolute;\n        width: 8.14px;\n        height: 3.08px;\n        background: rgb(209, 209, 213);\n        box-shadow: rgba(0, 0, 0, 0.0980392) 0px 0px 1px;\n        border-radius: 1px;\n        transform-origin: left 50% 0px;\n    }\n    &_0{\n        animation: opacity-60-25-0-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(0deg) translate(7.92px, 0px);\n        }\n    }\n    &_1{\n        animation: opacity-60-25-1-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(30deg) translate(7.92px, 0px);\n        }\n    }\n    &_2{\n        animation: opacity-60-25-2-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(60deg) translate(7.92px, 0px);\n        }\n    }\n    &_3{\n        animation: opacity-60-25-3-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(90deg) translate(7.92px, 0px);\n        }\n    }\n    &_4{\n        animation: opacity-60-25-4-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(120deg) translate(7.92px, 0px);\n        }\n    }\n    &_5{\n        animation: opacity-60-25-5-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(150deg) translate(7.92px, 0px);\n        }\n    }\n    &_6{\n        animation: opacity-60-25-6-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(180deg) translate(7.92px, 0px);\n        }\n    }\n    &_7{\n        animation: opacity-60-25-7-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(210deg) translate(7.92px, 0px);\n        }\n    }\n    &_8{\n        animation: opacity-60-25-8-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(240deg) translate(7.92px, 0px);\n        }\n    }\n    &_9{\n        animation: opacity-60-25-9-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(270deg) translate(7.92px, 0px);\n        }\n    }\n    &_10{\n        animation: opacity-60-25-10-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(300deg) translate(7.92px, 0px);\n        }\n    }\n    &_11{\n        animation: opacity-60-25-11-12 1.25s linear infinite;\n        &:before{\n            transform: rotate(330deg) translate(7.92px, 0px);\n        }\n    }\n}\n@-webkit-keyframes opacity-60-25-0-12 {\n  0% { opacity: 0.25; }\n  0.01% { opacity: 0.25; }\n  0.02% { opacity: 1; }\n  60.01% { opacity: 0.25; }\n  100% { opacity: 0.25; }\n}@-webkit-keyframes opacity-60-25-1-12 {\n  0% { opacity: 0.25; }\n  8.34333% { opacity: 0.25; }\n  8.35333% { opacity: 1; }\n  68.3433% { opacity: 0.25; }\n  100% { opacity: 0.25; }\n}@-webkit-keyframes opacity-60-25-2-12 {\n  0% { opacity: 0.25; }\n  16.6767% { opacity: 0.25; }\n  16.6867% { opacity: 1; }\n  76.6767% { opacity: 0.25; }\n  100% { opacity: 0.25; }\n}@-webkit-keyframes opacity-60-25-3-12 {\n  0% { opacity: 0.25; }\n  25.01% { opacity: 0.25; }\n  25.02% { opacity: 1; }\n  85.01% { opacity: 0.25; }\n  100% { opacity: 0.25; }\n}@-webkit-keyframes opacity-60-25-4-12 {\n  0% { opacity: 0.25; }\n  33.3433% { opacity: 0.25; }\n  33.3533% { opacity: 1; }\n  93.3433% { opacity: 0.25; }\n  100% { opacity: 0.25; }\n}@-webkit-keyframes opacity-60-25-5-12 {\n  0% { opacity: 0.270958333333333; }\n  41.6767% { opacity: 0.25; }\n  41.6867% { opacity: 1; }\n  1.67667% { opacity: 0.25; }\n  100% { opacity: 0.270958333333333; }\n}@-webkit-keyframes opacity-60-25-6-12 {\n  0% { opacity: 0.375125; }\n  50.01% { opacity: 0.25; }\n  50.02% { opacity: 1; }\n  10.01% { opacity: 0.25; }\n  100% { opacity: 0.375125; }\n}@-webkit-keyframes opacity-60-25-7-12 {\n  0% { opacity: 0.479291666666667; }\n  58.3433% { opacity: 0.25; }\n  58.3533% { opacity: 1; }\n  18.3433% { opacity: 0.25; }\n  100% { opacity: 0.479291666666667; }\n}@-webkit-keyframes opacity-60-25-8-12 {\n  0% { opacity: 0.583458333333333; }\n  66.6767% { opacity: 0.25; }\n  66.6867% { opacity: 1; }\n  26.6767% { opacity: 0.25; }\n  100% { opacity: 0.583458333333333; }\n}@-webkit-keyframes opacity-60-25-9-12 {\n  0% { opacity: 0.687625; }\n  75.01% { opacity: 0.25; }\n  75.02% { opacity: 1; }\n  35.01% { opacity: 0.25; }\n  100% { opacity: 0.687625; }\n}@-webkit-keyframes opacity-60-25-10-12 {\n  0% { opacity: 0.791791666666667; }\n  83.3433% { opacity: 0.25; }\n  83.3533% { opacity: 1; }\n  43.3433% { opacity: 0.25; }\n  100% { opacity: 0.791791666666667; }\n}@-webkit-keyframes opacity-60-25-11-12 {\n  0% { opacity: 0.895958333333333; }\n  91.6767% { opacity: 0.25; }\n  91.6867% { opacity: 1; }\n  51.6767% { opacity: 0.25; }\n  100% { opacity: 0.895958333333333; }\n}\n"
  },
  {
    "path": "src/vuex/store.js",
    "content": "import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst state = {\n  isLoading: false,\n  direction: 'forward'\n}\nexport default new Vuex.Store({\n  state,\n  mutations: {\n    UPDATE_LOADING (state, status) {\n      state.isLoading = status\n    },\n    UPDATE_DIRECTION (state, direction) {\n      state.direction = direction\n    }\n  }\n})\n"
  },
  {
    "path": "src/yi.vue",
    "content": "<template>\n  <div>\n    <group title=\"Basic\">\n      <x-switch title=\"Camera\" :value=\"true\"></x-switch>\n      <cell title=\"Camera Name\" value=\"小蚁智能摄像机\"></cell>\n      <cell title=\"Settings\" inline-desc=\"Status light, image rotation, newwork info, firmware etc.\" is-link></cell>\n    </group>\n\n    <group title=\"Security\">\n      <x-switch title=\"PIN Protection\" inline-desc=\"Require PIN to access camera\" :value=\"false\"></x-switch>\n    </group>\n\n    <group title=\"Alerts\">\n      <x-switch title=\"Activity Alerts\" inline-desc=\"Send alerts when activity is detected\" :value=\"true\"></x-switch>\n      <cell title=\"Settings\" inline-desc=\"Video alerts, frequency, more\" is-link></cell>\n      <cell title=\"Schedule\" value=\"11:00-22:00\"></cell>\n    </group>\n\n    <group title=\"Storage\">\n      <x-switch title=\"Activity Detection Recording\" inline-desc=\"Videos will only be saved when activity is detected\" :value=\"false\"></x-switch>\n      <cell title=\"Storage\" value=\"In good condition\"></cell>\n    </group>\n  </div>\n</template>\n\n<script>\nimport { DevTip, Number, Selector, Group, GroupTitle, Button as Btn, Tip, XSwitch, Radio, Checklist, Cell, Xinput } from './components'\n\nexport default {\n  components: {\n    Number,\n    Selector,\n    Group,\n    Btn,\n    Tip,\n    XSwitch,\n    GroupTitle,\n    Radio,\n    DevTip,\n    Checklist,\n    Cell,\n    Xinput\n  }\n}\n</script>\n"
  },
  {
    "path": "static/.gitkeep",
    "content": ""
  },
  {
    "path": "test/e2e/custom-assertions/elementCount.js",
    "content": "// A custom Nightwatch assertion.\n// the name of the method is the filename.\n// can be used in tests like this:\n//\n//   browser.assert.elementCount(selector, count)\n//\n// for how to write custom assertions see\n// http://nightwatchjs.org/guide#writing-custom-assertions\nexports.assertion = function (selector, count) {\n  this.message = 'Testing if element <' + selector + '> has count: ' + count\n  this.expected = count\n  this.pass = function (val) {\n    return val === this.expected\n  }\n  this.value = function (res) {\n    return res.value\n  }\n  this.command = function (cb) {\n    var self = this\n    return this.api.execute(function (selector) {\n      return document.querySelectorAll(selector).length\n    }, [selector], function (res) {\n      cb.call(self, res)\n    })\n  }\n}\n"
  },
  {
    "path": "test/e2e/nightwatch.conf.js",
    "content": "require('babel-register')\nvar config = require('../../config')\n\n// http://nightwatchjs.org/guide#settings-file\nmodule.exports = {\n  \"src_folders\": [\"test/e2e/specs\"],\n  \"output_folder\": \"test/e2e/reports\",\n  \"custom_assertions_path\": [\"test/e2e/custom-assertions\"],\n\n  \"selenium\": {\n    \"start_process\": true,\n    \"server_path\": \"node_modules/selenium-server/lib/runner/selenium-server-standalone-2.53.1.jar\",\n    \"host\": \"127.0.0.1\",\n    \"port\": 4444,\n    \"cli_args\": {\n      \"webdriver.chrome.driver\": require('chromedriver').path\n    }\n  },\n\n  \"test_settings\": {\n    \"default\": {\n      \"selenium_port\": 4444,\n      \"selenium_host\": \"localhost\",\n      \"silent\": true,\n      \"globals\": {\n        \"devServerURL\": \"http://localhost:\" + (process.env.PORT || config.dev.port)\n      }\n    },\n\n    \"chrome\": {\n      \"desiredCapabilities\": {\n        \"browserName\": \"chrome\",\n        \"javascriptEnabled\": true,\n        \"acceptSslCerts\": true\n      }\n    },\n\n    \"firefox\": {\n      \"desiredCapabilities\": {\n        \"browserName\": \"firefox\",\n        \"javascriptEnabled\": true,\n        \"acceptSslCerts\": true\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "test/e2e/runner.js",
    "content": "// 1. start the dev server using production config\nprocess.env.NODE_ENV = 'testing'\nvar server = require('../../build/dev-server.js')\n\n// 2. run the nightwatch test suite against it\n// to run in additional browsers:\n//    1. add an entry in test/e2e/nightwatch.conf.json under \"test_settings\"\n//    2. add it to the --env flag below\n// or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`\n// For more information on Nightwatch's config file, see\n// http://nightwatchjs.org/guide#settings-file\nvar opts = process.argv.slice(2)\nif (opts.indexOf('--config') === -1) {\n  opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])\n}\nif (opts.indexOf('--env') === -1) {\n  opts = opts.concat(['--env', 'chrome'])\n}\n\nvar spawn = require('cross-spawn')\nvar runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })\n\nrunner.on('exit', function (code) {\n  server.close()\n  process.exit(code)\n})\n\nrunner.on('error', function (err) {\n  server.close()\n  throw err\n})\n"
  },
  {
    "path": "test/e2e/specs/test.js",
    "content": "// For authoring Nightwatch tests, see\n// http://nightwatchjs.org/guide#usage\n\nmodule.exports = {\n  'default e2e tests': function (browser) {\n    // automatically uses dev Server port from /config.index.js\n    // default: http://localhost:8080\n    // see nightwatch.conf.js\n    const devServer = browser.globals.devServerURL\n\n    browser\n      .url(devServer)\n      .waitForElementVisible('#app', 5000)\n      .assert.elementPresent('.hello')\n      .assert.containsText('h1', 'Welcome to Your Vue.js App')\n      .assert.elementCount('img', 1)\n      .end()\n  }\n}\n"
  },
  {
    "path": "test/unit/.eslintrc",
    "content": "{\n  \"env\": {\n    \"mocha\": true\n  },\n  \"globals\": {\n    \"expect\": true,\n    \"sinon\": true\n  }\n}\n"
  },
  {
    "path": "test/unit/index.js",
    "content": "// Polyfill fn.bind() for PhantomJS\n/* eslint-disable no-extend-native */\nFunction.prototype.bind = require('function-bind')\n\n// require all test files (files that ends with .spec.js)\nconst testsContext = require.context('./specs', true, /\\.spec$/)\ntestsContext.keys().forEach(testsContext)\n\n// require all src files except main.js for coverage.\n// you can also change this to match only the subset of files that\n// you want coverage for.\nconst srcContext = require.context('../../src', true, /^\\.\\/(?!main(\\.js)?$)/)\nsrcContext.keys().forEach(srcContext)\n"
  },
  {
    "path": "test/unit/karma.conf.js",
    "content": "// This is a karma config file. For more details see\n//   http://karma-runner.github.io/0.13/config/configuration-file.html\n// we are also using it with karma-webpack\n//   https://github.com/webpack/karma-webpack\n\nvar path = require('path')\nvar merge = require('webpack-merge')\nvar baseConfig = require('../../build/webpack.base.conf')\nvar utils = require('../../build/utils')\nvar webpack = require('webpack')\nvar projectRoot = path.resolve(__dirname, '../../')\n\nvar webpackConfig = merge(baseConfig, {\n  // use inline sourcemap for karma-sourcemap-loader\n  module: {\n    loaders: utils.styleLoaders()\n  },\n  devtool: '#inline-source-map',\n  vue: {\n    loaders: {\n      js: 'isparta'\n    }\n  },\n  plugins: [\n    new webpack.DefinePlugin({\n      'process.env': require('../../config/test.env')\n    })\n  ]\n})\n\n// no need for app entry during tests\ndelete webpackConfig.entry\n\n// make sure isparta loader is applied before eslint\nwebpackConfig.module.preLoaders = webpackConfig.module.preLoaders || []\nwebpackConfig.module.preLoaders.unshift({\n  test: /\\.js$/,\n  loader: 'isparta',\n  include: path.resolve(projectRoot, 'src')\n})\n\n// only apply babel for test files when using isparta\nwebpackConfig.module.loaders.some(function (loader, i) {\n  if (loader.loader === 'babel') {\n    loader.include = path.resolve(projectRoot, 'test/unit')\n    return true\n  }\n})\n\nmodule.exports = function (config) {\n  config.set({\n    // to run in additional browsers:\n    // 1. install corresponding karma launcher\n    //    http://karma-runner.github.io/0.13/config/browsers.html\n    // 2. add it to the `browsers` array below.\n    browsers: ['PhantomJS'],\n    frameworks: ['mocha', 'sinon-chai'],\n    reporters: ['spec', 'coverage'],\n    files: ['./index.js'],\n    preprocessors: {\n      './index.js': ['webpack', 'sourcemap']\n    },\n    webpack: webpackConfig,\n    webpackMiddleware: {\n      noInfo: true\n    },\n    coverageReporter: {\n      dir: './coverage',\n      reporters: [\n        { type: 'lcov', subdir: '.' },\n        { type: 'text-summary' }\n      ]\n    }\n  })\n}\n"
  },
  {
    "path": "test/unit/specs/Hello.spec.js",
    "content": "import Vue from 'vue'\nimport Hello from 'src/components/Hello'\n\ndescribe('Hello.vue', () => {\n  it('should render correct contents', () => {\n    const vm = new Vue({\n      el: document.createElement('div'),\n      render: (h) => h(Hello)\n    })\n    expect(vm.$el.querySelector('.hello h1').textContent)\n      .to.equal('Welcome to Your Vue.js App')\n  })\n})\n"
  }
]