├── .babelrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── README.md ├── build ├── build.js ├── check-versions.js ├── dev-client.js ├── dev-server.js ├── utils.js ├── vue-loader.conf.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── config ├── dev.env.js ├── index.js └── prod.env.js ├── dist ├── index.html ├── package.json ├── server.js ├── service-worker.js └── static │ ├── antshares_large_logo.png │ ├── antshares_logo.png │ ├── app-logo.png │ ├── bitcoin-cash_large_logo.png │ ├── bitcoin-cash_logo.png │ ├── bitcoin-gold_large_logo.png │ ├── bitcoin-gold_logo.png │ ├── bitcoin_large_logo.png │ ├── bitcoin_logo.png │ ├── bitconnect_large_logo.png │ ├── bitconnect_logo.png │ ├── bitshares_large_logo.png │ ├── bitshares_logo.png │ ├── bytecoin-bcn_large_logo.png │ ├── bytecoin-bcn_logo.png │ ├── cardano_large_logo.png │ ├── cardano_logo.png │ ├── chrome-webstore.png │ ├── coinmarketcap_logo.png │ ├── css │ ├── app.52cf0922490aa1d22425046018c325f7.css │ └── app.52cf0922490aa1d22425046018c325f7.css.map │ ├── dash_large_logo.png │ ├── dash_logo.png │ ├── eos_large_logo.png │ ├── eos_logo.png │ ├── ethereum-classic_large_logo.png │ ├── ethereum-classic_logo.png │ ├── ethereum_large_logo.png │ ├── ethereum_logo.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── golem-network-tokens_large_logo.png │ ├── golem-network-tokens_logo.png │ ├── img │ └── icons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg │ ├── iota_large_logo.png │ ├── iota_logo.png │ ├── js │ ├── app.164371cfa141bb3caacb.js │ ├── app.164371cfa141bb3caacb.js.map │ ├── manifest.79d3aded97329ff6436e.js │ ├── manifest.79d3aded97329ff6436e.js.map │ ├── vendor.12a2dfb324b37d0c6120.js │ └── vendor.12a2dfb324b37d0c6120.js.map │ ├── litecoin_large_logo.png │ ├── litecoin_logo.png │ ├── manifest.json │ ├── meta_landing_screen.png │ ├── monero_large_logo.png │ ├── monero_logo.png │ ├── nem_large_logo.png │ ├── nem_logo.png │ ├── neo_large_logo.png │ ├── neo_logo.png │ ├── ripple_large_logo.png │ ├── ripple_logo.png │ ├── siacoin_large_logo.png │ ├── siacoin_logo.png │ ├── status_large_logo.png │ ├── status_logo.png │ ├── steem_large_logo.png │ ├── steem_logo.png │ ├── stellar_large_logo.png │ ├── stellar_logo.png │ ├── stratis_large_logo.png │ ├── stratis_logo.png │ ├── tether_large_logo.png │ ├── tether_logo.png │ ├── undefined_large_logo.png │ ├── undefined_logo.png │ ├── veritaseum_large_logo.png │ ├── veritaseum_logo.png │ ├── vue_logo.png │ ├── waves_large_logo.png │ ├── waves_logo.png │ ├── zcash_large_logo.png │ └── zcash_logo.png ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.vue ├── assets │ ├── bitcoin_image.png │ ├── ethereum_image.png │ ├── litecoin_image.png │ └── logo.png ├── components │ ├── FooterHero.vue │ ├── HeaderHero.vue │ └── body │ │ ├── BodyHero.vue │ │ ├── SelectedHero.vue │ │ └── sub │ │ └── DoughnutChart.js ├── cryptocurrency-data.json ├── main.js ├── routes.js └── store.js ├── static ├── .gitkeep ├── antshares_large_logo.png ├── antshares_logo.png ├── app-logo.png ├── bitcoin-cash_large_logo.png ├── bitcoin-cash_logo.png ├── bitcoin-gold_large_logo.png ├── bitcoin-gold_logo.png ├── bitcoin_large_logo.png ├── bitcoin_logo.png ├── bitconnect_large_logo.png ├── bitconnect_logo.png ├── bitshares_large_logo.png ├── bitshares_logo.png ├── bytecoin-bcn_large_logo.png ├── bytecoin-bcn_logo.png ├── cardano_large_logo.png ├── cardano_logo.png ├── chrome-webstore.png ├── coinmarketcap_logo.png ├── dash_large_logo.png ├── dash_logo.png ├── eos_large_logo.png ├── eos_logo.png ├── ethereum-classic_large_logo.png ├── ethereum-classic_logo.png ├── ethereum_large_logo.png ├── ethereum_logo.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon.ico ├── golem-network-tokens_large_logo.png ├── golem-network-tokens_logo.png ├── img │ └── icons │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── mstile-150x150.png │ │ └── safari-pinned-tab.svg ├── iota_large_logo.png ├── iota_logo.png ├── litecoin_large_logo.png ├── litecoin_logo.png ├── manifest.json ├── meta_landing_screen.png ├── monero_large_logo.png ├── monero_logo.png ├── nem_large_logo.png ├── nem_logo.png ├── neo_large_logo.png ├── neo_logo.png ├── ripple_large_logo.png ├── ripple_logo.png ├── siacoin_large_logo.png ├── siacoin_logo.png ├── status_large_logo.png ├── status_logo.png ├── steem_large_logo.png ├── steem_logo.png ├── stellar_large_logo.png ├── stellar_logo.png ├── stratis_large_logo.png ├── stratis_logo.png ├── tether_large_logo.png ├── tether_logo.png ├── undefined_large_logo.png ├── undefined_logo.png ├── veritaseum_large_logo.png ├── veritaseum_logo.png ├── vue_logo.png ├── waves_large_logo.png ├── waves_logo.png ├── zcash_large_logo.png └── zcash_logo.png └── sw-precache-config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-runtime"], 12 | "env": { 13 | "test": { 14 | "presets": ["env", "stage-2"], 15 | "plugins": ["istanbul"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/*.js 2 | config/*.js 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | // http://eslint.org/docs/user-guide/configuring 2 | 3 | module.exports = { 4 | root: true, 5 | parser: 'babel-eslint', 6 | parserOptions: { 7 | sourceType: 'module' 8 | }, 9 | env: { 10 | browser: true, 11 | }, 12 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style 13 | extends: 'standard', 14 | // required to lint *.vue files 15 | plugins: [ 16 | 'html' 17 | ], 18 | // add your custom rules here 19 | 'rules': { 20 | // allow paren-less arrow functions 21 | 'arrow-parens': 0, 22 | // allow async-await 23 | 'generator-star-spacing': 0, 24 | // allow debugger during development 25 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | 7 | # Editor directories and files 8 | .idea 9 | *.suo 10 | *.ntvs* 11 | *.njsproj 12 | *.sln 13 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | // to edit target browsers: use "browserlist" field in package.json 6 | "autoprefixer": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

3 | 4 |

5 | 6 |

7 | 8 | first release 9 | 10 | 11 | 12 | npm version 13 | 14 |

15 | 16 |

CryptoVue is a real-time dashboard that displays the top 10 cryptocurrencies based on currency price, market captilization and overall circulating supply. ✨

17 | 18 |

Launch App

19 |
20 | 21 | ## Features 22 | * 🔩 Simple: Bootstrapped with [vue-cli](https://github.com/vuejs/vue-cli) and routed with [vue-router](https://github.com/vuejs/vue-router) 23 | 24 | * 📊 Real-time: Real time data obtained from the leading cryptocurrency resource [CoinMarketCap](https://coinmarketcap.com/) 25 | 26 | * 💪 Powerful: Runs a [Service Worker](https://github.com/w3c/ServiceWorker) script to increase online performance and function without a network connection 27 | 28 | * 📱 Responsive: Made mobile responsive with [Bulma](http://bulma.io/) and [SASS](http://sass-lang.com/) 29 | 30 | * 🎉 Live: Deployed with [Heroku](https://www.heroku.com/) and secured with [Cloudflare](https://www.cloudflare.com/) 31 | 32 | ## Demo 33 |
34 | 35 |
36 | 37 |
38 | 39 |
40 | 41 | ### Locally using npm 42 | * Clone/download the repo 43 | 44 | * `cd crypto_vue` 45 | 46 | * If you don't have vue-cli installed run `npm install -g vue-cli` 47 | 48 | * `npm run dev` runs the app in development mode. Open [http://localhost:8080](http://localhost:8080) to view it in the browser and the page should reload whenever you make edits 49 | 50 |

51 | Head over to vue-cli to see a list of things you can do. 52 |

