├── README.md
├── .gitattributes
├── ico-web
├── config
│ ├── prod.env.js
│ ├── dev.env.js
│ └── index.js
├── src
│ ├── assets
│ │ ├── logo.png
│ │ └── progressbar_negative.png
│ ├── router
│ │ └── index.js
│ ├── main.js
│ ├── App.vue
│ └── components
│ │ └── Hello.vue
├── static
│ ├── img
│ │ └── icons
│ │ │ ├── favicon.ico
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── mstile-150x150.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ ├── apple-touch-icon-120x120.png
│ │ │ ├── apple-touch-icon-152x152.png
│ │ │ ├── apple-touch-icon-180x180.png
│ │ │ ├── apple-touch-icon-60x60.png
│ │ │ ├── apple-touch-icon-76x76.png
│ │ │ ├── msapplication-icon-144x144.png
│ │ │ └── safari-pinned-tab.svg
│ └── manifest.json
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── build
│ ├── dev-client.js
│ ├── load-minified.js
│ ├── vue-loader.conf.js
│ ├── service-worker-dev.js
│ ├── build.js
│ ├── check-versions.js
│ ├── webpack.dev.conf.js
│ ├── webpack.base.conf.js
│ ├── utils.js
│ ├── service-worker-prod.js
│ ├── dev-server.js
│ └── webpack.prod.conf.js
├── .babelrc
├── README.md
├── package.json
└── index.html
├── skp
├── renders
│ ├── Scene 5 - 220W- Low+ 114.jpg
│ ├── Scene 6 - medium 15 min.jpg
│ ├── Scene 7 - medium 28 min.jpg
│ ├── Dunajska_20171123-e_Scene 7.jpg
│ ├── Scene 6 - 220W - Medium 7 min.jpg
│ ├── Dunajska_20171123-d_svetlo a tma.jpg
│ ├── Dunajska_20171123-g_Bez nabytku.jpg
│ ├── Scene 5 - 500W - Medium 12 min.jpg
│ ├── Scene 6 - 500W - Medium 21 min.jpg
│ └── Dunajska_20171123-d_BezPresklenejCasti-x.jpg
├── Dunajska_20171123-e.skp
└── Dunajska_20171123-g.skp
├── .gitignore
└── LICENSE
/README.md:
--------------------------------------------------------------------------------
1 | # ico
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.skp filter=lfs diff=lfs merge=lfs -text
2 |
--------------------------------------------------------------------------------
/ico-web/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/ico-web/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/src/assets/logo.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/favicon.ico
--------------------------------------------------------------------------------
/skp/renders/Scene 5 - 220W- Low+ 114.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 5 - 220W- Low+ 114.jpg
--------------------------------------------------------------------------------
/skp/renders/Scene 6 - medium 15 min.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 6 - medium 15 min.jpg
--------------------------------------------------------------------------------
/skp/renders/Scene 7 - medium 28 min.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 7 - medium 28 min.jpg
--------------------------------------------------------------------------------
/ico-web/src/assets/progressbar_negative.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/src/assets/progressbar_negative.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/mstile-150x150.png
--------------------------------------------------------------------------------
/skp/renders/Dunajska_20171123-e_Scene 7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Dunajska_20171123-e_Scene 7.jpg
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon.png
--------------------------------------------------------------------------------
/skp/renders/Scene 6 - 220W - Medium 7 min.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 6 - 220W - Medium 7 min.jpg
--------------------------------------------------------------------------------
/skp/renders/Dunajska_20171123-d_svetlo a tma.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Dunajska_20171123-d_svetlo a tma.jpg
--------------------------------------------------------------------------------
/skp/renders/Dunajska_20171123-g_Bez nabytku.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Dunajska_20171123-g_Bez nabytku.jpg
--------------------------------------------------------------------------------
/skp/renders/Scene 5 - 500W - Medium 12 min.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 5 - 500W - Medium 12 min.jpg
--------------------------------------------------------------------------------
/skp/renders/Scene 6 - 500W - Medium 21 min.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Scene 6 - 500W - Medium 21 min.jpg
--------------------------------------------------------------------------------
/ico-web/static/img/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon-120x120.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon-152x152.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon-180x180.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon-60x60.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/apple-touch-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/apple-touch-icon-76x76.png
--------------------------------------------------------------------------------
/ico-web/static/img/icons/msapplication-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/ico-web/static/img/icons/msapplication-icon-144x144.png
--------------------------------------------------------------------------------
/skp/Dunajska_20171123-e.skp:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5f6ce840c171408022b4bef73523bd17ebd2f962ed39ad5fb7554f8bb59134d0
3 | size 33227044
4 |
--------------------------------------------------------------------------------
/skp/Dunajska_20171123-g.skp:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5403fc0c6a40930d2ee9c01261e6d5c7afefb2eb657abbf9e8d9a934c2e0fecd
3 | size 34019081
4 |
--------------------------------------------------------------------------------
/skp/renders/Dunajska_20171123-d_BezPresklenejCasti-x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/progressbar/ico-web/master/skp/renders/Dunajska_20171123-d_BezPresklenejCasti-x.jpg
--------------------------------------------------------------------------------
/ico-web/.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 |
--------------------------------------------------------------------------------
/ico-web/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const merge = require('webpack-merge')
4 | const prodEnv = require('./prod.env')
5 |
6 | module.exports = merge(prodEnv, {
7 | NODE_ENV: '"development"'
8 | })
9 |
--------------------------------------------------------------------------------
/ico-web/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 |
--------------------------------------------------------------------------------
/ico-web/.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 |
--------------------------------------------------------------------------------
/ico-web/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import Hello from '@/components/Hello'
4 |
5 | Vue.use(Router)
6 |
7 | export default new Router({
8 | routes: [
9 | {
10 | path: '/',
11 | name: 'Hello',
12 | component: Hello
13 | }
14 | ]
15 | })
16 |
--------------------------------------------------------------------------------
/ico-web/build/dev-client.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | /* eslint-disable */
4 | require('eventsource-polyfill')
5 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
6 |
7 | hotClient.subscribe(function (event) {
8 | if (event.action === 'reload') {
9 | window.location.reload()
10 | }
11 | })
12 |
--------------------------------------------------------------------------------
/ico-web/build/load-minified.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const fs = require('fs')
4 | const UglifyJS = require('uglify-es')
5 |
6 | module.exports = function(filePath) {
7 | const code = fs.readFileSync(filePath, 'utf-8')
8 | const result = UglifyJS.minify(code)
9 | if (result.error) return ''
10 | return result.code
11 | }
12 |
--------------------------------------------------------------------------------
/ico-web/.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 |
--------------------------------------------------------------------------------
/ico-web/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 App from './App'
5 | import router from './router'
6 |
7 | Vue.config.productionTip = false
8 |
9 | /* eslint-disable no-new */
10 | new Vue({
11 | el: '#app',
12 | router,
13 | template: '',
14 | components: { App }
15 | })
16 |
--------------------------------------------------------------------------------
/ico-web/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ico",
3 | "short_name": "ico",
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 | "start_url": "/index.html",
17 | "display": "standalone",
18 | "background_color": "#000000",
19 | "theme_color": "#4DBA87"
20 | }
21 |
--------------------------------------------------------------------------------
/ico-web/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const utils = require('./utils')
4 | const config = require('../config')
5 | const isProduction = process.env.NODE_ENV === 'production'
6 |
7 | module.exports = {
8 | loaders: utils.cssLoaders({
9 | sourceMap: isProduction
10 | ? config.build.productionSourceMap
11 | : config.dev.cssSourceMap,
12 | extract: isProduction
13 | }),
14 | transformToRequire: {
15 | video: 'src',
16 | source: 'src',
17 | img: 'src',
18 | image: 'xlink:href'
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ico-web/README.md:
--------------------------------------------------------------------------------
1 | # ico
2 |
3 | > ico progressbar
4 |
5 | ## Build Setup
6 |
7 | ``` bash
8 | # install dependencies
9 | npm install
10 |
11 | # serve with hot reload at localhost:8080
12 | npm run dev
13 |
14 | # build for production with minification
15 | npm run build
16 |
17 | # build for production and view the bundle analyzer report
18 | npm run build --report
19 | ```
20 |
21 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
22 |
--------------------------------------------------------------------------------
/ico-web/build/service-worker-dev.js:
--------------------------------------------------------------------------------
1 | // This service worker file is effectively a 'no-op' that will reset any
2 | // previous service worker registered for the same host:port combination.
3 | // In the production build, this file is replaced with an actual service worker
4 | // file that will precache your site's local assets.
5 | // See https://github.com/facebookincubator/create-react-app/issues/2272#issuecomment-302832432
6 |
7 | self.addEventListener('install', () => self.skipWaiting());
8 |
9 | self.addEventListener('activate', () => {
10 | self.clients.matchAll({ type: 'window' }).then(windowClients => {
11 | for (let windowClient of windowClients) {
12 | // Force open pages to refresh, so that they have a chance to load the
13 | // fresh navigation response from the local dev server.
14 | windowClient.navigate(windowClient.url);
15 | }
16 | });
17 | });
--------------------------------------------------------------------------------
/ico-web/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ico.progressbar.sk hackerspace
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
19 |
20 |
56 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 |
--------------------------------------------------------------------------------
/ico-web/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | require('./check-versions')()
4 |
5 | process.env.NODE_ENV = 'production'
6 |
7 | const ora = require('ora')
8 | const rm = require('rimraf')
9 | const path = require('path')
10 | const chalk = require('chalk')
11 | const webpack = require('webpack')
12 | const config = require('../config')
13 | const webpackConfig = require('./webpack.prod.conf')
14 |
15 | const spinner = ora('building for production...')
16 | spinner.start()
17 |
18 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
19 | if (err) throw err
20 | webpack(webpackConfig, function (err, stats) {
21 | spinner.stop()
22 | if (err) throw err
23 | process.stdout.write(stats.toString({
24 | colors: true,
25 | modules: false,
26 | children: false,
27 | chunks: false,
28 | chunkModules: false
29 | }) + '\n\n')
30 |
31 | console.log(chalk.cyan(' Build complete.\n'))
32 | console.log(chalk.yellow(
33 | ' Tip: built files are meant to be served over an HTTP server.\n' +
34 | ' Opening index.html over file:// won\'t work.\n'
35 | ))
36 | })
37 | })
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/ico-web/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const chalk = require('chalk')
4 | const semver = require('semver')
5 | const packageConfig = require('../package.json')
6 | const shell = require('shelljs')
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | },
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 | for (let i = 0; i < versionRequirements.length; i++) {
30 | const mod = versionRequirements[i]
31 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
32 | warnings.push(mod.name + ': ' +
33 | chalk.red(mod.currentVersion) + ' should be ' +
34 | chalk.green(mod.versionRequirement)
35 | )
36 | }
37 | }
38 |
39 | if (warnings.length) {
40 | console.log('')
41 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
42 | console.log()
43 | for (let i = 0; i < warnings.length; i++) {
44 | const warning = warnings[i]
45 | console.log(' ' + warning)
46 | }
47 | console.log()
48 | process.exit(1)
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/ico-web/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const fs = require('fs')
4 | const path = require('path')
5 | const utils = require('./utils')
6 | const webpack = require('webpack')
7 | const config = require('../config')
8 | const merge = require('webpack-merge')
9 | const baseWebpackConfig = require('./webpack.base.conf')
10 | const HtmlWebpackPlugin = require('html-webpack-plugin')
11 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
12 |
13 | // add hot-reload related code to entry chunks
14 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
15 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
16 | })
17 |
18 | module.exports = merge(baseWebpackConfig, {
19 | module: {
20 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
21 | },
22 | // cheap-module-eval-source-map is faster for development
23 | devtool: '#cheap-module-eval-source-map',
24 | plugins: [
25 | new webpack.DefinePlugin({
26 | 'process.env': config.dev.env
27 | }),
28 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
29 | new webpack.HotModuleReplacementPlugin(),
30 | new webpack.NoEmitOnErrorsPlugin(),
31 | // https://github.com/ampedandwired/html-webpack-plugin
32 | new HtmlWebpackPlugin({
33 | filename: 'index.html',
34 | template: 'index.html',
35 | inject: true,
36 | serviceWorkerLoader: ``
38 | }),
39 | new FriendlyErrorsPlugin()
40 | ]
41 | })
42 |
--------------------------------------------------------------------------------
/ico-web/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 | const path = require('path')
5 |
6 | module.exports = {
7 | build: {
8 | env: require('./prod.env'),
9 | index: path.resolve(__dirname, '../dist/index.html'),
10 | assetsRoot: path.resolve(__dirname, '../dist'),
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | productionSourceMap: true,
14 | // Gzip off by default as many popular static hosts such as
15 | // Surge or Netlify already gzip all static assets for you.
16 | // Before setting to `true`, make sure to:
17 | // npm install --save-dev compression-webpack-plugin
18 | productionGzip: false,
19 | productionGzipExtensions: ['js', 'css'],
20 | // Run the build command with an extra argument to
21 | // View the bundle analyzer report after build finishes:
22 | // `npm run build --report`
23 | // Set to `true` or `false` to always turn it on or off
24 | bundleAnalyzerReport: process.env.npm_config_report
25 | },
26 | dev: {
27 | env: require('./dev.env'),
28 | port: 8080,
29 | autoOpenBrowser: true,
30 | assetsSubDirectory: 'static',
31 | assetsPublicPath: '/',
32 | proxyTable: {},
33 | // CSS Sourcemaps off by default because relative paths are "buggy"
34 | // with this option, according to the CSS-Loader README
35 | // (https://github.com/webpack/css-loader#sourcemaps)
36 | // In our experience, they generally work as expected,
37 | // just be aware of this issue when enabling this option.
38 | cssSourceMap: false
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/ico-web/src/components/Hello.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ msg }}
4 |
~ ~
5 |
6 | -
7 | ico
8 |
9 | -
10 | why
11 |
12 | -
13 | when
14 |
15 | -
16 | more about ico
17 |
18 |
19 |
Why we need your help
20 |
21 | -
22 | visualisations of new space
23 |
24 | -
25 | bill of costs & materials
26 |
27 | -
28 | cowork model
29 |
30 | -
31 | space for bigger meetups
32 |
33 | -
34 | meeting room
35 |
36 | -
37 | hackerspace
38 |
39 |
40 |
What we have now
41 |
42 | main hackerspace page
43 |
44 |
45 | lot of meetups in our space
46 |
47 |
48 | working cowork in Bratislava
49 |
50 |
51 | donation page
52 |
53 |
54 |
55 |
56 |
66 |
67 |
68 |
87 |
--------------------------------------------------------------------------------
/ico-web/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const path = require('path')
4 | const utils = require('./utils')
5 | const config = require('../config')
6 | const vueLoaderConfig = require('./vue-loader.conf')
7 |
8 | function resolve (dir) {
9 | return path.join(__dirname, '..', dir)
10 | }
11 |
12 | module.exports = {
13 | entry: {
14 | app: './src/main.js'
15 | },
16 | output: {
17 | path: config.build.assetsRoot,
18 | filename: '[name].js',
19 | publicPath: process.env.NODE_ENV === 'production'
20 | ? config.build.assetsPublicPath
21 | : config.dev.assetsPublicPath
22 | },
23 | resolve: {
24 | extensions: ['.js', '.vue', '.json'],
25 | alias: {
26 | 'vue$': 'vue/dist/vue.esm.js',
27 | '@': resolve('src')
28 | }
29 | },
30 | module: {
31 | rules: [
32 | {
33 | test: /\.vue$/,
34 | loader: 'vue-loader',
35 | options: vueLoaderConfig
36 | },
37 | {
38 | test: /\.js$/,
39 | loader: 'babel-loader',
40 | include: [resolve('src'), resolve('test')]
41 | },
42 | {
43 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
44 | loader: 'url-loader',
45 | options: {
46 | limit: 10000,
47 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
48 | }
49 | },
50 | {
51 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
52 | loader: 'url-loader',
53 | options: {
54 | limit: 10000,
55 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
56 | }
57 | },
58 | {
59 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
60 | loader: 'url-loader',
61 | options: {
62 | limit: 10000,
63 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
64 | }
65 | }
66 | ]
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/ico-web/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ico",
3 | "version": "1.0.0",
4 | "description": "ico progressbar",
5 | "author": "Matej Nemček ",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js"
11 | },
12 | "dependencies": {
13 | "vue": "^2.5.2",
14 | "vue-router": "^3.0.1"
15 | },
16 | "devDependencies": {
17 | "autoprefixer": "^7.1.5",
18 | "babel-core": "^6.26.0",
19 | "sw-precache-webpack-plugin": "^0.11.4",
20 | "babel-loader": "^7.1.2",
21 | "babel-plugin-transform-runtime": "^6.23.0",
22 | "babel-preset-env": "^1.6.0",
23 | "babel-preset-stage-2": "^6.24.1",
24 | "babel-register": "^6.26.0",
25 | "chalk": "^2.1.0",
26 | "connect-history-api-fallback": "^1.4.0",
27 | "copy-webpack-plugin": "^4.1.1",
28 | "css-loader": "^0.28.7",
29 | "cssnano": "^3.10.0",
30 | "eventsource-polyfill": "^0.9.6",
31 | "express": "^4.16.2",
32 | "extract-text-webpack-plugin": "^3.0.0",
33 | "file-loader": "^1.1.5",
34 | "friendly-errors-webpack-plugin": "^1.6.1",
35 | "html-webpack-plugin": "^2.30.1",
36 | "http-proxy-middleware": "^0.17.4",
37 | "webpack-bundle-analyzer": "^2.9.0",
38 | "semver": "^5.4.1",
39 | "shelljs": "^0.7.8",
40 | "opn": "^5.1.0",
41 | "optimize-css-assets-webpack-plugin": "^3.2.0",
42 | "ora": "^1.3.0",
43 | "rimraf": "^2.6.2",
44 | "url-loader": "^0.6.2",
45 | "vue-loader": "^13.3.0",
46 | "vue-style-loader": "^3.0.3",
47 | "vue-template-compiler": "^2.5.2",
48 | "webpack": "^3.7.1",
49 | "webpack-dev-middleware": "^1.12.0",
50 | "webpack-hot-middleware": "^2.19.1",
51 | "webpack-merge": "^4.1.0",
52 | "uglify-es": "^3.1.3"
53 | },
54 | "engines": {
55 | "node": ">= 4.0.0",
56 | "npm": ">= 3.0.0"
57 | },
58 | "browserslist": [
59 | "> 1%",
60 | "last 2 versions",
61 | "not ie <= 8"
62 | ]
63 | }
64 |
--------------------------------------------------------------------------------
/ico-web/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const path = require('path')
4 | const config = require('../config')
5 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 | return path.posix.join(assetsSubDirectory, _path)
12 | }
13 |
14 | exports.cssLoaders = function (options) {
15 | options = options || {}
16 |
17 | const cssLoader = {
18 | loader: 'css-loader',
19 | options: {
20 | minimize: process.env.NODE_ENV === 'production',
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | // generate loader string to be used with extract text plugin
26 | function generateLoaders (loader, loaderOptions) {
27 | const loaders = [cssLoader]
28 | if (loader) {
29 | loaders.push({
30 | loader: loader + '-loader',
31 | options: Object.assign({}, loaderOptions, {
32 | sourceMap: options.sourceMap
33 | })
34 | })
35 | }
36 |
37 | // Extract CSS when that option is specified
38 | // (which is the case during production build)
39 | if (options.extract) {
40 | return ExtractTextPlugin.extract({
41 | use: loaders,
42 | fallback: 'vue-style-loader'
43 | })
44 | } else {
45 | return ['vue-style-loader'].concat(loaders)
46 | }
47 | }
48 |
49 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
50 | return {
51 | css: generateLoaders(),
52 | postcss: generateLoaders(),
53 | less: generateLoaders('less'),
54 | sass: generateLoaders('sass', { indentedSyntax: true }),
55 | scss: generateLoaders('sass'),
56 | stylus: generateLoaders('stylus'),
57 | styl: generateLoaders('stylus')
58 | }
59 | }
60 |
61 | // Generate loaders for standalone style files (outside of .vue)
62 | exports.styleLoaders = function (options) {
63 | const output = []
64 | const loaders = exports.cssLoaders(options)
65 | for (const extension in loaders) {
66 | const loader = loaders[extension]
67 | output.push({
68 | test: new RegExp('\\.' + extension + '$'),
69 | use: loader
70 | })
71 | }
72 | return output
73 | }
74 |
--------------------------------------------------------------------------------
/ico-web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ico
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | <% for (var chunk of webpack.chunks) {
25 | for (var file of chunk.files) {
26 | if (file.match(/\.(js|css)$/)) { %>
27 | <% }}} %>
28 |
29 |
30 |
33 |
34 |
35 | <%= htmlWebpackPlugin.options.serviceWorkerLoader %>
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/ico-web/build/service-worker-prod.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | 'use strict';
3 |
4 | // Check to make sure service workers are supported in the current browser,
5 | // and that the current page is accessed from a secure origin. Using a
6 | // service worker from an insecure origin will trigger JS console errors.
7 | var isLocalhost = Boolean(window.location.hostname === 'localhost' ||
8 | // [::1] is the IPv6 localhost address.
9 | window.location.hostname === '[::1]' ||
10 | // 127.0.0.1/8 is considered localhost for IPv4.
11 | window.location.hostname.match(
12 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
13 | )
14 | );
15 |
16 | window.addEventListener('load', function() {
17 | if ('serviceWorker' in navigator &&
18 | (window.location.protocol === 'https:' || isLocalhost)) {
19 | navigator.serviceWorker.register('service-worker.js')
20 | .then(function(registration) {
21 | // updatefound is fired if service-worker.js changes.
22 | registration.onupdatefound = function() {
23 | // updatefound is also fired the very first time the SW is installed,
24 | // and there's no need to prompt for a reload at that point.
25 | // So check here to see if the page is already controlled,
26 | // i.e. whether there's an existing service worker.
27 | if (navigator.serviceWorker.controller) {
28 | // The updatefound event implies that registration.installing is set
29 | var installingWorker = registration.installing;
30 |
31 | installingWorker.onstatechange = function() {
32 | switch (installingWorker.state) {
33 | case 'installed':
34 | // At this point, the old content will have been purged and the
35 | // fresh content will have been added to the cache.
36 | // It's the perfect time to display a "New content is
37 | // available; please refresh." message in the page's interface.
38 | break;
39 |
40 | case 'redundant':
41 | throw new Error('The installing ' +
42 | 'service worker became redundant.');
43 |
44 | default:
45 | // Ignore
46 | }
47 | };
48 | }
49 | };
50 | }).catch(function(e) {
51 | console.error('Error during service worker registration:', e);
52 | });
53 | }
54 | });
55 | })();
56 |
--------------------------------------------------------------------------------
/ico-web/build/dev-server.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | require('./check-versions')()
4 |
5 | const config = require('../config')
6 | if (!process.env.NODE_ENV) {
7 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
8 | }
9 |
10 | const opn = require('opn')
11 | const path = require('path')
12 | const express = require('express')
13 | const webpack = require('webpack')
14 | const proxyMiddleware = require('http-proxy-middleware')
15 | const webpackConfig = require('./webpack.dev.conf')
16 |
17 | // default port where dev server listens for incoming traffic
18 | const port = process.env.PORT || config.dev.port
19 | // automatically open browser, if not set will be false
20 | const autoOpenBrowser = !!config.dev.autoOpenBrowser
21 | // Define HTTP proxies to your custom API backend
22 | // https://github.com/chimurai/http-proxy-middleware
23 | const proxyTable = config.dev.proxyTable
24 |
25 | const app = express()
26 | const compiler = webpack(webpackConfig)
27 |
28 | const devMiddleware = require('webpack-dev-middleware')(compiler, {
29 | publicPath: webpackConfig.output.publicPath,
30 | quiet: true
31 | })
32 |
33 | const hotMiddleware = require('webpack-hot-middleware')(compiler, {
34 | log: false
35 | })
36 | // force page reload when html-webpack-plugin template changes
37 | compiler.plugin('compilation', function (compilation) {
38 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
39 | hotMiddleware.publish({ action: 'reload' })
40 | cb()
41 | })
42 | })
43 |
44 | // enable hot-reload and state-preserving
45 | // compilation error display
46 | app.use(hotMiddleware)
47 |
48 | // proxy api requests
49 | Object.keys(proxyTable).forEach(function (context) {
50 | let options = proxyTable[context]
51 | if (typeof options === 'string') {
52 | options = { target: options }
53 | }
54 | app.use(proxyMiddleware(options.filter || context, options))
55 | })
56 |
57 | // handle fallback for HTML5 history API
58 | app.use(require('connect-history-api-fallback')())
59 |
60 | // serve webpack bundle output
61 | app.use(devMiddleware)
62 |
63 | // serve pure static assets
64 | const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
65 | app.use(staticPath, express.static('./static'))
66 |
67 | const uri = 'http://localhost:' + port
68 |
69 | let _resolve
70 | const readyPromise = new Promise(resolve => {
71 | _resolve = resolve
72 | })
73 |
74 | console.log('> Starting dev server...')
75 | devMiddleware.waitUntilValid(() => {
76 | console.log('> Listening at ' + uri + '\n')
77 | // when env is testing, don't need open it
78 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
79 | opn(uri)
80 | }
81 | _resolve()
82 | })
83 |
84 | const server = app.listen(port)
85 |
86 | module.exports = {
87 | ready: readyPromise,
88 | close: () => {
89 | server.close()
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/ico-web/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | const fs = require('fs')
4 | const path = require('path')
5 | const utils = require('./utils')
6 | const webpack = require('webpack')
7 | const config = require('../config')
8 | const merge = require('webpack-merge')
9 | const baseWebpackConfig = require('./webpack.base.conf')
10 | const CopyWebpackPlugin = require('copy-webpack-plugin')
11 | const HtmlWebpackPlugin = require('html-webpack-plugin')
12 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
13 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
14 | const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin')
15 | const loadMinified = require('./load-minified')
16 |
17 | const env = config.build.env
18 |
19 | const webpackConfig = merge(baseWebpackConfig, {
20 | module: {
21 | rules: utils.styleLoaders({
22 | sourceMap: config.build.productionSourceMap,
23 | extract: true
24 | })
25 | },
26 | devtool: config.build.productionSourceMap ? '#source-map' : false,
27 | output: {
28 | path: config.build.assetsRoot,
29 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
30 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
31 | },
32 | plugins: [
33 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
34 | new webpack.DefinePlugin({
35 | 'process.env': env
36 | }),
37 | new webpack.optimize.UglifyJsPlugin({
38 | compress: {
39 | warnings: false
40 | },
41 | sourceMap: true
42 | }),
43 | // extract css into its own file
44 | new ExtractTextPlugin({
45 | filename: utils.assetsPath('css/[name].[contenthash].css')
46 | }),
47 | // Compress extracted CSS. We are using this plugin so that possible
48 | // duplicated CSS from different components can be deduped.
49 | new OptimizeCSSPlugin({
50 | cssProcessorOptions: {
51 | safe: true
52 | }
53 | }),
54 | // generate dist index.html with correct asset hash for caching.
55 | // you can customize output by editing /index.html
56 | // see https://github.com/ampedandwired/html-webpack-plugin
57 | new HtmlWebpackPlugin({
58 | filename: config.build.index,
59 | template: 'index.html',
60 | inject: true,
61 | minify: {
62 | removeComments: true,
63 | collapseWhitespace: true,
64 | removeAttributeQuotes: true
65 | // more options:
66 | // https://github.com/kangax/html-minifier#options-quick-reference
67 | },
68 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
69 | chunksSortMode: 'dependency',
70 | serviceWorkerLoader: ``
72 | }),
73 | // split vendor js into its own file
74 | new webpack.optimize.CommonsChunkPlugin({
75 | name: 'vendor',
76 | minChunks: function (module, count) {
77 | // any required modules inside node_modules are extracted to vendor
78 | return (
79 | module.resource &&
80 | /\.js$/.test(module.resource) &&
81 | module.resource.indexOf(
82 | path.join(__dirname, '../node_modules')
83 | ) === 0
84 | )
85 | }
86 | }),
87 | // extract webpack runtime and module manifest to its own file in order to
88 | // prevent vendor hash from being updated whenever app bundle is updated
89 | new webpack.optimize.CommonsChunkPlugin({
90 | name: 'manifest',
91 | chunks: ['vendor']
92 | }),
93 | // copy custom static assets
94 | new CopyWebpackPlugin([
95 | {
96 | from: path.resolve(__dirname, '../static'),
97 | to: config.build.assetsSubDirectory,
98 | ignore: ['.*']
99 | }
100 | ]),
101 | // service worker caching
102 | new SWPrecacheWebpackPlugin({
103 | cacheId: 'ico',
104 | filename: 'service-worker.js',
105 | staticFileGlobs: ['dist/**/*.{js,html,css}'],
106 | minify: true,
107 | stripPrefix: 'dist/'
108 | })
109 | ]
110 | })
111 |
112 | if (config.build.productionGzip) {
113 | const CompressionWebpackPlugin = require('compression-webpack-plugin')
114 |
115 | webpackConfig.plugins.push(
116 | new CompressionWebpackPlugin({
117 | asset: '[path].gz[query]',
118 | algorithm: 'gzip',
119 | test: new RegExp(
120 | '\\.(' +
121 | config.build.productionGzipExtensions.join('|') +
122 | ')$'
123 | ),
124 | threshold: 10240,
125 | minRatio: 0.8
126 | })
127 | )
128 | }
129 |
130 | if (config.build.bundleAnalyzerReport) {
131 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
132 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
133 | }
134 |
135 | module.exports = webpackConfig
136 |
--------------------------------------------------------------------------------
/ico-web/static/img/icons/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
150 |
--------------------------------------------------------------------------------