[
  {
    "path": ".babelrc",
    "content": "{\n  \"presets\": [\n    [\"env\", {\n      \"modules\": false,\n      \"targets\": {\n        \"browsers\": [\"> 1%\", \"last 2 versions\", \"not ie <= 8\"]\n      }\n    }],\n    \"stage-2\"\n  ],\n  \"plugins\": [\"transform-vue-jsx\", \"transform-runtime\"],\n  \"env\": {\n    \"test\": {\n      \"presets\": [\"env\", \"stage-2\"],\n      \"plugins\": [\"transform-vue-jsx\", \"transform-es2015-modules-commonjs\", \"dynamic-import-node\"]\n    }\n  }\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": ".eslintignore",
    "content": "/build/\n/config/\n/dist/\n/*.js\n/test/unit/coverage/\n"
  },
  {
    "path": ".eslintrc.js",
    "content": "// https://eslint.org/docs/user-guide/configuring\n\nmodule.exports = {\n  root: true,\n  parserOptions: {\n    parser: 'babel-eslint'\n  },\n  env: {\n    browser: true,\n  },\n  extends: [\n    // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention\n    // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.\n    'plugin:vue/essential', \n    // https://github.com/standard/standard/blob/master/docs/RULES-en.md\n    'standard'\n  ],\n  // required to lint *.vue files\n  plugins: [\n    'vue'\n  ],\n  // add your custom rules here\n  rules: {\n    // allow async-await\n    'generator-star-spacing': 'off',\n    // allow debugger during development\n    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'\n  }\n}\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\nnode_modules/\n/dist/\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n/test/unit/coverage/\n/test/e2e/reports/\nselenium-debug.log\n\n# Editor directories and files\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n"
  },
  {
    "path": ".postcssrc.js",
    "content": "// https://github.com/michael-ciniawsky/postcss-load-config\n\nmodule.exports = {\n  \"plugins\": {\n    \"postcss-import\": {},\n    \"postcss-url\": {},\n    // to edit target browsers: use \"browserslist\" field in package.json\n    \"autoprefixer\": {}\n  }\n}\n"
  },
  {
    "path": "README.md",
    "content": "# vue-task-node\n>vue-task-node 是一个基于Vue的任务节点图绘制插件（vue-task-node is a Vue based task node mapping plug-in）\n\n>在线Demo <br>\n[https://codesandbox.io/embed/5vvpyj792x?fontsize=14](https://codesandbox.io/embed/5vvpyj792x?fontsize=14)\n\n>如有问题欢迎邮箱✉：liwenbingmsc@qq.com\n\n## 一、安装\n```js\nnpm install vue-task-node -S\n```\n## 二、引入\n```js\nimport Vue from 'vue'\nimport App from './App'\nimport Vuex from 'vuex'\nimport {TaskNode, TaskNodeStore} from 'vue-task-node'\nimport 'vue-task-node/dist/css/vnode.css'\nVue.config.productionTip = false\n\nVue.use(TaskNode)\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n  modules: {\n    TaskNodeStore\n  }\n})\n\nnew Vue({\n  el: '#app',\n  store,\n  components: { App },\n  template: '<App/>'\n})\n```\n## 三、教程\n起源：mml机器学习平台http://vidanao.com/ml/#/\n> http://vidanao.com/\n\n## 四、版本\n   \n   版本 | 说明\t| 更新时间 |是否支持拖拽 | 是否支持节点连线\n   ---|---|---|---|---\n   1.0.0 | 开端,根据数据绘制任务节点 | 2019年1月16日 | 否 | 否\n   1.0.1 | 修改代码规范Eslin | 2019年1月17日 | 否 | 否\n   1.0.2 | 调试入口文件 | 2019年1月17日 | 否 | 否\n   1.0.3 | npm下载包错误修改 | 2019年1月17日 | 否 | 否\n   1.0.4 | 添加鼠标右击后返回右击的node数据 | 2019年1月18日 | 否 | 否\n   1.0.x | 优化配置文件 | 2019年1月x日 | 否 | 否\n   1.1.0 | 代码结构调整，组件重新封装，样式使用less写 | 2019年2月28日 | 是 | 否\n   1.1.1 | 解决dist文件无法上传问题 | 2019年2月28日 | 是 | 否\n   1.1.2 | 解决dist文件无法上传问题 | 2019年2月28日 | 是 | 否\n   1.1.3 | 解决index.js找不到组件问题 | 2019年2月28日 | 是 | 否\n   1.1.4 | 解决index.js找不到组件问题 | 2019年2月28日 | 是 | 否\n   1.1.5 | 调整工作区样式问题 | 2019年3月1日 | 是 | 否\n   1.1.6 | 调整节点的事件传递 | 2019年3月1日 | 是 | 否\n   1.1.x | 优化样式，及配置文件\t| 2019年3月x日 | 是 | 否\n   1.2.0 | 新增节点连线 | 2019年5月12日 | 是 | 是\n   1.2.1 | 新增路径鼠标事件 | 2019年5月23日 | 是 | 是\n   1.2.2 | 修改混入方式 | 2019年5月23日 | 是 | 是\n   1.3.0 | 工作区外拖拽节点到工作区内 | 2019年6月23日 | 是 | 是\n   1.3.3 | 添加全局参数设置 | 2019年6月28日 | 是 | 是\n   1.3.4 | 工作区缩放 | 2019年7月8日 | 是 | 是\n   1.3.5 | 新增ModelTree组件 | 2019年7月19日 | 是 | 是\n   1.3.6 | 调整1.3.5样式 | 2019年7月19日 | 是 | 是\n   1.3.7 | 节点拖拽出工作区问题,以及拖拽偏离问题 | 2019年7月23日 | 是 | 是\n   1.3.8 | 修复1.3.7bug | 2019年7月23日 | 是 | 是\n   1.3.9 | 修复计算工作区高宽bug | 2019年7月24日 | 是 | 是\n   1.4.0 | 修复ModeTree中的bug | 2019年7月24日 | 是 | 是\n   \n   ## 五、开发环境\n   系统：`Windows 10`<br>\n   屏幕分辨率：`1920*1080`<br>\n   浏览器：<br>\n   ①谷歌极速浏览器 版本 `3.0.12.8` 浏览器缩放比例 `100%`<br>\n   ②谷歌浏览器 版本 `75.0.3770.142`（正式版本） （64 位） 浏览器缩放比例 `100%`<br>\n   ③`Microsoft Edge` 版本 `42.17134.1.0` 浏览器缩放比例 `100%`<br>\n   \n   ## 六、出现路径错位问题分析\n   1. 目前兼容性还待解决，请使用谷歌浏览器浏览\n   2. 浏览器的缩放比例调整为100%，比例大或小都会是路径错位\n   3. `1.3.7`版本之前，节点拖拽连线，会被父级相对布局影响\n   4. 高分辨率问题，目前没有验证，我的1920*1080正常\n"
  },
  {
    "path": "build/build.js",
    "content": "'use strict'\nrequire('./check-versions')()\n\nprocess.env.NODE_ENV = 'production'\n\nconst ora = require('ora')\nconst rm = require('rimraf')\nconst path = require('path')\nconst chalk = require('chalk')\nconst webpack = require('webpack')\nconst config = require('../config')\nconst webpackConfig = require('./webpack.prod.conf')\n\nconst spinner = ora('building for production...')\nspinner.start()\n\nrm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {\n  if (err) throw err\n  webpack(webpackConfig, (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, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.\n      chunks: false,\n      chunkModules: false\n    }) + '\\n\\n')\n\n    if (stats.hasErrors()) {\n      console.log(chalk.red('  Build failed with errors.\\n'))\n      process.exit(1)\n    }\n\n    console.log(chalk.cyan('  Build complete.\\n'))\n    console.log(chalk.yellow(\n      '  Tip: built files are meant to be served over an HTTP server.\\n' +\n      '  Opening index.html over file:// won\\'t work.\\n'\n    ))\n  })\n})\n"
  },
  {
    "path": "build/check-versions.js",
    "content": "'use strict'\nconst chalk = require('chalk')\nconst semver = require('semver')\nconst packageConfig = require('../package.json')\nconst shell = require('shelljs')\n\nfunction exec (cmd) {\n  return require('child_process').execSync(cmd).toString().trim()\n}\n\nconst versionRequirements = [\n  {\n    name: 'node',\n    currentVersion: semver.clean(process.version),\n    versionRequirement: packageConfig.engines.node\n  }\n]\n\nif (shell.which('npm')) {\n  versionRequirements.push({\n    name: 'npm',\n    currentVersion: exec('npm --version'),\n    versionRequirement: packageConfig.engines.npm\n  })\n}\n\nmodule.exports = function () {\n  const warnings = []\n\n  for (let i = 0; i < versionRequirements.length; i++) {\n    const mod = versionRequirements[i]\n\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\n    for (let i = 0; i < warnings.length; i++) {\n      const warning = warnings[i]\n      console.log('  ' + warning)\n    }\n\n    console.log()\n    process.exit(1)\n  }\n}\n"
  },
  {
    "path": "build/dist/css/vnode.css",
    "content": "*{-webkit-tap-highlight-color:rgba(0,0,0,0)}*,:after,:before{box-sizing:border-box}body{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\\\5FAE\\8F6F\\96C5\\9ED1,Arial,sans-serif;font-size:12px;line-height:1.5;color:#515a6e;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article,aside,blockquote,body,button,dd,details,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,input,legend,li,menu,nav,ol,p,section,td,textarea,th,ul{margin:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}input::-ms-clear,input::-ms-reveal{display:none}a{color:#2d8cf0;background:transparent;text-decoration:none;outline:none;cursor:pointer;transition:color .2s ease}a:hover{color:#57a3f3}a:active{color:#2b85e4}a:active,a:hover{outline:0;text-decoration:none}a[disabled]{color:#ccc;cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-family:Consolas,Menlo,Courier,monospace}[class*=-icon-ok],[class*=-icon-run]{color:#2ecc71}[class*=-icon-wait]{color:#289de9}[class*=-icon-error]{color:#f15e5e}@font-face{font-family:Ionicons;src:url(/dist/fonts/ionicons.2ea87cd.ttf) format(\"truetype\"),url(/dist/fonts/ionicons.e4536d4.woff) format(\"woff\"),url(/dist/img/ionicons.9e11f71.svg#Ionicons) format(\"svg\");font-weight:400;font-style:normal}[class*=\" task-icon\"],[class^=task-icon]{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}.task-icon-58:before{content:\"\\E601\"}.task-icon-9:before{content:\"\\E643\"}.task-icon-57:before{content:\"\\E61F\"}.task-icon-56:before{content:\"\\E671\"}.task-icon-55:before{content:\"\\E745\"}.task-icon-54:before{content:\"\\E661\"}.task-icon-53:before{content:\"\\E6C3\"}.task-icon-52:before{content:\"\\E660\"}.task-icon-8:before{content:\"\\E670\"}.task-icon-7:before{content:\"\\E693\"}.task-icon-6:before{content:\"\\E646\"}.task-icon-51:before{content:\"\\E6C4\"}.task-icon-run:before{content:\"\\E614\"}.task-icon-error:before{content:\"\\E67A\"}.task-icon-48:before{content:\"\\E605\"}.task-icon-47:before{content:\"\\E6C8\"}.task-icon-46:before{content:\"\\E607\"}.task-icon-45:before{content:\"\\E61A\"}.task-icon-ok:before{content:\"\\E844\"}.task-icon-wait:before{content:\"\\E6B5\"}.task-icon-42:before{content:\"\\E664\"}.task-icon-41:before{content:\"\\E6AB\"}.task-icon-40:before{content:\"\\E6E5\"}.task-icon-39:before{content:\"\\E600\"}.task-icon-38:before{content:\"\\E61B\"}.task-icon-37:before{content:\"\\E680\"}.task-icon-36:before{content:\"\\E65F\"}.task-icon-35:before{content:\"\\E642\"}.task-icon-34:before{content:\"\\E75C\"}.task-icon-30:before{content:\"\\E656\"}.task-icon-5:before{content:\"\\E60D\"}.task-icon-33:before{content:\"\\E60A\"}.task-icon-32:before{content:\"\\E633\"}.task-icon-31:before{content:\"\\E6C6\"}.task-icon-29:before{content:\"\\EB64\"}.task-icon-28:before{content:\"\\EB65\"}.task-icon-27:before{content:\"\\EB66\"}.task-icon-26:before{content:\"\\EB6A\"}.task-icon-25:before{content:\"\\EB6B\"}.task-icon-24:before{content:\"\\EBB8\"}.task-icon-23:before{content:\"\\EBDA\"}.task-icon-4:before{content:\"\\E602\"}.task-icon-22:before{content:\"\\EC08\"}.task-icon-21:before{content:\"\\EC13\"}.task-icon-20:before{content:\"\\EC14\"}.task-icon-19:before{content:\"\\EC20\"}.task-icon-18:before{content:\"\\EC22\"}.task-icon-17:before{content:\"\\EC23\"}.task-icon-16:before{content:\"\\EC2A\"}.task-icon-3:before{content:\"\\E603\"}.task-icon-15:before{content:\"\\EC36\"}.task-icon-14:before{content:\"\\EC37\"}.task-icon-13:before{content:\"\\EC5B\"}.task-icon-12:before{content:\"\\EC5C\"}.task-icon-11:before{content:\"\\EC5D\"}.task-icon-10:before{content:\"\\EC6A\"}.task-icon-2:before{content:\"\\E61C\"}.task-icon-1:before{content:\"\\E604\"}.task-node body,.task-node foreignObject{background-color:transparent;overflow:visible}.task-node:hover{cursor:grab}.task-node-selected,.task-node:hover{background-color:rgba(227,244,255,.9)}.task-common-node{width:180px;height:30px;background-color:hsla(0,0%,100%,.9);border:1px solid #289de9;border-radius:15px;font-size:12px;transition:background-color .2s}.task-common-node-icon{float:left;color:#fff;font-size:16px;background-color:#289de9;width:26px;height:26px;margin:1px;border-radius:100%}.task-common-node-icon:before{float:left;margin:4px}.task-common-node-name{float:left;margin-left:2px;width:120px;height:28px;line-height:28px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-common-node-status{width:26px;height:26px;margin:1px;border-radius:100%;float:right;font-size:18px}.task-common-node-status:before{float:left;margin:4px}.task-common-node:hover{background-color:rgba(227,244,255,.9)}.task-in-common-ls{display:-ms-flexbox;display:flex;clear:both;margin-top:-34px;float:left;width:180px}.task-in-common-ls-wrap{height:1px;float:left;-ms-flex:1;flex:1}.task-out-common-ls{display:-ms-flexbox;display:flex;margin-top:-5px;clear:both;float:left;width:180px}.task-out-common-ls-wrap{height:1px;float:left;-ms-flex:1;flex:1}.task-initial-node{width:30px;height:30px;border:1px solid #ccc;border-radius:50%}.task-initial-node-in-wrap{clear:both;margin-top:-34px;float:left;width:30px}.task-initial-node-out-wrap{clear:both;margin-top:-5px;float:left;width:30px}.task-initial-node-name{float:left;width:30px;height:28px;line-height:28px;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-initial-node-icon{float:left;color:#000;font-size:16px;width:26px;height:26px;margin:1px;border-radius:100%}.task-initial-node-icon:before{float:left;margin:4px}.task-initial-node:hover{background-color:rgba(227,244,255,.9)}.task-work-area{background-color:#fff;position:relative;overflow:auto}.task-work-area::-webkit-scrollbar{width:6px;height:6px}.task-work-area::-webkit-scrollbar-thumb{background-color:#aeaeae;min-height:50px;min-width:50px;border-radius:10px;transition:background-color .2s}.task-work-area::-webkit-scrollbar-track-piece{background-color:#eee}.task-port{width:10px;height:10px;float:right;margin-right:-5px;border:1px solid gray;border-radius:50%;background-color:#fff}.task-port-magnet{float:left;width:20px;height:20px;margin-top:-6px;margin-left:-6px;background-color:transparent;border-radius:50%}.task-port-in{cursor:default}.is-connected{width:0;height:0;border-style:solid;border-width:5px 4px 0;border-color:gray transparent transparent;background-color:transparent;border-radius:0;margin-top:6px}.task-port-out{cursor:crosshair}.task-tline{cursor:default}.task-tline-con{fill:none;stroke:hsla(0,0%,100%,0);stroke-width:15px}.task-tline-con-wrap{fill:none;stroke:gray;stroke-width:1px}.task-tline-dotted{stroke:rgba(57,202,116,.8);stroke-width:2px;stroke-dasharray:5;animation:ant-line 30s infinite linear}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;padding:50px;background-color:#ccc}\n/*# sourceMappingURL=vnode.css.map */"
  },
  {
    "path": "build/dist/vue-task-node.js",
    "content": "webpackJsonpvue_task_node([0],{\"+E39\":function(e,t,n){e.exports=!n(\"S82l\")(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},\"+ZMJ\":function(e,t,n){var r=n(\"lOnJ\");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},\"3Eo+\":function(e,t){var n=0,r=Math.random();e.exports=function(e){return\"Symbol(\".concat(void 0===e?\"\":e,\")_\",(++n+r).toString(36))}},\"52gC\":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError(\"Can't call method on  \"+e);return e}},\"7+uW\":function(e,t,n){\"use strict\";(function(e){\n/*!\n * Vue.js v2.6.7\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\nvar n=Object.freeze({});function r(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function o(e){return!0===e}function a(e){return\"string\"==typeof e||\"number\"==typeof e||\"symbol\"==typeof e||\"boolean\"==typeof e}function s(e){return null!==e&&\"object\"==typeof e}var c=Object.prototype.toString;function u(e){return\"[object Object]\"===c.call(e)}function l(e){return\"[object RegExp]\"===c.call(e)}function f(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return i(e)&&\"function\"==typeof e.then&&\"function\"==typeof e.catch}function d(e){return null==e?\"\":Array.isArray(e)||u(e)&&e.toString===c?JSON.stringify(e,null,2):String(e)}function v(e){var t=parseFloat(e);return isNaN(t)?e:t}function h(e,t){for(var n=Object.create(null),r=e.split(\",\"),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var m=h(\"slot,component\",!0),y=h(\"key,ref,slot,slot-scope,is\");function g(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function b(e,t){return _.call(e,t)}function $(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var x=/-(\\w)/g,w=$(function(e){return e.replace(x,function(e,t){return t?t.toUpperCase():\"\"})}),C=$(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),k=/\\B([A-Z])/g,A=$(function(e){return e.replace(k,\"-$1\").toLowerCase()});var O=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function S(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function T(e,t){for(var n in t)e[n]=t[n];return e}function j(e){for(var t={},n=0;n<e.length;n++)e[n]&&T(t,e[n]);return t}function E(e,t,n){}var M=function(e,t,n){return!1},N=function(e){return e};function D(e,t){if(e===t)return!0;var n=s(e),r=s(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),o=Array.isArray(t);if(i&&o)return e.length===t.length&&e.every(function(e,n){return D(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||o)return!1;var a=Object.keys(e),c=Object.keys(t);return a.length===c.length&&a.every(function(n){return D(e[n],t[n])})}catch(e){return!1}}function I(e,t){for(var n=0;n<e.length;n++)if(D(e[n],t))return n;return-1}function L(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var P=\"data-server-rendered\",F=[\"component\",\"directive\",\"filter\"],R=[\"beforeCreate\",\"created\",\"beforeMount\",\"mounted\",\"beforeUpdate\",\"updated\",\"beforeDestroy\",\"destroyed\",\"activated\",\"deactivated\",\"errorCaptured\",\"serverPrefetch\"],B={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:M,isReservedAttr:M,isUnknownElement:M,getTagNamespace:E,parsePlatformTagName:N,mustUseProp:M,async:!0,_lifecycleHooks:R},U=\"a-zA-Z·À-ÖØ-öø-ͽͿ-῿‌-‍‿-⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�\";function H(e){var t=(e+\"\").charCodeAt(0);return 36===t||95===t}function z(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var V=new RegExp(\"[^\"+U+\".$_\\\\d]\");var J,K=\"__proto__\"in{},q=\"undefined\"!=typeof window,W=\"undefined\"!=typeof WXEnvironment&&!!WXEnvironment.platform,G=W&&WXEnvironment.platform.toLowerCase(),Z=q&&window.navigator.userAgent.toLowerCase(),X=Z&&/msie|trident/.test(Z),Q=Z&&Z.indexOf(\"msie 9.0\")>0,Y=Z&&Z.indexOf(\"edge/\")>0,ee=(Z&&Z.indexOf(\"android\"),Z&&/iphone|ipad|ipod|ios/.test(Z)||\"ios\"===G),te=(Z&&/chrome\\/\\d+/.test(Z),Z&&/phantomjs/.test(Z),Z&&Z.match(/firefox\\/(\\d+)/)),ne={}.watch,re=!1;if(q)try{var ie={};Object.defineProperty(ie,\"passive\",{get:function(){re=!0}}),window.addEventListener(\"test-passive\",null,ie)}catch(e){}var oe=function(){return void 0===J&&(J=!q&&!W&&void 0!==e&&(e.process&&\"server\"===e.process.env.VUE_ENV)),J},ae=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function se(e){return\"function\"==typeof e&&/native code/.test(e.toString())}var ce,ue=\"undefined\"!=typeof Symbol&&se(Symbol)&&\"undefined\"!=typeof Reflect&&se(Reflect.ownKeys);ce=\"undefined\"!=typeof Set&&se(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var le=E,fe=0,pe=function(){this.id=fe++,this.subs=[]};pe.prototype.addSub=function(e){this.subs.push(e)},pe.prototype.removeSub=function(e){g(this.subs,e)},pe.prototype.depend=function(){pe.target&&pe.target.addDep(this)},pe.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t<n;t++)e[t].update()},pe.target=null;var de=[];function ve(e){de.push(e),pe.target=e}function he(){de.pop(),pe.target=de[de.length-1]}var me=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ye={child:{configurable:!0}};ye.child.get=function(){return this.componentInstance},Object.defineProperties(me.prototype,ye);var ge=function(e){void 0===e&&(e=\"\");var t=new me;return t.text=e,t.isComment=!0,t};function _e(e){return new me(void 0,void 0,void 0,String(e))}function be(e){var t=new me(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var $e=Array.prototype,xe=Object.create($e);[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\",\"sort\",\"reverse\"].forEach(function(e){var t=$e[e];z(xe,e,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case\"push\":case\"unshift\":i=n;break;case\"splice\":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var we=Object.getOwnPropertyNames(xe),Ce=!0;function ke(e){Ce=e}var Ae=function(e){var t;this.value=e,this.dep=new pe,this.vmCount=0,z(e,\"__ob__\",this),Array.isArray(e)?(K?(t=xe,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];z(e,o,t[o])}}(e,xe,we),this.observeArray(e)):this.walk(e)};function Oe(e,t){var n;if(s(e)&&!(e instanceof me))return b(e,\"__ob__\")&&e.__ob__ instanceof Ae?n=e.__ob__:Ce&&!oe()&&(Array.isArray(e)||u(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new Ae(e)),t&&n&&n.vmCount++,n}function Se(e,t,n,r,i){var o=new pe,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=e[t]);var u=!i&&Oe(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return pe.target&&(o.depend(),u&&(u.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!c||(c?c.call(e,t):n=t,u=!i&&Oe(t),o.notify())}})}}function Te(e,t,n){if(Array.isArray(e)&&f(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Se(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function je(e,t){if(Array.isArray(e)&&f(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||b(e,t)&&(delete e[t],n&&n.dep.notify())}}Ae.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Se(e,t[n])},Ae.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)Oe(e[t])};var Ee=B.optionMergeStrategies;function Me(e,t){if(!t)return e;for(var n,r,i,o=ue?Reflect.ownKeys(t):Object.keys(t),a=0;a<o.length;a++)\"__ob__\"!==(n=o[a])&&(r=e[n],i=t[n],b(e,n)?r!==i&&u(r)&&u(i)&&Me(r,i):Te(e,n,i));return e}function Ne(e,t,n){return n?function(){var r=\"function\"==typeof t?t.call(n,n):t,i=\"function\"==typeof e?e.call(n,n):e;return r?Me(r,i):i}:t?e?function(){return Me(\"function\"==typeof t?t.call(this,this):t,\"function\"==typeof e?e.call(this,this):e)}:t:e}function De(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}(n):n}function Ie(e,t,n,r){var i=Object.create(e||null);return t?T(i,t):i}Ee.data=function(e,t,n){return n?Ne(e,t,n):t&&\"function\"!=typeof t?e:Ne(e,t)},R.forEach(function(e){Ee[e]=De}),F.forEach(function(e){Ee[e+\"s\"]=Ie}),Ee.watch=function(e,t,n,r){if(e===ne&&(e=void 0),t===ne&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in T(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Ee.props=Ee.methods=Ee.inject=Ee.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return T(i,e),t&&T(i,t),i},Ee.provide=Ne;var Le=function(e,t){return void 0===t?e:t};function Pe(e,t,n){if(\"function\"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)\"string\"==typeof(i=n[r])&&(o[w(i)]={type:null});else if(u(n))for(var a in n)i=n[a],o[w(a)]=u(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(u(n))for(var o in n){var a=n[o];r[o]=u(a)?T({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];\"function\"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=Pe(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=Pe(e,t.mixins[r],n);var o,a={};for(o in e)s(o);for(o in t)b(e,o)||s(o);function s(r){var i=Ee[r]||Le;a[r]=i(e[r],t[r],n,r)}return a}function Fe(e,t,n,r){if(\"string\"==typeof n){var i=e[t];if(b(i,n))return i[n];var o=w(n);if(b(i,o))return i[o];var a=C(o);return b(i,a)?i[a]:i[n]||i[o]||i[a]}}function Re(e,t,n,r){var i=t[e],o=!b(n,e),a=n[e],s=He(Boolean,i.type);if(s>-1)if(o&&!b(i,\"default\"))a=!1;else if(\"\"===a||a===A(e)){var c=He(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!b(t,\"default\"))return;var r=t.default;0;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return\"function\"==typeof r&&\"Function\"!==Be(t.type)?r.call(e):r}(r,i,e);var u=Ce;ke(!0),Oe(a),ke(u)}return a}function Be(e){var t=e&&e.toString().match(/^\\s*function (\\w+)/);return t?t[1]:\"\"}function Ue(e,t){return Be(e)===Be(t)}function He(e,t){if(!Array.isArray(t))return Ue(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(Ue(t[n],e))return n;return-1}function ze(e,t,n){ve();try{if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Je(e,r,\"errorCaptured hook\")}}Je(e,t,n)}finally{he()}}function Ve(e,t,n,r,i){var o;try{(o=n?e.apply(t,n):e.call(t))&&!o._isVue&&p(o)&&(o=o.catch(function(e){return ze(e,r,i+\" (Promise/async)\")}))}catch(e){ze(e,r,i)}return o}function Je(e,t,n){if(B.errorHandler)try{return B.errorHandler.call(null,e,t,n)}catch(t){t!==e&&Ke(t,null,\"config.errorHandler\")}Ke(e,t,n)}function Ke(e,t,n){if(!q&&!W||\"undefined\"==typeof console)throw e;console.error(e)}var qe,We=!1,Ge=[],Ze=!1;function Xe(){Ze=!1;var e=Ge.slice(0);Ge.length=0;for(var t=0;t<e.length;t++)e[t]()}if(\"undefined\"!=typeof Promise&&se(Promise)){var Qe=Promise.resolve();qe=function(){Qe.then(Xe),ee&&setTimeout(E)},We=!0}else if(X||\"undefined\"==typeof MutationObserver||!se(MutationObserver)&&\"[object MutationObserverConstructor]\"!==MutationObserver.toString())qe=\"undefined\"!=typeof setImmediate&&se(setImmediate)?function(){setImmediate(Xe)}:function(){setTimeout(Xe,0)};else{var Ye=1,et=new MutationObserver(Xe),tt=document.createTextNode(String(Ye));et.observe(tt,{characterData:!0}),qe=function(){Ye=(Ye+1)%2,tt.data=String(Ye)},We=!0}function nt(e,t){var n;if(Ge.push(function(){if(e)try{e.call(t)}catch(e){ze(e,t,\"nextTick\")}else n&&n(t)}),Ze||(Ze=!0,qe()),!e&&\"undefined\"!=typeof Promise)return new Promise(function(e){n=e})}var rt=new ce;function it(e){!function e(t,n){var r,i;var o=Array.isArray(t);if(!o&&!s(t)||Object.isFrozen(t)||t instanceof me)return;if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,rt),rt.clear()}var ot=$(function(e){var t=\"&\"===e.charAt(0),n=\"~\"===(e=t?e.slice(1):e).charAt(0),r=\"!\"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function at(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return Ve(r,null,arguments,t,\"v-on handler\");for(var i=r.slice(),o=0;o<i.length;o++)Ve(i[o],null,e,t,\"v-on handler\")}return n.fns=e,n}function st(e,t,n,i,a,s){var c,u,l,f;for(c in e)u=e[c],l=t[c],f=ot(c),r(u)||(r(l)?(r(u.fns)&&(u=e[c]=at(u,s)),o(f.once)&&(u=e[c]=a(f.name,u,f.capture)),n(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,e[c]=l));for(c in t)r(e[c])&&i((f=ot(c)).name,t[c],f.capture)}function ct(e,t,n){var a;e instanceof me&&(e=e.data.hook||(e.data.hook={}));var s=e[t];function c(){n.apply(this,arguments),g(a.fns,c)}r(s)?a=at([c]):i(s.fns)&&o(s.merged)?(a=s).fns.push(c):a=at([s,c]),a.merged=!0,e[t]=a}function ut(e,t,n,r,o){if(i(t)){if(b(t,n))return e[n]=t[n],o||delete t[n],!0;if(b(t,r))return e[n]=t[r],o||delete t[r],!0}return!1}function lt(e){return a(e)?[_e(e)]:Array.isArray(e)?function e(t,n){var s=[];var c,u,l,f;for(c=0;c<t.length;c++)r(u=t[c])||\"boolean\"==typeof u||(l=s.length-1,f=s[l],Array.isArray(u)?u.length>0&&(ft((u=e(u,(n||\"\")+\"_\"+c))[0])&&ft(f)&&(s[l]=_e(f.text+u[0].text),u.shift()),s.push.apply(s,u)):a(u)?ft(f)?s[l]=_e(f.text+u):\"\"!==u&&s.push(_e(u)):ft(u)&&ft(f)?s[l]=_e(f.text+u.text):(o(t._isVList)&&i(u.tag)&&r(u.key)&&i(n)&&(u.key=\"__vlist\"+n+\"_\"+c+\"__\"),s.push(u)));return s}(e):void 0}function ft(e){return i(e)&&i(e.text)&&!1===e.isComment}function pt(e,t){if(e){for(var n=Object.create(null),r=ue?Reflect.ownKeys(e):Object.keys(e),i=0;i<r.length;i++){var o=r[i];if(\"__ob__\"!==o){for(var a=e[o].from,s=t;s;){if(s._provided&&b(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s)if(\"default\"in e[o]){var c=e[o].default;n[o]=\"function\"==typeof c?c.call(t):c}else 0}}return n}}function dt(e,t){if(!e||!e.length)return{};for(var n={},r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);\"template\"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var u in n)n[u].every(vt)&&delete n[u];return n}function vt(e){return e.isComment&&!e.asyncFactory||\" \"===e.text}function ht(e,t,r){var i,o=!e||!!e.$stable,a=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(o&&r&&r!==n&&a===r.$key&&0===Object.keys(t).length)return r;for(var s in i={},e)e[s]&&\"$\"!==s[0]&&(i[s]=mt(t,s,e[s]))}else i={};for(var c in t)c in i||(i[c]=yt(t,c));return e&&Object.isExtensible(e)&&(e._normalized=i),z(i,\"$stable\",o),z(i,\"$key\",a),i}function mt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&\"object\"==typeof e&&!Array.isArray(e)?[e]:lt(e))&&0===e.length?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function yt(e,t){return function(){return e[t]}}function gt(e,t){var n,r,o,a,c;if(Array.isArray(e)||\"string\"==typeof e)for(n=new Array(e.length),r=0,o=e.length;r<o;r++)n[r]=t(e[r],r);else if(\"number\"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(s(e))if(ue&&e[Symbol.iterator]){n=[];for(var u=e[Symbol.iterator](),l=u.next();!l.done;)n.push(t(l.value,n.length)),l=u.next()}else for(a=Object.keys(e),n=new Array(a.length),r=0,o=a.length;r<o;r++)c=a[r],n[r]=t(e[c],c,r);return i(n)||(n=[]),n._isVList=!0,n}function _t(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=T(T({},r),n)),i=o(n)||t):i=this.$slots[e]||t;var a=n&&n.slot;return a?this.$createElement(\"template\",{slot:a},i):i}function bt(e){return Fe(this.$options,\"filters\",e)||N}function $t(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function xt(e,t,n,r,i){var o=B.keyCodes[t]||n;return i&&r&&!B.keyCodes[t]?$t(i,r):o?$t(o,e):r?A(r)!==t:void 0}function wt(e,t,n,r,i){if(n)if(s(n)){var o;Array.isArray(n)&&(n=j(n));var a=function(a){if(\"class\"===a||\"style\"===a||y(a))o=e;else{var s=e.attrs&&e.attrs.type;o=r||B.mustUseProp(t,s,a)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var c=w(a);a in o||c in o||(o[a]=n[a],i&&((e.on||(e.on={}))[\"update:\"+c]=function(e){n[a]=e}))};for(var c in n)a(c)}else;return e}function Ct(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t?r:(At(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),\"__static__\"+e,!1),r)}function kt(e,t,n){return At(e,\"__once__\"+t+(n?\"_\"+n:\"\"),!0),e}function At(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&\"string\"!=typeof e[r]&&Ot(e[r],t+\"_\"+r,n);else Ot(e,t,n)}function Ot(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function St(e,t){if(t)if(u(t)){var n=e.on=e.on?T({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function Tt(e,t,n,r){t=t||{$stable:!n};for(var i=0;i<e.length;i++){var o=e[i];Array.isArray(o)?Tt(o,t,n):o&&(o.proxy&&(o.fn.proxy=!0),t[o.key]=o.fn)}return r&&(t.$key=r),t}function jt(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];\"string\"==typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Et(e,t){return\"string\"==typeof e?t+e:e}function Mt(e){e._o=kt,e._n=v,e._s=d,e._l=gt,e._t=_t,e._q=D,e._i=I,e._m=Ct,e._f=bt,e._k=xt,e._b=wt,e._v=_e,e._e=ge,e._u=Tt,e._g=St,e._d=jt,e._p=Et}function Nt(e,t,r,i,a){var s,c=this,u=a.options;b(i,\"_uid\")?(s=Object.create(i))._original=i:(s=i,i=i._original);var l=o(u._compiled),f=!l;this.data=e,this.props=t,this.children=r,this.parent=i,this.listeners=e.on||n,this.injections=pt(u.inject,i),this.slots=function(){return c.$slots||ht(e.scopedSlots,c.$slots=dt(r,i)),c.$slots},Object.defineProperty(this,\"scopedSlots\",{enumerable:!0,get:function(){return ht(e.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=ht(e.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,t,n,r){var o=Ht(s,e,t,n,r,f);return o&&!Array.isArray(o)&&(o.fnScopeId=u._scopeId,o.fnContext=i),o}:this._c=function(e,t,n,r){return Ht(s,e,t,n,r,f)}}function Dt(e,t,n,r,i){var o=be(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function It(e,t){for(var n in t)e[w(n)]=t[n]}Mt(Nt.prototype);var Lt={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var n=e;Lt.prepatch(n,n)}else{(e.componentInstance=function(e,t){var n={_isComponent:!0,_parentVnode:e,parent:t},r=e.data.inlineTemplate;i(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new e.componentOptions.Ctor(n)}(e,Qt)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var r=t.componentOptions;!function(e,t,r,i,o){0;var a=i.data.scopedSlots,s=e.$scopedSlots,c=!!(a&&!a.$stable||s!==n&&!s.$stable||a&&e.$scopedSlots.$key!==a.$key),u=!!(o||e.$options._renderChildren||c);e.$options._parentVnode=i,e.$vnode=i,e._vnode&&(e._vnode.parent=i);if(e.$options._renderChildren=o,e.$attrs=i.data.attrs||n,e.$listeners=r||n,t&&e.$options.props){ke(!1);for(var l=e._props,f=e.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],v=e.$options.props;l[d]=Re(d,v,t,e)}ke(!0),e.$options.propsData=t}r=r||n;var h=e.$options._parentListeners;e.$options._parentListeners=r,Xt(e,r,h),u&&(e.$slots=dt(o,i.context),e.$forceUpdate());0}(t.componentInstance=e.componentInstance,r.propsData,r.listeners,t,r.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,nn(r,\"mounted\")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,on.push(t)):tn(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(n&&(t._directInactive=!0,en(t)))return;if(!t._inactive){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);nn(t,\"deactivated\")}}(t,!0):t.$destroy())}},Pt=Object.keys(Lt);function Ft(e,t,a,c,u){if(!r(e)){var l=a.$options._base;if(s(e)&&(e=l.extend(e)),\"function\"==typeof e){var f;if(r(e.cid)&&void 0===(e=function(e,t){if(o(e.error)&&i(e.errorComp))return e.errorComp;if(i(e.resolved))return e.resolved;if(o(e.loading)&&i(e.loadingComp))return e.loadingComp;var n=Vt;if(!i(e.owners)){var a=e.owners=[n],c=!0,u=function(e){for(var t=0,n=a.length;t<n;t++)a[t].$forceUpdate();e&&(a.length=0)},l=L(function(n){e.resolved=Jt(n,t),c?a.length=0:u(!0)}),f=L(function(t){i(e.errorComp)&&(e.error=!0,u(!0))}),d=e(l,f);return s(d)&&(p(d)?r(e.resolved)&&d.then(l,f):p(d.component)&&(d.component.then(l,f),i(d.error)&&(e.errorComp=Jt(d.error,t)),i(d.loading)&&(e.loadingComp=Jt(d.loading,t),0===d.delay?e.loading=!0:setTimeout(function(){r(e.resolved)&&r(e.error)&&(e.loading=!0,u(!1))},d.delay||200)),i(d.timeout)&&setTimeout(function(){r(e.resolved)&&f(null)},d.timeout))),c=!1,e.loading?e.loadingComp:e.resolved}e.owners.push(n)}(f=e,l)))return function(e,t,n,r,i){var o=ge();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(f,t,a,c,u);t=t||{},Cn(e),i(t.model)&&function(e,t){var n=e.model&&e.model.prop||\"value\",r=e.model&&e.model.event||\"input\";(t.attrs||(t.attrs={}))[n]=t.model.value;var o=t.on||(t.on={}),a=o[r],s=t.model.callback;i(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[r]=[s].concat(a)):o[r]=s}(e.options,t);var d=function(e,t,n){var o=t.options.props;if(!r(o)){var a={},s=e.attrs,c=e.props;if(i(s)||i(c))for(var u in o){var l=A(u);ut(a,c,u,l,!0)||ut(a,s,u,l,!1)}return a}}(t,e);if(o(e.options.functional))return function(e,t,r,o,a){var s=e.options,c={},u=s.props;if(i(u))for(var l in u)c[l]=Re(l,u,t||n);else i(r.attrs)&&It(c,r.attrs),i(r.props)&&It(c,r.props);var f=new Nt(r,c,a,o,e),p=s.render.call(null,f._c,f);if(p instanceof me)return Dt(p,r,f.parent,s);if(Array.isArray(p)){for(var d=lt(p)||[],v=new Array(d.length),h=0;h<d.length;h++)v[h]=Dt(d[h],r,f.parent,s);return v}}(e,d,t,a,c);var v=t.on;if(t.on=t.nativeOn,o(e.options.abstract)){var h=t.slot;t={},h&&(t.slot=h)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Pt.length;n++){var r=Pt[n],i=t[r],o=Lt[r];i===o||i&&i._merged||(t[r]=i?Rt(o,i):o)}}(t);var m=e.options.name||u;return new me(\"vue-component-\"+e.cid+(m?\"-\"+m:\"\"),t,void 0,void 0,void 0,a,{Ctor:e,propsData:d,listeners:v,tag:u,children:c},f)}}}function Rt(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}var Bt=1,Ut=2;function Ht(e,t,n,c,u,l){return(Array.isArray(n)||a(n))&&(u=c,c=n,n=void 0),o(l)&&(u=Ut),function(e,t,n,a,c){if(i(n)&&i(n.__ob__))return ge();i(n)&&i(n.is)&&(t=n.is);if(!t)return ge();0;Array.isArray(a)&&\"function\"==typeof a[0]&&((n=n||{}).scopedSlots={default:a[0]},a.length=0);c===Ut?a=lt(a):c===Bt&&(a=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(a));var u,l;if(\"string\"==typeof t){var f;l=e.$vnode&&e.$vnode.ns||B.getTagNamespace(t),u=B.isReservedTag(t)?new me(B.parsePlatformTagName(t),n,a,void 0,void 0,e):n&&n.pre||!i(f=Fe(e.$options,\"components\",t))?new me(t,n,a,void 0,void 0,e):Ft(f,n,e,a,t)}else u=Ft(t,n,e,a);return Array.isArray(u)?u:i(u)?(i(l)&&function e(t,n,a){t.ns=n;\"foreignObject\"===t.tag&&(n=void 0,a=!0);if(i(t.children))for(var s=0,c=t.children.length;s<c;s++){var u=t.children[s];i(u.tag)&&(r(u.ns)||o(a)&&\"svg\"!==u.tag)&&e(u,n,a)}}(u,l),i(n)&&function(e){s(e.style)&&it(e.style);s(e.class)&&it(e.class)}(n),u):ge()}(e,t,n,c,u)}var zt,Vt=null;function Jt(e,t){return(e.__esModule||ue&&\"Module\"===e[Symbol.toStringTag])&&(e=e.default),s(e)?t.extend(e):e}function Kt(e){return e.isComment&&e.asyncFactory}function qt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(i(n)&&(i(n.componentOptions)||Kt(n)))return n}}function Wt(e,t){zt.$on(e,t)}function Gt(e,t){zt.$off(e,t)}function Zt(e,t){var n=zt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function Xt(e,t,n){zt=e,st(t,n||{},Wt,Gt,Zt,e),zt=void 0}var Qt=null;function Yt(e){var t=Qt;return Qt=e,function(){Qt=t}}function en(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function tn(e,t){if(t){if(e._directInactive=!1,en(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)tn(e.$children[n]);nn(e,\"activated\")}}function nn(e,t){ve();var n=e.$options[t],r=t+\" hook\";if(n)for(var i=0,o=n.length;i<o;i++)Ve(n[i],e,null,e,r);e._hasHookEvent&&e.$emit(\"hook:\"+t),he()}var rn=[],on=[],an={},sn=!1,cn=!1,un=0;var ln=0,fn=Date.now;function pn(){var e,t;for(ln=fn(),cn=!0,rn.sort(function(e,t){return e.id-t.id}),un=0;un<rn.length;un++)(e=rn[un]).before&&e.before(),t=e.id,an[t]=null,e.run();var n=on.slice(),r=rn.slice();un=rn.length=on.length=0,an={},sn=cn=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,tn(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&nn(r,\"updated\")}}(r),ae&&B.devtools&&ae.emit(\"flush\")}q&&fn()>document.createEvent(\"Event\").timeStamp&&(fn=function(){return performance.now()});var dn=0,vn=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++dn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ce,this.newDepIds=new ce,this.expression=\"\",\"function\"==typeof t?this.getter=t:(this.getter=function(e){if(!V.test(e)){var t=e.split(\".\");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=E)),this.value=this.lazy?void 0:this.get()};vn.prototype.get=function(){var e;ve(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;ze(e,t,'getter for watcher \"'+this.expression+'\"')}finally{this.deep&&it(e),he(),this.cleanupDeps()}return e},vn.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},vn.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},vn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==an[t]){if(an[t]=!0,cn){for(var n=rn.length-1;n>un&&rn[n].id>e.id;)n--;rn.splice(n+1,0,e)}else rn.push(e);sn||(sn=!0,nt(pn))}}(this)},vn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||s(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){ze(e,this.vm,'callback for watcher \"'+this.expression+'\"')}else this.cb.call(this.vm,e,t)}}},vn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},vn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},vn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var hn={enumerable:!0,configurable:!0,get:E,set:E};function mn(e,t,n){hn.get=function(){return this[t][n]},hn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,hn)}function yn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[],o=!e.$parent;o||ke(!1);var a=function(o){i.push(o);var a=Re(o,t,n,e);Se(r,o,a),o in e||mn(e,\"_props\",o)};for(var s in t)a(s);ke(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=\"function\"!=typeof t[n]?E:O(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;u(t=e._data=\"function\"==typeof t?function(e,t){ve();try{return e.call(t,t)}catch(e){return ze(e,t,\"data()\"),{}}finally{he()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&b(r,o)||H(o)||mn(e,\"_data\",o)}Oe(t,!0)}(e):Oe(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=oe();for(var i in t){var o=t[i],a=\"function\"==typeof o?o:o.get;0,r||(n[i]=new vn(e,a||E,E,gn)),i in e||_n(e,i,o)}}(e,t.computed),t.watch&&t.watch!==ne&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)xn(e,n,r[i]);else xn(e,n,r)}}(e,t.watch)}var gn={lazy:!0};function _n(e,t,n){var r=!oe();\"function\"==typeof n?(hn.get=r?bn(t):$n(n),hn.set=E):(hn.get=n.get?r&&!1!==n.cache?bn(t):$n(n.get):E,hn.set=n.set||E),Object.defineProperty(e,t,hn)}function bn(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),pe.target&&t.depend(),t.value}}function $n(e){return function(){return e.call(this,this)}}function xn(e,t,n,r){return u(n)&&(r=n,n=n.handler),\"string\"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var wn=0;function Cn(e){var t=e.options;if(e.super){var n=Cn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&T(e.extendOptions,r),(t=e.options=Pe(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function kn(e){this._init(e)}function An(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name;var a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=Pe(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)mn(e.prototype,\"_props\",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)_n(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,F.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=T({},a.options),i[r]=a,a}}function On(e){return e&&(e.Ctor.options.name||e.tag)}function Sn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:\"string\"==typeof e?e.split(\",\").indexOf(t)>-1:!!l(e)&&e.test(t)}function Tn(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=On(a.componentOptions);s&&!t(s)&&jn(n,o,r,i)}}}function jn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,g(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=wn++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Pe(Cn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Xt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,r=e.$vnode=t._parentVnode,i=r&&r.context;e.$slots=dt(t._renderChildren,i),e.$scopedSlots=n,e._c=function(t,n,r,i){return Ht(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return Ht(e,t,n,r,i,!0)};var o=r&&r.data;Se(e,\"$attrs\",o&&o.attrs||n,null,!0),Se(e,\"$listeners\",t._parentListeners||n,null,!0)}(t),nn(t,\"beforeCreate\"),function(e){var t=pt(e.$options.inject,e);t&&(ke(!1),Object.keys(t).forEach(function(n){Se(e,n,t[n])}),ke(!0))}(t),yn(t),function(e){var t=e.$options.provide;t&&(e._provided=\"function\"==typeof t?t.call(e):t)}(t),nn(t,\"created\"),t.$options.el&&t.$mount(t.$options.el)}}(kn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,\"$data\",t),Object.defineProperty(e.prototype,\"$props\",n),e.prototype.$set=Te,e.prototype.$delete=je,e.prototype.$watch=function(e,t,n){if(u(t))return xn(this,e,t,n);(n=n||{}).user=!0;var r=new vn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){ze(e,this,'callback for immediate watcher \"'+r.expression+'\"')}return function(){r.teardown()}}}(kn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o,a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;for(var s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this,n=t._events[e];if(n){n=n.length>1?S(n):n;for(var r=S(arguments,1),i='event handler for \"'+e+'\"',o=0,a=n.length;o<a;o++)Ve(n[o],t,r,t,i)}return t}}(kn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=Yt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){nn(e,\"beforeDestroy\"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||g(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),nn(e,\"destroyed\"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(kn),function(e){Mt(e.prototype),e.prototype.$nextTick=function(e){return nt(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,i=n._parentVnode;i&&(t.$scopedSlots=ht(i.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=i;try{Vt=t,e=r.call(t._renderProxy,t.$createElement)}catch(n){ze(n,t,\"render\"),e=t._vnode}finally{Vt=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof me||(e=ge()),e.parent=i,e}}(kn);var En=[String,RegExp,Array],Mn={KeepAlive:{name:\"keep-alive\",abstract:!0,props:{include:En,exclude:En,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)jn(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch(\"include\",function(t){Tn(e,function(e){return Sn(t,e)})}),this.$watch(\"exclude\",function(t){Tn(e,function(e){return!Sn(t,e)})})},render:function(){var e=this.$slots.default,t=qt(e),n=t&&t.componentOptions;if(n){var r=On(n),i=this.include,o=this.exclude;if(i&&(!r||!Sn(i,r))||o&&r&&Sn(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?\"::\"+n.tag:\"\"):t.key;a[c]?(t.componentInstance=a[c].componentInstance,g(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&jn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return B}};Object.defineProperty(e,\"config\",t),e.util={warn:le,extend:T,mergeOptions:Pe,defineReactive:Se},e.set=Te,e.delete=je,e.nextTick=nt,e.observable=function(e){return Oe(e),e},e.options=Object.create(null),F.forEach(function(t){e.options[t+\"s\"]=Object.create(null)}),e.options._base=e,T(e.options.components,Mn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=S(arguments,1);return n.unshift(this),\"function\"==typeof e.install?e.install.apply(e,n):\"function\"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Pe(this.options,e),this}}(e),An(e),function(e){F.forEach(function(t){e[t]=function(e,n){return n?(\"component\"===t&&u(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),\"directive\"===t&&\"function\"==typeof n&&(n={bind:n,update:n}),this.options[t+\"s\"][e]=n,n):this.options[t+\"s\"][e]}})}(e)}(kn),Object.defineProperty(kn.prototype,\"$isServer\",{get:oe}),Object.defineProperty(kn.prototype,\"$ssrContext\",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,\"FunctionalRenderContext\",{value:Nt}),kn.version=\"2.6.7\";var Nn=h(\"style,class\"),Dn=h(\"input,textarea,option,select,progress\"),In=function(e,t,n){return\"value\"===n&&Dn(e)&&\"button\"!==t||\"selected\"===n&&\"option\"===e||\"checked\"===n&&\"input\"===e||\"muted\"===n&&\"video\"===e},Ln=h(\"contenteditable,draggable,spellcheck\"),Pn=h(\"events,caret,typing,plaintext-only\"),Fn=function(e,t){return zn(t)||\"false\"===t?\"false\":\"contenteditable\"===e&&Pn(t)?t:\"true\"},Rn=h(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible\"),Bn=\"http://www.w3.org/1999/xlink\",Un=function(e){return\":\"===e.charAt(5)&&\"xlink\"===e.slice(0,5)},Hn=function(e){return Un(e)?e.slice(6,e.length):\"\"},zn=function(e){return null==e||!1===e};function Vn(e){for(var t=e.data,n=e,r=e;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Jn(r.data,t));for(;i(n=n.parent);)n&&n.data&&(t=Jn(t,n.data));return function(e,t){if(i(e)||i(t))return Kn(e,qn(t));return\"\"}(t.staticClass,t.class)}function Jn(e,t){return{staticClass:Kn(e.staticClass,t.staticClass),class:i(e.class)?[e.class,t.class]:t.class}}function Kn(e,t){return e?t?e+\" \"+t:e:t||\"\"}function qn(e){return Array.isArray(e)?function(e){for(var t,n=\"\",r=0,o=e.length;r<o;r++)i(t=qn(e[r]))&&\"\"!==t&&(n&&(n+=\" \"),n+=t);return n}(e):s(e)?function(e){var t=\"\";for(var n in e)e[n]&&(t&&(t+=\" \"),t+=n);return t}(e):\"string\"==typeof e?e:\"\"}var Wn={svg:\"http://www.w3.org/2000/svg\",math:\"http://www.w3.org/1998/Math/MathML\"},Gn=h(\"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot\"),Zn=h(\"svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view\",!0),Xn=function(e){return Gn(e)||Zn(e)};function Qn(e){return Zn(e)?\"svg\":\"math\"===e?\"math\":void 0}var Yn=Object.create(null);var er=h(\"text,number,password,search,email,tel,url\");function tr(e){if(\"string\"==typeof e){var t=document.querySelector(e);return t||document.createElement(\"div\")}return e}var nr=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return\"select\"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute(\"multiple\",\"multiple\"),n)},createElementNS:function(e,t){return document.createElementNS(Wn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,\"\")}}),rr={create:function(e,t){ir(t)},update:function(e,t){e.data.ref!==t.data.ref&&(ir(e,!0),ir(t))},destroy:function(e){ir(e,!0)}};function ir(e,t){var n=e.data.ref;if(i(n)){var r=e.context,o=e.componentInstance||e.elm,a=r.$refs;t?Array.isArray(a[n])?g(a[n],o):a[n]===o&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var or=new me(\"\",{},[]),ar=[\"create\",\"activate\",\"update\",\"remove\",\"destroy\"];function sr(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&i(e.data)===i(t.data)&&function(e,t){if(\"input\"!==e.tag)return!0;var n,r=i(n=e.data)&&i(n=n.attrs)&&n.type,o=i(n=t.data)&&i(n=n.attrs)&&n.type;return r===o||er(r)&&er(o)}(e,t)||o(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function cr(e,t,n){var r,o,a={};for(r=t;r<=n;++r)i(o=e[r].key)&&(a[o]=r);return a}var ur={create:lr,update:lr,destroy:function(e){lr(e,or)}};function lr(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===or,a=t===or,s=pr(e.data.directives,e.context),c=pr(t.data.directives,t.context),u=[],l=[];for(n in c)r=s[n],i=c[n],r?(i.oldValue=r.value,i.oldArg=r.arg,vr(i,\"update\",t,e),i.def&&i.def.componentUpdated&&l.push(i)):(vr(i,\"bind\",t,e),i.def&&i.def.inserted&&u.push(i));if(u.length){var f=function(){for(var n=0;n<u.length;n++)vr(u[n],\"inserted\",t,e)};o?ct(t,\"insert\",f):f()}l.length&&ct(t,\"postpatch\",function(){for(var n=0;n<l.length;n++)vr(l[n],\"componentUpdated\",t,e)});if(!o)for(n in s)c[n]||vr(s[n],\"unbind\",e,e,a)}(e,t)}var fr=Object.create(null);function pr(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=fr),i[dr(r)]=r,r.def=Fe(t.$options,\"directives\",r.name);return i}function dr(e){return e.rawName||e.name+\".\"+Object.keys(e.modifiers||{}).join(\".\")}function vr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){ze(r,n.context,\"directive \"+e.name+\" \"+t+\" hook\")}}var hr=[rr,ur];function mr(e,t){var n=t.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||r(e.data.attrs)&&r(t.data.attrs))){var o,a,s=t.elm,c=e.data.attrs||{},u=t.data.attrs||{};for(o in i(u.__ob__)&&(u=t.data.attrs=T({},u)),u)a=u[o],c[o]!==a&&yr(s,o,a);for(o in(X||Y)&&u.value!==c.value&&yr(s,\"value\",u.value),c)r(u[o])&&(Un(o)?s.removeAttributeNS(Bn,Hn(o)):Ln(o)||s.removeAttribute(o))}}function yr(e,t,n){e.tagName.indexOf(\"-\")>-1?gr(e,t,n):Rn(t)?zn(n)?e.removeAttribute(t):(n=\"allowfullscreen\"===t&&\"EMBED\"===e.tagName?\"true\":t,e.setAttribute(t,n)):Ln(t)?e.setAttribute(t,Fn(t,n)):Un(t)?zn(n)?e.removeAttributeNS(Bn,Hn(t)):e.setAttributeNS(Bn,t,n):gr(e,t,n)}function gr(e,t,n){if(zn(n))e.removeAttribute(t);else{if(X&&!Q&&\"TEXTAREA\"===e.tagName&&\"placeholder\"===t&&\"\"!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener(\"input\",r)};e.addEventListener(\"input\",r),e.__ieph=!0}e.setAttribute(t,n)}}var _r={create:mr,update:mr};function br(e,t){var n=t.elm,o=t.data,a=e.data;if(!(r(o.staticClass)&&r(o.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=Vn(t),c=n._transitionClasses;i(c)&&(s=Kn(s,qn(c))),s!==n._prevClass&&(n.setAttribute(\"class\",s),n._prevClass=s)}}var $r,xr,wr,Cr,kr,Ar,Or={create:br,update:br},Sr=/[\\w).+\\-_$\\]]/;function Tr(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(u)47===t&&92!==n&&(u=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||l||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===t){for(var v=r-1,h=void 0;v>=0&&\" \"===(h=e.charAt(v));v--);h&&Sr.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=jr(i,o[r]);return i}function jr(e,t){var n=t.indexOf(\"(\");if(n<0)return'_f(\"'+t+'\")('+e+\")\";var r=t.slice(0,n),i=t.slice(n+1);return'_f(\"'+r+'\")('+e+(\")\"!==i?\",\"+i:i)}function Er(e,t){console.error(\"[Vue compiler]: \"+e)}function Mr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Nr(e,t,n,r,i){(e.props||(e.props=[])).push(zr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Dr(e,t,n,r,i){(i?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(e.attrs=[])).push(zr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Ir(e,t,n,r){e.attrsMap[t]=n,e.attrsList.push(zr({name:t,value:n},r))}function Lr(e,t,n,r,i,o,a,s){(e.directives||(e.directives=[])).push(zr({name:t,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),e.plain=!1}function Pr(e,t,n){return n?\"_p(\"+t+',\"'+e+'\")':e+t}function Fr(e,t,r,i,o,a,s,c){var u;(i=i||n).right?c?t=\"(\"+t+\")==='click'?'contextmenu':(\"+t+\")\":\"click\"===t&&(t=\"contextmenu\",delete i.right):i.middle&&(c?t=\"(\"+t+\")==='click'?'mouseup':(\"+t+\")\":\"click\"===t&&(t=\"mouseup\")),i.capture&&(delete i.capture,t=Pr(\"!\",t,c)),i.once&&(delete i.once,t=Pr(\"~\",t,c)),i.passive&&(delete i.passive,t=Pr(\"&\",t,c)),i.native?(delete i.native,u=e.nativeEvents||(e.nativeEvents={})):u=e.events||(e.events={});var l=zr({value:r.trim(),dynamic:c},s);i!==n&&(l.modifiers=i);var f=u[t];Array.isArray(f)?o?f.unshift(l):f.push(l):u[t]=f?o?[l,f]:[f,l]:l,e.plain=!1}function Rr(e,t){return e.rawAttrsMap[\":\"+t]||e.rawAttrsMap[\"v-bind:\"+t]||e.rawAttrsMap[t]}function Br(e,t,n){var r=Ur(e,\":\"+t)||Ur(e,\"v-bind:\"+t);if(null!=r)return Tr(r);if(!1!==n){var i=Ur(e,t);if(null!=i)return JSON.stringify(i)}}function Ur(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Hr(e,t){for(var n=e.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(t.test(o.name))return n.splice(r,1),o}}function zr(e,t){return t&&(null!=t.start&&(e.start=t.start),null!=t.end&&(e.end=t.end)),e}function Vr(e,t,n){var r=n||{},i=r.number,o=\"$$v\";r.trim&&(o=\"(typeof $$v === 'string'? $$v.trim(): $$v)\"),i&&(o=\"_n(\"+o+\")\");var a=Jr(t,o);e.model={value:\"(\"+t+\")\",expression:JSON.stringify(t),callback:\"function ($$v) {\"+a+\"}\"}}function Jr(e,t){var n=function(e){if(e=e.trim(),$r=e.length,e.indexOf(\"[\")<0||e.lastIndexOf(\"]\")<$r-1)return(Cr=e.lastIndexOf(\".\"))>-1?{exp:e.slice(0,Cr),key:'\"'+e.slice(Cr+1)+'\"'}:{exp:e,key:null};xr=e,Cr=kr=Ar=0;for(;!qr();)Wr(wr=Kr())?Zr(wr):91===wr&&Gr(wr);return{exp:e.slice(0,kr),key:e.slice(kr+1,Ar)}}(e);return null===n.key?e+\"=\"+t:\"$set(\"+n.exp+\", \"+n.key+\", \"+t+\")\"}function Kr(){return xr.charCodeAt(++Cr)}function qr(){return Cr>=$r}function Wr(e){return 34===e||39===e}function Gr(e){var t=1;for(kr=Cr;!qr();)if(Wr(e=Kr()))Zr(e);else if(91===e&&t++,93===e&&t--,0===t){Ar=Cr;break}}function Zr(e){for(var t=e;!qr()&&(e=Kr())!==t;);}var Xr,Qr=\"__r\",Yr=\"__c\";function ei(e,t,n){var r=Xr;return function i(){null!==t.apply(null,arguments)&&ri(e,i,n,r)}}var ti=We&&!(te&&Number(te[1])<=53);function ni(e,t,n,r){if(ti){var i=ln,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||0===e.timeStamp||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Xr.addEventListener(e,t,re?{capture:n,passive:r}:n)}function ri(e,t,n,r){(r||Xr).removeEventListener(e,t._wrapper||t,n)}function ii(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},o=e.data.on||{};Xr=t.elm,function(e){if(i(e[Qr])){var t=X?\"change\":\"input\";e[t]=[].concat(e[Qr],e[t]||[]),delete e[Qr]}i(e[Yr])&&(e.change=[].concat(e[Yr],e.change||[]),delete e[Yr])}(n),st(n,o,ni,ri,ei,t.context),Xr=void 0}}var oi,ai={create:ii,update:ii};function si(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,o,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in i(c.__ob__)&&(c=t.data.domProps=T({},c)),s)r(c[n])&&(a[n]=\"\");for(n in c){if(o=c[n],\"textContent\"===n||\"innerHTML\"===n){if(t.children&&(t.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if(\"value\"===n&&\"PROGRESS\"!==a.tagName){a._value=o;var u=r(o)?\"\":String(o);ci(a,u)&&(a.value=u)}else if(\"innerHTML\"===n&&Zn(a.tagName)&&r(a.innerHTML)){(oi=oi||document.createElement(\"div\")).innerHTML=\"<svg>\"+o+\"</svg>\";for(var l=oi.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[n])try{a[n]=o}catch(e){}}}}function ci(e,t){return!e.composing&&(\"OPTION\"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(i(r)){if(r.number)return v(n)!==v(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var ui={create:si,update:si},li=$(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function fi(e){var t=pi(e.style);return e.staticStyle?T(e.staticStyle,t):t}function pi(e){return Array.isArray(e)?j(e):\"string\"==typeof e?li(e):e}var di,vi=/^--/,hi=/\\s*!important$/,mi=function(e,t,n){if(vi.test(t))e.style.setProperty(t,n);else if(hi.test(n))e.style.setProperty(A(t),n.replace(hi,\"\"),\"important\");else{var r=gi(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},yi=[\"Webkit\",\"Moz\",\"ms\"],gi=$(function(e){if(di=di||document.createElement(\"div\").style,\"filter\"!==(e=w(e))&&e in di)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<yi.length;n++){var r=yi[n]+t;if(r in di)return r}});function _i(e,t){var n=t.data,o=e.data;if(!(r(n.staticStyle)&&r(n.style)&&r(o.staticStyle)&&r(o.style))){var a,s,c=t.elm,u=o.staticStyle,l=o.normalizedStyle||o.style||{},f=u||l,p=pi(t.data.style)||{};t.data.normalizedStyle=i(p.__ob__)?T({},p):p;var d=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=fi(i.data))&&T(r,n);(n=fi(e.data))&&T(r,n);for(var o=e;o=o.parent;)o.data&&(n=fi(o.data))&&T(r,n);return r}(t,!0);for(s in f)r(d[s])&&mi(c,s,\"\");for(s in d)(a=d[s])!==f[s]&&mi(c,s,null==a?\"\":a)}}var bi={create:_i,update:_i},$i=/\\s+/;function xi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(\" \")>-1?t.split($i).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \";n.indexOf(\" \"+t+\" \")<0&&e.setAttribute(\"class\",(n+t).trim())}}function wi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(\" \")>-1?t.split($i).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute(\"class\");else{for(var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \",r=\" \"+t+\" \";n.indexOf(r)>=0;)n=n.replace(r,\" \");(n=n.trim())?e.setAttribute(\"class\",n):e.removeAttribute(\"class\")}}function Ci(e){if(e){if(\"object\"==typeof e){var t={};return!1!==e.css&&T(t,ki(e.name||\"v\")),T(t,e),t}return\"string\"==typeof e?ki(e):void 0}}var ki=$(function(e){return{enterClass:e+\"-enter\",enterToClass:e+\"-enter-to\",enterActiveClass:e+\"-enter-active\",leaveClass:e+\"-leave\",leaveToClass:e+\"-leave-to\",leaveActiveClass:e+\"-leave-active\"}}),Ai=q&&!Q,Oi=\"transition\",Si=\"animation\",Ti=\"transition\",ji=\"transitionend\",Ei=\"animation\",Mi=\"animationend\";Ai&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ti=\"WebkitTransition\",ji=\"webkitTransitionEnd\"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ei=\"WebkitAnimation\",Mi=\"webkitAnimationEnd\"));var Ni=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Di(e){Ni(function(){Ni(e)})}function Ii(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),xi(e,t))}function Li(e,t){e._transitionClasses&&g(e._transitionClasses,t),wi(e,t)}function Pi(e,t,n){var r=Ri(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Oi?ji:Mi,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c<a&&u()},o+1),e.addEventListener(s,l)}var Fi=/\\b(transform|all)(,|$)/;function Ri(e,t){var n,r=window.getComputedStyle(e),i=(r[Ti+\"Delay\"]||\"\").split(\", \"),o=(r[Ti+\"Duration\"]||\"\").split(\", \"),a=Bi(i,o),s=(r[Ei+\"Delay\"]||\"\").split(\", \"),c=(r[Ei+\"Duration\"]||\"\").split(\", \"),u=Bi(s,c),l=0,f=0;return t===Oi?a>0&&(n=Oi,l=a,f=o.length):t===Si?u>0&&(n=Si,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Oi:Si:null)?n===Oi?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Oi&&Fi.test(r[Ti+\"Property\"])}}function Bi(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return Ui(t)+Ui(e[n])}))}function Ui(e){return 1e3*Number(e.slice(0,-1).replace(\",\",\".\"))}function Hi(e,t){var n=e.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var o=Ci(e.data.transition);if(!r(o)&&!i(n._enterCb)&&1===n.nodeType){for(var a=o.css,c=o.type,u=o.enterClass,l=o.enterToClass,f=o.enterActiveClass,p=o.appearClass,d=o.appearToClass,h=o.appearActiveClass,m=o.beforeEnter,y=o.enter,g=o.afterEnter,_=o.enterCancelled,b=o.beforeAppear,$=o.appear,x=o.afterAppear,w=o.appearCancelled,C=o.duration,k=Qt,A=Qt.$vnode;A&&A.parent;)k=(A=A.parent).context;var O=!k._isMounted||!e.isRootInsert;if(!O||$||\"\"===$){var S=O&&p?p:u,T=O&&h?h:f,j=O&&d?d:l,E=O&&b||m,M=O&&\"function\"==typeof $?$:y,N=O&&x||g,D=O&&w||_,I=v(s(C)?C.enter:C);0;var P=!1!==a&&!Q,F=Ji(M),R=n._enterCb=L(function(){P&&(Li(n,j),Li(n,T)),R.cancelled?(P&&Li(n,S),D&&D(n)):N&&N(n),n._enterCb=null});e.data.show||ct(e,\"insert\",function(){var t=n.parentNode,r=t&&t._pending&&t._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),M&&M(n,R)}),E&&E(n),P&&(Ii(n,S),Ii(n,T),Di(function(){Li(n,S),R.cancelled||(Ii(n,j),F||(Vi(I)?setTimeout(R,I):Pi(n,c,R)))})),e.data.show&&(t&&t(),M&&M(n,R)),P||F||R()}}}function zi(e,t){var n=e.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var o=Ci(e.data.transition);if(r(o)||1!==n.nodeType)return t();if(!i(n._leaveCb)){var a=o.css,c=o.type,u=o.leaveClass,l=o.leaveToClass,f=o.leaveActiveClass,p=o.beforeLeave,d=o.leave,h=o.afterLeave,m=o.leaveCancelled,y=o.delayLeave,g=o.duration,_=!1!==a&&!Q,b=Ji(d),$=v(s(g)?g.leave:g);0;var x=n._leaveCb=L(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),_&&(Li(n,l),Li(n,f)),x.cancelled?(_&&Li(n,u),m&&m(n)):(t(),h&&h(n)),n._leaveCb=null});y?y(w):w()}function w(){x.cancelled||(!e.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),p&&p(n),_&&(Ii(n,u),Ii(n,f),Di(function(){Li(n,u),x.cancelled||(Ii(n,l),b||(Vi($)?setTimeout(x,$):Pi(n,c,x)))})),d&&d(n,x),_||b||x())}}function Vi(e){return\"number\"==typeof e&&!isNaN(e)}function Ji(e){if(r(e))return!1;var t=e.fns;return i(t)?Ji(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function Ki(e,t){!0!==t.data.show&&Hi(t)}var qi=function(e){var t,n,s={},c=e.modules,u=e.nodeOps;for(t=0;t<ar.length;++t)for(s[ar[t]]=[],n=0;n<c.length;++n)i(c[n][ar[t]])&&s[ar[t]].push(c[n][ar[t]]);function l(e){var t=u.parentNode(e);i(t)&&u.removeChild(t,e)}function f(e,t,n,r,a,c,l){if(i(e.elm)&&i(c)&&(e=c[l]=be(e)),e.isRootInsert=!a,!function(e,t,n,r){var a=e.data;if(i(a)){var c=i(e.componentInstance)&&a.keepAlive;if(i(a=a.hook)&&i(a=a.init)&&a(e,!1),i(e.componentInstance))return p(e,t),d(n,e.elm,r),o(c)&&function(e,t,n,r){for(var o,a=e;a.componentInstance;)if(a=a.componentInstance._vnode,i(o=a.data)&&i(o=o.transition)){for(o=0;o<s.activate.length;++o)s.activate[o](or,a);t.push(a);break}d(n,e.elm,r)}(e,t,n,r),!0}}(e,t,n,r)){var f=e.data,h=e.children,m=e.tag;i(m)?(e.elm=e.ns?u.createElementNS(e.ns,m):u.createElement(m,e),g(e),v(e,h,t),i(f)&&y(e,t),d(n,e.elm,r)):o(e.isComment)?(e.elm=u.createComment(e.text),d(n,e.elm,r)):(e.elm=u.createTextNode(e.text),d(n,e.elm,r))}}function p(e,t){i(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(y(e,t),g(e)):(ir(e),t.push(e))}function d(e,t,n){i(e)&&(i(n)?u.parentNode(n)===e&&u.insertBefore(e,t,n):u.appendChild(e,t))}function v(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else a(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return i(e.tag)}function y(e,n){for(var r=0;r<s.create.length;++r)s.create[r](or,e);i(t=e.data.hook)&&(i(t.create)&&t.create(or,e),i(t.insert)&&n.push(e))}function g(e){var t;if(i(t=e.fnScopeId))u.setStyleScope(e.elm,t);else for(var n=e;n;)i(t=n.context)&&i(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t),n=n.parent;i(t=Qt)&&t!==e.context&&t!==e.fnContext&&i(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t)}function _(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function b(e){var t,n,r=e.data;if(i(r))for(i(t=r.hook)&&i(t=t.destroy)&&t(e),t=0;t<s.destroy.length;++t)s.destroy[t](e);if(i(t=e.children))for(n=0;n<e.children.length;++n)b(e.children[n])}function $(e,t,n,r){for(;n<=r;++n){var o=t[n];i(o)&&(i(o.tag)?(x(o),b(o)):l(o.elm))}}function x(e,t){if(i(t)||i(e.data)){var n,r=s.remove.length+1;for(i(t)?t.listeners+=r:t=function(e,t){function n(){0==--n.listeners&&l(e)}return n.listeners=t,n}(e.elm,r),i(n=e.componentInstance)&&i(n=n._vnode)&&i(n.data)&&x(n,t),n=0;n<s.remove.length;++n)s.remove[n](e,t);i(n=e.data.hook)&&i(n=n.remove)?n(e,t):t()}else l(e.elm)}function w(e,t,n,r){for(var o=n;o<r;o++){var a=t[o];if(i(a)&&sr(e,a))return o}}function C(e,t,n,a,c,l){if(e!==t){i(t.elm)&&i(a)&&(t=a[c]=be(t));var p=t.elm=e.elm;if(o(e.isAsyncPlaceholder))i(t.asyncFactory.resolved)?O(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(o(t.isStatic)&&o(e.isStatic)&&t.key===e.key&&(o(t.isCloned)||o(t.isOnce)))t.componentInstance=e.componentInstance;else{var d,v=t.data;i(v)&&i(d=v.hook)&&i(d=d.prepatch)&&d(e,t);var h=e.children,y=t.children;if(i(v)&&m(t)){for(d=0;d<s.update.length;++d)s.update[d](e,t);i(d=v.hook)&&i(d=d.update)&&d(e,t)}r(t.text)?i(h)&&i(y)?h!==y&&function(e,t,n,o,a){for(var s,c,l,p=0,d=0,v=t.length-1,h=t[0],m=t[v],y=n.length-1,g=n[0],b=n[y],x=!a;p<=v&&d<=y;)r(h)?h=t[++p]:r(m)?m=t[--v]:sr(h,g)?(C(h,g,o,n,d),h=t[++p],g=n[++d]):sr(m,b)?(C(m,b,o,n,y),m=t[--v],b=n[--y]):sr(h,b)?(C(h,b,o,n,y),x&&u.insertBefore(e,h.elm,u.nextSibling(m.elm)),h=t[++p],b=n[--y]):sr(m,g)?(C(m,g,o,n,d),x&&u.insertBefore(e,m.elm,h.elm),m=t[--v],g=n[++d]):(r(s)&&(s=cr(t,p,v)),r(c=i(g.key)?s[g.key]:w(g,t,p,v))?f(g,o,e,h.elm,!1,n,d):sr(l=t[c],g)?(C(l,g,o,n,d),t[c]=void 0,x&&u.insertBefore(e,l.elm,h.elm)):f(g,o,e,h.elm,!1,n,d),g=n[++d]);p>v?_(e,r(n[y+1])?null:n[y+1].elm,n,d,y,o):d>y&&$(0,t,p,v)}(p,h,y,n,l):i(y)?(i(e.text)&&u.setTextContent(p,\"\"),_(p,null,y,0,y.length-1,n)):i(h)?$(0,h,0,h.length-1):i(e.text)&&u.setTextContent(p,\"\"):e.text!==t.text&&u.setTextContent(p,t.text),i(v)&&i(d=v.hook)&&i(d=d.postpatch)&&d(e,t)}}}function k(e,t,n){if(o(n)&&i(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var A=h(\"attrs,class,staticClass,staticStyle,key\");function O(e,t,n,r){var a,s=t.tag,c=t.data,u=t.children;if(r=r||c&&c.pre,t.elm=e,o(t.isComment)&&i(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(a=c.hook)&&i(a=a.init)&&a(t,!0),i(a=t.componentInstance)))return p(t,n),!0;if(i(s)){if(i(u))if(e.hasChildNodes())if(i(a=c)&&i(a=a.domProps)&&i(a=a.innerHTML)){if(a!==e.innerHTML)return!1}else{for(var l=!0,f=e.firstChild,d=0;d<u.length;d++){if(!f||!O(f,u[d],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else v(t,u,n);if(i(c)){var h=!1;for(var m in c)if(!A(m)){h=!0,y(t,n);break}!h&&c.class&&it(c.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,a){if(!r(t)){var c,l=!1,p=[];if(r(e))l=!0,f(t,p);else{var d=i(e.nodeType);if(!d&&sr(e,t))C(e,t,p,null,null,a);else{if(d){if(1===e.nodeType&&e.hasAttribute(P)&&(e.removeAttribute(P),n=!0),o(n)&&O(e,t,p))return k(t,p,!0),e;c=e,e=new me(u.tagName(c).toLowerCase(),{},[],void 0,c)}var v=e.elm,h=u.parentNode(v);if(f(t,p,v._leaveCb?null:h,u.nextSibling(v)),i(t.parent))for(var y=t.parent,g=m(t);y;){for(var _=0;_<s.destroy.length;++_)s.destroy[_](y);if(y.elm=t.elm,g){for(var x=0;x<s.create.length;++x)s.create[x](or,y);var w=y.data.hook.insert;if(w.merged)for(var A=1;A<w.fns.length;A++)w.fns[A]()}else ir(y);y=y.parent}i(h)?$(0,[e],0,0):i(e.tag)&&b(e)}}return k(t,p,l),t.elm}i(e)&&b(e)}}({nodeOps:nr,modules:[_r,Or,ai,ui,bi,q?{create:Ki,activate:Ki,remove:function(e,t){!0!==e.data.show?zi(e,t):t()}}:{}].concat(hr)});Q&&document.addEventListener(\"selectionchange\",function(){var e=document.activeElement;e&&e.vmodel&&to(e,\"input\")});var Wi={inserted:function(e,t,n,r){\"select\"===n.tag?(r.elm&&!r.elm._vOptions?ct(n,\"postpatch\",function(){Wi.componentUpdated(e,t,n)}):Gi(e,t,n.context),e._vOptions=[].map.call(e.options,Qi)):(\"textarea\"===n.tag||er(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener(\"compositionstart\",Yi),e.addEventListener(\"compositionend\",eo),e.addEventListener(\"change\",eo),Q&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if(\"select\"===n.tag){Gi(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Qi);if(i.some(function(e,t){return!D(e,r[t])}))(e.multiple?t.value.some(function(e){return Xi(e,i)}):t.value!==t.oldValue&&Xi(t.value,i))&&to(e,\"change\")}}};function Gi(e,t,n){Zi(e,t,n),(X||Y)&&setTimeout(function(){Zi(e,t,n)},0)}function Zi(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=I(r,Qi(a))>-1,a.selected!==o&&(a.selected=o);else if(D(Qi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Xi(e,t){return t.every(function(t){return!D(t,e)})}function Qi(e){return\"_value\"in e?e._value:e.value}function Yi(e){e.target.composing=!0}function eo(e){e.target.composing&&(e.target.composing=!1,to(e.target,\"input\"))}function to(e,t){var n=document.createEvent(\"HTMLEvents\");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function no(e){return!e.componentInstance||e.data&&e.data.transition?e:no(e.componentInstance._vnode)}var ro={model:Wi,show:{bind:function(e,t,n){var r=t.value,i=(n=no(n)).data&&n.data.transition,o=e.__vOriginalDisplay=\"none\"===e.style.display?\"\":e.style.display;r&&i?(n.data.show=!0,Hi(n,function(){e.style.display=o})):e.style.display=r?o:\"none\"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=no(n)).data&&n.data.transition?(n.data.show=!0,r?Hi(n,function(){e.style.display=e.__vOriginalDisplay}):zi(n,function(){e.style.display=\"none\"})):e.style.display=r?e.__vOriginalDisplay:\"none\")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},io={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function oo(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?oo(qt(t.children)):e}function ao(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[w(o)]=i[o];return t}function so(e,t){if(/\\d-keep-alive$/.test(t.tag))return e(\"keep-alive\",{props:t.componentOptions.propsData})}var co=function(e){return e.tag||Kt(e)},uo=function(e){return\"show\"===e.name},lo={name:\"transition\",props:io,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(co)).length){0;var r=this.mode;0;var i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=oo(i);if(!o)return i;if(this._leaving)return so(e,i);var s=\"__transition-\"+this._uid+\"-\";o.key=null==o.key?o.isComment?s+\"comment\":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var c=(o.data||(o.data={})).transition=ao(this),u=this._vnode,l=oo(u);if(o.data.directives&&o.data.directives.some(uo)&&(o.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,l)&&!Kt(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=T({},c);if(\"out-in\"===r)return this._leaving=!0,ct(f,\"afterLeave\",function(){t._leaving=!1,t.$forceUpdate()}),so(e,i);if(\"in-out\"===r){if(Kt(o))return u;var p,d=function(){p()};ct(c,\"afterEnter\",d),ct(c,\"enterCancelled\",d),ct(f,\"delayLeave\",function(e){p=e})}}return i}}},fo=T({tag:String,moveClass:String},io);function po(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function vo(e){e.data.newPos=e.elm.getBoundingClientRect()}function ho(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform=\"translate(\"+r+\"px,\"+i+\"px)\",o.transitionDuration=\"0s\"}}delete fo.mode;var mo={Transition:lo,TransitionGroup:{props:fo,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Yt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||\"span\",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ao(this),s=0;s<i.length;s++){var c=i[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf(\"__vlist\"))o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=e(t,null,u),this.removed=l}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||\"v\")+\"-move\";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(po),e.forEach(vo),e.forEach(ho),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,r=n.style;Ii(n,t),r.transform=r.WebkitTransform=r.transitionDuration=\"\",n.addEventListener(ji,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(ji,e),n._moveCb=null,Li(n,t))})}}))},methods:{hasMove:function(e,t){if(!Ai)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){wi(n,e)}),xi(n,t),n.style.display=\"none\",this.$el.appendChild(n);var r=Ri(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};kn.config.mustUseProp=In,kn.config.isReservedTag=Xn,kn.config.isReservedAttr=Nn,kn.config.getTagNamespace=Qn,kn.config.isUnknownElement=function(e){if(!q)return!0;if(Xn(e))return!1;if(e=e.toLowerCase(),null!=Yn[e])return Yn[e];var t=document.createElement(e);return e.indexOf(\"-\")>-1?Yn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Yn[e]=/HTMLUnknownElement/.test(t.toString())},T(kn.options.directives,ro),T(kn.options.components,mo),kn.prototype.__patch__=q?qi:E,kn.prototype.$mount=function(e,t){return function(e,t,n){return e.$el=t,e.$options.render||(e.$options.render=ge),nn(e,\"beforeMount\"),new vn(e,function(){e._update(e._render(),n)},E,{before:function(){e._isMounted&&!e._isDestroyed&&nn(e,\"beforeUpdate\")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,nn(e,\"mounted\")),e}(this,e=e&&q?tr(e):void 0,t)},q&&setTimeout(function(){B.devtools&&ae&&ae.emit(\"init\",kn)},0);var yo=/\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g,go=/[-.*+?^${}()|[\\]\\/\\\\]/g,_o=$(function(e){var t=e[0].replace(go,\"\\\\$&\"),n=e[1].replace(go,\"\\\\$&\");return new RegExp(t+\"((?:.|\\\\n)+?)\"+n,\"g\")});function bo(e,t){var n=t?_o(t):yo;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){(i=r.index)>c&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Tr(r[1].trim());a.push(\"_s(\"+u+\")\"),s.push({\"@binding\":u}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join(\"+\"),tokens:s}}}var $o={staticKeys:[\"staticClass\"],transformNode:function(e,t){t.warn;var n=Ur(e,\"class\");n&&(e.staticClass=JSON.stringify(n));var r=Br(e,\"class\",!1);r&&(e.classBinding=r)},genData:function(e){var t=\"\";return e.staticClass&&(t+=\"staticClass:\"+e.staticClass+\",\"),e.classBinding&&(t+=\"class:\"+e.classBinding+\",\"),t}};var xo,wo={staticKeys:[\"staticStyle\"],transformNode:function(e,t){t.warn;var n=Ur(e,\"style\");n&&(e.staticStyle=JSON.stringify(li(n)));var r=Br(e,\"style\",!1);r&&(e.styleBinding=r)},genData:function(e){var t=\"\";return e.staticStyle&&(t+=\"staticStyle:\"+e.staticStyle+\",\"),e.styleBinding&&(t+=\"style:(\"+e.styleBinding+\"),\"),t}},Co=function(e){return(xo=xo||document.createElement(\"div\")).innerHTML=e,xo.textContent},ko=h(\"area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr\"),Ao=h(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source\"),Oo=h(\"address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track\"),So=/^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,To=/^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,jo=\"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\"+U+\"]*\",Eo=\"((?:\"+jo+\"\\\\:)?\"+jo+\")\",Mo=new RegExp(\"^<\"+Eo),No=/^\\s*(\\/?)>/,Do=new RegExp(\"^<\\\\/\"+Eo+\"[^>]*>\"),Io=/^<!DOCTYPE [^>]+>/i,Lo=/^<!\\--/,Po=/^<!\\[/,Fo=h(\"script,style,textarea\",!0),Ro={},Bo={\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&amp;\":\"&\",\"&#10;\":\"\\n\",\"&#9;\":\"\\t\",\"&#39;\":\"'\"},Uo=/&(?:lt|gt|quot|amp|#39);/g,Ho=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,zo=h(\"pre,textarea\",!0),Vo=function(e,t){return e&&zo(e)&&\"\\n\"===t[0]};function Jo(e,t){var n=t?Ho:Uo;return e.replace(n,function(e){return Bo[e]})}var Ko,qo,Wo,Go,Zo,Xo,Qo,Yo,ea=/^@|^v-on:/,ta=/^v-|^@|^:/,na=/([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,ra=/,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,ia=/^\\(|\\)$/g,oa=/^\\[.*\\]$/,aa=/:(.*)$/,sa=/^:|^\\.|^v-bind:/,ca=/\\.[^.]+/g,ua=/^v-slot(:|$)|^#/,la=/[\\r\\n]/,fa=/\\s+/g,pa=$(Co),da=\"_empty_\";function va(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}(t),rawAttrsMap:{},parent:n,children:[]}}function ha(e,t){Ko=t.warn||Er,Xo=t.isPreTag||M,Qo=t.mustUseProp||M,Yo=t.getTagNamespace||M;var n=t.isReservedTag||M;(function(e){return!!e.component||!n(e.tag)}),Wo=Mr(t.modules,\"transformNode\"),Go=Mr(t.modules,\"preTransformNode\"),Zo=Mr(t.modules,\"postTransformNode\"),qo=t.delimiters;var r,i,o=[],a=!1!==t.preserveWhitespace,s=t.whitespace,c=!1,u=!1;function l(e){if(f(e),c||e.processed||(e=ma(e,t)),o.length||e===r||r.if&&(e.elseif||e.else)&&ga(r,{exp:e.elseif,block:e}),i&&!e.forbidden)if(e.elseif||e.else)a=e,(s=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(i.children))&&s.if&&ga(s,{exp:a.elseif,block:a});else{if(e.slotScope){var n=e.slotTarget||'\"default\"';(i.scopedSlots||(i.scopedSlots={}))[n]=e}i.children.push(e),e.parent=i}var a,s;e.children=e.children.filter(function(e){return!e.slotScope}),f(e),e.pre&&(c=!1),Xo(e.tag)&&(u=!1);for(var l=0;l<Zo.length;l++)Zo[l](e,t)}function f(e){if(!u)for(var t;(t=e.children[e.children.length-1])&&3===t.type&&\" \"===t.text;)e.children.pop()}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||M,s=t.canBeLeftOpenTag||M,c=0;e;){if(n=e,r&&Fo(r)){var u=0,l=r.toLowerCase(),f=Ro[l]||(Ro[l]=new RegExp(\"([\\\\s\\\\S]*?)(</\"+l+\"[^>]*>)\",\"i\")),p=e.replace(f,function(e,n,r){return u=r.length,Fo(l)||\"noscript\"===l||(n=n.replace(/<!\\--([\\s\\S]*?)-->/g,\"$1\").replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g,\"$1\")),Vo(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),\"\"});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf(\"<\");if(0===d){if(Lo.test(e)){var v=e.indexOf(\"--\\x3e\");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),w(v+3);continue}}if(Po.test(e)){var h=e.indexOf(\"]>\");if(h>=0){w(h+2);continue}}var m=e.match(Io);if(m){w(m[0].length);continue}var y=e.match(Do);if(y){var g=c;w(y[0].length),A(y[1],g,c);continue}var _=C();if(_){k(_),Vo(_.tagName,e)&&w(1);continue}}var b=void 0,$=void 0,x=void 0;if(d>=0){for($=e.slice(d);!(Do.test($)||Mo.test($)||Lo.test($)||Po.test($)||(x=$.indexOf(\"<\",1))<0);)d+=x,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&w(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function w(t){c+=t,e=e.substring(t)}function C(){var t=e.match(Mo);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(w(t[0].length);!(n=e.match(No))&&(r=e.match(To)||e.match(So));)r.start=c,w(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],w(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&(\"p\"===r&&Oo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p<l;p++){var d=e.attrs[p],v=d[3]||d[4]||d[5]||\"\",h=\"a\"===n&&\"href\"===d[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[p]={name:d[1],value:Jo(v,h)}}u||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:e.start,end:e.end}),r=n),t.start&&t.start(n,f,u,e.start,e.end)}function A(e,n,o){var a,s;if(null==n&&(n=c),null==o&&(o=c),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else\"br\"===s?t.start&&t.start(e,[],!0,n,o):\"p\"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Ko,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,n,a,s){var f=i&&i.ns||Yo(e);X&&\"svg\"===f&&(n=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];$a.test(r.name)||(r.name=r.name.replace(xa,\"\"),t.push(r))}return t}(n));var p,d=va(e,n,i);f&&(d.ns=f),\"style\"!==(p=d).tag&&(\"script\"!==p.tag||p.attrsMap.type&&\"text/javascript\"!==p.attrsMap.type)||oe()||(d.forbidden=!0);for(var v=0;v<Go.length;v++)d=Go[v](d,t)||d;c||(!function(e){null!=Ur(e,\"v-pre\")&&(e.pre=!0)}(d),d.pre&&(c=!0)),Xo(d.tag)&&(u=!0),c?function(e){var t=e.attrsList,n=t.length;if(n)for(var r=e.attrs=new Array(n),i=0;i<n;i++)r[i]={name:t[i].name,value:JSON.stringify(t[i].value)},null!=t[i].start&&(r[i].start=t[i].start,r[i].end=t[i].end);else e.pre||(e.plain=!0)}(d):d.processed||(ya(d),function(e){var t=Ur(e,\"v-if\");if(t)e.if=t,ga(e,{exp:t,block:e});else{null!=Ur(e,\"v-else\")&&(e.else=!0);var n=Ur(e,\"v-else-if\");n&&(e.elseif=n)}}(d),function(e){null!=Ur(e,\"v-once\")&&(e.once=!0)}(d)),r||(r=d),a?l(d):(i=d,o.push(d))},end:function(e,t,n){var r=o[o.length-1];o.length-=1,i=o[o.length-1],l(r)},chars:function(e,t,n){if(i&&(!X||\"textarea\"!==i.tag||i.attrsMap.placeholder!==e)){var r,o,l,f=i.children;if(e=u||e.trim()?\"script\"===(r=i).tag||\"style\"===r.tag?e:pa(e):f.length?s?\"condense\"===s&&la.test(e)?\"\":\" \":a?\" \":\"\":\"\")\"condense\"===s&&(e=e.replace(fa,\" \")),!c&&\" \"!==e&&(o=bo(e,qo))?l={type:2,expression:o.expression,tokens:o.tokens,text:e}:\" \"===e&&f.length&&\" \"===f[f.length-1].text||(l={type:3,text:e}),l&&f.push(l)}},comment:function(e,t,n){if(i){var r={type:3,text:e,isComment:!0};0,i.children.push(r)}}}),r}function ma(e,t){var n,r;!function(e){var t=Br(e,\"key\");if(t){e.key=t}}(e),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,(r=Br(n=e,\"ref\"))&&(n.ref=r,n.refInFor=function(e){for(var t=e;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(n)),function(e){var t;\"template\"===e.tag?(t=Ur(e,\"scope\"),e.slotScope=t||Ur(e,\"slot-scope\")):(t=Ur(e,\"slot-scope\"))&&(e.slotScope=t);var n=Br(e,\"slot\");n&&(e.slotTarget='\"\"'===n?'\"default\"':n,e.slotTargetDynamic=!(!e.attrsMap[\":slot\"]&&!e.attrsMap[\"v-bind:slot\"]),\"template\"===e.tag||e.slotScope||Dr(e,\"slot\",n,Rr(e,\"slot\")));if(\"template\"===e.tag){var r=Hr(e,ua);if(r){0;var i=_a(r),o=i.name,a=i.dynamic;e.slotTarget=o,e.slotTargetDynamic=a,e.slotScope=r.value||da}}else{var s=Hr(e,ua);if(s){0;var c=e.scopedSlots||(e.scopedSlots={}),u=_a(s),l=u.name,f=u.dynamic,p=c[l]=va(\"template\",[],e);p.slotTarget=l,p.slotTargetDynamic=f,p.children=e.children.filter(function(e){if(!e.slotScope)return e.parent=p,!0}),p.slotScope=s.value||da,e.children=[],e.plain=!1}}}(e),function(e){\"slot\"===e.tag&&(e.slotName=Br(e,\"name\"))}(e),function(e){var t;(t=Br(e,\"is\"))&&(e.component=t);null!=Ur(e,\"inline-template\")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<Wo.length;i++)e=Wo[i](e,t)||e;return function(e){var t,n,r,i,o,a,s,c,u=e.attrsList;for(t=0,n=u.length;t<n;t++){if(r=i=u[t].name,o=u[t].value,ta.test(r))if(e.hasBindings=!0,(a=ba(r.replace(ta,\"\")))&&(r=r.replace(ca,\"\")),sa.test(r))r=r.replace(sa,\"\"),o=Tr(o),(c=oa.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!c&&\"innerHtml\"===(r=w(r))&&(r=\"innerHTML\"),a.camel&&!c&&(r=w(r)),a.sync&&(s=Jr(o,\"$event\"),c?Fr(e,'\"update:\"+('+r+\")\",s,null,!1,0,u[t],!0):(Fr(e,\"update:\"+w(r),s,null,!1,0,u[t]),A(r)!==w(r)&&Fr(e,\"update:\"+A(r),s,null,!1,0,u[t])))),a&&a.prop||!e.component&&Qo(e.tag,e.attrsMap.type,r)?Nr(e,r,o,u[t],c):Dr(e,r,o,u[t],c);else if(ea.test(r))r=r.replace(ea,\"\"),(c=oa.test(r))&&(r=r.slice(1,-1)),Fr(e,r,o,a,!1,0,u[t],c);else{var l=(r=r.replace(ta,\"\")).match(aa),f=l&&l[1];c=!1,f&&(r=r.slice(0,-(f.length+1)),oa.test(f)&&(f=f.slice(1,-1),c=!0)),Lr(e,r,i,o,f,c,a,u[t])}else Dr(e,r,JSON.stringify(o),u[t]),!e.component&&\"muted\"===r&&Qo(e.tag,e.attrsMap.type,r)&&Nr(e,r,\"true\",u[t])}}(e),e}function ya(e){var t;if(t=Ur(e,\"v-for\")){var n=function(e){var t=e.match(na);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(ia,\"\"),i=r.match(ra);i?(n.alias=r.replace(ra,\"\").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&T(e,n)}}function ga(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function _a(e){var t=e.name.replace(ua,\"\");return t||\"#\"!==e.name[0]&&(t=\"default\"),oa.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'\"'+t+'\"',dynamic:!1}}function ba(e){var t=e.match(ca);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}var $a=/^xmlns:NS\\d+/,xa=/^NS\\d+:/;function wa(e){return va(e.tag,e.attrsList.slice(),e.parent)}var Ca=[$o,wo,{preTransformNode:function(e,t){if(\"input\"===e.tag){var n,r=e.attrsMap;if(!r[\"v-model\"])return;if((r[\":type\"]||r[\"v-bind:type\"])&&(n=Br(e,\"type\")),r.type||n||!r[\"v-bind\"]||(n=\"(\"+r[\"v-bind\"]+\").type\"),n){var i=Ur(e,\"v-if\",!0),o=i?\"&&(\"+i+\")\":\"\",a=null!=Ur(e,\"v-else\",!0),s=Ur(e,\"v-else-if\",!0),c=wa(e);ya(c),Ir(c,\"type\",\"checkbox\"),ma(c,t),c.processed=!0,c.if=\"(\"+n+\")==='checkbox'\"+o,ga(c,{exp:c.if,block:c});var u=wa(e);Ur(u,\"v-for\",!0),Ir(u,\"type\",\"radio\"),ma(u,t),ga(c,{exp:\"(\"+n+\")==='radio'\"+o,block:u});var l=wa(e);return Ur(l,\"v-for\",!0),Ir(l,\":type\",n),ma(l,t),ga(c,{exp:i,block:l}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var ka,Aa,Oa={expectHTML:!0,modules:Ca,directives:{model:function(e,t,n){n;var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Vr(e,r,i),!1;if(\"select\"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return '+(n&&n.number?\"_n(val)\":\"val\")+\"});\";r=r+\" \"+Jr(t,\"$event.target.multiple ? $$selectedVal : $$selectedVal[0]\"),Fr(e,\"change\",r,null,!0)}(e,r,i);else if(\"input\"===o&&\"checkbox\"===a)!function(e,t,n){var r=n&&n.number,i=Br(e,\"value\")||\"null\",o=Br(e,\"true-value\")||\"true\",a=Br(e,\"false-value\")||\"false\";Nr(e,\"checked\",\"Array.isArray(\"+t+\")?_i(\"+t+\",\"+i+\")>-1\"+(\"true\"===o?\":(\"+t+\")\":\":_q(\"+t+\",\"+o+\")\")),Fr(e,\"change\",\"var $$a=\"+t+\",$$el=$event.target,$$c=$$el.checked?(\"+o+\"):(\"+a+\");if(Array.isArray($$a)){var $$v=\"+(r?\"_n(\"+i+\")\":i)+\",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(\"+Jr(t,\"$$a.concat([$$v])\")+\")}else{$$i>-1&&(\"+Jr(t,\"$$a.slice(0,$$i).concat($$a.slice($$i+1))\")+\")}}else{\"+Jr(t,\"$$c\")+\"}\",null,!0)}(e,r,i);else if(\"input\"===o&&\"radio\"===a)!function(e,t,n){var r=n&&n.number,i=Br(e,\"value\")||\"null\";Nr(e,\"checked\",\"_q(\"+t+\",\"+(i=r?\"_n(\"+i+\")\":i)+\")\"),Fr(e,\"change\",Jr(t,i),null,!0)}(e,r,i);else if(\"input\"===o||\"textarea\"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&\"range\"!==r,u=o?\"change\":\"range\"===r?Qr:\"input\",l=\"$event.target.value\";s&&(l=\"$event.target.value.trim()\"),a&&(l=\"_n(\"+l+\")\");var f=Jr(t,l);c&&(f=\"if($event.target.composing)return;\"+f),Nr(e,\"value\",\"(\"+t+\")\"),Fr(e,u,f,null,!0),(s||a)&&Fr(e,\"blur\",\"$forceUpdate()\")}(e,r,i);else if(!B.isReservedTag(o))return Vr(e,r,i),!1;return!0},text:function(e,t){t.value&&Nr(e,\"textContent\",\"_s(\"+t.value+\")\",t)},html:function(e,t){t.value&&Nr(e,\"innerHTML\",\"_s(\"+t.value+\")\",t)}},isPreTag:function(e){return\"pre\"===e},isUnaryTag:ko,mustUseProp:In,canBeLeftOpenTag:Ao,isReservedTag:Xn,getTagNamespace:Qn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(\",\")}(Ca)},Sa=$(function(e){return h(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap\"+(e?\",\"+e:\"\"))});function Ta(e,t){e&&(ka=Sa(t.staticKeys||\"\"),Aa=t.isReservedTag||M,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||m(e.tag)||!Aa(e.tag)||function(e){for(;e.parent;){if(\"template\"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(ka)))}(t);if(1===t.type){if(!Aa(t.tag)&&\"slot\"!==t.tag&&null==t.attrsMap[\"inline-template\"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var ja=/^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/,Ea=/\\([^)]*?\\);*$/,Ma=/^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,Na={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Da={esc:[\"Esc\",\"Escape\"],tab:\"Tab\",enter:\"Enter\",space:[\" \",\"Spacebar\"],up:[\"Up\",\"ArrowUp\"],left:[\"Left\",\"ArrowLeft\"],right:[\"Right\",\"ArrowRight\"],down:[\"Down\",\"ArrowDown\"],delete:[\"Backspace\",\"Delete\",\"Del\"]},Ia=function(e){return\"if(\"+e+\")return null;\"},La={stop:\"$event.stopPropagation();\",prevent:\"$event.preventDefault();\",self:Ia(\"$event.target !== $event.currentTarget\"),ctrl:Ia(\"!$event.ctrlKey\"),shift:Ia(\"!$event.shiftKey\"),alt:Ia(\"!$event.altKey\"),meta:Ia(\"!$event.metaKey\"),left:Ia(\"'button' in $event && $event.button !== 0\"),middle:Ia(\"'button' in $event && $event.button !== 1\"),right:Ia(\"'button' in $event && $event.button !== 2\")};function Pa(e,t){var n=t?\"nativeOn:\":\"on:\",r=\"\",i=\"\";for(var o in e){var a=Fa(e[o]);e[o]&&e[o].dynamic?i+=o+\",\"+a+\",\":r+='\"'+o+'\":'+a+\",\"}return r=\"{\"+r.slice(0,-1)+\"}\",i?n+\"_d(\"+r+\",[\"+i.slice(0,-1)+\"])\":n+r}function Fa(e){if(!e)return\"function(){}\";if(Array.isArray(e))return\"[\"+e.map(function(e){return Fa(e)}).join(\",\")+\"]\";var t=Ma.test(e.value),n=ja.test(e.value),r=Ma.test(e.value.replace(Ea,\"\"));if(e.modifiers){var i=\"\",o=\"\",a=[];for(var s in e.modifiers)if(La[s])o+=La[s],Na[s]&&a.push(s);else if(\"exact\"===s){var c=e.modifiers;o+=Ia([\"ctrl\",\"shift\",\"alt\",\"meta\"].filter(function(e){return!c[e]}).map(function(e){return\"$event.\"+e+\"Key\"}).join(\"||\"))}else a.push(s);return a.length&&(i+=function(e){return\"if(!$event.type.indexOf('key')&&\"+e.map(Ra).join(\"&&\")+\")return null;\"}(a)),o&&(i+=o),\"function($event){\"+i+(t?\"return \"+e.value+\"($event)\":n?\"return (\"+e.value+\")($event)\":r?\"return \"+e.value:e.value)+\"}\"}return t||n?e.value:\"function($event){\"+(r?\"return \"+e.value:e.value)+\"}\"}function Ra(e){var t=parseInt(e,10);if(t)return\"$event.keyCode!==\"+t;var n=Na[e],r=Da[e];return\"_k($event.keyCode,\"+JSON.stringify(e)+\",\"+JSON.stringify(n)+\",$event.key,\"+JSON.stringify(r)+\")\"}var Ba={on:function(e,t){e.wrapListeners=function(e){return\"_g(\"+e+\",\"+t.value+\")\"}},bind:function(e,t){e.wrapData=function(n){return\"_b(\"+n+\",'\"+e.tag+\"',\"+t.value+\",\"+(t.modifiers&&t.modifiers.prop?\"true\":\"false\")+(t.modifiers&&t.modifiers.sync?\",true\":\"\")+\")\"}},cloak:E},Ua=function(e){this.options=e,this.warn=e.warn||Er,this.transforms=Mr(e.modules,\"transformCode\"),this.dataGenFns=Mr(e.modules,\"genData\"),this.directives=T(T({},Ba),e.directives);var t=e.isReservedTag||M;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ha(e,t){var n=new Ua(t);return{render:\"with(this){return \"+(e?za(e,n):'_c(\"div\")')+\"}\",staticRenderFns:n.staticRenderFns}}function za(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Va(e,t);if(e.once&&!e.onceProcessed)return Ja(e,t);if(e.for&&!e.forProcessed)return qa(e,t);if(e.if&&!e.ifProcessed)return Ka(e,t);if(\"template\"!==e.tag||e.slotTarget||t.pre){if(\"slot\"===e.tag)return function(e,t){var n=e.slotName||'\"default\"',r=Xa(e,t),i=\"_t(\"+n+(r?\",\"+r:\"\"),o=e.attrs||e.dynamicAttrs?es((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:w(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap[\"v-bind\"];!o&&!a||r||(i+=\",null\");o&&(i+=\",\"+o);a&&(i+=(o?\"\":\",null\")+\",\"+a);return i+\")\"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Xa(t,n,!0);return\"_c(\"+e+\",\"+Wa(t,n)+(r?\",\"+r:\"\")+\")\"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Wa(e,t));var i=e.inlineTemplate?null:Xa(e,t,!0);n=\"_c('\"+e.tag+\"'\"+(r?\",\"+r:\"\")+(i?\",\"+i:\"\")+\")\"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return Xa(e,t)||\"void 0\"}function Va(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push(\"with(this){return \"+za(e,t)+\"}\"),t.pre=n,\"_m(\"+(t.staticRenderFns.length-1)+(e.staticInFor?\",true\":\"\")+\")\"}function Ja(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Ka(e,t);if(e.staticInFor){for(var n=\"\",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?\"_o(\"+za(e,t)+\",\"+t.onceId+++\",\"+n+\")\":za(e,t)}return Va(e,t)}function Ka(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||\"_e()\";var o=t.shift();return o.exp?\"(\"+o.exp+\")?\"+a(o.block)+\":\"+e(t,n,r,i):\"\"+a(o.block);function a(e){return r?r(e,n):e.once?Ja(e,n):za(e,n)}}(e.ifConditions.slice(),t,n,r)}function qa(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?\",\"+e.iterator1:\"\",s=e.iterator2?\",\"+e.iterator2:\"\";return e.forProcessed=!0,(r||\"_l\")+\"((\"+i+\"),function(\"+o+a+s+\"){return \"+(n||za)(e,t)+\"})\"}function Wa(e,t){var n=\"{\",r=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s=\"directives:[\",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var u=t.directives[o.name];u&&(a=!!u(e,o,t.warn)),a&&(c=!0,s+='{name:\"'+o.name+'\",rawName:\"'+o.rawName+'\"'+(o.value?\",value:(\"+o.value+\"),expression:\"+JSON.stringify(o.value):\"\")+(o.arg?\",arg:\"+(o.isDynamicArg?o.arg:'\"'+o.arg+'\"'):\"\")+(o.modifiers?\",modifiers:\"+JSON.stringify(o.modifiers):\"\")+\"},\")}if(c)return s.slice(0,-1)+\"]\"}(e,t);r&&(n+=r+\",\"),e.key&&(n+=\"key:\"+e.key+\",\"),e.ref&&(n+=\"ref:\"+e.ref+\",\"),e.refInFor&&(n+=\"refInFor:true,\"),e.pre&&(n+=\"pre:true,\"),e.component&&(n+='tag:\"'+e.tag+'\",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+=\"attrs:\"+es(e.attrs)+\",\"),e.props&&(n+=\"domProps:\"+es(e.props)+\",\"),e.events&&(n+=Pa(e.events,!1)+\",\"),e.nativeEvents&&(n+=Pa(e.nativeEvents,!0)+\",\"),e.slotTarget&&!e.slotScope&&(n+=\"slot:\"+e.slotTarget+\",\"),e.scopedSlots&&(n+=function(e,t,n){var r=Object.keys(t).some(function(e){var n=t[e];return n.slotTargetDynamic||n.if||n.for||Ga(n)}),i=!!e.if;if(!r)for(var o=e.parent;o;){if(o.slotScope&&o.slotScope!==da||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(t).map(function(e){return Za(t[e],n)}).join(\",\");return\"scopedSlots:_u([\"+a+\"]\"+(r?\",null,true\":\"\")+(!r&&i?\",null,false,\"+function(e){var t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return t>>>0}(a):\"\")+\")\"}(e,e.scopedSlots,t)+\",\"),e.model&&(n+=\"model:{value:\"+e.model.value+\",callback:\"+e.model.callback+\",expression:\"+e.model.expression+\"},\"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];0;if(n&&1===n.type){var r=Ha(n,t.options);return\"inlineTemplate:{render:function(){\"+r.render+\"},staticRenderFns:[\"+r.staticRenderFns.map(function(e){return\"function(){\"+e+\"}\"}).join(\",\")+\"]}\"}}(e,t);o&&(n+=o+\",\")}return n=n.replace(/,$/,\"\")+\"}\",e.dynamicAttrs&&(n=\"_b(\"+n+',\"'+e.tag+'\",'+es(e.dynamicAttrs)+\")\"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ga(e){return 1===e.type&&(\"slot\"===e.tag||e.children.some(Ga))}function Za(e,t){var n=e.attrsMap[\"slot-scope\"];if(e.if&&!e.ifProcessed&&!n)return Ka(e,t,Za,\"null\");if(e.for&&!e.forProcessed)return qa(e,t,Za);var r=e.slotScope===da?\"\":String(e.slotScope),i=\"function(\"+r+\"){return \"+(\"template\"===e.tag?e.if&&n?\"(\"+e.if+\")?\"+(Xa(e,t)||\"undefined\")+\":undefined\":Xa(e,t)||\"undefined\":za(e,t))+\"}\",o=r?\"\":\",proxy:true\";return\"{key:\"+(e.slotTarget||'\"default\"')+\",fn:\"+i+o+\"}\"}function Xa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&\"template\"!==a.tag&&\"slot\"!==a.tag){var s=n?t.maybeComponent(a)?\",1\":\",0\":\"\";return\"\"+(r||za)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Qa(i)||i.ifConditions&&i.ifConditions.some(function(e){return Qa(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,u=i||Ya;return\"[\"+o.map(function(e){return u(e,t)}).join(\",\")+\"]\"+(c?\",\"+c:\"\")}}function Qa(e){return void 0!==e.for||\"template\"===e.tag||\"slot\"===e.tag}function Ya(e,t){return 1===e.type?za(e,t):3===e.type&&e.isComment?(r=e,\"_e(\"+JSON.stringify(r.text)+\")\"):\"_v(\"+(2===(n=e).type?n.expression:ts(JSON.stringify(n.text)))+\")\";var n,r}function es(e){for(var t=\"\",n=\"\",r=0;r<e.length;r++){var i=e[r],o=ts(i.value);i.dynamic?n+=i.name+\",\"+o+\",\":t+='\"'+i.name+'\":'+o+\",\"}return t=\"{\"+t.slice(0,-1)+\"}\",n?\"_d(\"+t+\",[\"+n.slice(0,-1)+\"])\":t}function ts(e){return e.replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")}new RegExp(\"\\\\b\"+\"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments\".split(\",\").join(\"\\\\b|\\\\b\")+\"\\\\b\"),new RegExp(\"\\\\b\"+\"delete,typeof,void\".split(\",\").join(\"\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b\")+\"\\\\s*\\\\([^\\\\)]*\\\\)\");function ns(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),E}}function rs(e){var t=Object.create(null);return function(n,r,i){(r=T({},r)).warn;delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r);var s={},c=[];return s.render=ns(a.render,c),s.staticRenderFns=a.staticRenderFns.map(function(e){return ns(e,c)}),t[o]=s}}var is,os,as=(is=function(e,t){var n=ha(e.trim(),t);!1!==t.optimize&&Ta(n,t);var r=Ha(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[],a=function(e,t,n){(n?o:i).push(e)};if(n)for(var s in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=T(Object.create(e.directives||null),n.directives)),n)\"modules\"!==s&&\"directives\"!==s&&(r[s]=n[s]);r.warn=a;var c=is(t.trim(),r);return c.errors=i,c.tips=o,c}return{compile:t,compileToFunctions:rs(t)}})(Oa),ss=(as.compile,as.compileToFunctions);function cs(e){return(os=os||document.createElement(\"div\")).innerHTML=e?'<a href=\"\\n\"/>':'<div a=\"\\n\"/>',os.innerHTML.indexOf(\"&#10;\")>0}var us=!!q&&cs(!1),ls=!!q&&cs(!0),fs=$(function(e){var t=tr(e);return t&&t.innerHTML}),ps=kn.prototype.$mount;kn.prototype.$mount=function(e,t){if((e=e&&tr(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(\"string\"==typeof r)\"#\"===r.charAt(0)&&(r=fs(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement(\"div\");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){0;var i=ss(r,{outputSourceRange:!1,shouldDecodeNewlines:us,shouldDecodeNewlinesForHref:ls,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return ps.call(this,e,t)},kn.compile=ss,t.a=kn}).call(t,n(\"DuR2\"))},\"77Pl\":function(e,t,n){var r=n(\"EqjI\");e.exports=function(e){if(!r(e))throw TypeError(e+\" is not an object!\");return e}},\"7KvD\":function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},Cdx3:function(e,t,n){var r=n(\"sB3e\"),i=n(\"lktj\");n(\"uqUo\")(\"keys\",function(){return function(e){return i(r(e))}})},D2L2:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},DuR2:function(e,t){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},EqjI:function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},FeBl:function(e,t){var n=e.exports={version:\"2.6.5\"};\"number\"==typeof __e&&(__e=n)},Ibhu:function(e,t,n){var r=n(\"D2L2\"),i=n(\"TcQ7\"),o=n(\"vFc/\")(!1),a=n(\"ax3d\")(\"IE_PROTO\");e.exports=function(e,t){var n,s=i(e),c=0,u=[];for(n in s)n!=a&&r(s,n)&&u.push(n);for(;t.length>c;)r(s,n=t[c++])&&(~o(u,n)||u.push(n));return u}},MU5D:function(e,t,n){var r=n(\"R9M2\");e.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(e){return\"String\"==r(e)?e.split(\"\"):Object(e)}},MmMw:function(e,t,n){var r=n(\"EqjI\");e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&\"function\"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if(\"function\"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&\"function\"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError(\"Can't convert object to primitive value\")}},O4g8:function(e,t){e.exports=!0},ON07:function(e,t,n){var r=n(\"EqjI\"),i=n(\"7KvD\").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},QRG4:function(e,t,n){var r=n(\"UuGF\"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},R9M2:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},S82l:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},SfB7:function(e,t,n){e.exports=!n(\"+E39\")&&!n(\"S82l\")(function(){return 7!=Object.defineProperty(n(\"ON07\")(\"div\"),\"a\",{get:function(){return 7}}).a})},TcQ7:function(e,t,n){var r=n(\"MU5D\"),i=n(\"52gC\");e.exports=function(e){return r(i(e))}},UuGF:function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},\"VU/8\":function(e,t){e.exports=function(e,t,n,r,i,o){var a,s=e=e||{},c=typeof e.default;\"object\"!==c&&\"function\"!==c||(a=e,s=e.default);var u,l=\"function\"==typeof s?s.options:s;if(t&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),i&&(l._scopeId=i),o?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},l._ssrRegister=u):r&&(u=r),u){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=u,l.render=function(e,t){return u.call(t),p(e,t)}):l.beforeCreate=p?[].concat(p,u):[u]}return{esModule:a,exports:s,options:l}}},X8DO:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},ax3d:function(e,t,n){var r=n(\"e8AB\")(\"keys\"),i=n(\"3Eo+\");e.exports=function(e){return r[e]||(r[e]=i(e))}},e8AB:function(e,t,n){var r=n(\"FeBl\"),i=n(\"7KvD\"),o=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:r.version,mode:n(\"O4g8\")?\"pure\":\"global\",copyright:\"© 2019 Denis Pushkarev (zloirock.ru)\"})},evD5:function(e,t,n){var r=n(\"77Pl\"),i=n(\"SfB7\"),o=n(\"MmMw\"),a=Object.defineProperty;t.f=n(\"+E39\")?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(e[t]=n.value),e}},fZjL:function(e,t,n){e.exports={default:n(\"jFbC\"),__esModule:!0}},fkB2:function(e,t,n){var r=n(\"UuGF\"),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):o(e,t)}},hJx8:function(e,t,n){var r=n(\"evD5\"),i=n(\"X8DO\");e.exports=n(\"+E39\")?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},jFbC:function(e,t,n){n(\"Cdx3\"),e.exports=n(\"FeBl\").Object.keys},kM2E:function(e,t,n){var r=n(\"7KvD\"),i=n(\"FeBl\"),o=n(\"+ZMJ\"),a=n(\"hJx8\"),s=n(\"D2L2\"),c=function(e,t,n){var u,l,f,p=e&c.F,d=e&c.G,v=e&c.S,h=e&c.P,m=e&c.B,y=e&c.W,g=d?i:i[t]||(i[t]={}),_=g.prototype,b=d?r:v?r[t]:(r[t]||{}).prototype;for(u in d&&(n=t),n)(l=!p&&b&&void 0!==b[u])&&s(g,u)||(f=l?b[u]:n[u],g[u]=d&&\"function\"!=typeof b[u]?n[u]:m&&l?o(f,r):y&&b[u]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):h&&\"function\"==typeof f?o(Function.call,f):f,h&&((g.virtual||(g.virtual={}))[u]=f,e&c.R&&_&&!_[u]&&a(_,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},lOnJ:function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},lktj:function(e,t,n){var r=n(\"Ibhu\"),i=n(\"xnc9\");e.exports=Object.keys||function(e){return r(e,i)}},mvHQ:function(e,t,n){e.exports={default:n(\"qkKv\"),__esModule:!0}},qkKv:function(e,t,n){var r=n(\"FeBl\"),i=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},sB3e:function(e,t,n){var r=n(\"52gC\");e.exports=function(e){return Object(r(e))}},uqUo:function(e,t,n){var r=n(\"kM2E\"),i=n(\"FeBl\"),o=n(\"S82l\");e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*o(function(){n(1)}),\"Object\",a)}},\"vFc/\":function(e,t,n){var r=n(\"TcQ7\"),i=n(\"QRG4\"),o=n(\"fkB2\");e.exports=function(e){return function(t,n,a){var s,c=r(t),u=i(c.length),l=o(a,u);if(e&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((e||l in c)&&c[l]===n)return e||l||0;return!e&&-1}}},xnc9:function(e,t){e.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")}});\n//# sourceMappingURL=vue-task-node.js.map"
  },
  {
    "path": "build/utils.js",
    "content": "'use strict'\nconst path = require('path')\nconst config = require('../config')\nconst ExtractTextPlugin = require('extract-text-webpack-plugin')\nconst packageConfig = require('../package.json')\n\nexports.assetsPath = function (_path) {\n  const assetsSubDirectory = process.env.NODE_ENV === 'production'\n    ? config.build.assetsSubDirectory\n    : config.dev.assetsSubDirectory\n\n  return path.posix.join(assetsSubDirectory, _path)\n}\n\nexports.cssLoaders = function (options) {\n  options = options || {}\n\n  const cssLoader = {\n    loader: 'css-loader',\n    options: {\n      sourceMap: options.sourceMap\n    }\n  }\n\n  const postcssLoader = {\n    loader: 'postcss-loader',\n    options: {\n      sourceMap: options.sourceMap\n    }\n  }\n\n  // generate loader string to be used with extract text plugin\n  function generateLoaders (loader, loaderOptions) {\n    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]\n\n    if (loader) {\n      loaders.push({\n        loader: loader + '-loader',\n        options: Object.assign({}, loaderOptions, {\n          sourceMap: options.sourceMap\n        })\n      })\n    }\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({\n        use: loaders,\n        fallback: 'vue-style-loader'\n      })\n    } else {\n      return ['vue-style-loader'].concat(loaders)\n    }\n  }\n\n  // https://vue-loader.vuejs.org/en/configurations/extract-css.html\n  return {\n    css: generateLoaders(),\n    postcss: generateLoaders(),\n    less: generateLoaders('less'),\n    sass: generateLoaders('sass', { indentedSyntax: true }),\n    scss: generateLoaders('sass'),\n    stylus: generateLoaders('stylus'),\n    styl: generateLoaders('stylus')\n  }\n}\n\n// Generate loaders for standalone style files (outside of .vue)\nexports.styleLoaders = function (options) {\n  const output = []\n  const loaders = exports.cssLoaders(options)\n\n  for (const extension in loaders) {\n    const loader = loaders[extension]\n    output.push({\n      test: new RegExp('\\\\.' + extension + '$'),\n      use: loader\n    })\n  }\n\n  return output\n}\n\nexports.createNotifierCallback = () => {\n  const notifier = require('node-notifier')\n\n  return (severity, errors) => {\n    if (severity !== 'error') return\n\n    const error = errors[0]\n    const filename = error.file && error.file.split('!').pop()\n\n    notifier.notify({\n      title: packageConfig.name,\n      message: severity + ': ' + error.name,\n      subtitle: filename || '',\n      icon: path.join(__dirname, 'logo.png')\n    })\n  }\n}\n"
  },
  {
    "path": "build/vue-loader.conf.js",
    "content": "'use strict'\nconst utils = require('./utils')\nconst config = require('../config')\nconst isProduction = process.env.NODE_ENV === 'production'\nconst sourceMapEnabled = isProduction\n  ? config.build.productionSourceMap\n  : config.dev.cssSourceMap\n\nmodule.exports = {\n  loaders: utils.cssLoaders({\n    sourceMap: sourceMapEnabled,\n    extract: isProduction\n  }),\n  cssSourceMap: sourceMapEnabled,\n  cacheBusting: config.dev.cacheBusting,\n  transformToRequire: {\n    video: ['src', 'poster'],\n    source: 'src',\n    img: 'src',\n    image: 'xlink:href'\n  }\n}\n"
  },
  {
    "path": "build/webpack.base.conf.js",
    "content": "'use strict'\nconst path = require('path')\nconst utils = require('./utils')\nconst config = require('../config')\nconst vueLoaderConfig = require('./vue-loader.conf')\n\nfunction resolve (dir) {\n  return path.join(__dirname, '..', dir)\n}\n\nconst createLintingRule = () => ({\n  test: /\\.(js|vue)$/,\n  loader: 'eslint-loader',\n  enforce: 'pre',\n  include: [resolve('src'), resolve('test')],\n  options: {\n    formatter: require('eslint-friendly-formatter'),\n    emitWarning: !config.dev.showEslintErrorsInOverlay\n  }\n})\n\nmodule.exports = {\n  context: path.resolve(__dirname, '../'),\n  entry: {\n    app: './src/main.js'\n  },\n  output: {\n    path: config.build.assetsRoot,\n    filename: '[name].js',\n    publicPath: process.env.NODE_ENV === 'production'\n      ? config.build.assetsPublicPath\n      : config.dev.assetsPublicPath\n  },\n  resolve: {\n    extensions: ['.js', '.vue', '.json'],\n    alias: {\n      'vue$': 'vue/dist/vue.esm.js',\n      '@': resolve('src'),\n    }\n  },\n  module: {\n    rules: [\n      ...(config.dev.useEslint ? [createLintingRule()] : []),\n      {\n        test: /\\.vue$/,\n        loader: 'vue-loader',\n        options: vueLoaderConfig\n      },\n      {\n        test: /\\.js$/,\n        loader: 'babel-loader',\n        include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]\n      },\n/*      {\n        test: /\\.less$/,\n        loader: \"style-loader!css-loader!less-loader\",\n      },*/\n      {\n        test: /\\.(png|jpe?g|gif|svg)(\\?.*)?$/,\n        loader: 'url-loader',\n        options: {\n          limit: 10000,\n          name: utils.assetsPath('img/[name].[hash:7].[ext]')\n        }\n      },\n      {\n        test: /\\.(mp4|webm|ogg|mp3|wav|flac|aac)(\\?.*)?$/,\n        loader: 'url-loader',\n        options: {\n          limit: 10000,\n          name: utils.assetsPath('media/[name].[hash:7].[ext]')\n        }\n      },\n      {\n        test: /\\.(woff2?|eot|ttf|otf)(\\?.*)?$/,\n        loader: 'url-loader',\n        options: {\n          limit: 10000,\n          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')\n        }\n      }\n    ]\n  },\n  node: {\n    // prevent webpack from injecting useless setImmediate polyfill because Vue\n    // source contains it (although only uses it if it's native).\n    setImmediate: false,\n    // prevent webpack from injecting mocks to Node native modules\n    // that does not make sense for the client\n    dgram: 'empty',\n    fs: 'empty',\n    net: 'empty',\n    tls: 'empty',\n    child_process: 'empty'\n  }\n}\n"
  },
  {
    "path": "build/webpack.dev.conf.js",
    "content": "'use strict'\nconst utils = require('./utils')\nconst webpack = require('webpack')\nconst config = require('../config')\nconst merge = require('webpack-merge')\nconst path = require('path')\nconst baseWebpackConfig = require('./webpack.base.conf')\nconst CopyWebpackPlugin = require('copy-webpack-plugin')\nconst HtmlWebpackPlugin = require('html-webpack-plugin')\nconst FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')\nconst portfinder = require('portfinder')\n\nconst HOST = process.env.HOST\nconst PORT = process.env.PORT && Number(process.env.PORT)\n\nconst devWebpackConfig = merge(baseWebpackConfig, {\n  module: {\n    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })\n  },\n  // cheap-module-eval-source-map is faster for development\n  devtool: config.dev.devtool,\n\n  // these devServer options should be customized in /config/index.js\n  devServer: {\n    clientLogLevel: 'warning',\n    historyApiFallback: {\n      rewrites: [\n        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },\n      ],\n    },\n    hot: true,\n    contentBase: false, // since we use CopyWebpackPlugin.\n    compress: true,\n    host: HOST || config.dev.host,\n    port: PORT || config.dev.port,\n    open: config.dev.autoOpenBrowser,\n    overlay: config.dev.errorOverlay\n      ? { warnings: false, errors: true }\n      : false,\n    publicPath: config.dev.assetsPublicPath,\n    proxy: config.dev.proxyTable,\n    quiet: true, // necessary for FriendlyErrorsPlugin\n    watchOptions: {\n      poll: config.dev.poll,\n    }\n  },\n  plugins: [\n    new webpack.DefinePlugin({\n      'process.env': require('../config/dev.env')\n    }),\n    new webpack.HotModuleReplacementPlugin(),\n    new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.\n    new webpack.NoEmitOnErrorsPlugin(),\n    // https://github.com/ampedandwired/html-webpack-plugin\n    new HtmlWebpackPlugin({\n      filename: 'index.html',\n      template: 'index.html',\n      inject: true\n    }),\n    // copy custom static assets\n    new CopyWebpackPlugin([\n      {\n        from: path.resolve(__dirname, '../static'),\n        to: config.dev.assetsSubDirectory,\n        ignore: ['.*']\n      }\n    ])\n  ]\n})\n\nmodule.exports = new Promise((resolve, reject) => {\n  portfinder.basePort = process.env.PORT || config.dev.port\n  portfinder.getPort((err, port) => {\n    if (err) {\n      reject(err)\n    } else {\n      // publish the new Port, necessary for e2e tests\n      process.env.PORT = port\n      // add port to devServer config\n      devWebpackConfig.devServer.port = port\n\n      // Add FriendlyErrorsPlugin\n      devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({\n        compilationSuccessInfo: {\n          messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],\n        },\n        onErrors: config.dev.notifyOnErrors\n        ? utils.createNotifierCallback()\n        : undefined\n      }))\n\n      resolve(devWebpackConfig)\n    }\n  })\n})\n"
  },
  {
    "path": "build/webpack.prod.conf.js",
    "content": "'use strict'\nconst path = require('path')\nconst utils = require('./utils')\nconst webpack = require('webpack')\nconst config = require('../config')\nconst merge = require('webpack-merge')\nconst baseWebpackConfig = require('./webpack.base.conf')\nconst CopyWebpackPlugin = require('copy-webpack-plugin')\nconst HtmlWebpackPlugin = require('html-webpack-plugin')\nconst ExtractTextPlugin = require('extract-text-webpack-plugin')\nconst OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')\nconst UglifyJsPlugin = require('uglifyjs-webpack-plugin')\n\nconst env = process.env.NODE_ENV === 'testing'\n  ? require('../config/test.env')\n  : require('../config/prod.env')\n\nconst webpackConfig = merge(baseWebpackConfig, {\n  module: {\n    rules: utils.styleLoaders({\n      sourceMap: config.build.productionSourceMap,\n      extract: true,\n      usePostCSS: true\n    })\n  },\n  devtool: config.build.productionSourceMap ? config.build.devtool : 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    //path: path.resolve(__dirname, './dist'),\n    publicPath: '/dist/',\n    filename: 'vue-task-node.[name].js',\n    // publicPath: process.env.NODE_ENV === 'production'\n    //   ? config.build.assetsPublicPath\n    //   : config.dev.assetsPublicPath\n    library: 'vue-task-node', // library指定的就是你使用require时的模块名，这里便是require(\"PayKeyboard\")\n    libraryTarget: 'umd', //libraryTarget会生成不同umd的代码,可以只是commonjs标准的，也可以是指amd标准的，也可以只是通过script标签引入的。\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 UglifyJsPlugin({\n      uglifyOptions: {\n        compress: {\n          warnings: false\n        }\n      },\n      sourceMap: config.build.productionSourceMap,\n      parallel: true\n    }),\n    // extract css into its own file\n    new ExtractTextPlugin({\n      filename: utils.assetsPath('css/[name].[contenthash].css'),\n      // Setting the following option to `false` will not extract CSS from codesplit chunks.\n      // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.\n      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,\n      // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110\n      allChunks: true,\n    }),\n    // Compress extracted CSS. We are using this plugin so that possible\n    // duplicated CSS from different components can be deduped.\n    new OptimizeCSSPlugin({\n      cssProcessorOptions: config.build.productionSourceMap\n        ? { safe: true, map: { inline: false } }\n        : { safe: true }\n    }),\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    // keep module.id stable when vendor modules does not change\n    new webpack.HashedModuleIdsPlugin(),\n    // enable scope hoisting\n    new webpack.optimize.ModuleConcatenationPlugin(),\n    // split vendor js into its own file\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'vendor',\n      minChunks (module) {\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      minChunks: Infinity\n    }),\n    // This instance extracts shared chunks from code splitted chunks and bundles them\n    // in a separate chunk, similar to the vendor chunk\n    // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk\n    new webpack.optimize.CommonsChunkPlugin({\n      name: 'app',\n      async: 'vendor-async',\n      children: true,\n      minChunks: 3\n    }),\n\n    // copy custom static assets\n    new CopyWebpackPlugin([\n      {\n        from: path.resolve(__dirname, '../static'),\n        to: config.build.assetsSubDirectory,\n        ignore: ['.*']\n      }\n    ])\n  ]\n})\n\nif (config.build.productionGzip) {\n  const 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\nif (config.build.bundleAnalyzerReport) {\n  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin\n  webpackConfig.plugins.push(new BundleAnalyzerPlugin())\n}\n\nmodule.exports = webpackConfig\n"
  },
  {
    "path": "config/dev.env.js",
    "content": "'use strict'\nconst merge = require('webpack-merge')\nconst prodEnv = require('./prod.env')\n\nmodule.exports = merge(prodEnv, {\n  NODE_ENV: '\"development\"'\n})\n"
  },
  {
    "path": "config/index.js",
    "content": "'use strict'\n// Template version: 1.3.1\n// see http://vuejs-templates.github.io/webpack for documentation.\n\nconst path = require('path')\n\nmodule.exports = {\n  dev: {\n\n    // Paths\n    assetsSubDirectory: 'static',\n    assetsPublicPath: '/',\n    proxyTable: {},\n\n    // Various Dev Server settings\n    host: 'localhost', // can be overwritten by process.env.HOST\n    port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined\n    autoOpenBrowser: false,\n    errorOverlay: true,\n    notifyOnErrors: true,\n    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-\n\n    // Use Eslint Loader?\n    // If true, your code will be linted during bundling and\n    // linting errors and warnings will be shown in the console.\n    useEslint: true,\n    // If true, eslint errors and warnings will also be shown in the error overlay\n    // in the browser.\n    showEslintErrorsInOverlay: false,\n\n    /**\n     * Source Maps\n     */\n\n    // https://webpack.js.org/configuration/devtool/#development\n    devtool: 'cheap-module-eval-source-map',\n\n    // If you have problems debugging vue-files in devtools,\n    // set this to false - it *may* help\n    // https://vue-loader.vuejs.org/en/options.html#cachebusting\n    cacheBusting: true,\n\n    cssSourceMap: true\n  },\n\n  build: {\n    // Template for index.html\n    index: path.resolve(__dirname, '../dist/index.html'),\n\n    // Paths\n    assetsRoot: path.resolve(__dirname, '../dist'),\n    assetsSubDirectory: '/',\n    assetsPublicPath: './',\n\n    /**\n     * Source Maps\n     */\n\n    productionSourceMap: true,\n    // https://webpack.js.org/configuration/devtool/#production\n    devtool: '#source-map',\n\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    // Run the build command with an extra argument to\n    // View the bundle analyzer report after build finishes:\n    // `npm run build --report`\n    // Set to `true` or `false` to always turn it on or off\n    bundleAnalyzerReport: process.env.npm_config_report\n  }\n}\n"
  },
  {
    "path": "config/prod.env.js",
    "content": "'use strict'\nmodule.exports = {\n  NODE_ENV: '\"production\"'\n}\n"
  },
  {
    "path": "config/test.env.js",
    "content": "'use strict'\nconst merge = require('webpack-merge')\nconst 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.0\">\n    <title>node</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\": \"vue-task-node\",\n  \"version\": \"1.4.0\",\n  \"description\": \"TaskNode Plugin! vue-task-node is a Vue based task node mapping plug-in\",\n  \"author\": \"wenbing.li\",\n  \"license\": \"MIT\",\n  \"main\": \"src/lib/index.js\",\n  \"private\": false,\n  \"scripts\": {\n    \"dev\": \"webpack-dev-server --inline --progress --config build/webpack.dev.conf.js\",\n    \"start\": \"npm run dev\",\n    \"lint\": \"eslint --ext .js,.vue src\",\n    \"build\": \"node build/build.js\"\n  },\n  \"files\": [\n    \"dist\",\n    \"src\"\n  ],\n  \"dependencies\": {\n    \"less\": \"^3.9.0\",\n    \"less-loader\": \"^4.1.0\",\n    \"vue\": \"^2.5.2\",\n    \"vuex\": \"^3.1.1\"\n  },\n  \"devDependencies\": {\n    \"autoprefixer\": \"^7.1.2\",\n    \"babel-core\": \"^6.22.1\",\n    \"babel-eslint\": \"^8.2.1\",\n    \"babel-helper-vue-jsx-merge-props\": \"^2.0.3\",\n    \"babel-jest\": \"^21.0.2\",\n    \"babel-loader\": \"^7.1.1\",\n    \"babel-plugin-dynamic-import-node\": \"^1.2.0\",\n    \"babel-plugin-syntax-jsx\": \"^6.18.0\",\n    \"babel-plugin-transform-es2015-modules-commonjs\": \"^6.26.0\",\n    \"babel-plugin-transform-runtime\": \"^6.22.0\",\n    \"babel-plugin-transform-vue-jsx\": \"^3.5.0\",\n    \"babel-preset-env\": \"^1.3.2\",\n    \"babel-preset-stage-2\": \"^6.22.0\",\n    \"babel-register\": \"^6.22.0\",\n    \"chalk\": \"^2.0.1\",\n    \"chromedriver\": \"^2.27.2\",\n    \"copy-webpack-plugin\": \"^4.0.1\",\n    \"cross-spawn\": \"^5.0.1\",\n    \"css-loader\": \"^0.28.0\",\n    \"eslint\": \"^4.15.0\",\n    \"eslint-config-standard\": \"^10.2.1\",\n    \"eslint-friendly-formatter\": \"^3.0.0\",\n    \"eslint-loader\": \"^1.7.1\",\n    \"eslint-plugin-import\": \"^2.7.0\",\n    \"eslint-plugin-node\": \"^5.2.0\",\n    \"eslint-plugin-promise\": \"^3.4.0\",\n    \"eslint-plugin-standard\": \"^3.0.1\",\n    \"eslint-plugin-vue\": \"^4.0.0\",\n    \"extract-text-webpack-plugin\": \"^3.0.0\",\n    \"file-loader\": \"^1.1.4\",\n    \"friendly-errors-webpack-plugin\": \"^1.6.1\",\n    \"html-webpack-plugin\": \"^2.30.1\",\n    \"jest\": \"^22.0.4\",\n    \"jest-serializer-vue\": \"^0.3.0\",\n    \"jquery\": \"^1.12.4\",\n    \"nightwatch\": \"^0.9.12\",\n    \"node-notifier\": \"^5.1.2\",\n    \"optimize-css-assets-webpack-plugin\": \"^3.2.0\",\n    \"ora\": \"^1.2.0\",\n    \"portfinder\": \"^1.0.13\",\n    \"postcss-import\": \"^11.0.0\",\n    \"postcss-loader\": \"^2.0.8\",\n    \"postcss-url\": \"^7.2.1\",\n    \"rimraf\": \"^2.6.0\",\n    \"selenium-server\": \"^3.0.1\",\n    \"semver\": \"^5.3.0\",\n    \"shelljs\": \"^0.7.6\",\n    \"uglifyjs-webpack-plugin\": \"^1.1.1\",\n    \"url-loader\": \"^0.5.8\",\n    \"vue-jest\": \"^1.0.2\",\n    \"vue-loader\": \"^13.3.0\",\n    \"vue-style-loader\": \"^3.0.1\",\n    \"vue-template-compiler\": \"^2.5.2\",\n    \"webpack\": \"^3.6.0\",\n    \"webpack-bundle-analyzer\": \"^2.9.0\",\n    \"webpack-dev-server\": \"^2.9.1\",\n    \"webpack-merge\": \"^4.1.0\"\n  },\n  \"engines\": {\n    \"node\": \">= 6.0.0\",\n    \"npm\": \">= 3.0.0\"\n  },\n  \"browserslist\": [\n    \"> 1%\",\n    \"last 2 versions\",\n    \"not ie <= 8\"\n  ]\n}\n"
  },
  {
    "path": "src/App.vue",
    "content": "<template>\n  <div id=\"app\">\n    <div style=\"position: relative;height: 30px\"></div>\n    <div style=\"width: 140px\">\n      <task-model-tree style=\"padding-left: 0px;\" :nodes=\"modelnodes\"></task-model-tree>\n    </div>\n    <div class=\"hello\" style=\"text-align: center\">\n      <div class=\"node-model cell-left\">\n        <ul>\n          <li style=\"border-bottom: 2px solid aliceblue;\" v-for=\"nodeM in nodeModels\" :key=\"nodeM.id\">\n            <task-node-model :node=\"nodeM\">\n              <span class=\"task-node-model-label\">{{nodeM.name}}</span>\n            </task-node-model>\n          </li>\n          <li>\n            <select class=\"demo-line\" v-model=\"ini_config.lineType\">\n              <option value='Q'>曲线</option>\n              <option value='L'>折线</option>\n              <option value='ML'>直线</option>\n            </select>\n          </li>\n          <li>\n            <select class=\"demo-line\" v-model=\"ini_config.isDotted\">\n              <option :value=true>虚线</option>\n              <option :value=false>实线</option>\n            </select>\n          </li>\n          <li>\n            <button class=\"demo-btn\" @click=\"zoomIn\">放大</button>\n            <button class=\"demo-btn\" @click=\"zoomOut\">缩小</button>\n          </li>\n        </ul>\n      </div>\n      <div class=\"cell-right\">\n        <task-work-area width=1000 height=600 :id=\"work_id\" :ini=\"ini_config\" v-on:on-add-nodemodel=\"onAddNodeModel\" v-on:on-mouse=\"mouseMenu\" ref=\"area\">\n          <task-curve-path :areaid=\"work_id\" :paths=\"paths\" ref=\"curve\" v-on:on-mouse=\"mouseFn\" v-on:on-mouse-over=\"mouseOverFn\" v-on:on-mouse-out=\"mouseOutFn\"></task-curve-path>\n          <template v-for=\"node in nodes\">\n            <task-common-node :key=\"node.id\" :node=\"node\" v-on:on-add-path=\"addPath\" v-on:on-select=\"selectlMethod\" v-on:on-drag-start=\"dragStart\" v-on:on-drag-ging=\"dragGing\" v-on:on-drag-end=\"dragEnd\" :updateTem=\"updateCompleted\" v-on:on-mouse=\"mouseNodeMenu\"></task-common-node>\n          </template>\n          <task-initial-node :node=\"initialData\" backgroundColor=\"#ff5722\" v-on:on-add-path=\"addPath\" v-on:on-select=\"selectlMethod\" v-on:on-drag-start=\"dragStart\" v-on:on-drag-ging=\"dragGing\" v-on:on-drag-end=\"dragEnd\" :updateTem=\"updateCompleted\" v-on:on-mouse=\"mouseNodeMenu\"></task-initial-node>\n        </task-work-area>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'App',\n  data () {\n    return {\n      modelnodes: [{\n        id: 1,\n        name: '数据',\n        children: [{\n          id: 2,\n          name: 'node1',\n          icon: 'task-icon-41',\n          children: []\n        }, {\n          id: 3,\n          name: 'node2',\n          icon: 'task-icon-41',\n          children: []\n        }]\n      }, {\n        id: 3,\n        name: 'node3',\n        icon: 'task-icon-43',\n        children: []\n      }],\n      dtl: 10,\n      work_id: 'work_id',\n      ini_config: {\n        lineType: 'Q',\n        isDotted: false,\n        scaling: {\n          ZoomX: 1,\n          ZoomY: 1\n        }\n      },\n      startNode: {},\n      nodeModels: [{\n        id: '12',\n        name: 'SQL'}, {\n        id: '13',\n        name: 'WorkData'}, {\n        id: '14',\n        name: 'TableToTV'}, {\n        id: '15',\n        name: '增加系列'}],\n      initialData: {\n        id: 'node4',\n        name: '节点4',\n        positionX: 300,\n        positionY: 60,\n        icon: 'task-icon-41',\n        inPorts: [],\n        outPorts: [{\n          id: 'node4_5'\n        }]\n      },\n      nodes: [{\n        id: 'node1',\n        name: '节点1',\n        positionX: 115,\n        positionY: 180,\n        state: 'success',\n        inPorts: [{\n          id: 'node1_1',\n          isConnected: true\n        }],\n        outPorts: [{\n          id: 'node1_4'\n        }]\n      }, {\n        id: 'node2',\n        name: '节点2',\n        positionX: 20,\n        positionY: 300,\n        state: 'mistake',\n        inPorts: [{\n          id: 'node2_1',\n          isConnected: true\n        }, {\n          id: 'node2_3',\n          isConnected: false\n        }],\n        outPorts: [{\n          id: 'node2_4'\n        }, {\n          id: 'node2_5'\n        }]\n      }, {\n        id: 'node3',\n        name: '节点3',\n        positionX: 340,\n        positionY: 315,\n        state: 'running',\n        inPorts: [{\n          id: 'node3_1',\n          isConnected: true\n        }, {\n          id: 'node3_3',\n          isConnected: false\n        }],\n        outPorts: [{\n          id: 'node3_4'\n        }]\n      }, {\n        id: 'node5',\n        name: '节点5',\n        positionX: 420,\n        positionY: 420,\n        icon: 'task-icon-6',\n        inPorts: [{\n          id: 'node5_1',\n          isConnected: true\n        }],\n        outPorts: []\n      }, {\n        id: 'node6',\n        name: '节点6',\n        positionX: 720,\n        positionY: 220,\n        icon: 'task-icon-6',\n        inPorts: [{\n          id: 'node6_1',\n          isConnected: false\n        }],\n        outPorts: [{\n          id: 'node6_2'\n        }, {\n          id: 'node6_3'\n        }]\n      }],\n      paths: [{\n        dotted: true,\n        ptype: 'Q',\n        startPort: 'node4_5',\n        endPort: 'node1_1'\n      }, {\n        dotted: true,\n        ptype: 'L',\n        startPort: 'node1_4',\n        endPort: 'node2_1'\n      }, {\n        dotted: false,\n        ptype: 'ML',\n        startPort: 'node1_4',\n        endPort: 'node3_1'\n      }, {\n        dotted: false,\n        ptype: 'L',\n        startPort: 'node3_4',\n        endPort: 'node5_1'\n      }]\n    }\n  },\n  methods: {\n    zoomIn (event) {\n      this.ini_config.scaling.ZoomX = this.ini_config.scaling.ZoomX + 0.1\n      this.ini_config.scaling.ZoomY = this.ini_config.scaling.ZoomY + 0.1\n    },\n    zoomOut (event) {\n      this.ini_config.scaling.ZoomX = this.ini_config.scaling.ZoomX - 0.1\n      this.ini_config.scaling.ZoomY = this.ini_config.scaling.ZoomY - 0.1\n    },\n    onAddNodeModel (event, node) {\n      console.log('添加节点', event.clientX, event.clientY, node)\n      let newNode = {}\n      newNode = node\n      newNode.id = 'node' + (this.dtl++)\n      newNode.positionX = node.positionX - 90 // -15 -90 定位到节点的终点\n      newNode.positionY = node.positionY - 15\n      newNode.outPorts = [{\n        id: newNode.id + '_' + Math.floor(Math.random() * 10)\n      }]\n      newNode.inPorts = []\n      this.nodes.push(newNode)\n    },\n    mouseFn (event, portData) {\n      console.log('mouseFn', 'on-mouse', '鼠标右击路径事件', event, portData)\n    },\n    mouseOverFn (event, portData) {\n      console.log('mouseFn', 'on-mouse-over', '鼠标划入路径事件', event, portData)\n    },\n    mouseOutFn (event, portData) {\n      console.log('mouseFn', 'on-mouse-out', '鼠标划出路径事件', event, portData)\n    },\n    selectlMethod: function (event, data, node) {\n      console.log('selectlMethod', 'on-select', '节点左键点击事件', event, data, node)\n    },\n    dragStart: function (event, node) {\n      let nodeData = event.dataTransfer.getData('nodedata')\n      console.log('节点开始移动', event.clientX, event.clientY, node, JSON.parse(nodeData))\n      this.startNode = {id: node.id, positionX: event.clientX, positionY: event.clientY}\n    },\n    dragEnd: function (event, node) {\n      console.log('节点移动结束', event.clientX, event.clientY, node)\n      let nodeXY = {}\n      if (window.___NODRAGEVENT) {\n        nodeXY.x = window.___PAGEX\n        nodeXY.y = window.___PAGEY\n      } else {\n        nodeXY.x = event.clientX\n        nodeXY.y = event.clientY\n      }\n      let me = this\n      this.nodes.forEach(function (item) {\n        if (item.id === node.id) {\n          item.positionX = node.positionX + (nodeXY.x - me.startNode.positionX)\n          item.positionY = node.positionY + (nodeXY.y - me.startNode.positionY)\n        }\n      })\n      if (node.id === this.initialData.id) {\n        this.initialData.positionX = node.positionX + (nodeXY.x - me.startNode.positionX)\n        this.initialData.positionY = node.positionY + (nodeXY.y - me.startNode.positionY)\n      }\n    },\n    addPath: function (event, startData, endData) {\n      let me = this\n      console.log('添加路径', event, startData, endData)\n      this.nodes.forEach(function (item) {\n        item.inPorts.forEach(function (ins) {\n          if (ins.id === endData) {\n            ins.isConnected = true\n          }\n        })\n      })\n      setTimeout(function () {\n        me.paths.push({\n          dotted: me.ini_config.isDotted,\n          ptype: me.ini_config.lineType,\n          startPort: startData,\n          endPort: endData\n        })\n      }, 200)\n    },\n    dragGing: function (event) {\n      console.log('节点移动中...', event.clientX, event.clientY)\n    },\n    updateCompleted: function () {\n      console.log('updateCompleted!!')\n      // 重新加载路径\n      this.$refs.curve.vReload()\n    },\n    mouseMenu: function (event, id) {\n      console.log('mouseMenu', 'on-mouse', '工作区右击事件', event, id)\n    },\n    mouseNodeMenu: function (event, node) {\n      console.log('mouseNodeMenu', 'on-mouse', '节点右击事件', event, node)\n    }\n  }\n}\n</script>\n\n<style lang=\"less\">\n  .node-model{\n    background-color: #eee;\n    width: 140px;\n    height: 500px;\n  }\n  .cell-left{\n    float: left;\n  }\n  .cell-fight{\n    float: left;\n  }\n  .demo-line{\n    width: 140px;\n    height: 26px;\n    border: none;\n  }\n  .demo-btn{\n    width: 48%;\n    background-color: #fff;\n    border: 1px solid #eee;\n    font-size: 14px;\n    line-height: 26px;\n    cursor: pointer;\n  }\n  // @import \"lib/styles/index.less\";\n  /*#app {*/\n  /*font-family: 'Avenir', Helvetica, Arial, sans-serif;*/\n  /*-webkit-font-smoothing: antialiased;*/\n  /*-moz-osx-font-smoothing: grayscale;*/\n  /*text-align: center;*/\n  /*color: #2c3e50;*/\n  /*padding: 50px;*/\n  /*background-color: #cccccc;*/\n  /*}*/\n</style>\n\n<!--\n.icon {\n  font-family: \"iconfont\" !important;\n  font-size: 16px;\n  font-style: normal;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n[class^=\"icon-task\"], [class*=\" icon-task\"] {\n  font-family:\"iconfont\" !important;\n  /* 以下内容参照第三方图标库本身的规则 */\n  font-size: 18px;\n  font-style:normal;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n>工作经历\n\n工作地点:`云南·昆明`\n工作时间:`2018年5月 - 至今`\n-->\n"
  },
  {
    "path": "src/lib/components/depend/ModelTree.vue",
    "content": "<template>\n  <ul :class=\"classes\">\n    <template v-for=\"node in nodes\">\n      <tree-node :key=\"node.id\" :node=\"node\" v-if=\"node.children && node.children.length > 0\"></tree-node>\n      <li :key=\"node.id\" v-else>\n        <task-node-model :class=\"classesNode\" :node=\"node\">\n          <span :class=\"[node.icon ? node.icon : '']\"></span>\n          <span>{{node.name}}</span>\n        </task-node-model>\n      </li>\n    </template>\n  </ul>\n</template>\n\n<script>\nimport TreeNode from './TreeNode.vue'\nconst prefixCls = 'model-tree'\nexport default {\n  components: {TreeNode},\n  name: 'ModelTree',\n  props: {\n    nodes: Array\n  },\n  data () {\n    return {\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    classesNode () {\n      return [\n        `${prefixCls}-node`\n      ]\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/depend/TreeNode.vue",
    "content": "<template>\n  <li>\n    <div :class=\"classesDir\" @click=\"open = !open\">\n      <span class=\"icon\" :class=\"[open ? 'task-icon-59': 'task-icon-58']\"></span>\n      <span class=\"icon\" :class=\"[open ? 'task-icon-61': 'task-icon-60']\"></span>\n      <span class=\"tree-node-label\">{{ node.name }}</span>\n    </div>\n    <task-model-tree v-show=\"open\" :nodes=\"node.children\"></task-model-tree>\n  </li>\n</template>\n\n<script>\nconst prefixCls = 'model-tree'\nexport default {\n  name: 'TreeNode',\n  props: {\n    node: {\n      id: [String, Number],\n      name: {\n        type: [String, Number],\n        default: '目录'\n      },\n      children: Array\n    }\n  },\n  data () {\n    return {\n      open: false\n    }\n  },\n  computed: {\n    classesDir () {\n      return [\n        `${prefixCls}-dir`\n      ]\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/depend/index.js",
    "content": "import ModelTree from './ModelTree.vue'\n\nexport default ModelTree\n"
  },
  {
    "path": "src/lib/components/node/README.md",
    "content": "\n"
  },
  {
    "path": "src/lib/components/node/common/common.vue",
    "content": "<template>\n<node :node=\"node\" width=180 height=30 v-on:on-select=\"selectNodeMethod\" v-on:on-drag-ging=\"dragGing\" v-on:on-drag-start=\"dragStart\" v-on:on-drag-end=\"dragEnd\" v-on:updateTem=\"updateTemp\" v-on:on-mouse=\"mouseMenu\">\n  <div :class=\"classes\">\n    <span :class=\"iconCls +' '+ [node.icon ? node.icon : 'task-icon-53']\"></span>\n    <span :class=\"nameCls\">{{node.name}}</span>\n    <span :class=\"statusCls +' '+ stateCls(node.state)\"></span>\n    <in-common-ls :in_ports=\"node.inPorts\" v-on:on-add-path='addPath'></in-common-ls>\n    <out-common-ls :out_ports=\"node.outPorts\"></out-common-ls>\n  </div>\n</node>\n</template>\n<script>\nimport Node from '../node.vue'\nimport InPort from '../../port/inport.vue'\nimport OutPort from '../../port/outport.vue'\nimport InCommonLs from './incommonls.vue'\nimport OutCommonLs from './outcommonls.vue'\nimport mixinsNode from '../../../mixins/node'\n\nconst prefixCls = 'task-common-node'\nexport default {\n  components: {\n    OutCommonLs,\n    InCommonLs,\n    OutPort,\n    InPort,\n    Node},\n  mixins: [ mixinsNode ],\n  name: 'CommonNode',\n  data () {\n    return {\n      state: ''\n    }\n  },\n  props: {\n    node: {\n      id: [String, Number],\n      name: {\n        type: [String, Number],\n        default: '节点'\n      },\n      positionX: {\n        type: [String, Number],\n        default: 0\n      },\n      positionY: {\n        type: [String, Number],\n        default: 0\n      },\n      icon: [String, Number],\n      state: {\n        type: [String, Number],\n        default: 'ready'\n      },\n      inPorts: {\n        type: Array,\n        default: []\n      },\n      outPorts: {\n        type: Array,\n        default: []\n      }\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    iconCls () {\n      return [\n        `${prefixCls}-icon`\n      ]\n    },\n    nameCls () {\n      return [\n        `${prefixCls}-name`\n      ]\n    },\n    statusCls () {\n      return [\n        `${prefixCls}-status`\n      ]\n    },\n    selectedCls () {\n      return [\n        `task-node-selected`\n      ]\n    }\n  },\n  methods: {\n    stateCls (value) {\n      switch (value) {\n        case 'success':\n          return 'task-icon-ok'\n        case 'running':\n          return 'task-icon-run'\n        case 'ready':\n          return 'task-icon-wait'\n        case 'mistake':\n          return 'task-icon-error'\n        default:\n          return 'task-icon-wait'\n      }\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/node/common/incommonls.vue",
    "content": "<template>\n  <div :class=\"classes\" ref=\"port\">\n    <template v-if=\"in_ports && in_ports.length > 0\" v-for=\"(item,index) in in_ports\">\n      <div :class=\"wrapCls\" :key='index'>\n        <in-port :pid=\"item.id\" v-on:on-add-path='addPath' :isConnected = item.isConnected></in-port>\n      </div>\n    </template>\n    <div :class=\"wrapCls\"></div>\n  </div>\n</template>\n<script>\nimport InPort from '../../port/inport.vue'\nconst prefixCls = 'task-in-common-ls'\nexport default {\n  components: {InPort},\n  name: 'InCommonLs',\n  props: {\n    in_ports: {\n      type: Array\n    }\n  },\n  data () {\n    return {\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    wrapCls () {\n      return [\n        `${prefixCls}-wrap`\n      ]\n    }\n  },\n  methods: {\n    addPath: function (event, start, end) {\n      this.$emit('on-add-path', event, start, end)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/node/common/index.js",
    "content": "import Common from './common.vue'\nexport default Common\n"
  },
  {
    "path": "src/lib/components/node/common/outcommonls.vue",
    "content": "<template>\n  <div :class=\"classes\">\n    <template v-if=\"out_ports && out_ports.length > 0\" v-for=\"(item,index) in out_ports\">\n      <div :class=\"wrapCls\" :key='index'>\n        <out-port :pid=\"item.id\"></out-port>\n      </div>\n    </template>\n    <div :class=\"wrapCls\"></div>\n  </div>\n</template>\n<script>\nimport OutPort from '../../port/outport.vue'\nconst prefixCls = 'task-out-common-ls'\nexport default {\n  components: {\n    OutPort},\n  name: 'OutCommonLs',\n  props: {\n    out_ports: {\n      type: Array\n    }\n  },\n  data () {\n    return {\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    wrapCls () {\n      return [\n        `${prefixCls}-wrap`\n      ]\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/node/index.js",
    "content": "import Node from './node.vue'\n\nexport default Node\n"
  },
  {
    "path": "src/lib/components/node/initial/index.js",
    "content": "import Initial from './initial.vue'\nexport default Initial\n"
  },
  {
    "path": "src/lib/components/node/initial/initial.vue",
    "content": "<template>\n  <node :node=\"node\" width=30 height=30 v-on:on-select=\"selectNodeMethod\" v-on:on-drag-ging=\"dragGing\" v-on:on-drag-start=\"dragStart\" v-on:on-drag-end=\"dragEnd\" v-on:updateTem=\"updateTemp\" v-on:on-mouse=\"mouseMenu\">\n    <div :class=\"classes\" :style=\"'background-color: '+ backgroundColor\">\n      <span :class=\"iconCls +' '+ [node.icon ? node.icon : 'task-icon-53']\"></span>\n      <div v-if=\"isEmpty(node.inPorts) && node.inPorts.length > 0\" :class=\"wrapInCls\">\n        <div style=\"width: 45%\">\n          <in-port :pid=\"node.inPorts[0].id\" :isConnected = node.inPorts[0].isConnected></in-port>\n        </div>\n      </div>\n      <div v-if=\"isEmpty(node.outPorts) && node.outPorts.length > 0\" :class=\"wrapOutCls\">\n        <div style=\"width: 45%\">\n          <out-port :pid=\"node.outPorts[0].id\"></out-port>\n        </div>\n      </div>\n    </div>\n  </node>\n</template>\n<script>\nimport Node from '../node.vue'\nimport InPort from '../../port/inport.vue'\nimport OutPort from '../../port/outport.vue'\nimport mixinsNode from '../../../mixins/node'\nimport mixinsTool from '../../../mixins/tool'\nconst prefixCls = 'task-initial-node'\nexport default {\n  components: {\n    OutPort,\n    InPort,\n    Node},\n  name: 'InitialNode',\n  mixins: [ mixinsNode, mixinsTool ],\n  data () {\n    return {\n    }\n  },\n  props: {\n    backgroundColor: [String],\n    node: {\n      id: [String, Number],\n      name: {\n        type: [String, Number],\n        default: '节点'\n      },\n      positionX: {\n        type: [String, Number],\n        default: 0\n      },\n      positionY: {\n        type: [String, Number],\n        default: 0\n      },\n      icon: [String, Number],\n      inPorts: {\n        type: Array,\n        default: [],\n        validator: function (value) {\n          if (value && value.length > 1) {\n            return false\n          }\n          return true\n        }\n      },\n      outPorts: {\n        type: Array,\n        default: [],\n        validator: function (value) {\n          if (value && value.length > 1) {\n            return false\n          }\n          return true\n        }\n      }\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`,\n        `${prefixCls}-in`\n      ]\n    },\n    wrapInCls () {\n      return [\n        `${prefixCls}-in-wrap`\n      ]\n    },\n    wrapOutCls () {\n      return [\n        `${prefixCls}-out-wrap`\n      ]\n    },\n    nameCls () {\n      return [\n        `${prefixCls}-name`\n      ]\n    },\n    iconCls () {\n      return [\n        `${prefixCls}-icon`\n      ]\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/node/node.vue",
    "content": "<template>\n  <g :class=\"classes\">\n    <g transform=\"scale(1,1)\" class=\"pane-scalable\">\n      <foreignObject :width=\"width\" :height=\"height\">\n        <body xmlns=\"http://www.w3.org/1999/xhtml\">\n        <div @click=selectNodeMethod($event,node,$refs.node) ref=\"node\" draggable=\"true\" @drag='dragGing($event)'\n             @dragstart='dragStart($event)' @dragend=\"dragEnd($event,node)\" class=\"task-node-content\" :style=\"gStyle\"\n             @contextmenu.prevent=\"mouseMenu\">\n          <slot></slot>\n        </div>\n        </body>\n      </foreignObject>\n    </g>\n  </g>\n</template>\n<script>\nimport mixinsTool from '../../mixins/tool'\n\nconst prefixCls = 'task-node'\nexport default {\n  name: 'Node',\n  mixins: [mixinsTool],\n  data () {\n    return {\n      store: null\n    }\n  },\n  props: {\n    width: {\n      type: [String, Number],\n      default: 0\n    },\n    height: {\n      type: [String, Number],\n      default: 0\n    },\n    node: {\n      id: [String, Number],\n      positionX: {\n        type: [String, Number],\n        default: 0\n      },\n      positionY: {\n        type: [String, Number],\n        default: 0\n      }\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    gStyle () {\n      return {\n        transform: `translate3d(${this.getCheckX(this.node.positionX)}px,${this.getCheckY(this.node.positionY)}px,0)`\n      }\n    }\n  },\n  methods: {\n    getCheckX (X) { // 检查是否移出工作区\n      let me = this\n      let x = X\n      if (x <= 0) {\n        x = 0\n        me.node.positionX = x\n      } else if (x >= me.getBrowserHW().width) {\n        x = me.getBrowserHW().width - me.width\n        me.node.positionX = x\n      }\n      return x\n    },\n    getCheckY (Y) { // 检查是否移出工作区\n      let me = this\n      let y = Y\n      if (y <= 0) {\n        y = 0\n        me.node.positionY = y\n      } else if (y >= me.getBrowserHW().height) {\n        y = me.getBrowserHW().height - me.height\n        me.node.positionY = y\n      }\n      return y\n    },\n    dragStart: function (event) {\n      event.dataTransfer.setData('nodedata', JSON.stringify(this.node))\n      this.$emit('on-drag-start', event, this.node)\n    },\n    dragGing: function (event) {\n      this.$emit('on-drag-ging', event)\n    },\n    dragEnd: function (event, node) {\n      this.$emit('on-drag-end', event, node)\n    },\n    mouseMenu: function (event) {\n      event.stopPropagation()\n      this.$emit('on-mouse', event, this.node)\n    },\n    selectNodeMethod: function (event, node, ref) {\n      this.$emit('on-select', event, node, ref)\n    }\n  },\n  updated: function () {\n    this.$emit('updateTem', 'VDom加载完成！')\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/nodemodel/index.js",
    "content": "import NodeModel from './nodemodel.vue'\nexport default NodeModel\n"
  },
  {
    "path": "src/lib/components/nodemodel/nodemodel.vue",
    "content": "<template>\n  <div :class=\"classes\" draggable=\"true\" @dragstart='dragStart($event)'>\n    <slot></slot>\n  </div>\n</template>\n<script>\nconst prefixCls = 'task-node-model'\nexport default {\n  name: 'NodeModel',\n  props: {\n    node: {\n      id: [String, Number],\n      name: {\n        type: [String, Number],\n        default: '节点'\n      }\n    }\n  },\n  data () {\n    return {\n      store: null\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    }\n  },\n  methods: {\n    dragStart: function (event) {\n      event.dataTransfer.setData('nodemodel', JSON.stringify(this.node))\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/path/README.md",
    "content": "```\nnode: {\n  id: '',\n  positionX: 0,\n  positionY: 0,\n  ...\n}\n```\n"
  },
  {
    "path": "src/lib/components/path/curvepath.vue",
    "content": "<template>\n  <g ref=\"gss\">\n    <template v-if=\"con.length > 0\" v-for=\"(item,index) in con\">\n      <t-line :key=\"index\" :portData=\"item\" v-on:on-mouse=\"mouseFn\" v-on:on-mouse-over=\"mouseOverFn\" v-on:on-mouse-out=\"mouseOutFn\">\n      </t-line>\n    </template>\n      <t-line v-if=\"path.isShow\" :portData=\"path\">\n      </t-line>\n  </g>\n</template>\n<script>\nimport TLine from './tline.vue'\nimport {zoomRatio} from '../../utils/tools'\nexport default {\n  components: {TLine},\n  name: 'CurvePath',\n  props: {\n    paths: {\n      type: Array\n    },\n    areaid: [String, Number]\n  },\n  data () {\n    return {\n      con: []\n    }\n  },\n  watch: {\n    paths (newData, oldData) {\n      this.vReload()\n    }\n  },\n  computed: {\n    path: function () {\n      let pa = this.$store.getters.getViPathingData\n      let isShow = pa.isShow\n      if (pa.Mxy) {\n        pa = this.computeXY(pa.Mxy, pa.Txy, true)\n      }\n      pa.isShow = isShow\n      pa.dotted = this.$store.getters.getViConfig.isDotted\n      pa.ptype = this.$store.getters.getViConfig.lineType\n      return pa\n    }\n  },\n  mounted: function () {\n    this.vReload()\n  },\n  methods: {\n    vReload () {\n      let me = this\n      this.con = []\n      this.paths.forEach((o) => {\n        let vstart = document.getElementById(o.startPort)\n        let vend = document.getElementById(o.endPort)\n        if (vend && vstart) {\n          let obj = me.computeXY(vstart, vend, false)\n          if (o.dotted) {\n            obj.dotted = o.dotted\n          }\n          if (o.ptype) {\n            obj.ptype = o.ptype\n          }\n          obj.startPort = o.startPort\n          obj.endPort = o.endPort\n          me.con.push(obj)\n        }\n      })\n    },\n    computeXY (vstart, vend, isBing) {\n      let area = document.getElementById(this.areaid)\n      let scaling = this.$store.getters.getViConfig.scaling\n      let zoom = zoomRatio() / 100\n      console.log(zoom)\n      let obj = {}\n      if (isBing) {\n        obj = {\n          Mxy: {\n            x: vstart.x - area.getBoundingClientRect().left,\n            y: vstart.y - area.getBoundingClientRect().top\n          },\n          Txy: {\n            x: vend.x - area.getBoundingClientRect().left,\n            y: vend.y - area.getBoundingClientRect().top\n          }\n        }\n      } else {\n        let vstartRect = vstart.getBoundingClientRect()\n        let vendRect = vend.getBoundingClientRect()\n        obj = {\n          Mxy: {\n            x: vstartRect.left / zoom - area.getBoundingClientRect().left + (5 * scaling.ZoomX),\n            y: vstartRect.top / zoom - area.getBoundingClientRect().top + (5 * scaling.ZoomY)\n          },\n          Txy: {\n            x: vendRect.left / zoom - area.getBoundingClientRect().left + (4 * scaling.ZoomX),\n            y: vendRect.top / zoom - area.getBoundingClientRect().top + (4 * scaling.ZoomX)\n          }\n        }\n      }\n      return obj\n    },\n    mouseFn (event, portData) {\n      this.$emit('on-mouse', event, portData)\n    },\n    mouseOverFn (event, portData) {\n      this.$emit('on-mouse-over', event, portData)\n    },\n    mouseOutFn (event, portData) {\n      this.$emit('on-mouse-out', event, portData)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/path/index.js",
    "content": "import Path from './tline.vue'\nimport CurvePath from './curvepath.vue'\n\nexport {Path, CurvePath}\n"
  },
  {
    "path": "src/lib/components/path/tline.vue",
    "content": "<template>\n  <g :class=\"classes\">\n    <path :class=\"conWrapCls\" ref=\"wrap\" :d=\"lpath\">\n    </path>\n    <path :class=\"conCls\" ref=\"con\" :d=\"lpath\" @contextmenu.prevent=\"mouseFn\">\n    </path>\n  </g>\n</template>\n<script>\nimport Line from '../../utils/line'\nconst prefixCls = 'task-tline'\nexport default {\n  name: 'TLine',\n  data () {\n    return {\n      lpath: 'M0 0 Q 0 0, 0 0 T 0 0',\n      isDraw: false\n    }\n  },\n  props: {\n    portData: {\n      ptype: {\n        type: [String, Number],\n        default: 'Q'\n      },\n      dotted: {\n        type: [String, Boolean],\n        default: false\n      },\n      Mxy: {\n        x: [String, Number],\n        y: [String, Number]\n      },\n      Txy: {\n        x: [String, Number],\n        y: [String, Number]\n      },\n      startPort: {\n        type: [String, Number]\n      },\n      endPort: {\n        type: [String, Number]\n      }\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    conCls () {\n      return [\n        `${prefixCls}-con`\n      ]\n    },\n    conWrapCls () {\n      let me = this\n      return [\n        `${prefixCls}-con-wrap`,\n        me.portData.dotted ? `${prefixCls}-dotted` : ``\n      ]\n    },\n    conWrapHoverCls () {\n      return [\n        `${prefixCls}-hover`\n      ]\n    }\n  },\n  beforeUpdate: function () {\n    if (!this.isDraw) {\n      this.drawCurvePath()\n    }\n    this.isDraw = false\n  },\n  mounted: function () {\n    this.drawCurvePath()\n    this.isDraw = true\n    let me = this\n    // let nameSpace = 'http://www.w3.org/2000/svg'\n    let _this = this.$refs.con\n    _this.addEventListener('mouseover', function () {\n      let wr = me.$refs.wrap\n      wr.classList.add(me.conWrapHoverCls)\n      me.$emit('on-mouse-over', wr, me.portData)\n    })\n    _this.addEventListener('mouseout', function () {\n      let wr = me.$refs.wrap\n      wr.classList.remove(me.conWrapHoverCls)\n      me.$emit('on-mouse-out', wr, me.portData)\n    })\n  },\n  methods: {\n    drawCurvePath () {\n      if (this.portData.Mxy && this.portData.Txy) {\n        this.lpath = Line.drawCurvePath(this.portData.Mxy, this.portData.Txy, this.portData.ptype, this.$store.getters.getViConfig.scaling)\n      }\n      return this.lpath\n    },\n    mouseFn (event) {\n      event.stopPropagation()\n      this.$emit('on-mouse', event, this.portData)\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/port/README.md",
    "content": "```\nnode: {\n  id: '',\n  positionX: 0,\n  positionY: 0,\n  ...\n}\n```\n"
  },
  {
    "path": "src/lib/components/port/index.js",
    "content": "import InPort from './inport.vue'\nimport OutPort from './outport.vue'\n\nexport {InPort, OutPort}\n"
  },
  {
    "path": "src/lib/components/port/inport.vue",
    "content": "<template>\n  <div :class=\"[isConnected ? isCls:classes]\" :id=\"pid\" @dragover.prevent=dragPortOver($event) @drop.prevent='inDropPort($event)' @dragenter=\"dragEnter\" @dragleave=\"dragLeave\">\n      <span :class=\"magnetCls\"></span>\n  </div>\n</template>\n<script>\n\nconst prefixCls = 'task-port'\nexport default {\n  name: 'InPort',\n  data () {\n    return {\n      className: null\n    }\n  },\n  props: {\n    pid: [Number, String],\n    content: {\n      type: [String, Number],\n      default: '输入'\n    },\n    isConnected: {\n      type: Boolean,\n      default: false\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`,\n        `${prefixCls}-in`\n      ]\n    },\n    magnetCls () {\n      return [\n        `${prefixCls}-magnet`\n      ]\n    },\n    isCls () {\n      return [\n        `${prefixCls}`,\n        `${prefixCls}-in`,\n        `is-connected`\n      ]\n    }\n  },\n  methods: {\n    inDropPort: function (event) {\n      if (this.className) {\n        let _this = event.target.parentNode\n        _this.className = this.className\n      }\n      let startData = event.dataTransfer.getData('portStart')\n      if (startData) {\n        this.$emit('on-add-path', event, startData, this.pid)\n      }\n    },\n    dragPortOver: function (event) {\n    },\n    dragEnter: function (event) {\n      let _this = event.target.parentNode\n      this.className = _this.className\n      _this.className = 'task-port task-in-out'\n    },\n    dragLeave: function (event) {\n      let _this = event.target.parentNode\n      _this.className = this.className\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/port/outport.vue",
    "content": "<template>\n  <div :class=\"classes\" :id=\"pid\" @drag.stop='dragPortGing($event)' @dragstart.stop='dragPortStrat($event)' @dragend.stop=\"dragPortEnd($event)\" draggable=\"true\">\n    <span :class=\"magnetCls\"></span>\n  </div>\n</template>\n<script>\nconst prefixCls = 'task-port'\nexport default {\n  name: 'OutPort',\n  data () {\n    return {\n      Mxy: null\n    }\n  },\n  props: {\n    pid: [Number, String],\n    content: {\n      type: [String, Number],\n      default: '输出'\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`,\n        `${prefixCls}-out`\n      ]\n    },\n    magnetCls () {\n      return [\n        `${prefixCls}-magnet`\n      ]\n    }\n  },\n  methods: {\n    dragPortStrat: function (event) {\n      this.Mxy = {\n        x: event.clientX,\n        y: event.clientY\n      }\n      if (event.dataTransfer.addElement) {\n        let div = document.createElement('div')\n        div.setAttribute('style', `with:10px;height:10px;background-color:#eee`)\n        event.dataTransfer.addElement(div)\n      } else {\n        var img = new Image()\n        img.src = './static/img/outicon.png'\n        event.dataTransfer.setDragImage(img, 8, 3)\n      }\n      event.dataTransfer.setData('portStart', this.pid)\n    },\n    dragPortGing: function (event) {\n      let Txy = {\n        x: event.clientX,\n        y: event.clientY\n      }\n      this.$store.dispatch('setViPathingData', {Mxy: this.Mxy, Txy: Txy, isShow: true})\n    },\n    dragPortEnd: function (event) {\n      this.$store.dispatch('setViPathingData', {isShow: false})\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/components/workarea/index.js",
    "content": "import WorkArea from './workarea.vue'\nexport default WorkArea\n"
  },
  {
    "path": "src/lib/components/workarea/workarea.vue",
    "content": "<template>\n  <div :class=\"classes\" ref=\"svgArea\" :style=\"areaStyles\" @contextmenu.prevent=\"mouseMenu\" @dragover.prevent @drop.prevent=\"onAddNodeModel\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" :width=\"svgWidth\" :height=\"svgHeight\" :id=\"id\">\n          <g :transform=\"'translate(0,0) scale('+ini.scaling.ZoomX+','+ini.scaling.ZoomY+')'\">\n            <g>\n              <slot></slot>\n            </g>\n          </g>\n        </svg>\n  </div>\n</template>\n\n<script>\nimport mixinsTool from '../../mixins/tool'\nconst prefixCls = 'task-work-area'\nexport default {\n  name: 'WorkArea',\n  mixins: [ mixinsTool ],\n  data () {\n    return {\n      svgWidth: 1000,\n      svgHeight: 500\n    }\n  },\n  props: {\n    ini: {\n      lineType: {\n        type: [String],\n        default: 'Q'\n      },\n      isDotted: {\n        type: [Boolean],\n        default: false\n      },\n      scaling: {\n        type: [Object],\n        default: {ZoomX: 1, ZoomY: 1}\n      }\n    },\n    width: {\n      type: [String, Number],\n      default: 0\n    },\n    height: {\n      type: [String, Number],\n      default: 0\n    },\n    id: {\n      type: [String, Number]\n    }\n  },\n  watch: {\n    ini: {\n      handler (newIni, oldIni) {\n        this.$store.dispatch('setViConfig', newIni)\n      },\n      deep: true\n    }\n  },\n  computed: {\n    classes () {\n      return [\n        `${prefixCls}`\n      ]\n    },\n    areaStyles () {\n      let style = {}\n      if (this.isCssInUnit(this.width) >= 0) {\n        style.width = this.width\n      } else {\n        style.width = `${this.width}px`\n      }\n      if (this.isCssInUnit(this.height) >= 0) {\n        style.height = this.height\n      } else {\n        style.height = `${this.height}px`\n      }\n      return style\n    }\n  },\n  mounted: function () {\n    let me = this\n    this.setSvgHW(me)\n    window.onresize = function () {\n      me.setSvgHW(me)\n    }\n  },\n  methods: {\n    setSvgHW: function (me) {\n      let width = this.transferCss(this.width)\n      let height = this.transferCss(this.height)\n      if (me.getBrowserHW().width < width) {\n        me.svgWidth = width\n      } else {\n        me.svgWidth = me.getBrowserHW().width\n      }\n      if (me.getBrowserHW().height < height) {\n        me.svgHeight = height\n      } else {\n        me.svgHeight = me.getBrowserHW().height\n      }\n    },\n    mouseMenu: function (event) {\n      this.$emit('on-mouse', event, this.id)\n    },\n    onAddNodeModel: function (event) {\n      let node = event.dataTransfer.getData('nodemodel')\n      let scalin = this.$store.getters.getViConfig.scaling\n      if (node) {\n        let nodeObj = JSON.parse(node)\n        let ref = this.$refs.svgArea\n        nodeObj.positionX = ((event.clientX - this.getContainersLeft(ref)) / scalin.ZoomX).toFixed(1)\n        nodeObj.positionY = ((event.clientY - this.getContainersTop(ref)) / scalin.ZoomY).toFixed(1)\n        this.$emit('on-add-nodemodel', event, nodeObj)\n      }\n    }\n  }\n}\n</script>\n"
  },
  {
    "path": "src/lib/index.js",
    "content": "'use strict'\nimport WorkArea from '../lib/components/workarea'\nimport {InPort, OutPort} from '../lib/components/port'\nimport {Path, CurvePath} from '../lib/components/path'\nimport Node from '../lib/components/node'\nimport Common from '../lib/components/node/common'\nimport Initial from '../lib/components/node/initial'\nimport NodeModel from '../lib/components/nodemodel'\nimport ModelTree from '../lib/components/depend'\nimport store from '../lib/store'\nimport nodemix from '../lib/mixins/node'\nimport './utils/firefoxCompatible.js'\nconst views = {\n  TaskWorkArea: WorkArea,\n  TaskInPort: InPort,\n  TaskOutPort: OutPort,\n  TaskCommonNode: Common,\n  TaskInitialNode: Initial,\n  TaskNode: Node,\n  TaskPath: Path,\n  TaskCurvePath: CurvePath,\n  TaskNodeModel: NodeModel,\n  TaskModelTree: ModelTree\n}\n\nconst install = function (Vue, opts = {}) {\n  Object.keys(views).forEach(key => {\n    Vue.component(key, views[key])\n  })\n}\n\nexport const TaskNode = install\nexport const TaskNodeStore = store\nexport const NodeMix = nodemix\n"
  },
  {
    "path": "src/lib/mixins/README.md",
    "content": "```\nnode: {\n  id: '',\n  positionX: 0,\n  positionY: 0,\n  ...\n}\n```\n"
  },
  {
    "path": "src/lib/mixins/node.js",
    "content": "export default {\n  props: {\n    updateTem: Function\n  },\n  methods: {\n    updateTemp (val) {\n      this.updateTem()\n    },\n    selectNodeMethod: function (event, node, ref) {\n      this.$emit('on-select', event, node, ref)\n    },\n    dragStart: function (event, node) {\n      this.$emit('on-drag-start', event, node)\n    },\n    dragGing: function (event) {\n      this.$emit('on-drag-ging', event)\n    },\n    dragEnd: function (event, node) {\n      this.$emit('on-drag-end', event, node)\n    },\n    addPath: function (event, start, end) {\n      this.$emit('on-add-path', event, start, end)\n    },\n    mouseMenu: function (event, node) {\n      this.$emit('on-mouse', event, node)\n    }\n  },\n  updated: function () {\n    this.updateTem()\n  }\n}\n"
  },
  {
    "path": "src/lib/mixins/tool.js",
    "content": "export default {\n  methods: {\n    isEmpty (obj) {\n      if (obj) {\n        return true\n      }\n      return false\n    },\n    getContainersTop (el) {\n      return el.offsetParent\n        ? el.offsetTop + this.getContainersTop(el.offsetParent)\n        : el.offsetTop\n    },\n    getContainersLeft (el) {\n      return el.offsetParent\n        ? el.offsetLeft + this.getContainersLeft(el.offsetParent)\n        : el.offsetLeft\n    },\n    getBrowserHW () { // 获取浏览器可视高宽\n      if (window.innerHeight !== undefined) {\n        return {\n          'width': window.innerWidth,\n          'height': window.innerHeight\n        }\n      } else if (document.compatMode === 'CSS1Compat') {\n        return {\n          'width': document.documentElement.clientWidth,\n          'height': document.documentElement.clientHeight\n        }\n      } else {\n        return {\n          'width': document.body.clientWidth,\n          'height': document.body.clientHeight\n        }\n      }\n    },\n    transferCss (vl) { // 去除样式单位\n      let index = this.isCssInUnit(vl)\n      let data = vl\n      if (index >= 0) {\n        data = vl.substring(0, index)\n      }\n      return data\n    },\n    isCssInUnit (vl) { // 判断样式是否有单位\n      let units = ['%', 'px', 'in', 'cn', 'mm', 'em', 'ex', 'pt', 'pc']\n      let index = -1\n      for (const item of units) {\n        if (vl.indexOf(item) >= 0) {\n          index = vl.indexOf(item)\n          break\n        }\n      }\n      return index\n    }\n  }\n}\n"
  },
  {
    "path": "src/lib/store/index.js",
    "content": "const state = {\n  vi_pathing_data: {\n    isShow: false\n  },\n  vi_config: {\n    pathType: 'Q',\n    dotted: false,\n    scaling: {ZoomX: 1, ZoomY: 1}\n  }\n}\nconst getters = {\n  getViPathingData () {\n    return state.vi_pathing_data\n  },\n  getViConfig () {\n    return state.vi_config\n  }\n}\nconst mutations = {\n  setMViPathingData (state, name) {\n    state.vi_pathing_data = name\n  },\n  setMViConfig (state, name) {\n    state.vi_config = name\n  }\n}\nconst actions = {\n  setViPathingData ({commit, state}, name) {\n    commit('setMViPathingData', name)\n  },\n  setViConfig ({commit, state}, name) {\n    commit('setMViConfig', name)\n  }\n}\n\nconst store = {\n  state,\n  getters,\n  mutations,\n  actions\n}\nexport default store\n"
  },
  {
    "path": "src/lib/styles/common/base.less",
    "content": "* {\n  box-sizing: border-box;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\n*:after, *::before {\n  box-sizing: border-box;\n}\n\nbody {\n  font-family: @font-family;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-background;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\nbody, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n  margin: 0;\n  padding: 0;\n}\n\nbutton, input, select, textarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\ninput::-ms-clear, input::-ms-reveal {\n  display: none;\n}\n\n\na {\n  color: @link-color;\n  background: transparent;\n  text-decoration: none;\n  outline: none;\n  cursor: pointer;\n  transition: color @transition-time ease;\n\n  &:hover {\n    color: @link-hover-color;\n  }\n\n  &:active {\n    color: @link-active-color;\n  }\n\n  &:active,\n  &:hover {\n    outline: 0;\n    text-decoration: none;\n  }\n\n  &[disabled] {\n    color: #ccc;\n    cursor: @cursor-disabled;\n    pointer-events: none;\n  }\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: @code-family;\n}\n\n[class*=\"-icon-run\"] {\n  color: #2ecc71;\n}\n[class*=\"-icon-ok\"] {\n  color: #2ecc71;\n}\n[class*=\"-icon-wait\"] {\n  color: #289de9;\n}\n[class*=\"-icon-error\"] {\n  color: #f15e5e;\n}\n"
  },
  {
    "path": "src/lib/styles/common/iconfont/ionicons-font.less",
    "content": "@font-face {\n  font-family: @ionicons-font-family;\n  src:\n    url(\"@{ionicons-font-path}/ionicons.ttf?v=@{ionicons-version}\") format(\"truetype\"),\n    url(\"@{ionicons-font-path}/ionicons.woff?v=@{ionicons-version}\") format(\"woff\"),\n    url(\"@{ionicons-font-path}/ionicons.svg?v=@{ionicons-version}#Ionicons\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n[class^=\"task-icon\"], [class*=\" task-icon\"] {\n  display: inline-block;\n  font-family: @ionicons-font-family;\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  text-rendering: auto;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  vertical-align: middle;\n}\n"
  },
  {
    "path": "src/lib/styles/common/iconfont/ionicons-icons.less",
    "content": ".task-icon-9:before {\n  content: \"\\e643\";\n}\n\n.task-icon-57:before {\n  content: \"\\e61f\";\n}\n\n.task-icon-56:before {\n  content: \"\\e671\";\n}\n\n.task-icon-55:before {\n  content: \"\\e745\";\n}\n\n.task-icon-54:before {\n  content: \"\\e661\";\n}\n\n.task-icon-53:before {\n  content: \"\\e6c3\";\n}\n\n.task-icon-52:before {\n  content: \"\\e660\";\n}\n\n.task-icon-8:before {\n  content: \"\\e670\";\n}\n\n.task-icon-7:before {\n  content: \"\\e693\";\n}\n\n.task-icon-6:before {\n  content: \"\\e646\";\n}\n\n.task-icon-51:before {\n  content: \"\\e6c4\";\n}\n\n.task-icon-50:before {\n  content: \"\\e614\";\n}\n\n.task-icon-49:before {\n  content: \"\\e67a\";\n}\n\n.task-icon-48:before {\n  content: \"\\e605\";\n}\n\n.task-icon-47:before {\n  content: \"\\e6c8\";\n}\n\n.task-icon-46:before {\n  content: \"\\e607\";\n}\n\n.task-icon-45:before {\n  content: \"\\e61a\";\n}\n\n.task-icon-44:before {\n  content: \"\\e844\";\n}\n\n.task-icon-43:before {\n  content: \"\\e6b5\";\n}\n\n.task-icon-42:before {\n  content: \"\\e664\";\n}\n\n.task-icon-61:before {\n  content: \"\\e68d\";\n}\n\n.task-icon-60:before {\n  content: \"\\e68e\";\n}\n\n.task-icon-41:before {\n  content: \"\\e6ab\";\n}\n\n.task-icon-40:before {\n  content: \"\\e6e5\";\n}\n\n.task-icon-39:before {\n  content: \"\\e600\";\n}\n\n.task-icon-38:before {\n  content: \"\\e61b\";\n}\n\n.task-icon-37:before {\n  content: \"\\e680\";\n}\n\n.task-icon-36:before {\n  content: \"\\e65f\";\n}\n\n.task-icon-35:before {\n  content: \"\\e642\";\n}\n\n.task-icon-34:before {\n  content: \"\\e75c\";\n}\n\n.task-icon-30:before {\n  content: \"\\e656\";\n}\n\n.task-icon-5:before {\n  content: \"\\e60d\";\n}\n\n.task-icon-33:before {\n  content: \"\\e60a\";\n}\n\n.task-icon-32:before {\n  content: \"\\e633\";\n}\n\n.task-icon-31:before {\n  content: \"\\e6c6\";\n}\n\n.task-icon-29:before {\n  content: \"\\eb64\";\n}\n\n.task-icon-28:before {\n  content: \"\\eb65\";\n}\n\n.task-icon-27:before {\n  content: \"\\eb66\";\n}\n\n.task-icon-26:before {\n  content: \"\\eb6a\";\n}\n\n.task-icon-25:before {\n  content: \"\\eb6b\";\n}\n\n.task-icon-24:before {\n  content: \"\\ebb8\";\n}\n\n.task-icon-23:before {\n  content: \"\\ebda\";\n}\n\n.task-icon-4:before {\n  content: \"\\e602\";\n}\n\n.task-icon-22:before {\n  content: \"\\ec08\";\n}\n\n.task-icon-21:before {\n  content: \"\\ec13\";\n}\n\n.task-icon-20:before {\n  content: \"\\ec14\";\n}\n\n.task-icon-19:before {\n  content: \"\\ec20\";\n}\n\n.task-icon-18:before {\n  content: \"\\ec22\";\n}\n\n.task-icon-17:before {\n  content: \"\\ec23\";\n}\n\n.task-icon-16:before {\n  content: \"\\ec2a\";\n}\n\n.task-icon-58:before {\n  content: \"\\e606\";\n}\n\n.task-icon-3:before {\n  content: \"\\e603\";\n}\n\n.task-icon-15:before {\n  content: \"\\ec36\";\n}\n\n.task-icon-14:before {\n  content: \"\\ec37\";\n}\n\n.task-icon-13:before {\n  content: \"\\ec5b\";\n}\n\n.task-icon-12:before {\n  content: \"\\ec5c\";\n}\n\n.task-icon-11:before {\n  content: \"\\ec5d\";\n}\n\n.task-icon-10:before {\n  content: \"\\ec6a\";\n}\n\n.task-icon-2:before {\n  content: \"\\e61c\";\n}\n\n.task-icon-1:before {\n  content: \"\\e604\";\n}\n\n.task-icon-59:before {\n  content: \"\\ec6b\";\n}\n"
  },
  {
    "path": "src/lib/styles/common/iconfont/ionicons-variables.less",
    "content": "@ionicons-font-path: \"./fonts\";\n@ionicons-font-family: \"Ionicons\";\n@ionicons-version: \"3.0.0\";\n@ionicons-prefix: task-icon-;\n"
  },
  {
    "path": "src/lib/styles/common/iconfont/ionicons.less",
    "content": "@import \"ionicons-font\";\n@import \"ionicons-icons\";\n@import \"ionicons-variables\";\n"
  },
  {
    "path": "src/lib/styles/common/index.less",
    "content": "@import \"./base\";\n@import \"iconfont/ionicons\";\n"
  },
  {
    "path": "src/lib/styles/components/index.less",
    "content": "@import \"./node/node\";\n@import \"./node/common/index\";\n@import \"./node/initial/initial\";\n@import \"./workarea\";\n@import \"./port\";\n@import \"./tline\";\n@import \"./nodemodel\";\n\n@import \"./modeltree\";\n"
  },
  {
    "path": "src/lib/styles/components/modeltree.less",
    "content": "@modeltree-prefix-cls: ~\"model-tree\";\n\n.@{modeltree-prefix-cls} {\n  padding-left: 15px;\n  &-node {\n    cursor: -webkit-grab;\n    cursor: grab;\n    padding: 3px 10px;\n  }\n\n  & li{\n    list-style: none;\n  }\n  &-dir {\n    cursor: pointer;\n    padding: 5px 0;\n    &:hover{\n      background-color: #f5f7fa;\n    }\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/node/common/common.less",
    "content": "@common-prefix-cls: ~\"@{css-prefix}common-node\";\n\n.@{common-prefix-cls} {\n  width: 180px;\n  height: 30px;\n  background-color: hsla(0,0%,100%,.9);\n  border: 1px solid #289de9;\n  border-radius: 15px;\n  font-size: 12px;\n  -webkit-transition: background-color .2s;\n  transition: background-color .2s;\n\n  &-icon {\n    float: left;\n    color: #fff;\n    font-size: 16px;\n    background-color: #289de9;\n    width: 26px;\n    height: 26px;\n    margin: 1px;\n    border-radius: 100%;\n\n    &:before{\n      float: left;\n      margin: 4px;\n    }\n  }\n\n  &-name {\n    float: left;\n    margin-left: 2px;\n    width: 120px;\n    height: 28px;\n    line-height: 28px;\n    font-size: 14px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  &-status {\n    width: 26px;\n    height: 26px;\n    margin: 1px;\n    border-radius: 100%;\n    float: right;\n    font-size: 18px;\n\n    &:before{\n      float: left;\n      margin: 4px;\n    }\n  }\n  &:hover {\n    background-color: @node-select-color ;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/node/common/incommonls.less",
    "content": "@in-common-prefix-cls: ~\"@{css-prefix}in-common-ls\";\n\n.@{in-common-prefix-cls} {\n  display: flex;\n  clear: both;\n  margin-top: -34px;\n  float: left;\n  width: 180px;\n  &-wrap {\n    height: 1px;\n    float: left;\n    flex: 1;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/node/common/index.less",
    "content": "@import \"./common\";\n@import \"./incommonls\";\n@import \"./outcommonls\";\n"
  },
  {
    "path": "src/lib/styles/components/node/common/outcommonls.less",
    "content": "@out-common-prefix-cls: ~\"@{css-prefix}out-common-ls\";\n\n.@{out-common-prefix-cls} {\n  display: flex;\n  margin-top: -5px;\n  clear: both;\n  float: left;\n  width: 180px;\n  &-wrap {\n    height: 1px;\n    float: left;\n    flex: 1;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/node/initial/initial.less",
    "content": "@initial-prefix-cls: ~\"@{css-prefix}initial-node\";\n\n.@{initial-prefix-cls} {\n  width: 30px;\n  height: 30px;\n  border: 1px solid #ccc;\n  border-radius: 50%;\n  &-in-wrap {\n    clear: both;\n    margin-top: -34px;\n    float: left;\n    width: 30px;\n  }\n  &-out-wrap {\n    clear: both;\n    margin-top: -5px;\n    float: left;\n    width: 30px;\n  }\n  &-name {\n    float: left;\n    width: 30px;\n    height: 28px;\n    line-height: 28px;\n    font-size: 14px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  &-icon {\n    float: left;\n    color: #000;\n    font-size: 16px;\n    width: 26px;\n    height: 26px;\n    margin: 1px;\n    border-radius: 100%;\n\n    &:before{\n      float: left;\n      margin: 4px;\n    }\n  }\n  &:hover {\n    background-color: @node-select-color ;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/node/node.less",
    "content": "@node-prefix-cls: ~\"@{css-prefix}node\";\n\n.@{node-prefix-cls} {\n  .task-node-content{\n    position: absolute;\n    top:0;\n    left: 0;\n  }\n  & body{\n    background-color: transparent;\n    overflow: visible;\n  }\n  & foreignObject {\n    background-color: transparent;\n    overflow: visible;\n  }\n  &:hover {\n    cursor: grab;\n    background-color:@node-select-color;\n  }\n  &-selected {\n    background-color: @node-select-color;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/nodemodel.less",
    "content": "@nodemodel-prefix-cls: ~\"@{css-prefix}node-model\";\n\n.@{nodemodel-prefix-cls} {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  display: block;\n  border: 1px solid transparent;\n  cursor: -webkit-grab;\n  &:hover {\n    cursor: grab;\n    background-color: #fff;\n    border-color: #289de9;\n  }\n\n  &-label {\n    height: 26px;\n    line-height: 26px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/components/port.less",
    "content": "@port-prefix-cls: ~\"@{css-prefix}port\";\n@inport-prefix-cls: ~\"@{css-prefix}port-in\";\n@outport-prefix-cls: ~\"@{css-prefix}port-out\";\n@inout-prefix-cls: ~\"@{css-prefix}in-out\";\n\n.@{port-prefix-cls} {\n  width: 10px;\n  height: 10px;\n  float: right;\n  margin-right: -5px;\n  border: 1px solid gray;\n  border-radius: 50%;\n  background-color: #fff;\n\n  &-magnet {\n    float: left;\n    width: 20px;\n    height: 20px;\n    margin-top: -6px;\n    margin-left: -6px;\n    background-color: transparent;\n    border-radius: 50%;\n  }\n}\n\n.@{inport-prefix-cls} {\n  cursor: default;\n\n  &:hover {\n    border: 1px solid #2d8cf0;\n    width: 10px;\n    height: 10px;\n    box-shadow: 0px 0px 1px 3px #57a3f3;\n    border-radius: 50%;\n    margin-top: -1px;\n  }\n}\n.@{inout-prefix-cls} {\n  border: 1px solid #2d8cf0;\n  width: 10px;\n  height: 10px;\n  box-shadow: 0px 0px 1px 3px #57a3f3;\n  border-radius: 50%;\n  margin-top: -1px;\n}\n\n.is-connected {\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 5px 4px 0;\n  border-color: gray transparent transparent;\n  background-color: transparent;\n  border-radius: 0;\n  margin-top: 6px;\n}\n.@{outport-prefix-cls} {\n  cursor: crosshair;\n}\n"
  },
  {
    "path": "src/lib/styles/components/tline.less",
    "content": "@tline-prefix-cls: ~\"@{css-prefix}tline\";\n@hover-prefix-cls: ~\"@{css-prefix}tline-hover\";\n.@{tline-prefix-cls} {\n  cursor: default;\n\n  &-con {\n    fill: none;\n    stroke: hsla(0,0%,100%,0);\n    stroke-width: 15px;\n  }\n\n  &-con-wrap {\n    fill: none;\n    stroke: gray;\n    stroke-width: 1px;\n  }\n\n  &-dotted{\n    stroke: rgba(57,202,116,.8);\n    stroke-width: 2px;\n    stroke-dasharray: 5;\n    -webkit-animation: ant-line 30s infinite linear;\n    animation: ant-line 30s infinite linear;\n  }\n}\n.@{hover-prefix-cls} {\n  fill: none;\n  stroke: #aeaeae;\n  stroke-width: 3px;\n}\n"
  },
  {
    "path": "src/lib/styles/components/workarea.less",
    "content": "@workarea-prefix-cls: ~\"@{css-prefix}work-area\";\n\n.@{workarea-prefix-cls} {\n    background-color: @body-background;\n    position: relative;\n    overflow: auto;\n    cursor: -webkit-grab;\n  &::-webkit-scrollbar {\n    width: 6px;\n    height: 6px;\n  }\n  &::-webkit-scrollbar-thumb {\n    background-color: #aeaeae;\n    min-height: 50px;\n    min-width: 50px;\n    -webkit-border-radius: 10px;\n    border-radius: 10px;\n    -webkit-transition: background-color .2s;\n    -o-transition: background-color .2s;\n    transition: background-color .2s;\n  }\n  &::-webkit-scrollbar-track-piece {\n    background-color: #eee;\n  }\n}\n"
  },
  {
    "path": "src/lib/styles/custom.less",
    "content": "// Prefix\n@css-prefix             : task-;\n@css-prefix-icon        : task-icon-;\n\n// Color\n@primary-color          : #2d8cf0;\n@link-color             : #2D8cF0;\n@link-hover-color       : tint(@link-color, 20%);\n@link-active-color      : shade(@link-color, 5%);\n@node-select-color      :rgba(227,244,255,.9);\n@tooltip-color          : #fff;\n\n// Base\n@body-background        : #fff;\n@font-family            : \"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"微软雅黑\",Arial,sans-serif;\n@code-family            : Consolas,Menlo,Courier,monospace;\n@title-color            : #17233d;\n@text-color             : #515a6e;\n@font-size-base         : 14px;\n@font-size-small        : 12px;\n@font-size-large        : 16px;\n@line-height-base       : 1.5;\n@cursor-disabled        : not-allowed;\n@border-radius-small    : 4px;\n\n// Animation\n@animation-time         : .3s;\n@transition-time        : .2s;\n@ease-in-out            : ease-in-out;\n\n// Background color\n@background-color-base        : #f7f7f7;  // base\n@tooltip-bg                   : rgba(70, 76, 91, .9);\n\n// Shadow\n@shadow-color           : rgba(0, 0, 0, .2);\n@shadow-base            : @shadow-down;\n@shadow-down            : 0 1px 6px @shadow-color;\n\n// Z-index\n@zindex-tooltip         : 1060;\n"
  },
  {
    "path": "src/lib/styles/index.less",
    "content": "@import \"./common/index\";\n@import \"./components/index\";\n@import \"./custom\";\n"
  },
  {
    "path": "src/lib/utils/firefoxCompatible.js",
    "content": "import $ from 'jquery'\nimport {browsers} from './tools.js'\n(window.___NODRAGEVENT = (browsers() === 'Firefox')) &&\n$(document).on('dragover', function (e) {\n  e = e.originalEvent\n  window.__event = e.originalEvent\n  window.___PAGEX = e.clientX || e.pageX\n  window.___PAGEY = e.clientY || e.pageY\n})\n"
  },
  {
    "path": "src/lib/utils/line.js",
    "content": "function XYObject (x, y) {\n  this.x = x\n  this.y = y\n}\n\nexport default {\n  /**\n   * 计算二次贝塞尔曲线 Q线\n   * @param Mxy 起点坐标\n   * @param Txy 结束坐标\n   * @returns {string} 'M xy Q xy xy Txy'\n   */\n  calculatedCurvePathQ (Mxy = {}, Txy = {}) {\n    let mtx = (Txy.x - Mxy.x) / 4\n    let mty = (Txy.y - Mxy.y) / 4\n    if (mty < 0 && (mtx > 10 || mtx < -10)) {\n      if (mty > -10 && mty < 10) {\n        this.Q1xy = new XYObject(Mxy.x + 10, Mxy.y + 30)\n      } else {\n        this.Q1xy = new XYObject(Mxy.x + 10, Mxy.y + 4 * Math.abs(mty))\n      }\n      this.Q2xy = new XYObject(Mxy.x + 2 * mtx, Mxy.y + 2 * mty)\n    } else {\n      this.Q1xy = new XYObject(Mxy.x, Mxy.y + 2 * mty)\n      this.Q2xy = new XYObject(Mxy.x + 2 * mtx, Mxy.y + 2 * mty)\n    }\n\n    let path = 'M' + Mxy.x.toFixed(1) + ' ' + Mxy.y.toFixed(1) + ' Q ' + this.Q1xy.x.toFixed(1) + ' ' + this.Q1xy.y.toFixed(1) + ', ' + this.Q2xy.x.toFixed(1) + ' ' + this.Q2xy.y.toFixed(1) + ' T ' + Txy.x.toFixed(1) + ' ' + Txy.y.toFixed(1)\n    return path\n  },\n  /**\n   * 计算折线 L线\n   * @param Mxy 起点坐标\n   * @param Txy 结束坐标\n   * @returns {string} 'M xy Q xy xy Txy'\n   */\n  calculatedCurvePathL (Mxy = {}, Txy = {}) {\n    let mtx = (Txy.x - Mxy.x) / 2\n    let mty = (Txy.y - Mxy.y) / 2\n\n    if (mty > 0) {\n      this.L1xy = new XYObject(Mxy.x, Mxy.y + mty)\n      this.L2xy = new XYObject(Txy.x, Mxy.y + mty)\n      this.path = 'M' + Mxy.x.toFixed(1) + ' ' + Mxy.y.toFixed(1) + ' L ' + this.L1xy.x.toFixed(1) + ' ' + this.L1xy.y.toFixed(1) + ', ' + this.L2xy.x.toFixed(1) + ' ' + this.L2xy.y.toFixed(1) + ' T ' + Txy.x.toFixed(1) + ' ' + Txy.y.toFixed(1)\n    } else {\n      this.L1xy = new XYObject(Mxy.x, Mxy.y + 30)\n      this.L2xy = new XYObject(Mxy.x + mtx, Mxy.y + 30)\n      this.L3xy = new XYObject(Mxy.x + mtx, Txy.y - 30)\n      this.L4xy = new XYObject(Txy.x, Txy.y - 30)\n      this.path = 'M' + Mxy.x.toFixed(1) + ' ' + Mxy.y.toFixed(1) + ' L ' + this.L1xy.x.toFixed(1) + ' ' + this.L1xy.y.toFixed(1) + ', ' + this.L2xy.x.toFixed(1) + ' ' + this.L2xy.y.toFixed(1) + ', ' + this.L3xy.x.toFixed(1) + ' ' + this.L3xy.y.toFixed(1) + ', ' + this.L4xy.x.toFixed(1) + ' ' + this.L4xy.y.toFixed(1) + ' T ' + Txy.x.toFixed(1) + ' ' + Txy.y.toFixed(1)\n    }\n    return this.path\n  },\n  /**\n   * 计算直线 ML线\n   * @param Mxy 起点坐标\n   * @param Txy 结束坐标\n   * @returns {string} 'M xy Lxy'\n   */\n  calculatedCurvePathML (Mxy = {}, Txy = {}) {\n    this.path = 'M' + Mxy.x.toFixed(1) + ' ' + Mxy.y.toFixed(1) + ' L ' + Txy.x.toFixed(1) + ' ' + Txy.y.toFixed(1)\n    return this.path\n  },\n  /**\n   * 获取曲线路径\n   * @param Mxy 起点坐标\n   * @param Txy 结束坐标\n   * @returns {string} 'M xy Q xy xy Txy'\n   */\n  drawCurvePath (Mxy = {}, Txy = {}, type = 'Q', scaling) {\n    let scalingMxy = {\n      x: Mxy.x / scaling.ZoomX,\n      y: Mxy.y / scaling.ZoomY\n    }\n\n    let scalingTxy = {\n      x: Txy.x / scaling.ZoomX,\n      y: Txy.y / scaling.ZoomY\n    }\n    if (type === 'Q') {\n      return this.calculatedCurvePathQ(scalingMxy, scalingTxy)\n    } else if (type === 'L') {\n      return this.calculatedCurvePathL(scalingMxy, scalingTxy)\n    } else if (type === 'ML') {\n      return this.calculatedCurvePathML(scalingMxy, scalingTxy)\n    }\n  },\n  /**\n   * 缩放坐标计算\n   * @param Mxy\n   * @param Txy\n   * @param scaling\n   * @returns {{Mxy: {}, Txy: {}}}\n   */\n  scalingCount (Mxy = {}, Txy = {}, scaling = {ZoomX: 1, ZoomY: 1}) {\n    Mxy.x = Mxy.x * scaling.ZoomX\n    Mxy.y = Mxy.y * scaling.ZoomY\n    Txy.x = Txy.x * scaling.ZoomX\n    Txy.y = Txy.y * scaling.ZoomY\n    return {Mxy: Mxy, Txy: Txy}\n  },\n  guid () {\n    function S4 () {\n      return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)\n    }\n    return (S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4())\n  }\n}\n"
  },
  {
    "path": "src/lib/utils/tools.js",
    "content": "// 判断参数是否是其中之一\nexport function oneOf (value, validList) {\n  for (let i = 0; i < validList.length; i++) {\n    if (value === validList[i]) {\n      return true\n    }\n  }\n  return false\n}\n// 浏览器判断\nexport function browsers () {\n  let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串\n  if (userAgent.indexOf('Chrome') > -1) {\n    if (userAgent.indexOf('Edge') > -1) {\n      return 'Edge'\n    } else {\n      return 'Chrome'\n    }\n  } else if (userAgent.indexOf('Firefox') > -1) {\n    return 'Firefox'\n  }\n}\n// 判断缩放\nexport function zoomRatio () {\n  let ratio = 0\n  let screen = window.screen\n  let ua = navigator.userAgent.toLowerCase()\n\n  if (window.devicePixelRatio !== undefined) {\n    ratio = window.devicePixelRatio\n  } else if (~ua.indexOf('msie')) {\n    if (screen.deviceXDPI && screen.logicalXDPI) {\n      ratio = screen.deviceXDPI / screen.logicalXDPI\n    }\n  } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\n    ratio = window.outerWidth / window.innerWidth\n  }\n\n  if (ratio) {\n    ratio = Math.round(ratio * 100)\n  }\n  if (browsers() === 'Chrome') {\n    return ratio\n  } else {\n    return 100\n  }\n}\n"
  },
  {
    "path": "src/main.js",
    "content": "import Vue from 'vue'\nimport Vuex from 'vuex'\nimport App from './App'\nimport {TaskNode, TaskNodeStore} from './lib/index'\nimport '../dist/css/vnode.css'\n// import '../src/lib/styles/index.less'\nVue.config.productionTip = false\nVue.use(TaskNode)\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n  modules: {\n    TaskNodeStore\n  }\n})\n/* eslint-disable no-new */\nnew Vue({\n  el: '#app',\n  store,\n  components: { App },\n  template: '<App/>'\n})\n"
  },
  {
    "path": "static/.gitkeep",
    "content": ""
  },
  {
    "path": "test/e2e/custom-assertions/elementCount.js",
    "content": "// A custom Nightwatch assertion.\n// The assertion name is the filename.\n// Example usage:\n//\n//   browser.assert.elementCount(selector, count)\n//\n// For more information on custom assertions see:\n// http://nightwatchjs.org/guide#writing-custom-assertions\n\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/gettingstarted#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: require('selenium-server').path,\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'\n\nconst webpack = require('webpack')\nconst DevServer = require('webpack-dev-server')\n\nconst webpackConfig = require('../../build/webpack.prod.conf')\nconst devConfigPromise = require('../../build/webpack.dev.conf')\n\nlet server\n\ndevConfigPromise.then(devConfig => {\n  const devServerOptions = devConfig.devServer\n  const compiler = webpack(webpackConfig)\n  server = new DevServer(compiler, devServerOptions)\n  const port = devServerOptions.port\n  const host = devServerOptions.host\n  return server.listen(port, host)\n})\n.then(() => {\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.js 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\n  let opts = process.argv.slice(2)\n  if (opts.indexOf('--config') === -1) {\n    opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])\n  }\n  if (opts.indexOf('--env') === -1) {\n    opts = opts.concat(['--env', 'chrome'])\n  }\n\n  const spawn = require('cross-spawn')\n  const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })\n\n  runner.on('exit', function (code) {\n    server.close()\n    process.exit(code)\n  })\n\n  runner.on('error', function (err) {\n    server.close()\n    throw err\n  })\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    \"jest\": true\n  },\n  \"globals\": { \n  }\n}\n"
  },
  {
    "path": "test/unit/jest.conf.js",
    "content": "const path = require('path')\n\nmodule.exports = {\n  rootDir: path.resolve(__dirname, '../../'),\n  moduleFileExtensions: [\n    'js',\n    'json',\n    'vue'\n  ],\n  moduleNameMapper: {\n    '^@/(.*)$': '<rootDir>/src/$1'\n  },\n  transform: {\n    '^.+\\\\.js$': '<rootDir>/node_modules/babel-jest',\n    '.*\\\\.(vue)$': '<rootDir>/node_modules/vue-jest'\n  },\n  testPathIgnorePatterns: [\n    '<rootDir>/test/e2e'\n  ],\n  snapshotSerializers: ['<rootDir>/node_modules/jest-serializer-vue'],\n  setupFiles: ['<rootDir>/test/unit/setup'],\n  mapCoverage: true,\n  coverageDirectory: '<rootDir>/test/unit/coverage',\n  collectCoverageFrom: [\n    'src/**/*.{js,vue}',\n    '!src/main.js',\n    '!**/node_modules/**'\n  ]\n}\n"
  },
  {
    "path": "test/unit/setup.js",
    "content": "import Vue from 'vue'\n\nVue.config.productionTip = false\n"
  },
  {
    "path": "test/unit/specs/HelloWorld.spec.js",
    "content": "import Vue from 'vue'\nimport HelloWorld from '@/components/HelloWorld'\n\ndescribe('HelloWorld.vue', () => {\n  it('should render correct contents', () => {\n    const Constructor = Vue.extend(HelloWorld)\n    const vm = new Constructor().$mount()\n    expect(vm.$el.querySelector('.hello h1').textContent)\n      .toEqual('Welcome to Your Vue.js App')\n  })\n})\n"
  }
]