53 | 54 | ## Appreciation :) 55 | * [housseindjirdeh](https://github.com/housseindjirdeh) 56 | * [lidonis](https://github.com/lidonis) 57 | * [captainswain](https://github.com/captainswain) 58 | -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | require('./check-versions')() 2 | 3 | process.env.NODE_ENV = 'production' 4 | 5 | var ora = require('ora') 6 | var rm = require('rimraf') 7 | var path = require('path') 8 | var chalk = require('chalk') 9 | var webpack = require('webpack') 10 | var config = require('../config') 11 | var webpackConfig = require('./webpack.prod.conf') 12 | 13 | var spinner = ora('building for production...') 14 | spinner.start() 15 | 16 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 17 | if (err) throw err 18 | webpack(webpackConfig, function (err, stats) { 19 | spinner.stop() 20 | if (err) throw err 21 | process.stdout.write(stats.toString({ 22 | colors: true, 23 | modules: false, 24 | children: false, 25 | chunks: false, 26 | chunkModules: false 27 | }) + '\n\n') 28 | 29 | console.log(chalk.cyan(' Build complete.\n')) 30 | console.log(chalk.yellow( 31 | ' Tip: built files are meant to be served over an HTTP server.\n' + 32 | ' Opening index.html over file:// won\'t work.\n' 33 | )) 34 | }) 35 | }) 36 | -------------------------------------------------------------------------------- /build/check-versions.js: -------------------------------------------------------------------------------- 1 | var chalk = require('chalk') 2 | var semver = require('semver') 3 | var packageConfig = require('../package.json') 4 | var shell = require('shelljs') 5 | function exec (cmd) { 6 | return require('child_process').execSync(cmd).toString().trim() 7 | } 8 | 9 | var versionRequirements = [ 10 | { 11 | name: 'node', 12 | currentVersion: semver.clean(process.version), 13 | versionRequirement: packageConfig.engines.node 14 | }, 15 | ] 16 | 17 | if (shell.which('npm')) { 18 | versionRequirements.push({ 19 | name: 'npm', 20 | currentVersion: exec('npm --version'), 21 | versionRequirement: packageConfig.engines.npm 22 | }) 23 | } 24 | 25 | module.exports = function () { 26 | var warnings = [] 27 | for (var i = 0; i < versionRequirements.length; i++) { 28 | var mod = versionRequirements[i] 29 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 30 | warnings.push(mod.name + ': ' + 31 | chalk.red(mod.currentVersion) + ' should be ' + 32 | chalk.green(mod.versionRequirement) 33 | ) 34 | } 35 | } 36 | 37 | if (warnings.length) { 38 | console.log('') 39 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 40 | console.log() 41 | for (var i = 0; i < warnings.length; i++) { 42 | var warning = warnings[i] 43 | console.log(' ' + warning) 44 | } 45 | console.log() 46 | process.exit(1) 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /build/dev-client.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | require('eventsource-polyfill') 3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') 4 | 5 | hotClient.subscribe(function (event) { 6 | if (event.action === 'reload') { 7 | window.location.reload() 8 | } 9 | }) 10 | -------------------------------------------------------------------------------- /build/dev-server.js: -------------------------------------------------------------------------------- 1 | require('./check-versions')() 2 | 3 | var config = require('../config') 4 | if (!process.env.NODE_ENV) { 5 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) 6 | } 7 | 8 | var opn = require('opn') 9 | var path = require('path') 10 | var express = require('express') 11 | var webpack = require('webpack') 12 | var proxyMiddleware = require('http-proxy-middleware') 13 | var webpackConfig = require('./webpack.dev.conf') 14 | 15 | // default port where dev server listens for incoming traffic 16 | var port = process.env.PORT || config.dev.port 17 | // automatically open browser, if not set will be false 18 | var autoOpenBrowser = !!config.dev.autoOpenBrowser 19 | // Define HTTP proxies to your custom API backend 20 | // https://github.com/chimurai/http-proxy-middleware 21 | var proxyTable = config.dev.proxyTable 22 | 23 | var app = express() 24 | var compiler = webpack(webpackConfig) 25 | 26 | var devMiddleware = require('webpack-dev-middleware')(compiler, { 27 | publicPath: webpackConfig.output.publicPath, 28 | quiet: true 29 | }) 30 | 31 | var hotMiddleware = require('webpack-hot-middleware')(compiler, { 32 | log: () => {} 33 | }) 34 | // force page reload when html-webpack-plugin template changes 35 | compiler.plugin('compilation', function (compilation) { 36 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { 37 | hotMiddleware.publish({ action: 'reload' }) 38 | cb() 39 | }) 40 | }) 41 | 42 | // proxy api requests 43 | Object.keys(proxyTable).forEach(function (context) { 44 | var options = proxyTable[context] 45 | if (typeof options === 'string') { 46 | options = { target: options } 47 | } 48 | app.use(proxyMiddleware(options.filter || context, options)) 49 | }) 50 | 51 | // handle fallback for HTML5 history API 52 | app.use(require('connect-history-api-fallback')()) 53 | 54 | // serve webpack bundle output 55 | app.use(devMiddleware) 56 | 57 | // enable hot-reload and state-preserving 58 | // compilation error display 59 | app.use(hotMiddleware) 60 | 61 | // serve pure static assets 62 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) 63 | app.use(staticPath, express.static('./static')) 64 | 65 | var uri = 'http://localhost:' + port 66 | 67 | var _resolve 68 | var readyPromise = new Promise(resolve => { 69 | _resolve = resolve 70 | }) 71 | 72 | console.log('> Starting dev server...') 73 | devMiddleware.waitUntilValid(() => { 74 | console.log('> Listening at ' + uri + '\n') 75 | // when env is testing, don't need open it 76 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { 77 | opn(uri) 78 | } 79 | _resolve() 80 | }) 81 | 82 | var server = app.listen(port) 83 | 84 | module.exports = { 85 | ready: readyPromise, 86 | close: () => { 87 | server.close() 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var config = require('../config') 3 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 4 | 5 | exports.assetsPath = function (_path) { 6 | var assetsSubDirectory = process.env.NODE_ENV === 'production' 7 | ? config.build.assetsSubDirectory 8 | : config.dev.assetsSubDirectory 9 | return path.posix.join(assetsSubDirectory, _path) 10 | } 11 | 12 | exports.cssLoaders = function (options) { 13 | options = options || {} 14 | 15 | var cssLoader = { 16 | loader: 'css-loader', 17 | options: { 18 | minimize: process.env.NODE_ENV === 'production', 19 | sourceMap: options.sourceMap 20 | } 21 | } 22 | 23 | // generate loader string to be used with extract text plugin 24 | function generateLoaders (loader, loaderOptions) { 25 | var loaders = [cssLoader] 26 | if (loader) { 27 | loaders.push({ 28 | loader: loader + '-loader', 29 | options: Object.assign({}, loaderOptions, { 30 | sourceMap: options.sourceMap 31 | }) 32 | }) 33 | } 34 | 35 | // Extract CSS when that option is specified 36 | // (which is the case during production build) 37 | if (options.extract) { 38 | return ExtractTextPlugin.extract({ 39 | use: loaders, 40 | fallback: 'vue-style-loader' 41 | }) 42 | } else { 43 | return ['vue-style-loader'].concat(loaders) 44 | } 45 | } 46 | 47 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 48 | return { 49 | css: generateLoaders(), 50 | postcss: generateLoaders(), 51 | less: generateLoaders('less'), 52 | sass: generateLoaders('sass', { indentedSyntax: true }), 53 | scss: generateLoaders('sass'), 54 | stylus: generateLoaders('stylus'), 55 | styl: generateLoaders('stylus') 56 | } 57 | } 58 | 59 | // Generate loaders for standalone style files (outside of .vue) 60 | exports.styleLoaders = function (options) { 61 | var output = [] 62 | var loaders = exports.cssLoaders(options) 63 | for (var extension in loaders) { 64 | var loader = loaders[extension] 65 | output.push({ 66 | test: new RegExp('\\.' + extension + '$'), 67 | use: loader 68 | }) 69 | } 70 | return output 71 | } 72 | -------------------------------------------------------------------------------- /build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils') 2 | var config = require('../config') 3 | var isProduction = process.env.NODE_ENV === 'production' 4 | 5 | module.exports = { 6 | loaders: utils.cssLoaders({ 7 | sourceMap: isProduction 8 | ? config.build.productionSourceMap 9 | : config.dev.cssSourceMap, 10 | extract: isProduction 11 | }) 12 | } 13 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var utils = require('./utils') 3 | var config = require('../config') 4 | var vueLoaderConfig = require('./vue-loader.conf') 5 | 6 | function resolve (dir) { 7 | return path.join(__dirname, '..', dir) 8 | } 9 | 10 | module.exports = { 11 | entry: { 12 | app: './src/main.js' 13 | }, 14 | output: { 15 | path: config.build.assetsRoot, 16 | filename: '[name].js', 17 | publicPath: process.env.NODE_ENV === 'production' 18 | ? config.build.assetsPublicPath 19 | : config.dev.assetsPublicPath 20 | }, 21 | resolve: { 22 | extensions: ['.js', '.vue', '.json'], 23 | alias: { 24 | 'vue$': 'vue/dist/vue.esm.js', 25 | '@': resolve('src') 26 | } 27 | }, 28 | module: { 29 | rules: [ 30 | { 31 | test: /\.(js|vue)$/, 32 | loader: 'eslint-loader', 33 | enforce: 'pre', 34 | include: [resolve('src'), resolve('test')], 35 | options: { 36 | formatter: require('eslint-friendly-formatter') 37 | } 38 | }, 39 | { 40 | test: /\.vue$/, 41 | loader: 'vue-loader', 42 | options: vueLoaderConfig 43 | }, 44 | { 45 | test: /\.js$/, 46 | loader: 'babel-loader', 47 | include: [resolve('src'), resolve('test')] 48 | }, 49 | { 50 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 51 | loader: 'url-loader', 52 | options: { 53 | limit: 10000, 54 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 55 | } 56 | }, 57 | { 58 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 59 | loader: 'url-loader', 60 | options: { 61 | limit: 10000, 62 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 63 | } 64 | } 65 | ] 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | var utils = require('./utils') 2 | var webpack = require('webpack') 3 | var config = require('../config') 4 | var merge = require('webpack-merge') 5 | var baseWebpackConfig = require('./webpack.base.conf') 6 | var HtmlWebpackPlugin = require('html-webpack-plugin') 7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 8 | 9 | // add hot-reload related code to entry chunks 10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) { 11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) 12 | }) 13 | 14 | module.exports = merge(baseWebpackConfig, { 15 | module: { 16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) 17 | }, 18 | // cheap-module-eval-source-map is faster for development 19 | devtool: '#cheap-module-eval-source-map', 20 | plugins: [ 21 | new webpack.DefinePlugin({ 22 | 'process.env': config.dev.env 23 | }), 24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage 25 | new webpack.HotModuleReplacementPlugin(), 26 | new webpack.NoEmitOnErrorsPlugin(), 27 | // https://github.com/ampedandwired/html-webpack-plugin 28 | new HtmlWebpackPlugin({ 29 | filename: 'index.html', 30 | template: 'index.html', 31 | inject: true 32 | }), 33 | new FriendlyErrorsPlugin() 34 | ] 35 | }) 36 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var utils = require('./utils') 3 | var webpack = require('webpack') 4 | var config = require('../config') 5 | var merge = require('webpack-merge') 6 | var baseWebpackConfig = require('./webpack.base.conf') 7 | var CopyWebpackPlugin = require('copy-webpack-plugin') 8 | var HtmlWebpackPlugin = require('html-webpack-plugin') 9 | var ExtractTextPlugin = require('extract-text-webpack-plugin') 10 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') 11 | 12 | var env = config.build.env 13 | 14 | var webpackConfig = merge(baseWebpackConfig, { 15 | module: { 16 | rules: utils.styleLoaders({ 17 | sourceMap: config.build.productionSourceMap, 18 | extract: true 19 | }) 20 | }, 21 | devtool: config.build.productionSourceMap ? '#source-map' : false, 22 | output: { 23 | path: config.build.assetsRoot, 24 | filename: utils.assetsPath('js/[name].[chunkhash].js'), 25 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') 26 | }, 27 | plugins: [ 28 | // http://vuejs.github.io/vue-loader/en/workflow/production.html 29 | new webpack.DefinePlugin({ 30 | 'process.env': env 31 | }), 32 | new webpack.optimize.UglifyJsPlugin({ 33 | compress: { 34 | warnings: false 35 | }, 36 | sourceMap: true 37 | }), 38 | // extract css into its own file 39 | new ExtractTextPlugin({ 40 | filename: utils.assetsPath('css/[name].[contenthash].css') 41 | }), 42 | // Compress extracted CSS. We are using this plugin so that possible 43 | // duplicated CSS from different components can be deduped. 44 | new OptimizeCSSPlugin({ 45 | cssProcessorOptions: { 46 | safe: true 47 | } 48 | }), 49 | // generate dist index.html with correct asset hash for caching. 50 | // you can customize output by editing /index.html 51 | // see https://github.com/ampedandwired/html-webpack-plugin 52 | new HtmlWebpackPlugin({ 53 | filename: config.build.index, 54 | template: 'index.html', 55 | inject: true, 56 | minify: { 57 | removeComments: true, 58 | collapseWhitespace: true, 59 | removeAttributeQuotes: true 60 | // more options: 61 | // https://github.com/kangax/html-minifier#options-quick-reference 62 | }, 63 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin 64 | chunksSortMode: 'dependency' 65 | }), 66 | // split vendor js into its own file 67 | new webpack.optimize.CommonsChunkPlugin({ 68 | name: 'vendor', 69 | minChunks: function (module, count) { 70 | // any required modules inside node_modules are extracted to vendor 71 | return ( 72 | module.resource && 73 | /\.js$/.test(module.resource) && 74 | module.resource.indexOf( 75 | path.join(__dirname, '../node_modules') 76 | ) === 0 77 | ) 78 | } 79 | }), 80 | // extract webpack runtime and module manifest to its own file in order to 81 | // prevent vendor hash from being updated whenever app bundle is updated 82 | new webpack.optimize.CommonsChunkPlugin({ 83 | name: 'manifest', 84 | chunks: ['vendor'] 85 | }), 86 | // copy custom static assets 87 | new CopyWebpackPlugin([ 88 | { 89 | from: path.resolve(__dirname, '../static'), 90 | to: config.build.assetsSubDirectory, 91 | ignore: ['.*'] 92 | } 93 | ]) 94 | ] 95 | }) 96 | 97 | if (config.build.productionGzip) { 98 | var CompressionWebpackPlugin = require('compression-webpack-plugin') 99 | 100 | webpackConfig.plugins.push( 101 | new CompressionWebpackPlugin({ 102 | asset: '[path].gz[query]', 103 | algorithm: 'gzip', 104 | test: new RegExp( 105 | '\\.(' + 106 | config.build.productionGzipExtensions.join('|') + 107 | ')$' 108 | ), 109 | threshold: 10240, 110 | minRatio: 0.8 111 | }) 112 | ) 113 | } 114 | 115 | if (config.build.bundleAnalyzerReport) { 116 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin 117 | webpackConfig.plugins.push(new BundleAnalyzerPlugin()) 118 | } 119 | 120 | module.exports = webpackConfig 121 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | var merge = require('webpack-merge') 2 | var prodEnv = require('./prod.env') 3 | 4 | module.exports = merge(prodEnv, { 5 | NODE_ENV: '"development"' 6 | }) 7 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | // see http://vuejs-templates.github.io/webpack for documentation. 2 | var path = require('path') 3 | 4 | module.exports = { 5 | build: { 6 | env: require('./prod.env'), 7 | index: path.resolve(__dirname, '../dist/index.html'), 8 | assetsRoot: path.resolve(__dirname, '../dist'), 9 | assetsSubDirectory: 'static', 10 | assetsPublicPath: '/', 11 | productionSourceMap: true, 12 | // Gzip off by default as many popular static hosts such as 13 | // Surge or Netlify already gzip all static assets for you. 14 | // Before setting to `true`, make sure to: 15 | // npm install --save-dev compression-webpack-plugin 16 | productionGzip: false, 17 | productionGzipExtensions: ['js', 'css'], 18 | // Run the build command with an extra argument to 19 | // View the bundle analyzer report after build finishes: 20 | // `npm run build --report` 21 | // Set to `true` or `false` to always turn it on or off 22 | bundleAnalyzerReport: process.env.npm_config_report 23 | }, 24 | dev: { 25 | env: require('./dev.env'), 26 | port: 8080, 27 | autoOpenBrowser: true, 28 | assetsSubDirectory: 'static', 29 | assetsPublicPath: '/', 30 | proxyTable: {}, 31 | // CSS Sourcemaps off by default because relative paths are "buggy" 32 | // with this option, according to the CSS-Loader README 33 | // (https://github.com/webpack/css-loader#sourcemaps) 34 | // In our experience, they generally work as expected, 35 | // just be aware of this issue when enabling this option. 36 | cssSourceMap: false 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | NODE_ENV: '"production"' 3 | } 4 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | CryptoVue
-------------------------------------------------------------------------------- /dist/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "crypto_vue", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project on cryptocurrency", 5 | "author": "djirdehh ", 6 | "private": true, 7 | "scripts": { 8 | "postinstall": "npm install express" 9 | } 10 | } -------------------------------------------------------------------------------- /dist/server.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | var serveStatic = require('serve-static') 3 | 4 | const app = express() 5 | app.use(serveStatic(__dirname)) 6 | 7 | const port = process.env.PORT || 5000 8 | 9 | app.listen(port) 10 | console.log('server started on ' + port) 11 | -------------------------------------------------------------------------------- /dist/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2016 Google Inc. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | // DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY! 18 | // This file should be overwritten as part of your build process. 19 | // If you need to extend the behavior of the generated service worker, the best approach is to write 20 | // additional code and include it using the importScripts option: 21 | // https://github.com/GoogleChrome/sw-precache#importscripts-arraystring 22 | // 23 | // Alternatively, it's possible to make changes to the underlying template file and then use that as the 24 | // new base for generating output, via the templateFilePath option: 25 | // https://github.com/GoogleChrome/sw-precache#templatefilepath-string 26 | // 27 | // If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any 28 | // changes made to this original template file with your modified copy. 29 | 30 | // This generated service worker JavaScript will precache your site's resources. 31 | // The code needs to be saved in a .js file at the top-level of your site, and registered 32 | // from your pages in order to be used. See 33 | // https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js 34 | // for an example of how you can register this script and handle various service worker events. 35 | 36 | /* eslint-env worker, serviceworker */ 37 | /* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ 38 | 'use strict'; 39 | 40 | var precacheConfig = [["index.html","f45995170c4d091a1ab0a864676adcc5"],["server.js","82dd9bde500f2cd1e93532fd9227f313"],["static/antshares_large_logo.png","ad4517b248163782396fd1bffd7795f1"],["static/antshares_logo.png","ef1314795821be1583544a134d86d7b9"],["static/app-logo.png","184776965ca7b54c2907bd877a249217"],["static/bitcoin-cash_large_logo.png","af7adab1f6b666052d5fbd8939f6a308"],["static/bitcoin-cash_logo.png","2bdae0e9518ce40ec86f9a158250fefd"],["static/bitcoin-gold_large_logo.png","f5650ccef90018f716eeb723b798ad72"],["static/bitcoin-gold_logo.png","a4fb7e958477d5af6d5d7b4211fa2bb3"],["static/bitcoin_large_logo.png","732d2be30dc65a56bda2a4fa7e623e0f"],["static/bitcoin_logo.png","6c59755952631dcf51aed2661bf40fb3"],["static/bitconnect_large_logo.png","95b0cde2663efc4155ae21188d6570a4"],["static/bitconnect_logo.png","8212c58b11a66078eed4427a4aa14ef5"],["static/bitshares_large_logo.png","43972c3c246859a9807cf34936abec27"],["static/bitshares_logo.png","338859fdf88b7bb9ea1b3c43a2ea7f31"],["static/bytecoin-bcn_large_logo.png","84819df4413301ae00804363fb64d5a3"],["static/bytecoin-bcn_logo.png","74d02c9fced145a090b3e7b0dad204ab"],["static/cardano_large_logo.png","9b25ba7b3e1ac28a444b31f3307f109a"],["static/cardano_logo.png","35ec0bfaf0a3ff75d6521dbfefdaea84"],["static/chrome-webstore.png","a7acc8cf99e7d26ca4d9ba72a9bea68d"],["static/coinmarketcap_logo.png","f788772f8427bf1744fcd1d9eb641ee1"],["static/css/app.52cf0922490aa1d22425046018c325f7.css","f24d09202c5138289ff662ef6fed1ddc"],["static/dash_large_logo.png","1569624bc258ef5fbc5edc11f5374898"],["static/dash_logo.png","b6a4d622393b7762bf87e0928d9b7f1e"],["static/eos_large_logo.png","473e1ffaf9da5d309b6f29f44fe3d133"],["static/eos_logo.png","34c6a9c1600823fe0fb546f5b5506933"],["static/ethereum-classic_large_logo.png","f990d4117adcc791e5f32859acbc990a"],["static/ethereum-classic_logo.png","20ed876c124926cbbcdbdbf3a025ec9d"],["static/ethereum_large_logo.png","c23989735c8e2a75a51a014d6f7ab6a1"],["static/ethereum_logo.png","25462602de0a1f4e8421f48ce96f8020"],["static/favicon-16x16.png","2a29597aceaa3185bf59bc705389a3af"],["static/favicon-32x32.png","b0080cb62d48ecd56f48a0c5d1366fcf"],["static/favicon.ico","0454695b91f8b02c69d72a88953a44a1"],["static/golem-network-tokens_large_logo.png","c3fd2b6c0dd37a81566cdaedbacb5ddf"],["static/golem-network-tokens_logo.png","4f796f6127f74f12477778073647fdc0"],["static/img/icons/android-chrome-192x192.png","fc919206076a4de320d773a62f112367"],["static/img/icons/android-chrome-512x512.png","daccf171f44fea0d6fe03b6e13a1e151"],["static/img/icons/apple-touch-icon.png","647bc873ecd950a629421ebbf3fc35f6"],["static/img/icons/favicon-16x16.png","03b399ae8fe0d55bf3e8e3b827ca44e0"],["static/img/icons/favicon-32x32.png","2d86bbfa533d7e2ddcb3e7bb25f12362"],["static/img/icons/favicon.ico","20673d9510590e86210a23fecd271468"],["static/img/icons/mstile-150x150.png","9b3eec5f06d92d82afd9562914fc9f50"],["static/img/icons/safari-pinned-tab.svg","d55e22181bb3727e79496ab1f5b8eecd"],["static/iota_large_logo.png","afde80021e96da0b4517b02c93fc8267"],["static/iota_logo.png","c98beb8cea0a6a22ba380ae8033795a4"],["static/js/app.164371cfa141bb3caacb.js","0fde07057bb43d1403509f8704690f10"],["static/js/manifest.79d3aded97329ff6436e.js","b95576dc881bbd6b464b61473e575420"],["static/js/vendor.12a2dfb324b37d0c6120.js","d3373e35c576105193c0bb4987bb2818"],["static/litecoin_large_logo.png","e3831d6cb23eac2e6d6482870c00411c"],["static/litecoin_logo.png","2906c4bf1985410f904f3913da950dc7"],["static/meta_landing_screen.png","a8c54edc2032aa1d5829dd3a0c82a6f5"],["static/monero_large_logo.png","6b7b7f0764d9380b32bd1a4dffe698e0"],["static/monero_logo.png","8ac890845209db1487170eaed2320cad"],["static/nem_large_logo.png","1a6e526b10f8e55e28bac6f5ac637755"],["static/nem_logo.png","fb32f5b94078512113090ea5e7a0aa36"],["static/neo_large_logo.png","21e011144a2dc37a38edc2f732cf5ec7"],["static/neo_logo.png","66818f8dfe17e91d1894d7a0a020458d"],["static/ripple_large_logo.png","02bfc99ae627751d48fe0959765e1839"],["static/ripple_logo.png","1fd02cb99ee5b8a97e15533878b2a035"],["static/siacoin_large_logo.png","b7d94a4d4510b6314874a3a6be4e6b12"],["static/siacoin_logo.png","1957f80aa404f1260df46fa0e0da9c11"],["static/status_large_logo.png","f68bd01787e78330db0eb884daf179e3"],["static/status_logo.png","f77af377732367b068371fc645c6b78e"],["static/steem_large_logo.png","e272c0ffde9f65fc9b22e43db755224b"],["static/steem_logo.png","deb097b876b0df0cbdc14ab81b85a223"],["static/stellar_large_logo.png","79b5b214379d61c0619cea632a9049b9"],["static/stellar_logo.png","b55a5e9ff9af417c55aef54bca1f6935"],["static/stratis_large_logo.png","96feb239b0f00b2498d4576c01080ca0"],["static/stratis_logo.png","38468718f7868455c60eeb74d9f7e59c"],["static/tether_large_logo.png","96f46ec17f6d8a9c2c04471be352678d"],["static/tether_logo.png","a00b07ceff49328ac4808490d05f3e7a"],["static/undefined_large_logo.png","2659a86fd4c16d6d8faf8ebd1a9bed6b"],["static/undefined_logo.png","587869f4ebccb192379220cd1cab0d4f"],["static/veritaseum_large_logo.png","40c0a6a92cce6cb45e18598797de00d4"],["static/veritaseum_logo.png","1f2ee2ec09564da8cfd9c3bbff4d706c"],["static/vue_logo.png","82b9c7a5a3f405032b1db71a25f67021"],["static/waves_large_logo.png","38baf23f5717dafed29f4d28b6b274f7"],["static/waves_logo.png","1de844faf450c3ca11f5c617a42eaa67"],["static/zcash_large_logo.png","269946388b9bd13e94a38de30b98a793"],["static/zcash_logo.png","448f3565bc33b053f02a620b233b0c8a"]]; 41 | var cacheName = 'sw-precache-v2-sw-precache-' + (self.registration ? self.registration.scope : ''); 42 | 43 | 44 | var ignoreUrlParametersMatching = [/^utm_/]; 45 | 46 | 47 | 48 | var addDirectoryIndex = function (originalUrl, index) { 49 | var url = new URL(originalUrl); 50 | if (url.pathname.slice(-1) === '/') { 51 | url.pathname += index; 52 | } 53 | return url.toString(); 54 | }; 55 | 56 | var createCacheKey = function (originalUrl, paramName, paramValue, 57 | dontCacheBustUrlsMatching) { 58 | // Create a new URL object to avoid modifying originalUrl. 59 | var url = new URL(originalUrl); 60 | 61 | // If dontCacheBustUrlsMatching is not set, or if we don't have a match, 62 | // then add in the extra cache-busting URL parameter. 63 | if (!dontCacheBustUrlsMatching || 64 | !(url.toString().match(dontCacheBustUrlsMatching))) { 65 | url.search += (url.search ? '&' : '') + 66 | encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue); 67 | } 68 | 69 | return url.toString(); 70 | }; 71 | 72 | var isPathWhitelisted = function (whitelist, absoluteUrlString) { 73 | // If the whitelist is empty, then consider all URLs to be whitelisted. 74 | if (whitelist.length === 0) { 75 | return true; 76 | } 77 | 78 | // Otherwise compare each path regex to the path of the URL passed in. 79 | var path = (new URL(absoluteUrlString)).pathname; 80 | return whitelist.some(function(whitelistedPathRegex) { 81 | return path.match(whitelistedPathRegex); 82 | }); 83 | }; 84 | 85 | var stripIgnoredUrlParameters = function (originalUrl, 86 | ignoreUrlParametersMatching) { 87 | var url = new URL(originalUrl); 88 | 89 | url.search = url.search.slice(1) // Exclude initial '?' 90 | .split('&') // Split into an array of 'key=value' strings 91 | .map(function(kv) { 92 | return kv.split('='); // Split each 'key=value' string into a [key, value] array 93 | }) 94 | .filter(function(kv) { 95 | return ignoreUrlParametersMatching.every(function(ignoredRegex) { 96 | return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes. 97 | }); 98 | }) 99 | .map(function(kv) { 100 | return kv.join('='); // Join each [key, value] array into a 'key=value' string 101 | }) 102 | .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each 103 | 104 | return url.toString(); 105 | }; 106 | 107 | 108 | var hashParamName = '_sw-precache'; 109 | var urlsToCacheKeys = new Map( 110 | precacheConfig.map(function(item) { 111 | var relativeUrl = item[0]; 112 | var hash = item[1]; 113 | var absoluteUrl = new URL(relativeUrl, self.location); 114 | var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, /\.\w{8}\./); 115 | return [absoluteUrl.toString(), cacheKey]; 116 | }) 117 | ); 118 | 119 | function setOfCachedUrls(cache) { 120 | return cache.keys().then(function(requests) { 121 | return requests.map(function(request) { 122 | return request.url; 123 | }); 124 | }).then(function(urls) { 125 | return new Set(urls); 126 | }); 127 | } 128 | 129 | self.addEventListener('install', function(event) { 130 | event.waitUntil( 131 | caches.open(cacheName).then(function(cache) { 132 | return setOfCachedUrls(cache).then(function(cachedUrls) { 133 | return Promise.all( 134 | Array.from(urlsToCacheKeys.values()).map(function(cacheKey) { 135 | // If we don't have a key matching url in the cache already, add it. 136 | if (!cachedUrls.has(cacheKey)) { 137 | return cache.add(new Request(cacheKey, { 138 | credentials: 'same-origin', 139 | redirect: 'follow' 140 | })); 141 | } 142 | }) 143 | ); 144 | }); 145 | }).then(function() { 146 | 147 | // Force the SW to transition from installing -> active state 148 | return self.skipWaiting(); 149 | 150 | }) 151 | ); 152 | }); 153 | 154 | self.addEventListener('activate', function(event) { 155 | var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); 156 | 157 | event.waitUntil( 158 | caches.open(cacheName).then(function(cache) { 159 | return cache.keys().then(function(existingRequests) { 160 | return Promise.all( 161 | existingRequests.map(function(existingRequest) { 162 | if (!setOfExpectedUrls.has(existingRequest.url)) { 163 | return cache.delete(existingRequest); 164 | } 165 | }) 166 | ); 167 | }); 168 | }).then(function() { 169 | 170 | return self.clients.claim(); 171 | 172 | }) 173 | ); 174 | }); 175 | 176 | 177 | self.addEventListener('fetch', function(event) { 178 | if (event.request.method === 'GET') { 179 | // Should we call event.respondWith() inside this fetch event handler? 180 | // This needs to be determined synchronously, which will give other fetch 181 | // handlers a chance to handle the request if need be. 182 | var shouldRespond; 183 | 184 | // First, remove all the ignored parameter and see if we have that URL 185 | // in our cache. If so, great! shouldRespond will be true. 186 | var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching); 187 | shouldRespond = urlsToCacheKeys.has(url); 188 | 189 | // If shouldRespond is false, check again, this time with 'index.html' 190 | // (or whatever the directoryIndex option is set to) at the end. 191 | var directoryIndex = 'index.html'; 192 | if (!shouldRespond && directoryIndex) { 193 | url = addDirectoryIndex(url, directoryIndex); 194 | shouldRespond = urlsToCacheKeys.has(url); 195 | } 196 | 197 | // If shouldRespond is still false, check to see if this is a navigation 198 | // request, and if so, whether the URL matches navigateFallbackWhitelist. 199 | var navigateFallback = '/index.html'; 200 | if (!shouldRespond && 201 | navigateFallback && 202 | (event.request.mode === 'navigate') && 203 | isPathWhitelisted([], event.request.url)) { 204 | url = new URL(navigateFallback, self.location).toString(); 205 | shouldRespond = urlsToCacheKeys.has(url); 206 | } 207 | 208 | // If shouldRespond was set to true at any point, then call 209 | // event.respondWith(), using the appropriate cache key. 210 | if (shouldRespond) { 211 | event.respondWith( 212 | caches.open(cacheName).then(function(cache) { 213 | return cache.match(urlsToCacheKeys.get(url)).then(function(response) { 214 | if (response) { 215 | return response; 216 | } 217 | throw Error('The cached response that was expected is missing.'); 218 | }); 219 | }).catch(function(e) { 220 | // Fall back to just fetch()ing the request if some unexpected error 221 | // prevented the cached response from being valid. 222 | console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e); 223 | return fetch(event.request); 224 | }) 225 | ); 226 | } 227 | } 228 | }); 229 | 230 | 231 | // *** Start of auto-included sw-toolbox code. *** 232 | /* 233 | Copyright 2016 Google Inc. All Rights Reserved. 234 | 235 | Licensed under the Apache License, Version 2.0 (the "License"); 236 | you may not use this file except in compliance with the License. 237 | You may obtain a copy of the License at 238 | 239 | http://www.apache.org/licenses/LICENSE-2.0 240 | 241 | Unless required by applicable law or agreed to in writing, software 242 | distributed under the License is distributed on an "AS IS" BASIS, 243 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 244 | See the License for the specific language governing permissions and 245 | limitations under the License. 246 | */!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.toolbox=e()}}(function(){return function e(t,n,r){function o(c,s){if(!n[c]){if(!t[c]){var a="function"==typeof require&&require;if(!s&&a)return a(c,!0);if(i)return i(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var f=n[c]={exports:{}};t[c][0].call(f.exports,function(e){var n=t[c][1][e];return o(n?n:e)},f,f.exports,e,t,n,r)}return n[c].exports}for(var i="function"==typeof require&&require,c=0;ct.value[l]){var r=t.value[p];c.push(r),a.delete(r),t.continue()}},s.oncomplete=function(){r(c)},s.onabort=o}):Promise.resolve([])}function s(e,t){return t?new Promise(function(n,r){var o=[],i=e.transaction(h,"readwrite"),c=i.objectStore(h),s=c.index(l),a=s.count();s.count().onsuccess=function(){var e=a.result;e>t&&(s.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var i=r.value[p];o.push(i),c.delete(i),e-o.length>t&&r.continue()}})},i.oncomplete=function(){n(o)},i.onabort=r}):Promise.resolve([])}function a(e,t,n,r){return c(e,n,r).then(function(n){return s(e,t).then(function(e){return n.concat(e)})})}var u="sw-toolbox-",f=1,h="store",p="url",l="timestamp",d={};t.exports={getDb:o,setTimestampForUrl:i,expireEntries:a}},{}],3:[function(e,t,n){"use strict";function r(e){var t=a.match(e.request);t?e.respondWith(t(e.request)):a.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(a.default(e.request))}function o(e){s.debug("activate event fired");var t=u.cache.name+"$$$inactive$$$";e.waitUntil(s.renameCache(t,u.cache.name))}function i(e){return e.reduce(function(e,t){return e.concat(t)},[])}function c(e){var t=u.cache.name+"$$$inactive$$$";s.debug("install event fired"),s.debug("creating cache ["+t+"]"),e.waitUntil(s.openCache({cache:{name:t}}).then(function(e){return Promise.all(u.preCacheItems).then(i).then(s.validatePrecacheInput).then(function(t){return s.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}e("serviceworker-cache-polyfill");var s=e("./helpers"),a=e("./router"),u=e("./options");t.exports={fetchListener:r,activateListener:o,installListener:c}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){"use strict";var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){"use strict";var r=new URL("./",self.location),o=r.pathname,i=e("path-to-regexp"),c=function(e,t,n,r){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=o+t),this.keys=[],this.regexp=i(t,this.keys)),this.method=e,this.options=r,this.handler=n};c.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=c},{"path-to-regexp":15}],6:[function(e,t,n){"use strict";function r(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var o=e("./route"),i=e("./helpers"),c=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){var i=new RegExp(r.value[0]);i.test(t)&&o.push(r.value[1]),r=n.next()}return o},s=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){s.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),s.prototype.add=function(e,t,n,c){c=c||{};var s;t instanceof RegExp?s=RegExp:(s=c.origin||self.location.origin,s=s instanceof RegExp?s.source:r(s)),e=e.toLowerCase();var a=new o(e,t,n,c);this.routes.has(s)||this.routes.set(s,new Map);var u=this.routes.get(s);u.has(e)||u.set(e,new Map);var f=u.get(e),h=a.regexp||a.fullUrlRegExp;f.has(h.source)&&i.debug('"'+t+'" resolves to same regex as existing route.'),f.set(h.source,a)},s.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,c(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},s.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r0)return s[0].makeHandler(n)}}return null},s.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new s},{"./helpers":1,"./route":5}],7:[function(e,t,n){"use strict";function r(e,t,n){return n=n||{},i.debug("Strategy: cache first ["+e.url+"]",n),i.openCache(n).then(function(t){return t.match(e).then(function(t){var r=n.cache||o.cache,c=Date.now();return i.isResponseFresh(t,r.maxAgeSeconds,c)?t:i.fetchAndCache(e,n)})})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],8:[function(e,t,n){"use strict";function r(e,t,n){return n=n||{},i.debug("Strategy: cache only ["+e.url+"]",n),i.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||o.cache,r=Date.now();if(i.isResponseFresh(e,t.maxAgeSeconds,r))return e})})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],9:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(r,c){var s=!1,a=[],u=function(e){a.push(e.toString()),s?c(new Error('Both cache and network failed: "'+a.join('", "')+'"')):s=!0},f=function(e){e instanceof Response?r(e):u("No result returned")};o.fetchAndCache(e.clone(),n).then(f,u),i(e,t,n).then(f,u)})}var o=e("../helpers"),i=e("./cacheOnly");t.exports=r},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){"use strict";function r(e,t,n){n=n||{};var r=n.successResponses||o.successResponses,c=n.networkTimeoutSeconds||o.networkTimeoutSeconds;return i.debug("Strategy: network first ["+e.url+"]",n),i.openCache(n).then(function(t){var s,a,u=[];if(c){var f=new Promise(function(r){s=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||o.cache,c=Date.now(),s=t.maxAgeSeconds;i.isResponseFresh(e,s,c)&&r(e)})},1e3*c)});u.push(f)}var h=i.fetchAndCache(e,n).then(function(e){if(s&&clearTimeout(s),r.test(e.status))return e;throw i.debug("Response was an HTTP error: "+e.statusText,n),a=e,new Error("Bad response")}).catch(function(r){return i.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(a)return a;throw r})});return u.push(h),Promise.race(u)})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],12:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}var o=e("../helpers");t.exports=r},{"../helpers":1}],13:[function(e,t,n){"use strict";var r=e("./options"),o=e("./router"),i=e("./helpers"),c=e("./strategies"),s=e("./listeners");i.debug("Service Worker Toolbox is loading"),self.addEventListener("install",s.installListener),self.addEventListener("activate",s.activateListener),self.addEventListener("fetch",s.fetchListener),t.exports={networkOnly:c.networkOnly,networkFirst:c.networkFirst,cacheOnly:c.cacheOnly,cacheFirst:c.cacheFirst,fastest:c.fastest,router:o,options:r,cache:i.cache,uncache:i.uncache,precache:i.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],o=0,i=0,c="",s=t&&t.delimiter||"/";null!=(n=x.exec(e));){var f=n[0],h=n[1],p=n.index;if(c+=e.slice(i,p),i=p+f.length,h)c+=h[1];else{var l=e[i],d=n[2],m=n[3],g=n[4],v=n[5],w=n[6],y=n[7];c&&(r.push(c),c="");var b=null!=d&&null!=l&&l!==d,E="+"===w||"*"===w,R="?"===w||"*"===w,k=n[2]||s,$=g||v;r.push({name:m||o++,prefix:d||"",delimiter:k,optional:R,repeat:E,partial:b,asterisk:!!y,pattern:$?u($):y?".*":"[^"+a(k)+"]+?"})}}return i=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}); 247 | 248 | 249 | // *** End of auto-included sw-toolbox code. *** 250 | 251 | 252 | 253 | // Runtime cache configuration, using the sw-toolbox library. 254 | 255 | toolbox.router.get(/api\.coinmarketcap\.com/, toolbox.networkFirst, {}); 256 | 257 | 258 | 259 | 260 | -------------------------------------------------------------------------------- /dist/static/antshares_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/antshares_large_logo.png -------------------------------------------------------------------------------- /dist/static/antshares_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/antshares_logo.png -------------------------------------------------------------------------------- /dist/static/app-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/app-logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin-cash_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin-cash_large_logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin-cash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin-cash_logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin-gold_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin-gold_large_logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin-gold_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin-gold_logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin_large_logo.png -------------------------------------------------------------------------------- /dist/static/bitcoin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitcoin_logo.png -------------------------------------------------------------------------------- /dist/static/bitconnect_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitconnect_large_logo.png -------------------------------------------------------------------------------- /dist/static/bitconnect_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitconnect_logo.png -------------------------------------------------------------------------------- /dist/static/bitshares_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitshares_large_logo.png -------------------------------------------------------------------------------- /dist/static/bitshares_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bitshares_logo.png -------------------------------------------------------------------------------- /dist/static/bytecoin-bcn_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bytecoin-bcn_large_logo.png -------------------------------------------------------------------------------- /dist/static/bytecoin-bcn_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/bytecoin-bcn_logo.png -------------------------------------------------------------------------------- /dist/static/cardano_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/cardano_large_logo.png -------------------------------------------------------------------------------- /dist/static/cardano_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/cardano_logo.png -------------------------------------------------------------------------------- /dist/static/chrome-webstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/chrome-webstore.png -------------------------------------------------------------------------------- /dist/static/coinmarketcap_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/coinmarketcap_logo.png -------------------------------------------------------------------------------- /dist/static/dash_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/dash_large_logo.png -------------------------------------------------------------------------------- /dist/static/dash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/dash_logo.png -------------------------------------------------------------------------------- /dist/static/eos_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/eos_large_logo.png -------------------------------------------------------------------------------- /dist/static/eos_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/eos_logo.png -------------------------------------------------------------------------------- /dist/static/ethereum-classic_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/ethereum-classic_large_logo.png -------------------------------------------------------------------------------- /dist/static/ethereum-classic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/ethereum-classic_logo.png -------------------------------------------------------------------------------- /dist/static/ethereum_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/ethereum_large_logo.png -------------------------------------------------------------------------------- /dist/static/ethereum_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/ethereum_logo.png -------------------------------------------------------------------------------- /dist/static/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/favicon-16x16.png -------------------------------------------------------------------------------- /dist/static/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/favicon-32x32.png -------------------------------------------------------------------------------- /dist/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/favicon.ico -------------------------------------------------------------------------------- /dist/static/golem-network-tokens_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/golem-network-tokens_large_logo.png -------------------------------------------------------------------------------- /dist/static/golem-network-tokens_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/golem-network-tokens_logo.png -------------------------------------------------------------------------------- /dist/static/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /dist/static/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /dist/static/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /dist/static/img/icons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #270e30 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /dist/static/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /dist/static/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /dist/static/img/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/favicon.ico -------------------------------------------------------------------------------- /dist/static/img/icons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CryptoVue", 3 | "icons": [ 4 | { 5 | "src": "/static/img/icons/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image/png" 8 | }, 9 | { 10 | "src": "/static/img/icons/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image/png" 13 | } 14 | ], 15 | "theme_color": "#270e30", 16 | "background_color": "#270e30", 17 | "display": "standalone" 18 | } -------------------------------------------------------------------------------- /dist/static/img/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/img/icons/mstile-150x150.png -------------------------------------------------------------------------------- /dist/static/img/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /dist/static/iota_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/iota_large_logo.png -------------------------------------------------------------------------------- /dist/static/iota_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/dist/static/iota_logo.png -------------------------------------------------------------------------------- /dist/static/js/manifest.79d3aded97329ff6436e.js: -------------------------------------------------------------------------------- 1 | !function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var i,u,f,s=0,l=[];s 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | CryptoVue 46 | 47 | 52 | 53 | 62 | 63 | 74 | 75 | 76 |
77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "crypto_vue", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project on cryptocurrency", 5 | "author": "djirdehh ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "node build/dev-server.js", 9 | "build": "node build/build.js && sw-precache --verbose --config=sw-precache-config.js", 10 | "deploy": "git subtree push --prefix dist heroku master", 11 | "lint": "eslint --ext .js,.vue src" 12 | }, 13 | "dependencies": { 14 | "axios": "^0.16.2", 15 | "bulma": "^0.4.3", 16 | "chart.js": "^2.6.0", 17 | "vue": "^2.3.3", 18 | "vue-awesome": "^2.3.1", 19 | "vue-axios": "^2.0.2", 20 | "vue-chartjs": "^2.8.1", 21 | "vue-router": "^2.7.0" 22 | }, 23 | "devDependencies": { 24 | "autoprefixer": "^6.7.2", 25 | "babel-core": "^6.22.1", 26 | "babel-eslint": "^7.1.1", 27 | "babel-loader": "^6.2.10", 28 | "babel-plugin-transform-runtime": "^6.22.0", 29 | "babel-preset-env": "^1.3.2", 30 | "babel-preset-stage-2": "^6.22.0", 31 | "babel-register": "^6.22.0", 32 | "chalk": "^1.1.3", 33 | "connect-history-api-fallback": "^1.3.0", 34 | "copy-webpack-plugin": "^4.0.1", 35 | "css-loader": "^0.28.0", 36 | "eslint": "^3.19.0", 37 | "eslint-config-standard": "^6.2.1", 38 | "eslint-friendly-formatter": "^2.0.7", 39 | "eslint-loader": "^1.7.1", 40 | "eslint-plugin-html": "^2.0.0", 41 | "eslint-plugin-promise": "^3.4.0", 42 | "eslint-plugin-standard": "^2.0.1", 43 | "eventsource-polyfill": "^0.9.6", 44 | "express": "^4.14.1", 45 | "extract-text-webpack-plugin": "^2.0.0", 46 | "file-loader": "^0.11.1", 47 | "friendly-errors-webpack-plugin": "^1.1.3", 48 | "html-webpack-plugin": "^2.28.0", 49 | "http-proxy-middleware": "^0.17.3", 50 | "node-sass": "^4.5.3", 51 | "opn": "^4.0.2", 52 | "optimize-css-assets-webpack-plugin": "^1.3.0", 53 | "ora": "^1.2.0", 54 | "rimraf": "^2.6.0", 55 | "sass-loader": "^6.0.6", 56 | "semver": "^5.3.0", 57 | "serve-static": "^1.12.3", 58 | "shelljs": "^0.7.6", 59 | "url-loader": "^0.5.8", 60 | "vue-loader": "^12.1.0", 61 | "vue-style-loader": "^3.0.1", 62 | "vue-template-compiler": "^2.3.3", 63 | "webpack": "^2.6.1", 64 | "webpack-bundle-analyzer": "^2.2.1", 65 | "webpack-dev-middleware": "^1.10.0", 66 | "webpack-hot-middleware": "^2.18.0", 67 | "webpack-merge": "^4.1.0", 68 | "sw-precache": "^4.3.0" 69 | }, 70 | "engines": { 71 | "node": ">= 4.0.0", 72 | "npm": ">= 3.0.0" 73 | }, 74 | "browserslist": [ 75 | "> 1%", 76 | "last 2 versions", 77 | "not ie <= 8" 78 | ] 79 | } 80 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | 24 | 48 | -------------------------------------------------------------------------------- /src/assets/bitcoin_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/src/assets/bitcoin_image.png -------------------------------------------------------------------------------- /src/assets/ethereum_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/src/assets/ethereum_image.png -------------------------------------------------------------------------------- /src/assets/litecoin_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/src/assets/litecoin_image.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/FooterHero.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 32 | 33 | 94 | -------------------------------------------------------------------------------- /src/components/HeaderHero.vue: -------------------------------------------------------------------------------- 1 | 64 | 65 | 95 | 96 | 366 | -------------------------------------------------------------------------------- /src/components/body/BodyHero.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 90 | 91 | 209 | -------------------------------------------------------------------------------- /src/components/body/SelectedHero.vue: -------------------------------------------------------------------------------- 1 | 94 | 95 | 189 | 190 | 567 | -------------------------------------------------------------------------------- /src/components/body/sub/DoughnutChart.js: -------------------------------------------------------------------------------- 1 | import { Doughnut } from 'vue-chartjs' 2 | 3 | export default Doughnut.extend({ 4 | props: ['data'], 5 | mounted () { 6 | this.renderChart( 7 | this.data, 8 | { responsive: true, 9 | maintainAspectRatio: false, 10 | legend: { 11 | display: false 12 | }, 13 | tooltips: { 14 | enabled: false 15 | } 16 | }) 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /src/cryptocurrency-data.json: -------------------------------------------------------------------------------- 1 | { 2 | "bitcoin": { 3 | "description": "The first decentralized peer-to-peer payment network in which encryption techniques are used to regulate the generation of units of currency and verify the transfer of funds, all operating independently of a central bank.", 4 | "website": "https://bitcoin.org/en/", 5 | "paper": "https://bitcoin.org/bitcoin.pdf", 6 | "github": "https://github.com/bitcoin" 7 | }, 8 | "bitcoin-cash": { 9 | "description": "A decentralized peer-to-peer payment network that came into existence as a result of a hard fork from the original bitcoin blockchain. Bitcoin Cash emerged after some of the leading backers disagreed on how to take Bitcoin further and are utilizing a new proposal that consists of a new transaction type and an increase in block limit size.", 10 | "website": "", 11 | "paper": "", 12 | "github": "" 13 | }, 14 | "bitcoin-gold": { 15 | "description": "A hard-fork of the original Bitcoin blockchain, Bitcoin Gold aims to implement features with a new proof-of-work algorithm that allow for further decentralization and replay protection.", 16 | "website": "https://bitcoingold.org/", 17 | "paper": "", 18 | "github": "https://github.com/BTCGPU/BTCGPU" 19 | }, 20 | "ethereum": { 21 | "description": "An open-source, public, blockchain-based computing platform that enables developers to build and deploy decentralized applications. Ether (ETH), the crypto token that fuels the Ethereum network acts as a tradeable cryptocurrency and is used to pay for transaction fees and services on the network.", 22 | "website": "https://www.ethereum.org/", 23 | "paper": "https://github.com/ethereum/wiki/wiki/White-Paper", 24 | "github": "https://github.com/ethereum" 25 | }, 26 | "ripple": { 27 | "description": "Both a digital currency (XRP) and a distributed real-time payment protocol within which that currency is transferred. Ripple's distributed technology aims to enable banks to send real-time international payments across networks; to meet growing demands for faster, low-cost, on-demand global payment services.", 28 | "website": "https://ripple.com/", 29 | "paper": "https://ripple.com/files/ripple_consensus_whitepaper.pdf", 30 | "github": "https://github.com/ripple" 31 | }, 32 | "litecoin": { 33 | "description": "An open-source peer-to-peer cryptocurrency that uses the scrypt proof of work algorithm as opposed to Bitcoin's hashing algorithm. Litecoin was originally created to improve upon Bitcoin by speeding up transaction confirmations.", 34 | "website": "https://litecoin.org/", 35 | "paper": "", 36 | "github": "https://github.com/litecoin-project" 37 | }, 38 | "ethereum-classic": { 39 | "description": "An open-source, blockchain-based computing platform that came into existence as a result of the DAO hard-fork. Identical to Ethereum up to a certain block (block 1920000), Ethereum Classic consolidated members of the Ethereum community who rejected the fork.", 40 | "website": "https://ethereumclassic.github.io/", 41 | "paper": "https://coss.io/documents/white-papers/ethereum-classic.pdf", 42 | "github": "https://github.com/ethereumclassic" 43 | }, 44 | "dash": { 45 | "description": "An open-source peer-to-peer cryptocurrency that offers all the features of Bitcoin as well as other capabilities which include private transactions, instant transactions and decentralized governance.", 46 | "website": "https://www.dash.org/", 47 | "paper": "https://www.dash.org/wp-content/uploads/2015/04/Dash-WhitepaperV1.pdf", 48 | "github": "https://github.com/dashpay" 49 | }, 50 | "nem": { 51 | "description": "A peer-to-peer cryptocurrency (XEM) and blockchain platform that has introduced new features in blockchain technology through its proof-of-importance (POI) algorithm, encrypted messaging system, multisignature accounts and Eigentrust++ reputation system.", 52 | "website": "https://www.nem.io/", 53 | "paper": "https://www.nem.io/NEM_techRef.pdf", 54 | "github": "https://github.com/NemProject" 55 | }, 56 | "iota": { 57 | "description": "A new transactional settlement and data integrity layer for the Internet of Things. IOTA is based on a new distributed ledger architecture which aims to overcome inefficiencies of current Blockchain designs to introduce a new way of reaching peer-to-peer consensus.", 58 | "website": "https://iota.org/", 59 | "paper": "https://iota.org/IOTA_Whitepaper.pdf", 60 | "github": "https://github.com/iotaledger" 61 | }, 62 | "monero": { 63 | "description": "An open-source cryptocurrency that is heavily focused on privacy, decentralisation and scalability. Monero is based on the CryptoNote protocol and has significant algorithmic differences to Bitcoin.", 64 | "website": "https://getmonero.org/", 65 | "paper": "", 66 | "github": "https://github.com/monero-project" 67 | }, 68 | "eos": { 69 | "description": "Software that introduces a new blockhain architecture designed to enable vertical and horizontal scaling of decentralized applications with the aim of quick and easy deployment, scalability to millions of transactions per second and elimination of user fees.", 70 | "website": "https://eos.io/", 71 | "paper": "https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md", 72 | "github": "https://github.com/EOSIO" 73 | }, 74 | "stratis": { 75 | "description": "A Blockchain-as-a-service (BaaS) Platform that allows corporations in the financial sector to create their custom blockchain applications with the features they require. Stratis currency (STRAT), the native currency within the platform, will be needed to create and fuel these blockchains.", 76 | "website": "https://stratisplatform.com/", 77 | "paper": "https://stratisplatform.com/files/Stratis_Whitepaper.pdf", 78 | "github": "https://github.com/stratisproject" 79 | }, 80 | "bitshares": { 81 | "description": "BitShares offers a stack of financial services which include enabling an open, scalable decentralized exchange as well as banking on a blockchain. Built to be fast, efficient and scalable to handle tens of thousands of transactions per second that happen on a decentralized exchange.", 82 | "website": "https://bitshares.org/", 83 | "paper": "http://docs.bitshares.org/bitshares/papers/index.html", 84 | "github": "https://github.com/bitshares" 85 | }, 86 | "bitconnect": { 87 | "description": "A community driven open-source cryptocurrency that allows BitConnect holders to receive interest due to helping maintain the security of the network.", 88 | "website": "https://bitconnectcoin.co/", 89 | "paper": "", 90 | "github": "https://github.com/bitconnectcoin" 91 | }, 92 | "tether": { 93 | "description": "The Tether platform is built on top of open blockchain technologies to allow users to convert fiat cash to digital currency. This is done by tethering the value of the cryptocurrency to the price of national currencies - US Dollar, the Euro and the Yen.", 94 | "website": "https://tether.to/", 95 | "paper": "https://bravenewcoin.com/assets/Whitepapers/Tether-White-Paper.pdf", 96 | "github": "" 97 | }, 98 | "zcash": { 99 | "description": "The first permissionless cryptocurrency that aims to fully protect the privacy of transactions by hiding the sender, recipient and value on the blockchain.", 100 | "website": "https://z.cash/", 101 | "paper": "http://zerocash-project.org/media/pdf/zerocash-extended-20140518.pdf", 102 | "github": "https://github.com/zcash" 103 | }, 104 | "neo": { 105 | "description": "China's first original and open-source public blockchain. Initially known as Antshares, Neo aims to support multiple types of digital assets as well as allow users to establish smart contracts to enhance and enrich the functions of said digital assets.", 106 | "website": "https://neo.org/", 107 | "paper": "https://github.com/neo-project/neo/wiki/Whitepaper-1.1", 108 | "github": "https://github.com/neo-project" 109 | }, 110 | "bytecoin-bcn": { 111 | "description": "Launched in 2012, Bytecoin is an untraceable cryptocurrency that launched in 2012 that offers fee-free instant international payments, secure funds and privacy.", 112 | "website": "https://bytecoin.org/", 113 | "paper": "https://cryptonote.org/whitepaper.pdf", 114 | "github": "https://github.com/amjuarez/bytecoin" 115 | }, 116 | "veritaseum": { 117 | "description": "A smart contracts-based, peer-to-peer wallet interface (in beta) that currently interacts with Bitcoin blockchain and is to be ported to Ethereum. Veritaseum aims to allow non-technical individuals & entities to quickly create, enter and manage smart contracts directly with others without an authoritative 3rd party.", 118 | "website": "http://veritas.veritaseum.com/", 119 | "paper": "", 120 | "github": "https://github.com/veritaseum" 121 | }, 122 | "steem": { 123 | "description": "An incentivized, blockchain-based social media platform where users can earn the digital currency (STEEM) by upvoting, posting and sharing content.", 124 | "website": "https://steem.io/", 125 | "paper": "https://steem.io/SteemWhitePaper.pdf", 126 | "github": "https://github.com/steemit" 127 | }, 128 | "waves": { 129 | "description": "A decentralized blockchain platform focusing on custom blockchain tokens operations where token exchange facilitates fundraising, crowdfunding, and trading of financial instruments on the blockchain.", 130 | "website": "https://wavesplatform.com/", 131 | "paper": "https://blog.wavesplatform.com/waves-whitepaper-164dd6ca6a23", 132 | "github": "https://github.com/wavesplatform/" 133 | }, 134 | "qtum": { 135 | "description": "The first digital currency that aims to allow Decentralized Applications and Smart Contracts to execute as part of an Unspent Transaction Output (UTXO), using a Proof-of-Stake model.", 136 | "website": "http://www.qtum.org/", 137 | "paper": "https://qtum.org/en/white-papers", 138 | "github": "https://github.com/qtumproject" 139 | }, 140 | "iconomi": { 141 | "description": "Using Ethereum smart contracts, ICONOMI is a digital assets management platform that aims to provide a simple way for beginners and blockchain experts, to invest and manage their digital assets.", 142 | "website": "https://www.iconomi.net/", 143 | "paper": "https://coss.io/documents/white-papers/iconomi.pdf", 144 | "github": "" 145 | }, 146 | "gnosis-gno": { 147 | "description": "Based on Ethereum, Gnosis is a decentralized prediction market platform that aims to disrupt some of the largest existing industries (insurance, financial services) in the near future.", 148 | "website": "https://gnosis.pm/", 149 | "paper": "https://gnosis.pm/resources/default/pdf/gnosis_whitepaper.pdf", 150 | "github": "https://github.com/gnosis" 151 | }, 152 | "status": { 153 | "description": "A modular utility token that fuels the Status network - an open source messaging platform and mobile interface to interact with decentralized applications that run on the Ethereum Network.", 154 | "website": "https://status.im/", 155 | "paper": "https://status.im/whitepaper.pdf", 156 | "github": "https://github.com/status-im" 157 | }, 158 | "siacoin": { 159 | "description": "Sia is a decentralized cloud storage platform that intends to compete with existing storage solutions, at both the P2P and enterprise level. Peers on Sia rent storage from each other while Sia itself stores only the storage contracts formed between parties.", 160 | "website": "http://sia.tech/", 161 | "paper": "https://www.sia.tech/whitepaper.pdf", 162 | "github": "https://github.com/NebulousLabs/Sia" 163 | }, 164 | "golem-network-tokens": { 165 | "description": "Golem project aims to create a global, open sourced, decentralized supercomputer in which producers may sell spare CPU time of their personal computers and consumers may acquire resources for computation-intensive tasks.", 166 | "website": "https://golem.network/", 167 | "paper": "http://golemproject.net/doc/DraftGolemProjectWhitepaper.pdf", 168 | "github": "https://github.com/golemfactory" 169 | }, 170 | "stellar": { 171 | "description": "A platform that aims to facilitate moving currency quickly, reliably and almost no cost by connecting banks, payments systems and people through the Stellar network.", 172 | "website": "https://www.stellar.org/", 173 | "paper": "https://www.stellar.org/papers/stellar-consensus-protocol.pdf", 174 | "github": "https://github.com/stellar" 175 | }, 176 | "cardano": { 177 | "description": "A decentralized blockchain application that aims to develop a research-driven smart contract platform as well as the digital currency named Ada.", 178 | "website": "https://www.cardanohub.org/en/home/", 179 | "paper": "https://www.cardanohub.org/en/academic-papers/", 180 | "github": "https://github.com/input-output-hk/cardano-sl/" 181 | }, 182 | "undefined": { 183 | "description": "Hmmm. Though the price, circulating supply and market cap values are accurate - there doesn't appear to be any detailed data captured on this cryptocurrency. Should be updated in due time!", 184 | "website": "", 185 | "paper": "", 186 | "github": "" 187 | } 188 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import axios from 'axios' 5 | import VueAxios from 'vue-axios' 6 | import 'vue-awesome/icons' 7 | import Icon from 'vue-awesome/components/Icon' 8 | import DoughnutChart from './components/body/sub/DoughnutChart' 9 | import App from './App' 10 | import router from './routes.js' 11 | 12 | import {store} from './store.js' 13 | 14 | Vue.use(VueAxios, axios) 15 | Vue.component('icon', Icon) 16 | Vue.component('doughnut-chart', DoughnutChart) 17 | 18 | Vue.config.productionTip = false 19 | 20 | /* eslint-disable no-new */ 21 | new Vue({ 22 | el: '#app', 23 | router: router, 24 | render: h => h(App), 25 | data: { 26 | sharedState: store.state 27 | }, 28 | created () { 29 | store.getCryptoCurrencies() 30 | store.getTotalMarketCapUSD() 31 | } 32 | }) 33 | -------------------------------------------------------------------------------- /src/routes.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import BodyHero from './components/body/BodyHero.vue' 5 | import SelectedHero from './components/body/SelectedHero.vue' 6 | 7 | Vue.use(VueRouter) 8 | 9 | console.log(VueRouter) 10 | 11 | export default new VueRouter({ 12 | mode: 'history', 13 | routes: [ 14 | { 15 | path: '', 16 | component: BodyHero 17 | }, 18 | { 19 | path: '/:id', 20 | component: SelectedHero 21 | } 22 | ], 23 | scrollBehavior (to, from, savedPosition) { 24 | return { x: 0, y: 0 } 25 | } 26 | }) 27 | -------------------------------------------------------------------------------- /src/store.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import axios from 'axios' 3 | import VueAxios from 'vue-axios' 4 | 5 | Vue.use(VueAxios, axios) 6 | 7 | const cryptoCurrencyData = require('./cryptocurrency-data.json') 8 | 9 | export const store = { 10 | state: { 11 | totalMarketCapUSD: 0, 12 | cryptoCurrencies: [] 13 | }, 14 | getCryptoCurrencies () { 15 | const getUrl = 'https://api.coinmarketcap.com/v1/ticker/?limit=10' 16 | axios.get(getUrl).then((response) => { 17 | this.state.cryptoCurrencies = response.data 18 | this.state.cryptoCurrencies.forEach(cryptoCurrency => this.addImageAndDescription(cryptoCurrency)) 19 | }) 20 | }, 21 | addImageAndDescription (cryptoCurrency) { 22 | cryptoCurrency.id = cryptoCurrency.id in cryptoCurrencyData ? cryptoCurrency.id : undefined 23 | cryptoCurrency.image = `${cryptoCurrency.id}_image` 24 | cryptoCurrency.description = cryptoCurrencyData[cryptoCurrency.id].description 25 | cryptoCurrency.website = cryptoCurrencyData[cryptoCurrency.id].website 26 | cryptoCurrency.paper = cryptoCurrencyData[cryptoCurrency.id].paper 27 | cryptoCurrency.github = cryptoCurrencyData[cryptoCurrency.id].github 28 | 29 | cryptoCurrency.positivePercentChange = !(cryptoCurrency.percent_change_24h.indexOf('-') > -1) 30 | cryptoCurrency.percentChange24h = cryptoCurrency.percent_change_24h.replace(/^-/, '') 31 | }, 32 | getTotalMarketCapUSD () { 33 | const getUrl = 'https://api.coinmarketcap.com/v1/global/' 34 | axios.get(getUrl).then((response) => { 35 | const globalData = response.data 36 | this.state.totalMarketCapUSD = globalData.total_market_cap_usd 37 | }) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/.gitkeep -------------------------------------------------------------------------------- /static/antshares_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/antshares_large_logo.png -------------------------------------------------------------------------------- /static/antshares_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/antshares_logo.png -------------------------------------------------------------------------------- /static/app-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/app-logo.png -------------------------------------------------------------------------------- /static/bitcoin-cash_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin-cash_large_logo.png -------------------------------------------------------------------------------- /static/bitcoin-cash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin-cash_logo.png -------------------------------------------------------------------------------- /static/bitcoin-gold_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin-gold_large_logo.png -------------------------------------------------------------------------------- /static/bitcoin-gold_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin-gold_logo.png -------------------------------------------------------------------------------- /static/bitcoin_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin_large_logo.png -------------------------------------------------------------------------------- /static/bitcoin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitcoin_logo.png -------------------------------------------------------------------------------- /static/bitconnect_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitconnect_large_logo.png -------------------------------------------------------------------------------- /static/bitconnect_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitconnect_logo.png -------------------------------------------------------------------------------- /static/bitshares_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitshares_large_logo.png -------------------------------------------------------------------------------- /static/bitshares_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bitshares_logo.png -------------------------------------------------------------------------------- /static/bytecoin-bcn_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bytecoin-bcn_large_logo.png -------------------------------------------------------------------------------- /static/bytecoin-bcn_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/bytecoin-bcn_logo.png -------------------------------------------------------------------------------- /static/cardano_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/cardano_large_logo.png -------------------------------------------------------------------------------- /static/cardano_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/cardano_logo.png -------------------------------------------------------------------------------- /static/chrome-webstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/chrome-webstore.png -------------------------------------------------------------------------------- /static/coinmarketcap_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/coinmarketcap_logo.png -------------------------------------------------------------------------------- /static/dash_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/dash_large_logo.png -------------------------------------------------------------------------------- /static/dash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/dash_logo.png -------------------------------------------------------------------------------- /static/eos_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/eos_large_logo.png -------------------------------------------------------------------------------- /static/eos_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/eos_logo.png -------------------------------------------------------------------------------- /static/ethereum-classic_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ethereum-classic_large_logo.png -------------------------------------------------------------------------------- /static/ethereum-classic_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ethereum-classic_logo.png -------------------------------------------------------------------------------- /static/ethereum_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ethereum_large_logo.png -------------------------------------------------------------------------------- /static/ethereum_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ethereum_logo.png -------------------------------------------------------------------------------- /static/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/favicon-16x16.png -------------------------------------------------------------------------------- /static/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/favicon-32x32.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/favicon.ico -------------------------------------------------------------------------------- /static/golem-network-tokens_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/golem-network-tokens_large_logo.png -------------------------------------------------------------------------------- /static/golem-network-tokens_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/golem-network-tokens_logo.png -------------------------------------------------------------------------------- /static/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /static/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /static/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /static/img/icons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #270e30 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /static/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /static/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /static/img/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/favicon.ico -------------------------------------------------------------------------------- /static/img/icons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CryptoVue", 3 | "icons": [ 4 | { 5 | "src": "/static/img/icons/android-chrome-192x192.png", 6 | "sizes": "192x192", 7 | "type": "image/png" 8 | }, 9 | { 10 | "src": "/static/img/icons/android-chrome-512x512.png", 11 | "sizes": "512x512", 12 | "type": "image/png" 13 | } 14 | ], 15 | "theme_color": "#270e30", 16 | "background_color": "#270e30", 17 | "display": "standalone" 18 | } -------------------------------------------------------------------------------- /static/img/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/img/icons/mstile-150x150.png -------------------------------------------------------------------------------- /static/img/icons/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /static/iota_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/iota_large_logo.png -------------------------------------------------------------------------------- /static/iota_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/iota_logo.png -------------------------------------------------------------------------------- /static/litecoin_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/litecoin_large_logo.png -------------------------------------------------------------------------------- /static/litecoin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/litecoin_logo.png -------------------------------------------------------------------------------- /static/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CryptoVue", 3 | "short_name": "CryptoVue", 4 | "icons": [ 5 | { 6 | "src": "/static/img/icons/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/static/img/icons/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#270e30", 17 | "background_color": "#270e30", 18 | "start_url": "/", 19 | "display": "fullscreen", 20 | "orientation": "portrait" 21 | } -------------------------------------------------------------------------------- /static/meta_landing_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/meta_landing_screen.png -------------------------------------------------------------------------------- /static/monero_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/monero_large_logo.png -------------------------------------------------------------------------------- /static/monero_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/monero_logo.png -------------------------------------------------------------------------------- /static/nem_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/nem_large_logo.png -------------------------------------------------------------------------------- /static/nem_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/nem_logo.png -------------------------------------------------------------------------------- /static/neo_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/neo_large_logo.png -------------------------------------------------------------------------------- /static/neo_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/neo_logo.png -------------------------------------------------------------------------------- /static/ripple_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ripple_large_logo.png -------------------------------------------------------------------------------- /static/ripple_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/ripple_logo.png -------------------------------------------------------------------------------- /static/siacoin_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/siacoin_large_logo.png -------------------------------------------------------------------------------- /static/siacoin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/siacoin_logo.png -------------------------------------------------------------------------------- /static/status_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/status_large_logo.png -------------------------------------------------------------------------------- /static/status_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/status_logo.png -------------------------------------------------------------------------------- /static/steem_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/steem_large_logo.png -------------------------------------------------------------------------------- /static/steem_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/steem_logo.png -------------------------------------------------------------------------------- /static/stellar_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/stellar_large_logo.png -------------------------------------------------------------------------------- /static/stellar_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/stellar_logo.png -------------------------------------------------------------------------------- /static/stratis_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/stratis_large_logo.png -------------------------------------------------------------------------------- /static/stratis_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/stratis_logo.png -------------------------------------------------------------------------------- /static/tether_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/tether_large_logo.png -------------------------------------------------------------------------------- /static/tether_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/tether_logo.png -------------------------------------------------------------------------------- /static/undefined_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/undefined_large_logo.png -------------------------------------------------------------------------------- /static/undefined_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/undefined_logo.png -------------------------------------------------------------------------------- /static/veritaseum_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/veritaseum_large_logo.png -------------------------------------------------------------------------------- /static/veritaseum_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/veritaseum_logo.png -------------------------------------------------------------------------------- /static/vue_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/vue_logo.png -------------------------------------------------------------------------------- /static/waves_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/waves_large_logo.png -------------------------------------------------------------------------------- /static/waves_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/waves_logo.png -------------------------------------------------------------------------------- /static/zcash_large_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/zcash_large_logo.png -------------------------------------------------------------------------------- /static/zcash_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/djirdehh/crypto_vue/7653c75be7bc4c5dc912f3ced88aa133a3b7f2b9/static/zcash_logo.png -------------------------------------------------------------------------------- /sw-precache-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | stripPrefix: 'dist/', 3 | staticFileGlobs: [ 4 | 'dist/*.html', 5 | 'dist/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}', 6 | 'dist/***/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}', 7 | 'dist/****/***/**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,ico}' 8 | ], 9 | dontCacheBustUrlsMatching: /\.\w{8}\./, 10 | swFilePath: 'dist/service-worker.js', 11 | navigateFallback: '/index.html', 12 | runtimeCaching: [{ 13 | urlPattern: /api\.coinmarketcap\.com/, 14 | handler: 'networkFirst' 15 | }] 16 | } 17 | --------------------------------------------------------------------------------