),\n use: loader\n })\n }\n return output\n}\n","id":"95634857-8cfc-4cf4-ae8c-4837ea6bdb0f","is_binary":false,"title":"utils.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"HkOxVdR3siG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"var utils = require('.\u002Futils')\nvar config = require('..\u002Fconfig')\nvar isProduction = process.env.NODE_ENV === 'production'\n\nmodule.exports = {\n loaders: utils.cssLoaders({\n sourceMap: isProduction\n ? config.build.productionSourceMap\n : config.dev.cssSourceMap,\n extract: isProduction\n }),\n transformToRequire: {\n video: 'src',\n source: 'src',\n img: 'src',\n image: 'xlink:href'\n }\n}\n","id":"36b00a1c-12f7-47b6-9a57-ca8eebe9c236","is_binary":false,"title":"vue-loader.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"BJFl4uAnjjG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"var path = require('path')\nvar utils = require('.\u002Futils')\nvar config = require('..\u002Fconfig')\nvar vueLoaderConfig = require('.\u002Fvue-loader.conf')\n\nfunction resolve (dir) {\n return path.join(__dirname, '..', dir)\n}\n\nmodule.exports = {\n entry: {\n app: '.\u002Fsrc\u002Fmain.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\u002Fdist\u002Fvue.esm.js',\n '@': resolve('src'),\n }\n },\n module: {\n rules: [\n {\n test: \u002F\\.(js|vue)$\u002F,\n loader: 'eslint-loader',\n enforce: 'pre',\n include: [resolve('src'), resolve('test')],\n options: {\n formatter: require('eslint-friendly-formatter')\n }\n },\n {\n test: \u002F\\.vue$\u002F,\n loader: 'vue-loader',\n options: vueLoaderConfig\n },\n {\n test: \u002F\\.js$\u002F,\n loader: 'babel-loader',\n include: [resolve('src'), resolve('test')]\n },\n {\n test: \u002F\\.(png|jpe?g|gif|svg)(\\?.*)?$\u002F,\n loader: 'url-loader',\n options: {\n limit: 10000,\n name: utils.assetsPath('img\u002F[name].[hash:7].[ext]')\n }\n },\n {\n test: \u002F\\.(mp4|webm|ogg|mp3|wav|flac|aac)(\\?.*)?$\u002F,\n loader: 'url-loader',\n options: {\n limit: 10000,\n name: utils.assetsPath('media\u002F[name].[hash:7].[ext]')\n }\n },\n {\n test: \u002F\\.(woff2?|eot|ttf|otf)(\\?.*)?$\u002F,\n loader: 'url-loader',\n options: {\n limit: 10000,\n name: utils.assetsPath('fonts\u002F[name].[hash:7].[ext]')\n }\n }\n ]\n }\n}\n","id":"8abd5452-24f3-4868-b66e-10c306d1c19e","is_binary":false,"title":"webpack.base.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"SkceV_0hsoM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"import Vue from 'vue'\nimport Hello from '@\u002Fcomponents\u002FHello'\n\ndescribe('Hello.vue', () =\u003E {\n it('should render correct contents', () =\u003E {\n const Constructor = Vue.extend(Hello)\n const vm = new Constructor().$mount()\n expect(vm.$el.querySelector('.hello h1').textContent)\n .to.equal('Welcome to Your Vue.js App')\n })\n})\n","id":"d66737ed-872a-4762-96d6-604216b2e804","is_binary":false,"title":"Hello.spec.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"Hk-M4O02jof","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"BJi4_0njiz"},{"code":"var utils = require('.\u002Futils')\nvar webpack = require('webpack')\nvar config = require('..\u002Fconfig')\nvar merge = require('webpack-merge')\nvar baseWebpackConfig = require('.\u002Fwebpack.base.conf')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\nvar FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')\n\n\u002F\u002F add hot-reload related code to entry chunks\nObject.keys(baseWebpackConfig.entry).forEach(function (name) {\n baseWebpackConfig.entry[name] = ['.\u002Fbuild\u002Fdev-client'].concat(baseWebpackConfig.entry[name])\n})\n\nmodule.exports = merge(baseWebpackConfig, {\n module: {\n rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })\n },\n \u002F\u002F cheap-module-eval-source-map is faster for development\n devtool: '#cheap-module-eval-source-map',\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': config.dev.env\n }),\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fglenjamin\u002Fwebpack-hot-middleware#installation--usage\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NoEmitOnErrorsPlugin(),\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fampedandwired\u002Fhtml-webpack-plugin\n new HtmlWebpackPlugin({\n filename: 'index.html',\n template: 'index.html',\n inject: true\n }),\n new FriendlyErrorsPlugin()\n ]\n})\n","id":"f3c2abcb-72bf-435b-aa8d-181b34fc5b41","is_binary":false,"title":"webpack.dev.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"HkixNdAnioG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"var path = require('path')\nvar utils = require('.\u002Futils')\nvar webpack = require('webpack')\nvar config = require('..\u002Fconfig')\nvar merge = require('webpack-merge')\nvar baseWebpackConfig = require('.\u002Fwebpack.base.conf')\nvar CopyWebpackPlugin = require('copy-webpack-plugin')\nvar HtmlWebpackPlugin = require('html-webpack-plugin')\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\nvar OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')\n\nvar env = process.env.NODE_ENV === 'testing'\n ? require('..\u002Fconfig\u002Ftest.env')\n : config.build.env\n\nvar webpackConfig = merge(baseWebpackConfig, {\n module: {\n rules: utils.styleLoaders({\n sourceMap: config.build.productionSourceMap,\n extract: true\n })\n },\n devtool: config.build.productionSourceMap ? '#source-map' : false,\n output: {\n path: config.build.assetsRoot,\n filename: utils.assetsPath('js\u002F[name].[chunkhash].js'),\n chunkFilename: utils.assetsPath('js\u002F[id].[chunkhash].js')\n },\n plugins: [\n \u002F\u002F http:\u002F\u002Fvuejs.github.io\u002Fvue-loader\u002Fen\u002Fworkflow\u002Fproduction.html\n new webpack.DefinePlugin({\n 'process.env': env\n }),\n new webpack.optimize.UglifyJsPlugin({\n compress: {\n warnings: false\n },\n sourceMap: true\n }),\n \u002F\u002F extract css into its own file\n new ExtractTextPlugin({\n filename: utils.assetsPath('css\u002F[name].[contenthash].css')\n }),\n \u002F\u002F Compress extracted CSS. We are using this plugin so that possible\n \u002F\u002F duplicated CSS from different components can be deduped.\n new OptimizeCSSPlugin({\n cssProcessorOptions: {\n safe: true\n }\n }),\n \u002F\u002F generate dist index.html with correct asset hash for caching.\n \u002F\u002F you can customize output by editing \u002Findex.html\n \u002F\u002F see https:\u002F\u002Fgithub.com\u002Fampedandwired\u002Fhtml-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 \u002F\u002F more options:\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fkangax\u002Fhtml-minifier#options-quick-reference\n },\n \u002F\u002F necessary to consistently work with multiple chunks via CommonsChunkPlugin\n chunksSortMode: 'dependency'\n }),\n \u002F\u002F keep module.id stable when vender modules does not change\n new webpack.HashedModuleIdsPlugin(),\n \u002F\u002F split vendor js into its own file\n new webpack.optimize.CommonsChunkPlugin({\n name: 'vendor',\n minChunks: function (module, count) {\n \u002F\u002F any required modules inside node_modules are extracted to vendor\n return (\n module.resource &&\n \u002F\\.js$\u002F.test(module.resource) &&\n module.resource.indexOf(\n path.join(__dirname, '..\u002Fnode_modules')\n ) === 0\n )\n }\n }),\n \u002F\u002F extract webpack runtime and module manifest to its own file in order to\n \u002F\u002F prevent vendor hash from being updated whenever app bundle is updated\n new webpack.optimize.CommonsChunkPlugin({\n name: 'manifest',\n chunks: ['vendor']\n }),\n \u002F\u002F copy custom static assets\n new CopyWebpackPlugin([\n {\n from: path.resolve(__dirname, '..\u002Fstatic'),\n to: config.build.assetsSubDirectory,\n ignore: ['.*']\n }\n ])\n ]\n})\n\nif (config.build.productionGzip) {\n var CompressionWebpackPlugin = require('compression-webpack-plugin')\n\n webpackConfig.plugins.push(\n new CompressionWebpackPlugin({\n asset: '[path].gz[query]',\n algorithm: 'gzip',\n test: new RegExp(\n '\\\\.(' +\n config.build.productionGzipExtensions.join('|') +\n ')
\n ),\n threshold: 10240,\n minRatio: 0.8\n })\n )\n}\n\nif (config.build.bundleAnalyzerReport) {\n var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin\n webpackConfig.plugins.push(new BundleAnalyzerPlugin())\n}\n\nmodule.exports = webpackConfig\n","id":"ea070d55-8cdf-4437-afc3-303afe25b5b0","is_binary":false,"title":"webpack.prod.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"S13g4_C2jsz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"\u002F\u002F This is the webpack config used for unit tests.\n\nvar utils = require('.\u002Futils')\nvar webpack = require('webpack')\nvar merge = require('webpack-merge')\nvar baseConfig = require('.\u002Fwebpack.base.conf')\n\nvar webpackConfig = merge(baseConfig, {\n \u002F\u002F use inline sourcemap for karma-sourcemap-loader\n module: {\n rules: utils.styleLoaders()\n },\n devtool: '#inline-source-map',\n resolveLoader: {\n alias: {\n \u002F\u002F necessary to to make lang=\"scss\" work in test when using vue-loader's ?inject option\n \u002F\u002F see discussion at https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fvue-loader\u002Fissues\u002F724\n 'scss-loader': 'sass-loader'\n }\n },\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': require('..\u002Fconfig\u002Ftest.env')\n })\n ]\n})\n\n\u002F\u002F no need for app entry during tests\ndelete webpackConfig.entry\n\nmodule.exports = webpackConfig\n","id":"672ad8d2-baf4-4655-8394-86a5bf8161d4","is_binary":false,"title":"webpack.test.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"r16g4_Rnsoz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"Skl4uChjsf"},{"code":"var merge = require('webpack-merge')\nvar prodEnv = require('.\u002Fprod.env')\n\nmodule.exports = merge(prodEnv, {\n NODE_ENV: '\"development\"'\n})\n","id":"d2083230-368f-4c25-9830-7fe3d709d710","is_binary":false,"title":"dev.env.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"H10gEuA3siM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HkZ4_A3osz"},{"code":"\u002F\u002F see http:\u002F\u002Fvuejs-templates.github.io\u002Fwebpack for documentation.\nvar path = require('path')\n\nmodule.exports = {\n build: {\n env: require('.\u002Fprod.env'),\n index: path.resolve(__dirname, '..\u002Fdist\u002Findex.html'),\n assetsRoot: path.resolve(__dirname, '..\u002Fdist'),\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n productionSourceMap: true,\n \u002F\u002F Gzip off by default as many popular static hosts such as\n \u002F\u002F Surge or Netlify already gzip all static assets for you.\n \u002F\u002F Before setting to `true`, make sure to:\n \u002F\u002F npm install --save-dev compression-webpack-plugin\n productionGzip: false,\n productionGzipExtensions: ['js', 'css'],\n \u002F\u002F Run the build command with an extra argument to\n \u002F\u002F View the bundle analyzer report after build finishes:\n \u002F\u002F `npm run build --report`\n \u002F\u002F Set to `true` or `false` to always turn it on or off\n bundleAnalyzerReport: process.env.npm_config_report\n },\n dev: {\n env: require('.\u002Fdev.env'),\n port: 8080,\n autoOpenBrowser: true,\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n proxyTable: {},\n \u002F\u002F CSS Sourcemaps off by default because relative paths are \"buggy\"\n \u002F\u002F with this option, according to the CSS-Loader README\n \u002F\u002F (https:\u002F\u002Fgithub.com\u002Fwebpack\u002Fcss-loader#sourcemaps)\n \u002F\u002F In our experience, they generally work as expected,\n \u002F\u002F just be aware of this issue when enabling this option.\n cssSourceMap: false\n }\n}\n","id":"68daf3c2-ded5-4601-89e5-18b7665e0365","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"HJJbE_C2siG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HkZ4_A3osz"},{"code":"module.exports = {\n NODE_ENV: '\"production\"'\n}\n","id":"075d2a0b-6d9a-4b79-9f59-458b3b90e7a3","is_binary":false,"title":"prod.env.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"SJeWNuAhoiz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HkZ4_A3osz"},{"code":"var merge = require('webpack-merge')\nvar devEnv = require('.\u002Fdev.env')\n\nmodule.exports = merge(devEnv, {\n NODE_ENV: '\"testing\"'\n})\n","id":"9b8a0fdb-cc29-47e0-8eb3-9b23c1492856","is_binary":false,"title":"test.env.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"SJbZNOR2jiz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HkZ4_A3osz"},{"code":"\u003Ctemplate\u003E\n \u003Cdiv id=\"app\"\u003E\n \u003Cimg src=\".\u002Fassets\u002Flogo.png\"\u003E\n \u003Crouter-view\u003E\u003C\u002Frouter-view\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Ftemplate\u003E\n\n\u003Cscript\u003E\nexport default {\n name: 'app'\n}\n\u003C\u002Fscript\u003E\n\n\u003Cstyle\u003E\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 margin-top: 60px;\n}\n\u003C\u002Fstyle\u003E\n","id":"4e44e4a2-c839-422c-8b3c-97699e70ed6c","is_binary":false,"title":"App.vue","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"BkNWEdAhojG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"SkMVdR2ijM"},{"code":"\u002F\u002F The Vue build version to load with the `import` command\n\u002F\u002F (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from '.\u002FApp'\nimport router from '.\u002Frouter'\n\nVue.config.productionTip = false\n\n\u002F* eslint-disable no-new *\u002F\nnew Vue({\n el: '#app',\n router,\n template: '\u003CApp\u002F\u003E',\n components: { App }\n})\n","id":"7faceed0-a3c3-4b1a-90ff-5d12f50c122b","is_binary":false,"title":"main.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"BJOWNO03jsf","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"SkMVdR2ijM"},{"code":"https:\u002F\u002Frawgit.com\u002Fandoshin11\u002Fvue-todoList-sample\u002Fe734b77f433552d5b544e9f544869dcbfc3ef04e\u002Fsrc\u002Fassets\u002Flogo.png","id":"2fa1e217-aa8e-42e7-ad8e-a9cf0a951b4c","is_binary":true,"title":"logo.png","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"HyrWEO0njsM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"r1XNOAnsif"},{"code":"\u003Ctemplate\u003E\n \u003Cdiv class=\"hello\"\u003E\n \u003Ch1\u003E{{ msg }}\u003C\u002Fh1\u003E\n \u003Ch2\u003EEssential Links\u003C\u002Fh2\u003E\n \u003Cul\u003E\n \u003Cli\u003E\u003Ca href=\"\u002F#\u002Ftodo_list\"\u003ETodo List\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fvuejs.org\" target=\"_blank\"\u003ECore Docs\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fforum.vuejs.org\" target=\"_blank\"\u003EForum\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fchat.vuejs.org\" target=\"_blank\"\u003ECommunity Chat\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fvuejs\" target=\"_blank\"\u003ETwitter\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cbr\u003E\n \u003Cli\u003E\u003Ca href=\"http:\u002F\u002Fvuejs-templates.github.io\u002Fwebpack\u002F\" target=\"_blank\"\u003EDocs for This Template\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003C\u002Ful\u003E\n \u003Ch2\u003EEcosystem\u003C\u002Fh2\u003E\n \u003Cul\u003E\n \u003Cli\u003E\u003Ca href=\"http:\u002F\u002Frouter.vuejs.org\u002F\" target=\"_blank\"\u003Evue-router\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"http:\u002F\u002Fvuex.vuejs.org\u002F\" target=\"_blank\"\u003Evuex\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"http:\u002F\u002Fvue-loader.vuejs.org\u002F\" target=\"_blank\"\u003Evue-loader\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003Cli\u003E\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvuejs\u002Fawesome-vue\" target=\"_blank\"\u003Eawesome-vue\u003C\u002Fa\u003E\u003C\u002Fli\u003E\n \u003C\u002Ful\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Ftemplate\u003E\n\n\u003Cscript\u003E\nexport default {\n name: 'hello',\n data () {\n return {\n msg: 'Welcome to Your Vue.js App'\n }\n }\n}\n\u003C\u002Fscript\u003E\n\n\u003C!-- Add \"scoped\" attribute to limit CSS to this component only --\u003E\n\u003Cstyle scoped\u003E\nh1, h2 {\n font-weight: normal;\n}\n\nul {\n list-style-type: none;\n padding: 0;\n}\n\nli {\n display: inline-block;\n margin: 0 10px;\n}\n\na {\n color: #42b983;\n}\n\u003C\u002Fstyle\u003E\n","id":"77ccdfdd-bc88-48e9-bac3-f069c4ef547d","is_binary":false,"title":"Hello.vue","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"B1LWEuAhojf","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"r14NOC3joM"},{"code":"\u003Ctemplate\u003E\n \u003Cdiv class=\"todo-list\"\u003E\n \u003Ch1\u003E{{ msg }}\u003C\u002Fh1\u003E\n \u003Cdiv\u003E現在のタスクは {{ numTodo }}件です\u003C\u002Fdiv\u003E\n \u003Cdiv\u003Eうち、{{ numCompleted }}件が完了しています\u003C\u002Fdiv\u003E\n \u003Cdiv\u003E達成率は{{ mileStone }}%です\u003C\u002Fdiv\u003E\n \u003Cinput class=\"new-todo\" type=\"text\" placeholder=\"input a new todo\" v-model=\"newTodo\" @keyup.enter=\"addTodo()\"\u003E\n \u003Cul\u003E\n \u003Cli v-for=\"todo in todoList\"\u003E\n \u003Cinput type=\"checkbox\" v-model=\"todo.completed\"\u003E\n \u003Cspan :style=\"{ color: todo.completed ? 'green' : 'red' }\" class=\"todo\" @click=\"todo.completed = !todo.completed\"\u003E{{ todo.name }}\u003C\u002Fspan\u003E\n \u003Cspan @click=\"deleteTodo(todo)\"\u003E x \u003C\u002Fspan\u003E\n \u003C\u002Fli\u003E\n \u003C\u002Ful\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Ftemplate\u003E\n\n\u003Cscript\u003E\nexport default {\n name: 'todoList',\n data () {\n return {\n msg: 'Welcome to Your Todo List',\n newTodo: null,\n todoList: []\n }\n },\n computed: {\n numTodo () {\n return this.todoList.length\n },\n numCompleted () {\n return this.todoList.filter(x =\u003E x.completed).length\n },\n mileStone () {\n return Math.floor((this.numCompleted \u002F this.numTodo) * 100) || 0\n }\n },\n methods: {\n addTodo () {\n if (!this.newTodo) {\n alert('Empty!')\n return\n }\n\n const newTodo = {\n name: this.newTodo,\n completed: false\n }\n\n this.todoList.push(newTodo)\n this.newTodo = null\n },\n deleteTodo (todo) {\n const index = this.todoList.indexOf(todo)\n\n this.todoList.splice(index, 1)\n }\n }\n}\n\u003C\u002Fscript\u003E\n\n\u003C!-- Add \"scoped\" attribute to limit CSS to this component only --\u003E\n\u003Cstyle scoped\u003E\n .new-todo {\n width: 300px;\n font-size: 18px;\n padding: 5px;\n }\n ul {\n width: 300px;\n margin: 50px auto;\n list-style: none;\n }\n .todo {\n font-weight: bold;\n font-size: 18px;\n letter-spacing: 1px;\n }\n\u003C\u002Fstyle\u003E\n","id":"cab3f781-77c1-44db-a948-3c81129372e2","is_binary":false,"title":"TodoList.vue","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"Hyv-N_A3ojf","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"r14NOC3joM"},{"code":"import Vue from 'vue'\nimport Router from 'vue-router'\nimport Hello from '..\u002Fcomponents\u002FHello'\nimport TodoList from '..\u002Fcomponents\u002FTodoList'\n\nVue.use(Router)\n\nexport default new Router({\n routes: [\n {\n path: '\u002F',\n name: 'Hello',\n component: TodoList\n },\n {\n path: '\u002Ftodo_list',\n name: 'Todo List',\n component: TodoList\n }\n ]\n})\n","id":"a9aba74e-8950-4331-b8f1-4333d856d9a0","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"r1KbN_0hjsM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"ByrVdCniiz"},{"code":"require('babel-register')\nvar config = require('..\u002F..\u002Fconfig')\n\n\u002F\u002F http:\u002F\u002Fnightwatchjs.org\u002Fgettingstarted#settings-file\nmodule.exports = {\n src_folders: ['test\u002Fe2e\u002Fspecs'],\n output_folder: 'test\u002Fe2e\u002Freports',\n custom_assertions_path: ['test\u002Fe2e\u002Fcustom-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:\u002F\u002Flocalhost:' + (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","id":"66e34bfe-796a-4fc0-a27b-8d29b7291af5","is_binary":false,"title":"nightwatch.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"H1oZ4uA2ojz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HJvNOAhioz"},{"code":"\u002F\u002F 1. start the dev server using production config\nprocess.env.NODE_ENV = 'testing'\nvar server = require('..\u002F..\u002Fbuild\u002Fdev-server.js')\n\nserver.ready.then(() =\u003E {\n \u002F\u002F 2. run the nightwatch test suite against it\n \u002F\u002F to run in additional browsers:\n \u002F\u002F 1. add an entry in test\u002Fe2e\u002Fnightwatch.conf.json under \"test_settings\"\n \u002F\u002F 2. add it to the --env flag below\n \u002F\u002F or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`\n \u002F\u002F For more information on Nightwatch's config file, see\n \u002F\u002F http:\u002F\u002Fnightwatchjs.org\u002Fguide#settings-file\n var opts = process.argv.slice(2)\n if (opts.indexOf('--config') === -1) {\n opts = opts.concat(['--config', 'test\u002Fe2e\u002Fnightwatch.conf.js'])\n }\n if (opts.indexOf('--env') === -1) {\n opts = opts.concat(['--env', 'chrome'])\n }\n\n var spawn = require('cross-spawn')\n var runner = spawn('.\u002Fnode_modules\u002F.bin\u002Fnightwatch', 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","id":"ebc2f63c-4065-47c2-9d8c-b30dcf1ea85f","is_binary":false,"title":"runner.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"H1hbEuAhsjf","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HJvNOAhioz"},{"code":"\u002F\u002F A custom Nightwatch assertion.\n\u002F\u002F the name of the method is the filename.\n\u002F\u002F can be used in tests like this:\n\u002F\u002F\n\u002F\u002F browser.assert.elementCount(selector, count)\n\u002F\u002F\n\u002F\u002F for how to write custom assertions see\n\u002F\u002F http:\u002F\u002Fnightwatchjs.org\u002Fguide#writing-custom-assertions\nexports.assertion = function (selector, count) {\n this.message = 'Testing if element \u003C' + selector + '\u003E 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","id":"cbb40320-748c-48ff-9e9d-2a3ea49429ce","is_binary":false,"title":"elementCount.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"H15bEOC2ooM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"BydNOC2soG"},{"code":"\u002F\u002F For authoring Nightwatch tests, see\n\u002F\u002F http:\u002F\u002Fnightwatchjs.org\u002Fguide#usage\n\nmodule.exports = {\n 'default e2e tests': function (browser) {\n \u002F\u002F automatically uses dev Server port from \u002Fconfig.index.js\n \u002F\u002F default: http:\u002F\u002Flocalhost:8080\n \u002F\u002F 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","id":"fb14bf12-642c-4037-a50f-3bddb958d7f5","is_binary":false,"title":"test.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"rkTbE_0hisM","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"HJKE_Ahsif"},{"code":"{\n \"env\": {\n \"mocha\": true\n },\n \"globals\": {\n \"expect\": true,\n \"sinon\": true\n }\n}\n","id":"ef51e1c8-7224-4266-97de-5027016ed426","is_binary":false,"title":".eslintrc","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"ryR-NuA2jsG","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"B1cVuChosz"},{"code":"\u002F\u002F This is a karma config file. For more details see\n\u002F\u002F http:\u002F\u002Fkarma-runner.github.io\u002F0.13\u002Fconfig\u002Fconfiguration-file.html\n\u002F\u002F we are also using it with karma-webpack\n\u002F\u002F https:\u002F\u002Fgithub.com\u002Fwebpack\u002Fkarma-webpack\n\nvar webpackConfig = require('..\u002F..\u002Fbuild\u002Fwebpack.test.conf')\n\nmodule.exports = function (config) {\n config.set({\n \u002F\u002F to run in additional browsers:\n \u002F\u002F 1. install corresponding karma launcher\n \u002F\u002F http:\u002F\u002Fkarma-runner.github.io\u002F0.13\u002Fconfig\u002Fbrowsers.html\n \u002F\u002F 2. add it to the `browsers` array below.\n browsers: ['PhantomJS'],\n frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],\n reporters: ['spec', 'coverage'],\n files: ['.\u002Findex.js'],\n preprocessors: {\n '.\u002Findex.js': ['webpack', 'sourcemap']\n },\n webpack: webpackConfig,\n webpackMiddleware: {\n noInfo: true\n },\n coverageReporter: {\n dir: '.\u002Fcoverage',\n reporters: [\n { type: 'lcov', subdir: '.' },\n { type: 'text-summary' }\n ]\n }\n })\n}\n","id":"da78e5d0-fe81-4978-ab86-9bb4fe3cfc20","is_binary":false,"title":"karma.conf.js","sha":null,"inserted_at":"2018-04-11T16:57:15","updated_at":"2018-04-11T16:57:15","upload_id":null,"shortid":"SyeMEuChsoz","source_id":"ee86a5a6-47a3-421b-a357-8d7b5f572a9d","directory_shortid":"B1cVuChosz"}],"is_frozen":false,"settings":{"ai_consent":null},"template":"vue-cli","draft":true,"external_resources":[]};