: 'vue\u002Fdist\u002Fvue.esm.js',\n '@': resolve('src'),\n }\n },\n module: {\n rules: [\n ...(config.dev.useEslint ? [createLintingRule()] : []),\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'), resolve('node_modules\u002Fwebpack-dev-server\u002Fclient')]\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 node: {\n \u002F\u002F prevent webpack from injecting useless setImmediate polyfill because Vue\n \u002F\u002F source contains it (although only uses it if it's native).\n setImmediate: false,\n \u002F\u002F prevent webpack from injecting mocks to Node native modules\n \u002F\u002F 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","id":"a52ab128-8717-4bc2-82d3-d2521f86ec8e","is_binary":false,"title":"webpack.base.conf.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"S1ZevrjZOMK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"","id":"d961bc3b-f3c1-46f1-9edb-1b3b2c8910b0","is_binary":false,"title":".keep","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"HyBPrsbdMY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"ryvSoZOft"},{"code":"{\n \"presets\": [\n [\"env\", {\n \"modules\": false,\n \"targets\": {\n \"browsers\": [\"\u003E 1%\", \"last 2 versions\", \"not ie \u003C= 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","id":"c92f503a-2669-4ed0-8e0d-0efffe3ab805","is_binary":false,"title":".babelrc","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"HkUDBob_fF","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"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","id":"0fef2f0f-2dcc-4a2f-bae9-76f026f968f6","is_binary":false,"title":".editorconfig","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"B1PPrsbufK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"\u002Fbuild\u002F\n\u002Fconfig\u002F\n\u002Fdist\u002F\n\u002F*.js\n\u002Ftest\u002Funit\u002Fcoverage\u002F\n","id":"070c4cb0-7a25-4013-b1fd-b1fb80d76cc9","is_binary":false,"title":".eslintignore","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"SkdPSjZOft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"\u002F\u002F https:\u002F\u002Feslint.org\u002Fdocs\u002Fuser-guide\u002Fconfiguring\n\nmodule.exports = {\n root: true,\n parserOptions: {\n parser: 'babel-eslint'\n },\n env: {\n browser: true,\n },\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fvuejs\u002Feslint-plugin-vue#priority-a-essential-error-prevention\n \u002F\u002F consider switching to `plugin:vue\u002Fstrongly-recommended` or `plugin:vue\u002Frecommended` for stricter rules.\n extends: ['plugin:vue\u002Fessential', 'airbnb-base'],\n \u002F\u002F required to lint *.vue files\n plugins: [\n 'vue'\n ],\n \u002F\u002F check if imports actually resolve\n settings: {\n 'import\u002Fresolver': {\n webpack: {\n config: 'build\u002Fwebpack.base.conf.js'\n }\n }\n },\n \u002F\u002F add your custom rules here\n rules: {\n \u002F\u002F don't require .vue extension when importing\n 'import\u002Fextensions': ['error', 'always', {\n js: 'never',\n vue: 'never'\n }],\n \u002F\u002F disallow reassignment of function parameters\n \u002F\u002F disallow parameter object manipulation except for specific exclusions\n 'no-param-reassign': ['error', {\n props: true,\n ignorePropertyModificationsFor: [\n 'state', \u002F\u002F for vuex state\n 'acc', \u002F\u002F for reduce accumulators\n 'e' \u002F\u002F for e.returnvalue\n ]\n }],\n \u002F\u002F allow optionalDependencies\n 'import\u002Fno-extraneous-dependencies': ['error', {\n optionalDependencies: ['test\u002Funit\u002Findex.js']\n }],\n \u002F\u002F allow debugger during development\n 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'\n }\n}\n","id":"a91e1888-833c-4c00-85bd-d399588d3211","is_binary":false,"title":".eslintrc.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"BJKPBoZ_zt","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":".DS_Store\nnode_modules\u002F\n\u002Fdist\u002F\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n\u002Ftest\u002Funit\u002Fcoverage\u002F\n\n# Editor directories and files\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n","id":"6e186e20-0b23-4628-81c0-d0ca6b7fcac8","is_binary":false,"title":".gitignore","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"HJcvBi-OzF","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"\u002F\u002F https:\u002F\u002Fgithub.com\u002Fmichael-ciniawsky\u002Fpostcss-load-config\n\nmodule.exports = {\n \"plugins\": {\n \"postcss-import\": {},\n \"postcss-url\": {},\n \u002F\u002F to edit target browsers: use \"browserslist\" field in package.json\n \"autoprefixer\": {}\n }\n}\n","id":"c6b53958-e466-4ab6-9dd1-15f65142fde3","is_binary":false,"title":".postcssrc.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"HJoDSiWuzK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"# test-project\n\n\u003E A Vue.js project\n\n## Build Setup\n\n``` bash\n# install dependencies\nnpm install\n\n# serve with hot reload at localhost:8080\nnpm run dev\n\n# build for production with minification\nnpm run build\n\n# build for production and view the bundle analyzer report\nnpm run build --report\n\n# run unit tests\nnpm run unit\n\n# run all tests\nnpm test\n```\n\nFor a detailed explanation on how things work, check out the [guide](http:\u002F\u002Fvuejs-templates.github.io\u002Fwebpack\u002F) and [docs for vue-loader](http:\u002F\u002Fvuejs.github.io\u002Fvue-loader).\n","id":"10ffacf0-0e17-4067-ac24-cf793936feec","is_binary":false,"title":"README.md","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"SJ3Prjb_zK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"'use strict'\nrequire('.\u002Fcheck-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('..\u002Fconfig')\nconst webpackConfig = require('.\u002Fwebpack.prod.conf')\n\nconst spinner = ora('building for production...')\nspinner.start()\n\nrm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err =\u003E {\n if (err) throw err\n webpack(webpackConfig, (err, stats) =\u003E {\n spinner.stop()\n if (err) throw err\n process.stdout.write(stats.toString({\n colors: true,\n modules: false,\n children: false, \u002F\u002F 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:\u002F\u002F won\\'t work.\\n'\n ))\n })\n})\n","id":"18d1259b-95d9-4b48-93f4-505784729850","is_binary":false,"title":"build.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"B1TvBiW_zK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst chalk = require('chalk')\nconst semver = require('semver')\nconst packageConfig = require('..\u002Fpackage.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 \u003C 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 \u003C warnings.length; i++) {\n const warning = warnings[i]\n console.log(' ' + warning)\n }\n\n console.log()\n process.exit(1)\n }\n}\n","id":"bfcb5373-7228-4742-b1be-fd970d78b14c","is_binary":false,"title":"check-versions.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"rJ0vHsbuGK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst path = require('path')\nconst config = require('..\u002Fconfig')\nconst ExtractTextPlugin = require('extract-text-webpack-plugin')\nconst packageConfig = require('..\u002Fpackage.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 \u002F\u002F 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 \u002F\u002F Extract CSS when that option is specified\n \u002F\u002F (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 \u002F\u002F https:\u002F\u002Fvue-loader.vuejs.org\u002Fen\u002Fconfigurations\u002Fextract-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\u002F\u002F 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 = () =\u003E {\n const notifier = require('node-notifier')\n\n return (severity, errors) =\u003E {\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","id":"2930e914-188e-44bf-a672-e138effc32c9","is_binary":false,"title":"utils.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"SykevBsb_ft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst utils = require('.\u002Futils')\nconst config = require('..\u002Fconfig')\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","id":"71812277-d953-4e57-a870-ca60ecfccf07","is_binary":false,"title":"vue-loader.conf.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"rJglDBjZOGK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst utils = require('.\u002Futils')\nconst webpack = require('webpack')\nconst config = require('..\u002Fconfig')\nconst merge = require('webpack-merge')\nconst path = require('path')\nconst baseWebpackConfig = require('.\u002Fwebpack.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 \u002F\u002F cheap-module-eval-source-map is faster for development\n devtool: config.dev.devtool,\n\n \u002F\u002F these devServer options should be customized in \u002Fconfig\u002Findex.js\n devServer: {\n clientLogLevel: 'warning',\n historyApiFallback: {\n rewrites: [\n { from: \u002F.*\u002F, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },\n ],\n },\n hot: true,\n contentBase: false, \u002F\u002F 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, \u002F\u002F necessary for FriendlyErrorsPlugin\n watchOptions: {\n poll: config.dev.poll,\n }\n },\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': require('..\u002Fconfig\u002Fdev.env')\n }),\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NamedModulesPlugin(), \u002F\u002F HMR shows correct file names in console on update.\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 \u002F\u002F copy custom static assets\n new CopyWebpackPlugin([\n {\n from: path.resolve(__dirname, '..\u002Fstatic'),\n to: config.dev.assetsSubDirectory,\n ignore: ['.*']\n }\n ])\n ]\n})\n\nmodule.exports = new Promise((resolve, reject) =\u003E {\n portfinder.basePort = process.env.PORT || config.dev.port\n portfinder.getPort((err, port) =\u003E {\n if (err) {\n reject(err)\n } else {\n \u002F\u002F publish the new Port, necessary for e2e tests\n process.env.PORT = port\n \u002F\u002F add port to devServer config\n devWebpackConfig.devServer.port = port\n\n \u002F\u002F Add FriendlyErrorsPlugin\n devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({\n compilationSuccessInfo: {\n messages: [`Your application is running here: http:\u002F\u002F${devWebpackConfig.devServer.host}:${port}`],\n },\n onErrors: config.dev.notifyOnErrors\n ? utils.createNotifierCallback()\n : undefined\n }))\n\n resolve(devWebpackConfig)\n }\n })\n})\n","id":"327fcfb1-637e-4127-bfe5-a9c1a09f170d","is_binary":false,"title":"webpack.dev.conf.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"BJzlvrjW_GY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst path = require('path')\nconst utils = require('.\u002Futils')\nconst webpack = require('webpack')\nconst config = require('..\u002Fconfig')\nconst merge = require('webpack-merge')\nconst baseWebpackConfig = require('.\u002Fwebpack.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('..\u002Fconfig\u002Ftest.env')\n : require('..\u002Fconfig\u002Fprod.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\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 UglifyJsPlugin({\n uglifyOptions: {\n compress: {\n warnings: false\n }\n },\n sourceMap: config.build.productionSourceMap,\n parallel: true\n }),\n \u002F\u002F extract css into its own file\n new ExtractTextPlugin({\n filename: utils.assetsPath('css\u002F[name].[contenthash].css'),\n \u002F\u002F Setting the following option to `false` will not extract CSS from codesplit chunks.\n \u002F\u002F Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.\n \u002F\u002F 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 \u002F\u002F increasing file size: https:\u002F\u002Fgithub.com\u002Fvuejs-templates\u002Fwebpack\u002Fissues\u002F1110\n allChunks: true,\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: config.build.productionSourceMap\n ? { safe: true, map: { inline: false } }\n : { safe: true }\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 vendor modules does not change\n new webpack.HashedModuleIdsPlugin(),\n \u002F\u002F enable scope hoisting\n new webpack.optimize.ModuleConcatenationPlugin(),\n \u002F\u002F split vendor js into its own file\n new webpack.optimize.CommonsChunkPlugin({\n name: 'vendor',\n minChunks (module) {\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 minChunks: Infinity\n }),\n \u002F\u002F This instance extracts shared chunks from code splitted chunks and bundles them\n \u002F\u002F in a separate chunk, similar to the vendor chunk\n \u002F\u002F see: https:\u002F\u002Fwebpack.js.org\u002Fplugins\u002Fcommons-chunk-plugin\u002F#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 \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 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","id":"266f4e3e-a006-4996-97aa-168116f7ca07","is_binary":false,"title":"webpack.prod.conf.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"rk7gwrs-dft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"code":"'use strict'\nconst merge = require('webpack-merge')\nconst prodEnv = require('.\u002Fprod.env')\n\nmodule.exports = merge(prodEnv, {\n NODE_ENV: '\"development\"'\n})\n","id":"1b2dece5-4127-411f-b59f-27a8723cbb8c","is_binary":false,"title":"dev.env.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"r1NlvBiW_GF","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"r1-PHoWdzt"},{"code":"'use strict'\n\u002F\u002F Template version: 1.3.1\n\u002F\u002F see http:\u002F\u002Fvuejs-templates.github.io\u002Fwebpack for documentation.\n\nconst path = require('path')\n\nmodule.exports = {\n dev: {\n\n \u002F\u002F Paths\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n proxyTable: {},\n\n \u002F\u002F Various Dev Server settings\n host: 'localhost', \u002F\u002F can be overwritten by process.env.HOST\n port: 8080, \u002F\u002F 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, \u002F\u002F https:\u002F\u002Fwebpack.js.org\u002Fconfiguration\u002Fdev-server\u002F#devserver-watchoptions-\n\n \u002F\u002F Use Eslint Loader?\n \u002F\u002F If true, your code will be linted during bundling and\n \u002F\u002F linting errors and warnings will be shown in the console.\n useEslint: true,\n \u002F\u002F If true, eslint errors and warnings will also be shown in the error overlay\n \u002F\u002F in the browser.\n showEslintErrorsInOverlay: false,\n\n \u002F**\n * Source Maps\n *\u002F\n\n \u002F\u002F https:\u002F\u002Fwebpack.js.org\u002Fconfiguration\u002Fdevtool\u002F#development\n devtool: 'cheap-module-eval-source-map',\n\n \u002F\u002F If you have problems debugging vue-files in devtools,\n \u002F\u002F set this to false - it *may* help\n \u002F\u002F https:\u002F\u002Fvue-loader.vuejs.org\u002Fen\u002Foptions.html#cachebusting\n cacheBusting: true,\n\n cssSourceMap: true\n },\n\n build: {\n \u002F\u002F Template for index.html\n index: path.resolve(__dirname, '..\u002Fdist\u002Findex.html'),\n\n \u002F\u002F Paths\n assetsRoot: path.resolve(__dirname, '..\u002Fdist'),\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n\n \u002F**\n * Source Maps\n *\u002F\n\n productionSourceMap: true,\n \u002F\u002F https:\u002F\u002Fwebpack.js.org\u002Fconfiguration\u002Fdevtool\u002F#production\n devtool: '#source-map',\n\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\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}\n","id":"7d71c10b-bdd3-4424-bd73-0fec25dbbc7f","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"SkSewHiZOft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"r1-PHoWdzt"},{"code":"'use strict'\nmodule.exports = {\n NODE_ENV: '\"production\"'\n}\n","id":"8f9d522e-b17d-4424-8208-7132d0740bb3","is_binary":false,"title":"prod.env.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"H1UgPHibOzt","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"r1-PHoWdzt"},{"code":"'use strict'\nconst merge = require('webpack-merge')\nconst devEnv = require('.\u002Fdev.env')\n\nmodule.exports = merge(devEnv, {\n NODE_ENV: '\"testing\"'\n})\n","id":"6e63e00b-30a7-4465-a990-7ad52cecdeee","is_binary":false,"title":"test.env.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"rywewHjZOGt","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"r1-PHoWdzt"},{"code":"$red: red;\n$white: rgb(121, 22, 22);\n$yellow: yellow;\n","id":"fd93de96-80c5-4ad6-a9e8-5ff08e25bc0c","is_binary":false,"title":"_vars.scss","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"rJoevBo-OfK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"H1QDHs-_GF"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Falexisbertin\u002FVueSandbox\u002F1ddb959a68a0cc31cfba104c2df68b8fb381ee2c\u002Fbuild\u002Flogo.png","id":"d46bd78d-af36-4d1d-8c5a-7dd73859f56b","is_binary":true,"title":"logo.png","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","upload_id":null,"shortid":"B1e-vrj-dMY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJgwHibuzK"},{"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\";\n\n\u002F\u002F background is white, because vendor is isolated from app, thus app's variables\n\u002F\u002F dont leak into vendor\n\nimport \"@\u002Fassets\u002Fapp.scss\";\nimport \"@\u002Fassets\u002Fvendor.scss\";\n\nVue.config.productionTip = false;\n\n\u002F* eslint-disable no-new *\u002F\nnew Vue({\n el: \"#app\",\n components: { App },\n template: \"\u003CApp\u002F\u003E\"\n});\n","id":"46546a34-b86f-46d5-9e04-4ba891febbb3","is_binary":false,"title":"main.js","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2022-12-29T02:15:43","upload_id":null,"shortid":"SJ1bPSsbufF","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJGwHjW_MK"},{"code":"{\n \"name\": \"show-hide-modal-call-process-with-vuejs\",\n \"version\": \"1.0.0\",\n \"description\": \"\",\n \"main\": \"src\u002Fmain.js\",\n \"private\": true,\n \"scripts\": {\n \"dev\": \"webpack-dev-server --inline --progress --config build\u002Fwebpack.dev.conf.js\",\n \"start\": \"npm run dev\",\n \"unit\": \"jest --config test\u002Funit\u002Fjest.conf.js --coverage\",\n \"test\": \"npm run unit\",\n \"lint\": \"eslint --ext .js,.vue src test\u002Funit\",\n \"build\": \"node build\u002Fbuild.js\"\n },\n \"dependencies\": {\n \"vue\": \"^2.5.2\"\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 \"chalk\": \"^2.0.1\",\n \"copy-webpack-plugin\": \"^4.0.1\",\n \"css-loader\": \"^0.28.0\",\n \"eslint\": \"^4.15.0\",\n \"eslint-config-airbnb-base\": \"^11.3.0\",\n \"eslint-friendly-formatter\": \"^3.0.0\",\n \"eslint-import-resolver-webpack\": \"^0.8.3\",\n \"eslint-loader\": \"^1.7.1\",\n \"eslint-plugin-import\": \"^2.7.0\",\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 \"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 \"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\": \"\u003E= 6.0.0\",\n \"npm\": \"\u003E= 3.0.0\"\n },\n \"browserslist\": [\n \"\u003E 1%\",\n \"last 2 versions\",\n \"not ie \u003C= 8\"\n ],\n \"keywords\": []\n}","id":"25e2d1ec-127c-441a-87d5-fb4031b02f32","is_binary":false,"title":"package.json","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2023-01-02T03:01:01","upload_id":null,"shortid":"ryYxwBsZuft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"\u003C!DOCTYPE html\u003E\n\u003Chtml\u003E\n \u003Chead\u003E\n \u003Cmeta charset=\"utf-8\" \u002F\u003E\n \u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" \u002F\u003E\n \u003Ctitle\u003E\n Vue.js でモーダルが表示\u002F非表示された際に呼ばれる処理の実装\n \u003C\u002Ftitle\u003E\n \u003C\u002Fhead\u003E\n\n \u003Cbody\u003E\n \u003Cdiv id=\"app\"\u003E\u003C\u002Fdiv\u003E\n \u003C!-- built files will be auto injected --\u003E\n \u003C\u002Fbody\u003E\n\u003C\u002Fhtml\u003E\n","id":"a4de7238-c81f-4d53-a40d-5afb76618968","is_binary":false,"title":"index.html","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2023-01-02T02:08:34","upload_id":null,"shortid":"rkugPHiWdGY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"code":"\u003Ctemplate\u003E\n \u003Cdiv id=\"app\"\u003E\n \u003Cbutton @click=\"openModal\"\u003EClick\u003C\u002Fbutton\u003E\n\n \u003Capp-modal\n v-show=\"showContent\"\n v-on:from-child=\"closeModal\"\n transition=\"app-modal\"\n \u003E\n モーダル\n \u003C\u002Fapp-modal\u003E\n \u003C\u002Fdiv\u003E\n\u003C\u002Ftemplate\u003E\n\n\u003Cscript\u003E\nimport AppModal from \".\u002Fcomponents\u002FAppModal\";\n\nexport default {\n name: \"App\",\n components: { AppModal },\n data() {\n return {\n showContent: false,\n };\n },\n methods: {\n openModal: function () {\n this.showContent = true;\n },\n closeModal: function () {\n this.showContent = false;\n },\n },\n};\n\u003C\u002Fscript\u003E\n\n\u003Cstyle lang=\"scss\"\u003E\n\u002F\u002F @import \".\u002Fassets\u002Fapp.scss\";\n\u002F\u002F @import \".\u002Fassets\u002Fvendor.scss\";\n\u003C\u002Fstyle\u003E\n","id":"472128d6-2216-4d14-810f-996f2a852e22","is_binary":false,"title":"App.vue","sha":null,"inserted_at":"2023-01-02T03:00:15","updated_at":"2023-01-02T04:56:48","upload_id":null,"shortid":"SJcgwSo-OMY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJGwHjW_MK"},{"code":"\u003Ctemplate\u003E\r\n \u003Ctransition name=\"app-modal\" v-on:after-enter=\"afterEnter\" v-on:leave=\"leave\"\u003E\r\n \u003Cdiv id=\"overlay\" v-on:click=\"clickEvent\"\u003E\r\n \u003Cdiv id=\"content\" v-on:click=\"stopEvent\"\u003E\r\n \u003Cp\u003E\u003Cslot\u003E\u003C\u002Fslot\u003E\u003C\u002Fp\u003E\r\n \u003Cbutton @click=\"clickEvent\"\u003Eclose\u003C\u002Fbutton\u003E\r\n \u003C\u002Fdiv\u003E\r\n \u003C\u002Fdiv\u003E\r\n \u003C\u002Ftransition\u003E\r\n\u003C\u002Ftemplate\u003E\r\n\r\n\u003Cscript\u003E\r\nexport default {\r\n name: \"AppModal\",\r\n data() {\r\n return {\r\n showContent: false,\r\n };\r\n },\r\n methods: {\r\n clickEvent: function () {\r\n this.$emit(\"from-child\");\r\n },\r\n stopEvent: function (event) {\r\n event.stopPropagation();\r\n },\r\n afterEnter: function (el, done) {\r\n console.log(\"afterEnter\");\r\n setTimeout(done, 0);\r\n },\r\n leave: function (el, done) {\r\n console.log(\"leave\");\r\n setTimeout(done, 0);\r\n },\r\n },\r\n};\r\n\u003C\u002Fscript\u003E\r\n\r\n\u003Cstyle lang=\"scss\"\u003E\r\n\u002F\u002F @import \".\u002Fassets\u002Fapp.scss\";\r\n\u002F\u002F @import \".\u002Fassets\u002Fvendor.scss\";\r\n\r\n#overlay {\r\n \u002F* 要素を重ねた時の順番 *\u002F\r\n z-index: 1;\r\n\r\n \u002F* 画面全体を覆う設定 *\u002F\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n\r\n \u002F* 画面の中央に要素を表示させる設定 *\u002F\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n #content {\r\n z-index: 10;\r\n width: 50%;\r\n padding: 1em;\r\n background: #fff;\r\n }\r\n}\r\n\u003C\u002Fstyle\u003E\r\n","id":"9f29e35c-0ebe-4254-8cf0-6b77f0aabd61","is_binary":false,"title":"AppModal.vue","sha":null,"inserted_at":"2023-01-02T03:06:31","updated_at":"2023-01-02T04:57:23","upload_id":null,"shortid":"kggE6","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"Sy4wHjWuzY"}],"preview_secret":null,"screenshot_url":"https:\u002F\u002Fscreenshots.codesandbox.io\u002Fnt3izz\u002F71.png","draft":false,"team":{"id":"430995f4-0e1d-4068-9c64-88d679bc0fa0","name":"kkawazoe","settings":{"ai_consent":{"public_sandboxes":true,"private_sandboxes":true}},"subscription_type":null,"avatar_url":"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4644540?v=4"},"settings":{"ai_consent":null},"permissions":{"prevent_sandbox_export":false,"prevent_sandbox_leaving":false},"ai_consent":true,"original_git":null,"tags":[],"alias":"blissful-moon-nt3izz","pr_number":null,"view_count":4475,"inserted_at":"2023-01-02T03:00:15","original_git_commit_sha":"1ddb959a68a0cc31cfba104c2df68b8fb381ee2c","updated_at":"2024-03-19T09:28:02","title":"show-hide-modal-call-process-with-vuejs","restrictions":{"free_plan_editing_restricted":false,"live_sessions_restricted":true},"external_resources":[],"entry":"src\u002Fmain.js","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","author":{"id":"4cc2eeba-2979-4ed4-8724-1fa912516846","name":"kkawazoe","username":"kkawazoe","avatar_url":"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4644540?v=4","personal_workspace_id":"430995f4-0e1d-4068-9c64-88d679bc0fa0","subscription_plan":null,"subscription_since":null},"forked_template":{"id":"f9b97147-dc15-4a0e-b3c6-fd68fb709578","title":"initial-screen-display-scroll-to-center-specific-elementelement-with-vuejs\u002F","color":"#61DAFB","v2":false,"url":null,"published":false,"icon_url":null,"official":false},"id":"nt3izz","v2":false,"always_on":false,"like_count":0,"is_frozen":true,"restricted":false,"directories":[{"id":"2e9d309b-b197-4b4a-9145-2ca93a92a9ff","title":"static","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"ryvSoZOft","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"id":"7a95512f-3171-4780-9f39-c87641a38e0a","title":"build","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"HJgwHibuzK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"id":"c9ba499b-f153-4f59-8de4-a30775042ad1","title":"config","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"r1-PHoWdzt","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"id":"87b968d0-c2c3-4c45-8171-10e19d2f4118","title":"src","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"HJGwHjW_MK","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":null},{"id":"bac470b2-0310-4909-af86-c6bfd1f7ad4c","title":"assets","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"H1QDHs-_GF","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJGwHjW_MK"},{"id":"3fd3c1ec-b583-4bd3-aa8d-1a97ef2aff39","title":"components","inserted_at":"2023-01-02T03:00:15","updated_at":"2021-09-09T22:31:27","shortid":"Sy4wHjWuzY","source_id":"60db69e9-a7c4-470f-8324-02ac2ee4da12","directory_shortid":"HJGwHjW_MK"}],"user_liked":false,"npm_dependencies":{},"owned":false,"git":null};