diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 4bd3bd8..0000000 --- a/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index d7cd51a..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: CI -on: [push] -jobs: - eaglejs-slideshow: - strategy: - matrix: - os: [ubuntu-latest] - nodejs-version: [12] - python-version: [3.8] - runs-on: ${{ matrix.os }} - name: eaglejs-slideshow (${{ matrix.os }} OS, python ${{ matrix.python-version }}, NodeJS ${{ matrix.nodejs-version }}) - steps: - - name: Set up NodeJS ${{ matrix.nodejs-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.nodejs-version }} - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - - name: Install / upgrade pip - run: python -m pip install --upgrade pip setuptools - - name: Install HTTPie - run: pip install --upgrade httpie - - name: Install required npm packages globally - run: npm install -g wait-port - - name: Clone git project - uses: actions/checkout@v2 - - name: Install, run, wait and test - shell: bash - run: | - cd $GITHUB_WORKSPACE/eaglejs-slideshow && npm i - cd $GITHUB_WORKSPACE/eaglejs-slideshow && npm start - cd $GITHUB_WORKSPACE/eaglejs-slideshow && npm run logs & - wait-port 8080 - http get :8080 - cd $GITHUB_WORKSPACE/eaglejs-slideshow && npm stop diff --git a/.gitignore b/.gitignore deleted file mode 100644 index f32eeee..0000000 --- a/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -.DS_Store -node_modules/ -dist/ -*.log - -# Editor directories and files -.idea -*.iml -*.ipr -*.iws -*.suo -*.ntvs* -*.njsproj -*.sln -*.lock -package-lock.json -.yarnclean -*= - -# Nuxt build -.nuxt -.cache - -*-*/firebase.js -!*-*/firebase.js.default -*-*/firebase.config.js -!*-*/firebase.config.js.default - -/target/ diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar deleted file mode 100755 index 41c70a7..0000000 Binary files a/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties deleted file mode 100755 index c9023ed..0000000 --- a/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f7d785..0000000 --- a/.travis.yml +++ /dev/null @@ -1,437 +0,0 @@ -notifications: - email: false -git: - quiet: true - depth: false -language: node_js -node_js: lts/* -python: 3.7 -os: linux -arch: amd64 -addons: - apt: - update: true - packages: - - jq - - curl - - sudo - - lsof - - httpie -install: true -before_install: - - export DISPLAY=:99.0 - - | - if [ ! -f ${HOME}/.local/daggerok/bash-functions/master/main.bash ] ; then - mkdir -p ${HOME}/.local/daggerok/bash-functions/master ; - curl -s https://raw.githubusercontent.com/daggerok/bash-functions/master/main.bash > ${HOME}/.local/daggerok/bash-functions/master/main.bash ; - fi - source ${HOME}/.local/daggerok/bash-functions/master/main.bash ; - - stop_any 80 3000 5000 8080 5432 -jobs: - include: - - - stage: test - name: component-06-ts-vue-composition-api - env: - - SUB_PROJECT=component-06-ts-vue-composition-api - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 8080 - script: - - http :8080 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: component-05-vue-composition-api - env: - - SUB_PROJECT=component-05-vue-composition-api - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 8080 - script: - - http :8080 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: component-04-ts-vue-cli - env: - - SUB_PROJECT=component-04-ts-vue-cli - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 8080 - script: - - http :8080 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: component-03 - env: - - SUB_PROJECT=component-03 - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 1234 - script: - - http :1234 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: component-02-in-browser-in-html - env: - - SUB_PROJECT=component-02-in-browser-in-html - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 1234 - script: - - http :1234 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: component-01-in-browser - env: - - SUB_PROJECT=component-01-in-browser - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i -E - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 1234 - script: - - http :1234 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: vuesax-example - env: - - SUB_PROJECT=vuesax-example - before_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm start - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run logs & - - wait_for 8080 - script: - - http :8080 - after_script: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm stop - - - stage: test - name: typescript-vue-app - before_script: - - cd $TRAVIS_BUILD_DIR/typescript-vue-app && npm i - - cd $TRAVIS_BUILD_DIR/typescript-vue-app && npm start - - cd $TRAVIS_BUILD_DIR/typescript-vue-app && npm run logs & - - wait_for 8080 - script: - - http :8080 - after_script: - - cd $TRAVIS_BUILD_DIR/typescript-vue-app && npm stop - - - stage: test - name: ecma-script-parcel - before_script: - - cd $TRAVIS_BUILD_DIR/ecma-script-parcel && npm i - - cd $TRAVIS_BUILD_DIR/ecma-script-parcel && npm start & - - sleep 1s - - npm run logs & - - wait_for 1234 - script: - - http :1234 - after_script: - - cd $TRAVIS_BUILD_DIR/ecma-script-parcel && npm stop - - - stage: test - name: ecma-script-5 - before_script: - - cd $TRAVIS_BUILD_DIR/ecma-script-5 - - npm i - - npm run start - - npm run logs & - - wait_for 3000 3001 - script: - - http :3000 - after_script: - - npm run stop - - - stage: test - node_js: lts/* - name: vue-bootstrap-css - script: - - cd $TRAVIS_BUILD_DIR/vue-bootstrap-css - - npm i - - npm run predeploy - - - stage: test - name: refs-work-natively-with-DOM-elements - script: - - cd $TRAVIS_BUILD_DIR/refs-work-natively-with-DOM-elements - - npm i - - npm run predeploy - - - stage: test - name: eventbus - script: - - cd $TRAVIS_BUILD_DIR/eventbus - - npm i - - npm run predeploy - - - stage: test - name: responsive-web-design - script: - - cd $TRAVIS_BUILD_DIR/responsive-web-design - - npm i - - npm run predeploy - - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; - - npm run build -- --report - - - stage: test - name: nuxt-server-side-rendering - script: - - cd $TRAVIS_BUILD_DIR/nuxt-server-side-rendering - - npm i - - npm run predeploy; - - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; - - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: vuex-map-getters-and-map-actions -# script: -# - cd $TRAVIS_BUILD_DIR/vuex-map-getters-and-map-actions -# - npm i -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -# - stage: test -# node_js: lts/* -# name: vue-material -# script: -# - cd $TRAVIS_BUILD_DIR/vue-material -# - npm i -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -# - stage: test -# node_js: lts/* -# name: materialize-css -# script: -# - cd $TRAVIS_BUILD_DIR/materialize-css -# - npm i -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -# - stage: test -# node_js: lts/* -# name: vuex-contact-list -# script: -# - cd $TRAVIS_BUILD_DIR/vuex-contact-list -# - npm i -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: vuex-counter-todo -# script: -# - cd $TRAVIS_BUILD_DIR/vuex-counter-todo -# - npm install -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: hello-vuex -# script: -# - cd $TRAVIS_BUILD_DIR/hello-vuex -# - npm i -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: todo-list -# script: -# - cd $TRAVIS_BUILD_DIR/todo-list -# - npm install -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: hello-world -# script: -# - cd $TRAVIS_BUILD_DIR/hello-world -# - npm install -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -# - stage: test -# node_js: lts/* -# name: template -# script: -# - cd $TRAVIS_BUILD_DIR/template -# - npm install -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - -## - stage: test -## node_js: lts/* -## name: vuetifyjs-setup -## script: -## - cd $TRAVIS_BUILD_DIR/vuetifyjs-setup -## - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -## - npm i -f -## - npm run predeploy; -## - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -## - npm run build -- --report -# - stage: test -# node_js: lts/* -# name: vuetifyjs-setup -# script: -# - cd $TRAVIS_BUILD_DIR/vuetifyjs-setup -# - cp firebase.js.default firebase.js || true -# - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -# - npm i -f -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -## - stage: test -## node_js: lts/* -## name: firebase-using-vuefire -## script: -## - cd $TRAVIS_BUILD_DIR/firebase-using-vuefire -## - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -## - npm i -f -## - npm run predeploy; -## - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -## - npm run build -- --report -# - stage: test -# node_js: lts/* -# name: firebase-using-vuefire -# script: -# - cd $TRAVIS_BUILD_DIR/firebase-using-vuefire -# - cp firebase.js.default firebase.js || true -# - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -# - npm i -f -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -## - stage: test -## node_js: lts/* -## name: some-vuetify-app -## script: -## - cd $TRAVIS_BUILD_DIR/some-vuetify-app -## - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -## - npm i -f -## - npm run predeploy; -## - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -## - npm run build -- --report -# - stage: test -# node_js: lts/* -# name: some-vuetify-app -# script: -# - cd $TRAVIS_BUILD_DIR/some-vuetify-app -# - cp firebase.config.js.default firebase.config.js || true -# - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -# - npm i -f -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report -# -## - stage: test -## node_js: lts/* -## name: vuetify -## script: -## - cd $TRAVIS_BUILD_DIR/vuetify -## - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -## - npm i -f -## - npm run predeploy; -## - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -## - npm run build -- --report -# - stage: test -# node_js: lts/* -# name: vuetify -# script: -# - cd $TRAVIS_BUILD_DIR/vuetify -# - cp firebase.config.js.default firebase.config.js || true -# - echo "TODO:\ FIXME:\ npm i fails:\ https://github.com/angular/angular/issues/13935" -# - npm i -f -# - npm run predeploy -# - if [ -f npm-debug.log ]; then cat npm-debug.log; fi; -# - npm run build -- --report - - - stage: deploy - env: - - SUB_PROJECT=eaglejs-slideshow - #- SUB_PROJECT=component-06-ts-vue-composition-api - - secure: oP/muOICK9B+4eYo8V8AQJqJ0iqy2n9s2n+5XUJPDJh04PZdG/jRp5mpoHATdSqrCEoREuvP1HAww8mNCiZRjN1pMbKE6v6LvtuRYURpm3Uctnbgf6m3pA95upcf48TsHLPr30seQge0lwR39dx+PQ0bbsfywR81MzPu+gT2ExbxMg70MOOf2tILIGAPKkk/Zishf7an17VzgFDJZLLq8fZaKFbFE5jgA5OMU7lgSUrQadhXTgRWT6kUmt7pPByovLinzBZVl/wBbyoxcxF3HSNaLcUSgWXDTDfQHeRDblS78ERtQ+ywBEN9dPv9cwTrxgZcr5laAQjIJ22HNGyLT2gxodlxRs3awp7zY2aNsdcrnbNNSTh2gfZ2r3yd/CDkuNU46W5QsfLpvEgJlacle4JM91afCoYj2OFFSx09UHfp9kPbRwuXerhgIWuYGUwQ15dXR0csxxqLJYslDK8XucKGrPIxo8gi4+/cKeKLotR7b5VXEjdrZtRfnbWU4htYMcb+1nGItKmYyK2eFb4ShOhS2lXRhEGwzAOhn8C5MGKdABpaPLcBHcAyUpGFl76B4nRU4kXKyKPKBJoBs36eZMBYgsiKwZ8UD9id0WIHLAQInbXzvh4SbmClJV4SFwcIroKkGv+iQdRvFA21d0v1teYTHAeHot4bKVGVEaODP/M= - name: GitHub pages deployment - script: skip - deploy: - on: - branch: master - provider: pages - skip-cleanup: true - keep-history: true - target_branch: gh-pages - github-token: "$GITHUB_TOKEN" - local-dir: $TRAVIS_BUILD_DIR/$SUB_PROJECT/dist - before_deploy: - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm i - - cd $TRAVIS_BUILD_DIR/$SUB_PROJECT && npm run gh - - cp -Rf $TRAVIS_BUILD_DIR/$SUB_PROJECT/dist/index.html $TRAVIS_BUILD_DIR/$SUB_PROJECT/dist/404.html - -# - stage: deploy -# jdk: openjdk11 -# env: -# - secure: oP/muOICK9B+4eYo8V8AQJqJ0iqy2n9s2n+5XUJPDJh04PZdG/jRp5mpoHATdSqrCEoREuvP1HAww8mNCiZRjN1pMbKE6v6LvtuRYURpm3Uctnbgf6m3pA95upcf48TsHLPr30seQge0lwR39dx+PQ0bbsfywR81MzPu+gT2ExbxMg70MOOf2tILIGAPKkk/Zishf7an17VzgFDJZLLq8fZaKFbFE5jgA5OMU7lgSUrQadhXTgRWT6kUmt7pPByovLinzBZVl/wBbyoxcxF3HSNaLcUSgWXDTDfQHeRDblS78ERtQ+ywBEN9dPv9cwTrxgZcr5laAQjIJ22HNGyLT2gxodlxRs3awp7zY2aNsdcrnbNNSTh2gfZ2r3yd/CDkuNU46W5QsfLpvEgJlacle4JM91afCoYj2OFFSx09UHfp9kPbRwuXerhgIWuYGUwQ15dXR0csxxqLJYslDK8XucKGrPIxo8gi4+/cKeKLotR7b5VXEjdrZtRfnbWU4htYMcb+1nGItKmYyK2eFb4ShOhS2lXRhEGwzAOhn8C5MGKdABpaPLcBHcAyUpGFl76B4nRU4kXKyKPKBJoBs36eZMBYgsiKwZ8UD9id0WIHLAQInbXzvh4SbmClJV4SFwcIroKkGv+iQdRvFA21d0v1teYTHAeHot4bKVGVEaODP/M= -# name: GitHub release and GitHub pages deployment (openjdk11) -# script: skip -# if: branch = "master" AND type NOT IN (pull_request) -# before_deploy: -# - if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ ".$TRAVIS_BRANCH" != ".master" ] ; then exit 0 ; fi -# - env -# - set -e -# - ./mvnw -Pdocs >/dev/null -# - ls . -# - ls target/generated-docs -# deploy: -# provider: pages -# skip-cleanup: true -# keep-history: true -# target_branch: gh-pages -# github-token: "$GITHUB_TOKEN" -# local-dir: target/generated-docs -# on: -# branch: master -cache: - npm: true - packages: true - directories: - - ~/.local/daggerok - - node_modules/ - - ~/.n* diff --git a/404.html b/404.html new file mode 100644 index 0000000..3bf4616 --- /dev/null +++ b/404.html @@ -0,0 +1 @@ +eaglejs-slideshow
\ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 00aad36..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Maksim Kostromin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.adoc b/README.adoc deleted file mode 100644 index d383752..0000000 --- a/README.adoc +++ /dev/null @@ -1,46 +0,0 @@ -= vue-examples image:https://travis-ci.org/daggerok/vue-examples.svg?branch=master["Build Status", link="https://travis-ci.org/daggerok/vue-examples"] image:https://github.com/daggerok/vue-examples/workflows/CI/badge.svg["CI", link="https://github.com/daggerok/vue-examples/actions"] - -This repository is contains some Vue.js playground project examples - -- link:./typescript-vue-app/[TypeScript + Vue + Bulma] -- link:./ecma-script-5/[Vue in browser | EcmaScript 5.1, BrowserSync, Bulma] -- link:./vue-bootstrap-css/[Bootstrap | Tachyons | Vue] -- link:hello-world/[Hello Vue.js] -- link:todo-list/[TODO App] -- link:hello-vuex/[Hello Vuex (uni-directional data flow)] -- link:vuex-counter-todo/[Vuex SPA including Counter and TODO App] -- link:vuex-contact-list/[Vuex Contact List App] -- link:materialize-css/[Vue.js + materialize-css (+ jquery)] -- link:vue-material/[Vue.js + vue-material (+ jquery)] -- link:vuex-map-getters-and-map-actions/[Using vuex mapGetters and mapActions] -- link:nuxt-server-side-rendering/[Nuxt.js server-side rendering using Vue.js] -- link:responsive-web-design/[Responsive web design playground using Nuxt.js] -- link:firebase-using-vuefire/[Firebase App using vuefire] -- link:vuetify/[Vuetify] -- link:some-vuetify-app/[Vuetify routes playground app] -- link:vue-parcel/[Parcel Bundler] -- link:eventbus/[eventus] -- link:refs-work-natively-with-DOM-elements/[working with DOM elements natively] - -== other repos - -- https://github.com/daggerok/tsx-vue-composition-api-example -- https://github.com/daggerok/saber-examples -- link:https://github.com/daggerok/typescript-ionic-nuxt-app[GitHub daggerok/typescript-ionic-nuxt-app] -- link:https://github.com/daggerok/webflux-kotlin-nuxt-app[GitHub: daggerok/webflux-kotlin-nuxt-app] -- link:https://github.com/daggerok/spring-boot-nuxt-spa[GitHub daggerok/spring-boot-nuxt-spa] -- link:https://github.com/daggerok/vue-ionic-example[GitHub daggerok/vue-ionic-example] -- link:https://github.com/daggerok/nuxt-examples[GitHub daggerok/nuxt-examples] -- link:https://github.com/daggerok/ionic-nuxt-app[GitHub daggerok/ionic-nuxt-app] -- link:https://github.com/daggerok/cross-platform-desktop-electron-vue-app[Cross-platform desktop electron-vue Todo app] - -== links - -- link:https://cli.vuejs.org/ru/guide/html-and-static-assets.html#%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2[Static resources...] -- https://cli.vuejs.org/guide/html-and-static-assets.html#static-assets-handling -- link:https://github.com/vuejs/vue-cli/issues/1198#issuecomment-385340314[Vue + TS cannot resolve module TS2307 error fix] -- https://parceljs.org/vue.html -- https://parceljs.org/recipes.html#vue -- link:https://vue-composition-api-rfc.netlify.com/#summary[Vue Composition API] -- link:https://ru.vuejs.org/v2/guide/syntax.html[Vue in browser] -- link:https://metanit.com/[rubooks] diff --git a/component-01-in-browser/package.json b/component-01-in-browser/package.json deleted file mode 100644 index 36cdcb5..0000000 --- a/component-01-in-browser/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "vue-examples", - "version": "1.0.0", - "description": "Starter", - "main": "src/index.html", - "scripts": { - "gh": "npm run build -- --public-url='/vue-examples/'", - "build": "parcel build src/index.html --no-cache", - "start": "pm2 start 'npm run dev' --name app", - "dev": "parcel src/index.html --open --no-cache", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "keywords": [ - "pm2", - "parcel", - "starter" - ], - "author": "daggerok", - "license": "MIT", - "devDependencies": { - "@types/node": "13.1.4", - "parcel-bundler": "1.12.4", - "pm2": "4.2.1", - "typescript": "3.7.4", - "webfontloader": "1.6.28" - }, - "dependencies": { - "vue": "2.6.11" - } -} diff --git a/component-01-in-browser/src/favicon.ico b/component-01-in-browser/src/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/component-01-in-browser/src/favicon.ico and /dev/null differ diff --git a/component-01-in-browser/src/index.html b/component-01-in-browser/src/index.html deleted file mode 100644 index 02f4f7f..0000000 --- a/component-01-in-browser/src/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Vue examples - - - - -
- -
- - - diff --git a/component-01-in-browser/src/main.css b/component-01-in-browser/src/main.css deleted file mode 100644 index cd29eaa..0000000 --- a/component-01-in-browser/src/main.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: Roboto, sans-serif; - padding: 0; - margin: 0; -} diff --git a/component-01-in-browser/src/main.ts b/component-01-in-browser/src/main.ts deleted file mode 100644 index e158596..0000000 --- a/component-01-in-browser/src/main.ts +++ /dev/null @@ -1,30 +0,0 @@ -import WebFont from 'webfontloader'; - -WebFont.load({ - google: { - families: [ - // 'Roboto:300,400,500,600,700', - 'Roboto:400,100,‌​100italic,300,300ita‌​lic,400italic,500,50‌​0italic,700,700itali‌​c,900italic,900', - ], - }, -}); - -import Vue from 'vue/dist/vue.js'; - -Vue.component('clicker', { - template: ` - - `, - data() { - return { counter: 0 }; - }, - methods: { - increment() { - this.counter += 1; - }, - }, -}); - -new Vue({ - el: '#app', -}); diff --git a/component-02-in-browser-in-html/package.json b/component-02-in-browser-in-html/package.json deleted file mode 100644 index 36cdcb5..0000000 --- a/component-02-in-browser-in-html/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "vue-examples", - "version": "1.0.0", - "description": "Starter", - "main": "src/index.html", - "scripts": { - "gh": "npm run build -- --public-url='/vue-examples/'", - "build": "parcel build src/index.html --no-cache", - "start": "pm2 start 'npm run dev' --name app", - "dev": "parcel src/index.html --open --no-cache", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "keywords": [ - "pm2", - "parcel", - "starter" - ], - "author": "daggerok", - "license": "MIT", - "devDependencies": { - "@types/node": "13.1.4", - "parcel-bundler": "1.12.4", - "pm2": "4.2.1", - "typescript": "3.7.4", - "webfontloader": "1.6.28" - }, - "dependencies": { - "vue": "2.6.11" - } -} diff --git a/component-02-in-browser-in-html/src/favicon.ico b/component-02-in-browser-in-html/src/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/component-02-in-browser-in-html/src/favicon.ico and /dev/null differ diff --git a/component-02-in-browser-in-html/src/index.html b/component-02-in-browser-in-html/src/index.html deleted file mode 100644 index 4205a0f..0000000 --- a/component-02-in-browser-in-html/src/index.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - Vue examples - - - - - - - -
- -
- - - - diff --git a/component-02-in-browser-in-html/src/main.css b/component-02-in-browser-in-html/src/main.css deleted file mode 100644 index cd29eaa..0000000 --- a/component-02-in-browser-in-html/src/main.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: Roboto, sans-serif; - padding: 0; - margin: 0; -} diff --git a/component-02-in-browser-in-html/src/main.ts b/component-02-in-browser-in-html/src/main.ts deleted file mode 100644 index dc3f748..0000000 --- a/component-02-in-browser-in-html/src/main.ts +++ /dev/null @@ -1,28 +0,0 @@ -import WebFont from 'webfontloader'; - -WebFont.load({ - google: { - families: [ - // 'Roboto:300,400,500,600,700', - 'Roboto:400,100,‌​100italic,300,300ita‌​lic,400italic,500,50‌​0italic,700,700itali‌​c,900italic,900', - ], - }, -}); - -import Vue from 'vue/dist/vue.js'; - -Vue.component('clicker', { - template: '#clicker-template', - data() { - return { counter: 0 }; - }, - methods: { - increment() { - this.counter += 1; - }, - }, -}); - -new Vue({ - el: '#app', -}); diff --git a/component-03/package.json b/component-03/package.json deleted file mode 100644 index 234c653..0000000 --- a/component-03/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "vue-examples", - "version": "1.0.0", - "description": "Starter", - "main": "src/index.html", - "scripts": { - "gh": "npm run build -- --public-url='/vue-examples/'", - "build": "parcel build src/index.html --no-cache", - "start": "pm2 start 'npm run dev' --name app", - "dev": "parcel src/index.html --open --no-cache", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "keywords": [ - "pm2", - "parcel", - "starter" - ], - "author": "daggerok", - "license": "MIT", - "devDependencies": { - "@types/node": "13.1.4", - "@types/vue": "2.0.0", - "@vue/component-compiler-utils": "3.1.1", - "parcel-bundler": "1.12.4", - "pm2": "4.2.1", - "pug": "^2.0.4", - "sass": "^1.24.3", - "typescript": "3.7.4", - "vue-template-compiler": "2.6.11", - "webfontloader": "1.6.28" - }, - "dependencies": { - "vue": "2.6.11", - "vue-hot-reload-api": "2.3.4" - } -} diff --git a/component-03/src/ClickerCounter.vue b/component-03/src/ClickerCounter.vue deleted file mode 100644 index fc2fa7f..0000000 --- a/component-03/src/ClickerCounter.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/component-03/src/Other.vue b/component-03/src/Other.vue deleted file mode 100644 index 9752fcc..0000000 --- a/component-03/src/Other.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/component-03/src/favicon.ico b/component-03/src/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/component-03/src/favicon.ico and /dev/null differ diff --git a/component-03/src/index.html b/component-03/src/index.html deleted file mode 100644 index cfc8138..0000000 --- a/component-03/src/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - Vue examples - - - - -
- -
- - - - diff --git a/component-03/src/main.js b/component-03/src/main.js deleted file mode 100644 index 27e279f..0000000 --- a/component-03/src/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import './webfontloader.ts'; -import Vue from 'vue'; -import ClickerCounter from './ClickerCounter.vue'; - -new Vue({ render: createElement => createElement(ClickerCounter) }) - .$mount('#app'); diff --git a/component-03/src/webfontloader.css b/component-03/src/webfontloader.css deleted file mode 100644 index ca1cb86..0000000 --- a/component-03/src/webfontloader.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: Roboto, sans-serif; - padding: 0; - margin: 0; -} diff --git a/component-03/src/webfontloader.ts b/component-03/src/webfontloader.ts deleted file mode 100644 index ecd1f8f..0000000 --- a/component-03/src/webfontloader.ts +++ /dev/null @@ -1,11 +0,0 @@ -import './webfontloader.css'; -import WebFont from '../node_modules/webfontloader'; - -WebFont.load({ - google: { - families: [ - // 'Roboto:300,400,500,600,700', - 'Roboto:400,100,‌​100italic,300,300ita‌​lic,400italic,500,50‌​0italic,700,700itali‌​c,900italic,900', - ], - }, -}); diff --git a/component-04-ts-vue-cli/.gitignore b/component-04-ts-vue-cli/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/component-04-ts-vue-cli/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/component-04-ts-vue-cli/README.md b/component-04-ts-vue-cli/README.md deleted file mode 100644 index c0eb126..0000000 --- a/component-04-ts-vue-cli/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# component-04-vue-composition-api - -## Project setup -``` -npm install -``` - -### Compiles and hot-reloads for development -``` -npm run serve -``` - -### Compiles and minifies for production -``` -npm run build -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/component-04-ts-vue-cli/package.json b/component-04-ts-vue-cli/package.json deleted file mode 100644 index ac553d2..0000000 --- a/component-04-ts-vue-cli/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "vue-examples", - "version": "0.0.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "gh": "cross-env BASE_HREF='/vue-examples/' npm run build", - "start": "pm2 start 'npm run dev' --name app", - "dev": "npm run serve", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "dependencies": { - "vue": "2.6.11", - "vue-class-component": "7.1.0", - "vue-property-decorator": "8.3.0", - "vue-router": "3.1.3", - "vuex": "3.1.2" - }, - "devDependencies": { - "@vue/cli-plugin-router": "4.1.2", - "@vue/cli-plugin-typescript": "4.1.2", - "@vue/cli-plugin-vuex": "4.1.2", - "@vue/cli-service": "4.1.2", - "cross-env": "6.0.3", - "pm2": "4.2.1", - "typescript": "3.7.4", - "vue-template-compiler": "2.6.11" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} diff --git a/component-04-ts-vue-cli/src/App.vue b/component-04-ts-vue-cli/src/App.vue deleted file mode 100644 index caa41fe..0000000 --- a/component-04-ts-vue-cli/src/App.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/component-04-ts-vue-cli/src/components/HelloWorld.vue b/component-04-ts-vue-cli/src/components/HelloWorld.vue deleted file mode 100644 index d73ca09..0000000 --- a/component-04-ts-vue-cli/src/components/HelloWorld.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - diff --git a/component-04-ts-vue-cli/src/main.ts b/component-04-ts-vue-cli/src/main.ts deleted file mode 100644 index 6521611..0000000 --- a/component-04-ts-vue-cli/src/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './store'; - -Vue.config.productionTip = false; - -new Vue({ - router, - store, - render: h => h(App) -}).$mount('#app'); diff --git a/component-04-ts-vue-cli/src/router/index.ts b/component-04-ts-vue-cli/src/router/index.ts deleted file mode 100644 index 5d7660c..0000000 --- a/component-04-ts-vue-cli/src/router/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import Home from '../views/Home.vue'; - -Vue.use(VueRouter); - -const routes = [ - { - path: '/', - name: 'home', - component: Home - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') - } -]; - -const router = new VueRouter({ - mode: 'history', - base: process.env.BASE_URL, - routes -}); - -export default router; diff --git a/component-04-ts-vue-cli/src/shims-tsx.d.ts b/component-04-ts-vue-cli/src/shims-tsx.d.ts deleted file mode 100644 index cee45f0..0000000 --- a/component-04-ts-vue-cli/src/shims-tsx.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Vue, { VNode } from 'vue'; - -declare global { - namespace JSX { - // tslint:disable no-empty-interface - interface Element extends VNode {} - // tslint:disable no-empty-interface - interface ElementClass extends Vue {} - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/component-04-ts-vue-cli/src/shims-vue.d.ts b/component-04-ts-vue-cli/src/shims-vue.d.ts deleted file mode 100644 index 8f6f410..0000000 --- a/component-04-ts-vue-cli/src/shims-vue.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.vue' { - import Vue from 'vue'; - export default Vue; -} diff --git a/component-04-ts-vue-cli/src/store/index.ts b/component-04-ts-vue-cli/src/store/index.ts deleted file mode 100644 index 3431aaa..0000000 --- a/component-04-ts-vue-cli/src/store/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -export default new Vuex.Store({ - state: {}, - mutations: {}, - actions: {}, - modules: {}, -}); diff --git a/component-04-ts-vue-cli/src/views/About.vue b/component-04-ts-vue-cli/src/views/About.vue deleted file mode 100644 index 3fa2807..0000000 --- a/component-04-ts-vue-cli/src/views/About.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/component-04-ts-vue-cli/src/views/Home.vue b/component-04-ts-vue-cli/src/views/Home.vue deleted file mode 100644 index 51c4441..0000000 --- a/component-04-ts-vue-cli/src/views/Home.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/component-04-ts-vue-cli/tsconfig.json b/component-04-ts-vue-cli/tsconfig.json deleted file mode 100644 index fefedc9..0000000 --- a/component-04-ts-vue-cli/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "importHelpers": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "baseUrl": ".", - "types": [ - "webpack-env" - ], - "paths": { - "@/*": [ - "src/*" - ], - "~/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.vue", - "tests/**/*.ts", - "tests/**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} diff --git a/component-04-ts-vue-cli/vue.config.js b/component-04-ts-vue-cli/vue.config.js deleted file mode 100644 index 86ab4c5..0000000 --- a/component-04-ts-vue-cli/vue.config.js +++ /dev/null @@ -1,5 +0,0 @@ -const publicPath = process.env.BASE_HREF || '/'; - -module.exports = { - publicPath, -}; diff --git a/component-05-vue-composition-api/.gitignore b/component-05-vue-composition-api/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/component-05-vue-composition-api/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/component-05-vue-composition-api/README.md b/component-05-vue-composition-api/README.md deleted file mode 100644 index 6b022c5..0000000 --- a/component-05-vue-composition-api/README.md +++ /dev/null @@ -1,35 +0,0 @@ -```bash -npm install -E @vue/composition-api -``` - -```typescript -import Vue from 'vue'; -import VueCompositionAPI from '@vue/composition-api'; - -Vue.use(VueCompositionAPI); -// ... -``` - - diff --git a/component-05-vue-composition-api/package.json b/component-05-vue-composition-api/package.json deleted file mode 100644 index f965825..0000000 --- a/component-05-vue-composition-api/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "vue-examples", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "vue-cli-service serve", - "build": "vue-cli-service build", - "gh": "cross-env BASE_HREF='/vue-examples/' npm run build", - "start": "pm2 start 'npm run dev' --name app", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "dependencies": { - "@vue/composition-api": "0.3.4", - "vue": "2.6.11", - "vue-class-component": "7.1.0", - "vue-property-decorator": "8.3.0", - "vue-router": "3.1.3", - "vuex": "3.1.2", - "webfontloader": "1.6.28" - }, - "devDependencies": { - "@types/webfontloader": "^1.6.29", - "@vue/cli-plugin-router": "4.1.2", - "@vue/cli-plugin-typescript": "4.1.2", - "@vue/cli-plugin-vuex": "4.1.2", - "@vue/cli-service": "4.1.2", - "cross-env": "6.0.3", - "pm2": "4.2.1", - "typescript": "3.7.4", - "vue-template-compiler": "2.6.11" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} diff --git a/component-05-vue-composition-api/public/.nojekyll b/component-05-vue-composition-api/public/.nojekyll deleted file mode 100644 index 49fc293..0000000 --- a/component-05-vue-composition-api/public/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -github pages needs me... diff --git a/component-05-vue-composition-api/public/favicon.ico b/component-05-vue-composition-api/public/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/component-05-vue-composition-api/public/favicon.ico and /dev/null differ diff --git a/component-05-vue-composition-api/public/index.html b/component-05-vue-composition-api/public/index.html deleted file mode 100644 index f94ee91..0000000 --- a/component-05-vue-composition-api/public/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - Vue App - - - -
- - diff --git a/component-05-vue-composition-api/src/App.vue b/component-05-vue-composition-api/src/App.vue deleted file mode 100644 index 8d218df..0000000 --- a/component-05-vue-composition-api/src/App.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/component-05-vue-composition-api/src/components/HelloWorld.vue b/component-05-vue-composition-api/src/components/HelloWorld.vue deleted file mode 100644 index d73ca09..0000000 --- a/component-05-vue-composition-api/src/components/HelloWorld.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - diff --git a/component-05-vue-composition-api/src/components/ReactiveClicker.vue b/component-05-vue-composition-api/src/components/ReactiveClicker.vue deleted file mode 100644 index 9d8b6bd..0000000 --- a/component-05-vue-composition-api/src/components/ReactiveClicker.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/component-05-vue-composition-api/src/fonts/webfontloader.css b/component-05-vue-composition-api/src/fonts/webfontloader.css deleted file mode 100644 index ca1cb86..0000000 --- a/component-05-vue-composition-api/src/fonts/webfontloader.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: Roboto, sans-serif; - padding: 0; - margin: 0; -} diff --git a/component-05-vue-composition-api/src/fonts/webfontloader.ts b/component-05-vue-composition-api/src/fonts/webfontloader.ts deleted file mode 100644 index 22ce7e1..0000000 --- a/component-05-vue-composition-api/src/fonts/webfontloader.ts +++ /dev/null @@ -1,11 +0,0 @@ -import './webfontloader.css'; -import * as WebFont from 'webfontloader'; - -WebFont.load({ - google: { - families: [ - // 'Roboto:300,400,500,600,700', - 'Roboto:400,100,‌​100italic,300,300ita‌​lic,400italic,500,50‌​0italic,700,700itali‌​c,900italic,900', - ], - }, -}); diff --git a/component-05-vue-composition-api/src/main.ts b/component-05-vue-composition-api/src/main.ts deleted file mode 100644 index 47898ed..0000000 --- a/component-05-vue-composition-api/src/main.ts +++ /dev/null @@ -1,15 +0,0 @@ -import './fonts/webfontloader'; -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './store'; -import VueCompositionAPI from '@vue/composition-api'; - -Vue.use(VueCompositionAPI); -Vue.config.productionTip = false; - -new Vue({ - router, - store, - render: h => h(App) -}).$mount('#app'); diff --git a/component-05-vue-composition-api/src/router/index.ts b/component-05-vue-composition-api/src/router/index.ts deleted file mode 100644 index 5d7660c..0000000 --- a/component-05-vue-composition-api/src/router/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import Home from '../views/Home.vue'; - -Vue.use(VueRouter); - -const routes = [ - { - path: '/', - name: 'home', - component: Home - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') - } -]; - -const router = new VueRouter({ - mode: 'history', - base: process.env.BASE_URL, - routes -}); - -export default router; diff --git a/component-05-vue-composition-api/src/shims-tsx.d.ts b/component-05-vue-composition-api/src/shims-tsx.d.ts deleted file mode 100644 index cee45f0..0000000 --- a/component-05-vue-composition-api/src/shims-tsx.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Vue, { VNode } from 'vue'; - -declare global { - namespace JSX { - // tslint:disable no-empty-interface - interface Element extends VNode {} - // tslint:disable no-empty-interface - interface ElementClass extends Vue {} - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/component-05-vue-composition-api/src/shims-vue.d.ts b/component-05-vue-composition-api/src/shims-vue.d.ts deleted file mode 100644 index 8f6f410..0000000 --- a/component-05-vue-composition-api/src/shims-vue.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.vue' { - import Vue from 'vue'; - export default Vue; -} diff --git a/component-05-vue-composition-api/src/store/index.ts b/component-05-vue-composition-api/src/store/index.ts deleted file mode 100644 index 3431aaa..0000000 --- a/component-05-vue-composition-api/src/store/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -export default new Vuex.Store({ - state: {}, - mutations: {}, - actions: {}, - modules: {}, -}); diff --git a/component-05-vue-composition-api/src/views/About.vue b/component-05-vue-composition-api/src/views/About.vue deleted file mode 100644 index 3fa2807..0000000 --- a/component-05-vue-composition-api/src/views/About.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/component-05-vue-composition-api/src/views/Home.vue b/component-05-vue-composition-api/src/views/Home.vue deleted file mode 100644 index 51c4441..0000000 --- a/component-05-vue-composition-api/src/views/Home.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/component-05-vue-composition-api/tsconfig.json b/component-05-vue-composition-api/tsconfig.json deleted file mode 100644 index fefedc9..0000000 --- a/component-05-vue-composition-api/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "importHelpers": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "baseUrl": ".", - "types": [ - "webpack-env" - ], - "paths": { - "@/*": [ - "src/*" - ], - "~/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.vue", - "tests/**/*.ts", - "tests/**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} diff --git a/component-05-vue-composition-api/vue.config.js b/component-05-vue-composition-api/vue.config.js deleted file mode 100644 index 86ab4c5..0000000 --- a/component-05-vue-composition-api/vue.config.js +++ /dev/null @@ -1,5 +0,0 @@ -const publicPath = process.env.BASE_HREF || '/'; - -module.exports = { - publicPath, -}; diff --git a/component-06-ts-vue-composition-api/.browserslistrc b/component-06-ts-vue-composition-api/.browserslistrc deleted file mode 100644 index d6471a3..0000000 --- a/component-06-ts-vue-composition-api/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -> 1% -last 2 versions diff --git a/component-06-ts-vue-composition-api/.gitignore b/component-06-ts-vue-composition-api/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/component-06-ts-vue-composition-api/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/component-06-ts-vue-composition-api/README.md b/component-06-ts-vue-composition-api/README.md deleted file mode 100644 index 0585007..0000000 --- a/component-06-ts-vue-composition-api/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# vue-composition-api-tsx-example - -## Project setup -``` -yarn install -``` - -### Compiles and hot-reloads for development -``` -yarn run serve -``` - -### Compiles and minifies for production -``` -yarn run build -``` - -### Run your tests -``` -yarn run test -``` - -### Lints and fixes files -``` -yarn run lint -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/component-06-ts-vue-composition-api/babel.config.js b/component-06-ts-vue-composition-api/babel.config.js deleted file mode 100644 index 32d625a..0000000 --- a/component-06-ts-vue-composition-api/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: ['vca-jsx', '@vue/app'], -}; diff --git a/component-06-ts-vue-composition-api/package.json b/component-06-ts-vue-composition-api/package.json deleted file mode 100644 index 911e770..0000000 --- a/component-06-ts-vue-composition-api/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "vue-composition-api-tsx-example", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "gh": "cross-env BASE_HREF='/vue-examples/' npm run build", - "start": "pm2 start 'npm run serve' --name app", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "dependencies": { - "@vue/composition-api": "0.3.4", - "core-js": "3.6.2", - "vue": "2.6.11" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "4.1.2", - "@vue/cli-plugin-typescript": "4.1.2", - "@vue/cli-service": "4.1.2", - "babel-preset-vca-jsx": "0.3.4", - "cross-env": "6.0.3", - "pm2": "4.2.1", - "typescript": "3.7.4", - "vue-template-compiler": "2.6.11" - } -} diff --git a/component-06-ts-vue-composition-api/postcss.config.js b/component-06-ts-vue-composition-api/postcss.config.js deleted file mode 100644 index 961986e..0000000 --- a/component-06-ts-vue-composition-api/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {} - } -} diff --git a/component-06-ts-vue-composition-api/src/App.css b/component-06-ts-vue-composition-api/src/App.css deleted file mode 100644 index bc71946..0000000 --- a/component-06-ts-vue-composition-api/src/App.css +++ /dev/null @@ -1,8 +0,0 @@ -#app { - font-family: 'Avenir', Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-align: center; - color: #2c3e50; - margin-top: 60px; -} diff --git a/component-06-ts-vue-composition-api/src/App.tsx b/component-06-ts-vue-composition-api/src/App.tsx deleted file mode 100644 index b7579d7..0000000 --- a/component-06-ts-vue-composition-api/src/App.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import './App.css'; -import { createComponent } from '@vue/composition-api'; -import HelloWorld from './components/HelloWorld'; -import ImageLogo from './assets/logo.png'; - -export default createComponent({ - name: 'App', - setup() { - return () => ( -
- Vue - console.log('click', e.target)} - /> -
- ); - }, -}); diff --git a/component-06-ts-vue-composition-api/src/assets/logo.png b/component-06-ts-vue-composition-api/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/component-06-ts-vue-composition-api/src/assets/logo.png and /dev/null differ diff --git a/component-06-ts-vue-composition-api/src/components/HelloWorld.module.css b/component-06-ts-vue-composition-api/src/components/HelloWorld.module.css deleted file mode 100644 index 1a61f52..0000000 --- a/component-06-ts-vue-composition-api/src/components/HelloWorld.module.css +++ /dev/null @@ -1,14 +0,0 @@ -.listTitle { - margin: 40px 0 0; -} -.list { - list-style-type: none; - padding: 0; -} -.item { - display: inline-block; - margin: 0 10px; -} -.link { - color: #42b983; -} diff --git a/component-06-ts-vue-composition-api/src/components/HelloWorld.tsx b/component-06-ts-vue-composition-api/src/components/HelloWorld.tsx deleted file mode 100644 index a3a22c1..0000000 --- a/component-06-ts-vue-composition-api/src/components/HelloWorld.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import style from './HelloWorld.module.css'; -import { createComponent, PropType } from '@vue/composition-api'; - -export default createComponent({ - name: 'HelloWorld', - props: { - msg: { - type: String, - required: true, - }, - // Note that this prop must not start with on, otherwise Babel plugin will catch it and process - // it as an event listener and store it to setupContext.listeners. - // For type-safety, we should use function props instead of vue listeners. The prefix "event" is - // for consistence. - eventClick: { - type: (null as unknown) as PropType<(event: MouseEvent) => void>, - } - }, - setup(props) { - return () => ( -
-

{props.msg}

-

- For a guide and recipes on how to configure / customize this project, -
- check out the - - vue-cli documentation - - . -

-

Installed CLI Plugins

- -

Essential Links

- -

Ecosystem

- -
- ); - }, -}); diff --git a/component-06-ts-vue-composition-api/src/main.ts b/component-06-ts-vue-composition-api/src/main.ts deleted file mode 100644 index 7647207..0000000 --- a/component-06-ts-vue-composition-api/src/main.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Vue from 'vue'; -import VueCompositionApi from '@vue/composition-api'; -import App from './App'; - -Vue.config.productionTip = false; -Vue.use(VueCompositionApi); - -new Vue({ - render: h => h(App), -}).$mount('#app'); diff --git a/component-06-ts-vue-composition-api/src/shims-app.d.ts b/component-06-ts-vue-composition-api/src/shims-app.d.ts deleted file mode 100644 index fca12c1..0000000 --- a/component-06-ts-vue-composition-api/src/shims-app.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -declare module '*.bmp' { - const src: string; - export default src; -} - -declare module '*.gif' { - const src: string; - export default src; -} - -declare module '*.jpg' { - const src: string; - export default src; -} - -declare module '*.jpeg' { - const src: string; - export default src; -} - -declare module '*.png' { - const src: string; - export default src; -} - -declare module '*.webp' { - const src: string; - export default src; -} - -declare module '*.module.css' { - const classes: { readonly [key: string]: string }; - export default classes; -} - -declare module '*.module.scss' { - const classes: { readonly [key: string]: string }; - export default classes; -} - -declare module '*.module.sass' { - const classes: { readonly [key: string]: string }; - export default classes; -} diff --git a/component-06-ts-vue-composition-api/src/shims-tsx.d.ts b/component-06-ts-vue-composition-api/src/shims-tsx.d.ts deleted file mode 100644 index f6c57e0..0000000 --- a/component-06-ts-vue-composition-api/src/shims-tsx.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Vue, { VNode } from 'vue' -import { ComponentRenderProxy } from '@vue/composition-api' - -declare global { - namespace JSX { - // tslint:disable no-empty-interface - interface Element extends VNode {} - // tslint:disable no-empty-interface - interface ElementClass extends ComponentRenderProxy {} - interface ElementAttributesProperty { - $props: any; // specify the property name to use - } - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/component-06-ts-vue-composition-api/tsconfig.json b/component-06-ts-vue-composition-api/tsconfig.json deleted file mode 100644 index 499f5e2..0000000 --- a/component-06-ts-vue-composition-api/tsconfig.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "importHelpers": true, - "moduleResolution": "node", - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "baseUrl": ".", - "types": [ - "webpack-env" - ], - "paths": { - "@/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.vue", - "tests/**/*.ts", - "tests/**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} diff --git a/component-06-ts-vue-composition-api/vue.config.js b/component-06-ts-vue-composition-api/vue.config.js deleted file mode 100644 index 86ab4c5..0000000 --- a/component-06-ts-vue-composition-api/vue.config.js +++ /dev/null @@ -1,5 +0,0 @@ -const publicPath = process.env.BASE_HREF || '/'; - -module.exports = { - publicPath, -}; diff --git a/crete-nuxt-app/README.adoc b/crete-nuxt-app/README.adoc deleted file mode 100644 index 26ac895..0000000 --- a/crete-nuxt-app/README.adoc +++ /dev/null @@ -1,39 +0,0 @@ -= create-nuxt-app - -create nuxt app using `create-nuxt-app` package -[source,bash] ----- -npm i -g -E create-nuxt-app -create-nuxt-app create-nuxt-app -> Generating Nuxt.js project in .../create-nuxt-app -? Project name create-nuxt-app -? Project description My geometric Nuxt.js project -? Use a custom server framework none -? Use a custom UI framework vuetify -? Choose rendering mode Single Page App -? Use axios module yes -? Use eslint no -? Author name Maksim Kostromin -? Choose a package manager yarn -Initialized empty Git repository in /private/tmp/create-nuxt-app/.git/ -yarn install v1.6.0 -info No lockfile found. -[1/4] 🔍 Resolving packages... -[2/4] 🚚 Fetching packages... -[3/4] 🔗 Linking dependencies... -warning " > vuetify@0.17.7" has unmet peer dependency "vue@^2.5.0". -[4/4] 📃 Building fresh packages... -success Saved lockfile. -✨ Done in 19.01s. - - To get started: - - cd create-nuxt-app - npm run dev - - To build & start for production: - - cd create-nuxt-app - npm run build - npm start ----- diff --git a/css/app.bf9718a5.css b/css/app.bf9718a5.css new file mode 100644 index 0000000..13ab863 --- /dev/null +++ b/css/app.bf9718a5.css @@ -0,0 +1 @@ +#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px} \ No newline at end of file diff --git a/css/chunk-vendors.60f2038a.css b/css/chunk-vendors.60f2038a.css new file mode 100644 index 0000000..d3f3fe2 --- /dev/null +++ b/css/chunk-vendors.60f2038a.css @@ -0,0 +1,7 @@ +/*! + * animate.css -https://daneden.github.io/animate.css/ + * Version - 3.7.2 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2019 Daniel Eden + */@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animated.delay-2s{-webkit-animation-delay:2s;animation-delay:2s}.animated.delay-3s{-webkit-animation-delay:3s;animation-delay:3s}.animated.delay-4s{-webkit-animation-delay:4s;animation-delay:4s}.animated.delay-5s{-webkit-animation-delay:5s;animation-delay:5s}.animated.fast{-webkit-animation-duration:.8s;animation-duration:.8s}.animated.faster{-webkit-animation-duration:.5s;animation-duration:.5s}.animated.slow{-webkit-animation-duration:2s;animation-duration:2s}.animated.slower{-webkit-animation-duration:3s;animation-duration:3s}@media (prefers-reduced-motion:reduce),(print){.animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}} \ No newline at end of file diff --git a/docs/docinfo.html b/docs/docinfo.html deleted file mode 100644 index 34e73c5..0000000 --- a/docs/docinfo.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - -
- - - Don't fork me! - -
- - - - - - - diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/docs/images/favicon.ico and /dev/null differ diff --git a/docs/index.adoc b/docs/index.adoc deleted file mode 100644 index 38d21ce..0000000 --- a/docs/index.adoc +++ /dev/null @@ -1,26 +0,0 @@ -= {root-project-name} ({project-version}) image:https://travis-ci.org/daggerok/{root-project-name}.svg?branch=master["Build Status", link={github-url}] -Maksim Kostromin -{docdatetime} -:doctype: book -:toc: left -:toclevels: 4 -:numbered: -:icons: font -:hide-uri-scheme: -:revnumber: {project-version} -:example-caption!: -:source-highlighter: highlightjs - -Travis CI status: -image:https://travis-ci.org/daggerok/{root-project-name}.svg?branch=master["Build Status", link={github-url}] - -== Introduction - -include::../README.adoc[] - -== Links - -ifdef::backend-html5[- link:./index.pdf[Documentation in PFD format]] -- link:{github-url}[GitHub repo] -- link:https://daggerok.github.io/{root-project-name}[GitHub pages] - diff --git a/eaglejs-slideshow/.gitignore b/eaglejs-slideshow/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/eaglejs-slideshow/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/eaglejs-slideshow/README.md b/eaglejs-slideshow/README.md deleted file mode 100644 index d7f2722..0000000 --- a/eaglejs-slideshow/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# eaglejs-slideshow - -```bash -npx vue create eaglejs-slideshow -idea eaglejs-slidesho -cd eaglejs-slideshow -npm i -E eagle.js animate.css -``` - -![npx vue create eaglejs-slideshow command](npx-vue-create-eaglejs-slideshow.png) - -```bash -idea eaglejs-slidesho -cd eaglejs-slideshow -npm i -E eagle.js animate.css -npm run serve -``` - -see: https://www.youtube.com/watch?v=AQMuUyL05k4 diff --git a/eaglejs-slideshow/npx-vue-create-eaglejs-slideshow.png b/eaglejs-slideshow/npx-vue-create-eaglejs-slideshow.png deleted file mode 100644 index 55099b6..0000000 Binary files a/eaglejs-slideshow/npx-vue-create-eaglejs-slideshow.png and /dev/null differ diff --git a/eaglejs-slideshow/package.json b/eaglejs-slideshow/package.json deleted file mode 100644 index fe8b1af..0000000 --- a/eaglejs-slideshow/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "eaglejs-slideshow", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "gh": "cross-env BASE_HREF='/vue-examples/' npm run build", - "start": "pm2 start 'npm run serve' --name app", - "restart": "pm2 restart app", - "stop": "pm2 kill", - "logs": "pm2 logs" - }, - "dependencies": { - "animate.css": "3.7.2", - "core-js": "3.6.4", - "eagle.js": "0.6.1", - "vue": "2.6.11" - }, - "devDependencies": { - "@vue/cli-plugin-babel": "4.2.2", - "@vue/cli-service": "4.2.2", - "cross-env": "7.0.0", - "pm2": "4.2.3", - "sass": "1.25.0", - "sass-loader": "8.0.2", - "vue-template-compiler": "2.6.11" - }, - "keywords": [ - "vue", - "eagle.js", - "aminate.css", - "cross-env", - "sass", - "pm2" - ], - "browserslist": [ - "> 1%", - "last 2 versions" - ], - "babel": { - "presets": [ - "@vue/cli-plugin-babel/preset" - ] - } -} diff --git a/eaglejs-slideshow/public/index.html b/eaglejs-slideshow/public/index.html deleted file mode 100644 index 4123528..0000000 --- a/eaglejs-slideshow/public/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - <%= htmlWebpackPlugin.options.title %> - - - -
- - - diff --git a/eaglejs-slideshow/src/App.vue b/eaglejs-slideshow/src/App.vue deleted file mode 100644 index 6b5318c..0000000 --- a/eaglejs-slideshow/src/App.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/eaglejs-slideshow/src/main.js b/eaglejs-slideshow/src/main.js deleted file mode 100644 index d136363..0000000 --- a/eaglejs-slideshow/src/main.js +++ /dev/null @@ -1,12 +0,0 @@ -import Vue from 'vue'; -import App from './App.vue'; - -import Eagle from 'eagle.js'; -import 'animate.css'; -Vue.use(Eagle); - -Vue.config.productionTip = false; - -new Vue({ - render: h => h(App), -}).$mount('#app'); diff --git a/eaglejs-slideshow/vue.config.js b/eaglejs-slideshow/vue.config.js deleted file mode 100644 index 86ab4c5..0000000 --- a/eaglejs-slideshow/vue.config.js +++ /dev/null @@ -1,5 +0,0 @@ -const publicPath = process.env.BASE_HREF || '/'; - -module.exports = { - publicPath, -}; diff --git a/ecma-script-5/package.json b/ecma-script-5/package.json deleted file mode 100644 index b444a7a..0000000 --- a/ecma-script-5/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "ecma-script-5", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "start": "forever start ./node_modules/.bin/browser-sync start --watch --no-open --directory --files *.* --cors --serveStatic src --server src", - "logs": "forever logs -f 0", - "stop": "forever stopall --killTree" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@types/vue": "2.0.0", - "browser-sync": "2.26.7", - "forever": "1.0.0" - } -} diff --git a/ecma-script-5/src/index.html b/ecma-script-5/src/index.html deleted file mode 100644 index 6366dae..0000000 --- a/ecma-script-5/src/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Vue EcmaScript5 - - - - - - -
-
-

- Hello World -

-

- Counter {{ counter }} -

-
-
- - - - - - diff --git a/ecma-script-5/src/script.js b/ecma-script-5/src/script.js deleted file mode 100644 index c636870..0000000 --- a/ecma-script-5/src/script.js +++ /dev/null @@ -1,16 +0,0 @@ - -(function main() { - new Vue({ - el: '#app', - data: function _data() { - return { - counter: 0, - }; - }, - methods: { - increment: function _increment() { - this.counter++; - }, - }, - }); -})(); diff --git a/ecma-script-5/src/style.css b/ecma-script-5/src/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/ecma-script-parcel/package.json b/ecma-script-parcel/package.json deleted file mode 100644 index 1cb5c11..0000000 --- a/ecma-script-parcel/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "ecma-script-parcel", - "version": "1.0.0", - "description": "", - "main": "index.html", - "scripts": { - "start": "forever ./node_modules/.bin/parcel src/index.html", - "logs": "forever logs -f 0", - "stop": "forever stopall --killTree" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@types/vue": "2.0.0", - "forever": "1.0.0", - "parcel-bundler": "1.12.4" - } -} diff --git a/ecma-script-parcel/src/index.html b/ecma-script-parcel/src/index.html deleted file mode 100644 index 8248af0..0000000 --- a/ecma-script-parcel/src/index.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Vue Parcel - - - - - - -
-
-

- Hello World -

-

- Counter {{ counter }} -

-
-
- - - - - - diff --git a/ecma-script-parcel/src/script.js b/ecma-script-parcel/src/script.js deleted file mode 100644 index c636870..0000000 --- a/ecma-script-parcel/src/script.js +++ /dev/null @@ -1,16 +0,0 @@ - -(function main() { - new Vue({ - el: '#app', - data: function _data() { - return { - counter: 0, - }; - }, - methods: { - increment: function _increment() { - this.counter++; - }, - }, - }); -})(); diff --git a/ecma-script-parcel/src/style.css b/ecma-script-parcel/src/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/eventbus/.editorconfig b/eventbus/.editorconfig deleted file mode 100644 index 9d08a1a..0000000 --- a/eventbus/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/eventbus/.postcssrc.js b/eventbus/.postcssrc.js deleted file mode 100644 index 5d69693..0000000 --- a/eventbus/.postcssrc.js +++ /dev/null @@ -1,10 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - "postcss-import": {}, - "postcss-url": {}, - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/eventbus/README.md b/eventbus/README.md deleted file mode 100644 index 71c0398..0000000 --- a/eventbus/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# event bus - -## do not update packages - -```bash -ncu - optimize-css-assets-webpack-plugin 3.2.0 → 5.0.0 - vue-loader 13.7.2 → 15.2.6 - webpack 3.12.0 → 4.16.4 -``` - - -> A Vue.js project - -``` bash -yarn -i -yarn start -yarn deploy # gh-pages deployment -``` - -For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). diff --git a/eventbus/build/build.js b/eventbus/build/build.js deleted file mode 100644 index 8110c2e..0000000 --- a/eventbus/build/build.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, (err, stats) => { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. - chunks: false, - chunkModules: false - }) + '\n\n'); - - if (stats.hasErrors()) { - console.log(chalk.red(' Build failed with errors.\n')); - process.exit(1); - } - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/eventbus/build/check-versions.js b/eventbus/build/check-versions.js deleted file mode 100644 index 4bb64fc..0000000 --- a/eventbus/build/check-versions.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - } -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - - console.log(); - process.exit(1); - } -}; diff --git a/eventbus/build/env.js b/eventbus/build/env.js deleted file mode 100644 index 9f709a8..0000000 --- a/eventbus/build/env.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - isProduction: process.env.NODE_ENV === 'production', - isGhPages: !!process.env.GH_PAGES, -}; diff --git a/eventbus/build/logo.png b/eventbus/build/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/eventbus/build/logo.png and /dev/null differ diff --git a/eventbus/build/utils.js b/eventbus/build/utils.js deleted file mode 100644 index c573393..0000000 --- a/eventbus/build/utils.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const packageConfig = require('../package.json'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - sourceMap: options.sourceMap - } - }; - - const postcssLoader = { - loader: 'postcss-loader', - options: { - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]; - - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - - for (const extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - - return output; -}; - -exports.createNotifierCallback = () => { - const notifier = require('node-notifier'); - - return (severity, errors) => { - if (severity !== 'error') return; - - const error = errors[0]; - const filename = error.file && error.file.split('!').pop(); - - notifier.notify({ - title: packageConfig.name, - message: severity + ': ' + error.name, - subtitle: filename || '', - icon: path.join(__dirname, 'logo.png') - }); - }; -}; diff --git a/eventbus/build/vue-loader.conf.js b/eventbus/build/vue-loader.conf.js deleted file mode 100644 index 6cf1167..0000000 --- a/eventbus/build/vue-loader.conf.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -const utils = require('./utils'); -const config = require('../config'); -const { isProduction } = require('./env'); - -const sourceMapEnabled = isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: sourceMapEnabled, - extract: isProduction - }), - cssSourceMap: sourceMapEnabled, - cacheBusting: config.dev.cacheBusting, - transformToRequire: { - video: ['src', 'poster'], - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/eventbus/build/webpack.base.conf.js b/eventbus/build/webpack.base.conf.js deleted file mode 100644 index 9bfb7e9..0000000 --- a/eventbus/build/webpack.base.conf.js +++ /dev/null @@ -1,82 +0,0 @@ -'use strict'; -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - context: path.resolve(__dirname, '../'), - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'gh-pages' - ? config.gh.assetsPublicPath - : process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - }, - node: { - // prevent webpack from injecting useless setImmediate polyfill because Vue - // source contains it (although only uses it if it's native). - setImmediate: false, - // prevent webpack from injecting mocks to Node native modules - // that does not make sense for the client - dgram: 'empty', - fs: 'empty', - net: 'empty', - tls: 'empty', - child_process: 'empty' - } -}; diff --git a/eventbus/build/webpack.dev.conf.js b/eventbus/build/webpack.dev.conf.js deleted file mode 100755 index db90531..0000000 --- a/eventbus/build/webpack.dev.conf.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const path = require('path'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); -const portfinder = require('portfinder'); - -const HOST = process.env.HOST; -const PORT = process.env.PORT && Number(process.env.PORT); - -const devWebpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) - }, - // cheap-module-eval-source-map is faster for development - devtool: config.dev.devtool, - - // these devServer options should be customized in /config/index.js - devServer: { - clientLogLevel: 'warning', - historyApiFallback: { - rewrites: [ - { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, - ], - }, - hot: true, - contentBase: false, // since we use CopyWebpackPlugin. - compress: true, - host: HOST || config.dev.host, - port: PORT || config.dev.port, - open: config.dev.autoOpenBrowser, - overlay: config.dev.errorOverlay - ? { warnings: false, errors: true } - : false, - publicPath: config.dev.assetsPublicPath, - proxy: config.dev.proxyTable, - quiet: true, // necessary for FriendlyErrorsPlugin - watchOptions: { - poll: config.dev.poll, - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/dev.env') - }), - new webpack.HotModuleReplacementPlugin(), - new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.dev.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -module.exports = new Promise((resolve, reject) => { - portfinder.basePort = process.env.PORT || config.dev.port; - portfinder.getPort((err, port) => { - if (err) { - reject(err); - } else { - // publish the new Port, necessary for e2e tests - process.env.PORT = port; - // add port to devServer config - devWebpackConfig.devServer.port = port; - - // Add FriendlyErrorsPlugin - devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ - compilationSuccessInfo: { - messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], - }, - onErrors: config.dev.notifyOnErrors - ? utils.createNotifierCallback() - : undefined - })); - - resolve(devWebpackConfig); - } - }); -}); diff --git a/eventbus/build/webpack.prod.conf.js b/eventbus/build/webpack.prod.conf.js deleted file mode 100644 index f8ed2c2..0000000 --- a/eventbus/build/webpack.prod.conf.js +++ /dev/null @@ -1,145 +0,0 @@ -'use strict'; -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); - -const env = require('../config/prod.env'); - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true, - usePostCSS: true - }) - }, - devtool: config.build.productionSourceMap ? config.build.devtool : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new UglifyJsPlugin({ - uglifyOptions: { - compress: { - warnings: false - } - }, - sourceMap: config.build.productionSourceMap, - parallel: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css'), - // Setting the following option to `false` will not extract CSS from codesplit chunks. - // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. - // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, - // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 - allChunks: true, - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: config.build.productionSourceMap - ? { safe: true, map: { inline: false } } - : { safe: true } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // keep module.id stable when vendor modules does not change - new webpack.HashedModuleIdsPlugin(), - // enable scope hoisting - new webpack.optimize.ModuleConcatenationPlugin(), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks(module) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - minChunks: Infinity - }), - // This instance extracts shared chunks from code splitted chunks and bundles them - // in a separate chunk, similar to the vendor chunk - // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk - new webpack.optimize.CommonsChunkPlugin({ - name: 'app', - async: 'vendor-async', - children: true, - minChunks: 3 - }), - - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/eventbus/config/dev.env.js b/eventbus/config/dev.env.js deleted file mode 100644 index 60d5ba6..0000000 --- a/eventbus/config/dev.env.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -const merge = require('webpack-merge'); -const prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/eventbus/config/index.js b/eventbus/config/index.js deleted file mode 100644 index c7d898f..0000000 --- a/eventbus/config/index.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; -// Template version: 1.3.1 -// see http://vuejs-templates.github.io/webpack for documentation. -const { isGhPages } = require('../build/env'); -const path = require('path'); - -module.exports = { - dev: { - - // Paths - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - - // Various Dev Server settings - host: 'localhost', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined - autoOpenBrowser: false, - errorOverlay: true, - notifyOnErrors: true, - poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- - - /** - * Source Maps - */ - - // https://webpack.js.org/configuration/devtool/#development - devtool: 'cheap-module-eval-source-map', - - // If you have problems debugging vue-files in devtools, - // set this to false - it *may* help - // https://vue-loader.vuejs.org/en/options.html#cachebusting - cacheBusting: true, - - cssSourceMap: true - }, - - build: { - // Template for index.html - index: path.resolve(__dirname, '../dist/index.html'), - - // Paths - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - - /** - * Source Maps - */ - - productionSourceMap: true, - // https://webpack.js.org/configuration/devtool/#production - devtool: '#source-map', - - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, -}; diff --git a/eventbus/config/prod.env.js b/eventbus/config/prod.env.js deleted file mode 100644 index a58e538..0000000 --- a/eventbus/config/prod.env.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/eventbus/index.html b/eventbus/index.html deleted file mode 100644 index 5366094..0000000 --- a/eventbus/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - event bus - - - -
- - - diff --git a/eventbus/package.json b/eventbus/package.json deleted file mode 100644 index 8eb2fcf..0000000 --- a/eventbus/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "eventbus", - "version": "0.0.1", - "description": "A Vue.js project", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "clean": "rimraf -rf ./dist", - "start": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", - "build": "node build/build.js", - "predeploy": "npm-run-all predeploy:*", - "predeploy:clean": "yarn clean", - "predeploy:build": "cross-env GH_PAGES=true yarn build", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "predeploy:nojekyll": "touch ./dist/.nojekyll", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Parcel Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "hammerjs": "2.0.8", - "jquery": "3.4.1", - "materialize-css": "0.100.2", - "vue": "2.5.17" - }, - "devDependencies": { - "autoprefixer": "9.1.0", - "babel-core": "6.26.3", - "babel-helper-vue-jsx-merge-props": "2.0.3", - "babel-loader": "7.1.5", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-plugin-transform-vue-jsx": "3.7.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-2": "6.24.1", - "chalk": "2.4.1", - "copy-webpack-plugin": "4.5.2", - "cross-env": "5.2.0", - "css-loader": "1.0.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "gh-pages": "1.2.0", - "html-webpack-plugin": "3.2.0", - "ncp": "2.0.0", - "node-notifier": "5.2.1", - "npm-run-all": "4.1.3", - "optimize-css-assets-webpack-plugin": "3.2.0", - "ora": "3.0.0", - "portfinder": "1.0.13", - "postcss-import": "12.0.0", - "postcss-loader": "2.1.6", - "postcss-url": "7.3.2", - "rimraf": "2.6.2", - "semver": "5.5.0", - "shelljs": "0.8.2", - "uglifyjs-webpack-plugin": "1.2.7", - "url-loader": "1.0.1", - "vue-loader": "13.7.2", - "vue-style-loader": "4.1.1", - "vue-template-compiler": "2.5.17", - "webpack": "3.12.0", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.4" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "babel": { - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-vue-jsx", - "transform-runtime" - ] - } -} diff --git a/eventbus/src/ChatApp.vue b/eventbus/src/ChatApp.vue deleted file mode 100644 index 5f3ff9e..0000000 --- a/eventbus/src/ChatApp.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/eventbus/src/assets/logo.png b/eventbus/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/eventbus/src/assets/logo.png and /dev/null differ diff --git a/eventbus/src/components/Chat.vue b/eventbus/src/components/Chat.vue deleted file mode 100644 index cf6c5eb..0000000 --- a/eventbus/src/components/Chat.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/eventbus/src/components/EventBus.js b/eventbus/src/components/EventBus.js deleted file mode 100644 index 73e0d0b..0000000 --- a/eventbus/src/components/EventBus.js +++ /dev/null @@ -1,3 +0,0 @@ -import Vue from 'vue'; - -export const eventBus = new Vue(); diff --git a/eventbus/src/main.js b/eventbus/src/main.js deleted file mode 100644 index 97dc32f..0000000 --- a/eventbus/src/main.js +++ /dev/null @@ -1,17 +0,0 @@ -import 'hammerjs/hammer'; -import 'jquery/dist/jquery'; -import 'materialize-css/dist/js/materialize'; -import 'materialize-css/dist/css/materialize.css'; -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import ChatApp from './ChatApp'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - components: { ChatApp }, - template: `` -}); diff --git a/eventbus/static/.gitkeep b/eventbus/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/eventbus/static/favicon.ico b/eventbus/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/eventbus/static/favicon.ico and /dev/null differ diff --git a/eaglejs-slideshow/public/favicon.ico b/favicon.ico similarity index 100% rename from eaglejs-slideshow/public/favicon.ico rename to favicon.ico diff --git a/firebase-using-vuefire/.babelrc b/firebase-using-vuefire/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/firebase-using-vuefire/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/firebase-using-vuefire/.eslintignore b/firebase-using-vuefire/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/firebase-using-vuefire/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/firebase-using-vuefire/.eslintrc.js b/firebase-using-vuefire/.eslintrc.js deleted file mode 100644 index 6d24e6e..0000000 --- a/firebase-using-vuefire/.eslintrc.js +++ /dev/null @@ -1,40 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - 'standard/computed-property-even-spacing': 0, - 'spaced-comment': 0, - 'padded-blocks': 0, - } -}; diff --git a/firebase-using-vuefire/.postcssrc.js b/firebase-using-vuefire/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/firebase-using-vuefire/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/firebase-using-vuefire/README.md b/firebase-using-vuefire/README.md deleted file mode 100644 index a27050c..0000000 --- a/firebase-using-vuefire/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Firebase app using vuefire with vue-material, vee-validate and vue-progressbar - -- [vue-material: read more](http://vuematerial.io/) -- [vee-validate: read more](http://vee-validate.logaretm.com/) -- [vue-progressbar: read more](https://github.com/hilongjw/vue-progressbar) -- [vuefire: read more](https://github.com/vuejs/vuefire) -- [vuexfire: read more](https://github.com/posva/vuexfire) - -TODO: - -- i18n - -## build and run - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/firebase-using-vuefire/build/build.js b/firebase-using-vuefire/build/build.js deleted file mode 100644 index e61bb6c..0000000 --- a/firebase-using-vuefire/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/firebase-using-vuefire/build/check-versions.js b/firebase-using-vuefire/build/check-versions.js deleted file mode 100644 index b050890..0000000 --- a/firebase-using-vuefire/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/firebase-using-vuefire/build/dev-client.js b/firebase-using-vuefire/build/dev-client.js deleted file mode 100644 index 09f6542..0000000 --- a/firebase-using-vuefire/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/firebase-using-vuefire/build/dev-server.js b/firebase-using-vuefire/build/dev-server.js deleted file mode 100644 index fab8761..0000000 --- a/firebase-using-vuefire/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -const config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -const opn = require('opn'); -const path = require('path'); -const express = require('express'); -const webpack = require('webpack'); -const proxyMiddleware = require('http-proxy-middleware'); -const webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -const port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -const autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -const proxyTable = config.dev.proxyTable; - -const app = express(); -const compiler = webpack(webpackConfig); - -const devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -const hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - let options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -const uri = 'http://localhost:' + port; - -let _resolve; -const readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -const server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/firebase-using-vuefire/build/utils.js b/firebase-using-vuefire/build/utils.js deleted file mode 100644 index a5b6693..0000000 --- a/firebase-using-vuefire/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - for (let extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/firebase-using-vuefire/build/vue-loader.conf.js b/firebase-using-vuefire/build/vue-loader.conf.js deleted file mode 100644 index 516e7b6..0000000 --- a/firebase-using-vuefire/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -const utils = require('./utils'); -const config = require('../config'); -const isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/firebase-using-vuefire/build/webpack.base.conf.js b/firebase-using-vuefire/build/webpack.base.conf.js deleted file mode 100644 index ed1a972..0000000 --- a/firebase-using-vuefire/build/webpack.base.conf.js +++ /dev/null @@ -1,83 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); -const { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - plugins: [ - new BaseHrefWebpackPlugin({ - baseHref: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath, - }), - ], - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/firebase-using-vuefire/build/webpack.dev.conf.js b/firebase-using-vuefire/build/webpack.dev.conf.js deleted file mode 100644 index 30a9663..0000000 --- a/firebase-using-vuefire/build/webpack.dev.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true, - favicon: './favicon.ico', - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/firebase-using-vuefire/build/webpack.prod.conf.js b/firebase-using-vuefire/build/webpack.prod.conf.js deleted file mode 100644 index a19dbdc..0000000 --- a/firebase-using-vuefire/build/webpack.prod.conf.js +++ /dev/null @@ -1,125 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - favicon: './favicon.ico', - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/firebase-using-vuefire/config/dev.env.js b/firebase-using-vuefire/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/firebase-using-vuefire/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/firebase-using-vuefire/config/index.js b/firebase-using-vuefire/config/index.js deleted file mode 100644 index 9c16dd9..0000000 --- a/firebase-using-vuefire/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/vue-examples/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/firebase-using-vuefire/config/prod.env.js b/firebase-using-vuefire/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/firebase-using-vuefire/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/firebase-using-vuefire/config/test.env.js b/firebase-using-vuefire/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/firebase-using-vuefire/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/firebase-using-vuefire/favicon.ico b/firebase-using-vuefire/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/firebase-using-vuefire/favicon.ico and /dev/null differ diff --git a/firebase-using-vuefire/firebase.js.default b/firebase-using-vuefire/firebase.js.default deleted file mode 100644 index fdb44ed..0000000 --- a/firebase-using-vuefire/firebase.js.default +++ /dev/null @@ -1,11 +0,0 @@ -// copy your config from firebase console -// case of project vue-examples-98112 it could be: -// https://console.firebase.google.com/u/0/project/vue-examples-98112/overview -export const config = { - apiKey: "AIzaSyCZ1vxu8FR2zeUFvqhVbHe-sa4hH73bffA", - authDomain: "vue-examples-5f262.firebaseapp.com", - databaseURL: "https://vue-examples-5f262.firebaseio.com", - projectId: "vue-examples-5f262", - storageBucket: "vue-examples-5f262.appspot.com", - messagingSenderId: "683258749318" -}; diff --git a/firebase-using-vuefire/index.html b/firebase-using-vuefire/index.html deleted file mode 100644 index 4ec2ebd..0000000 --- a/firebase-using-vuefire/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - vue-examples - - -
- - - diff --git a/firebase-using-vuefire/package.json b/firebase-using-vuefire/package.json deleted file mode 100644 index e67083a..0000000 --- a/firebase-using-vuefire/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.2", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "firebase": "4.3.1", - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "materialize-css": "0.100.2", - "vee-validate": "2.0.0-rc.14", - "vue": "2.4.3", - "vue-material": "0.7.5", - "vue-progressbar": "0.7.3", - "vue-router": "2.7.0", - "vuefire": "1.4.3", - "vuex": "2.4.0", - "vuexfire": "2.3.0", - "whatwg-fetch": "2.0.3" - }, - "devDependencies": { - "@types/firebase": "2.4.32", - "@types/jquery": "3.2.12", - "@types/node": "8.0.28", - "@types/systemjs": "0.20.5", - "@types/whatwg-fetch": "0.0.33", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "base-href-webpack-plugin": "1.0.2", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "node-sass": "4.5.3", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "semver": "5.4.1", - "shelljs": "0.7.8", - "stylus": "0.54.5", - "stylus-loader": "3.0.1", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/firebase-using-vuefire/src/App.vue b/firebase-using-vuefire/src/App.vue deleted file mode 100644 index e96b5c4..0000000 --- a/firebase-using-vuefire/src/App.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/assets/.gitkeep b/firebase-using-vuefire/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/firebase-using-vuefire/src/components/ContactList.vue b/firebase-using-vuefire/src/components/ContactList.vue deleted file mode 100644 index 8e252d0..0000000 --- a/firebase-using-vuefire/src/components/ContactList.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/components/Counter.vue b/firebase-using-vuefire/src/components/Counter.vue deleted file mode 100644 index ec5edad..0000000 --- a/firebase-using-vuefire/src/components/Counter.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/components/FirebaseApp.vue b/firebase-using-vuefire/src/components/FirebaseApp.vue deleted file mode 100644 index 33bef05..0000000 --- a/firebase-using-vuefire/src/components/FirebaseApp.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/components/Links.vue b/firebase-using-vuefire/src/components/Links.vue deleted file mode 100644 index 397ee6a..0000000 --- a/firebase-using-vuefire/src/components/Links.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/components/TodoApp.vue b/firebase-using-vuefire/src/components/TodoApp.vue deleted file mode 100644 index 2c6e0a1..0000000 --- a/firebase-using-vuefire/src/components/TodoApp.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/firebase-using-vuefire/src/firebase/index.js b/firebase-using-vuefire/src/firebase/index.js deleted file mode 100644 index 7ecda2e..0000000 --- a/firebase-using-vuefire/src/firebase/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import { initializeApp } from 'firebase'; -import { config } from '../../firebase'; - -const app = initializeApp(config); -export const db = app.database(); diff --git a/firebase-using-vuefire/src/main.js b/firebase-using-vuefire/src/main.js deleted file mode 100644 index 2b4a929..0000000 --- a/firebase-using-vuefire/src/main.js +++ /dev/null @@ -1,18 +0,0 @@ -import './vendor'; -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/firebase-using-vuefire/src/router/index.js b/firebase-using-vuefire/src/router/index.js deleted file mode 100644 index b39a2f6..0000000 --- a/firebase-using-vuefire/src/router/index.js +++ /dev/null @@ -1,59 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; -import ContactList from '../components/ContactList.vue'; -import FirebaseApp from '../components/FirebaseApp.vue'; - -Vue.use(Router); - -const meta = { - progress: { - func: [ - { call: 'color', modifier: 'temp', argument: 'rgb(143, 255, 199)', }, - { call: 'fail', modifier: 'temp', argument: '#6e0000' }, - { call: 'location', modifier: 'temp', argument: 'top' }, - { call: 'transition', modifier: 'temp', argument: { speed: '1.5s', opacity: '0.6s', termination: 400 }, }, - ], - }, -}; - -export const routes = [ - { - path: '/', - name: 'FirebaseApp', - component: FirebaseApp, - label: 'Firebase App', - }, - { - path: '/contact-list', - name: 'ContactList', - component: ContactList, - label: 'Contact List App', - }, - { - path: '/todo-app', - name: 'TodoApp', - component: TodoApp, - label: 'TODO App', - }, - { - path: '/counter', - name: 'Counter', - component: Counter, - label: 'Counter App', - }, - { - path: '/**', - redirect: '/', - }, -].map(r => { - r.meta = meta; - return r; -}); - -const router = new Router({ - routes, -}); - -export default router; diff --git a/firebase-using-vuefire/src/vendor/index.js b/firebase-using-vuefire/src/vendor/index.js deleted file mode 100644 index cac7fec..0000000 --- a/firebase-using-vuefire/src/vendor/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import './material-design-icons.js'; -import './jquery.js'; -import './vue-material'; -import './vee-validate'; -import './vue-progressbar'; -import './vuefire'; diff --git a/firebase-using-vuefire/src/vendor/jquery.js b/firebase-using-vuefire/src/vendor/jquery.js deleted file mode 100644 index 5ffcc2f..0000000 --- a/firebase-using-vuefire/src/vendor/jquery.js +++ /dev/null @@ -1,2 +0,0 @@ -window.$ = window.jQuery = require('jquery'); -require('materialize-css'); diff --git a/firebase-using-vuefire/src/vendor/material-design-icons.js b/firebase-using-vuefire/src/vendor/material-design-icons.js deleted file mode 100644 index 2549090..0000000 --- a/firebase-using-vuefire/src/vendor/material-design-icons.js +++ /dev/null @@ -1 +0,0 @@ -import 'material-design-icons/iconfont/material-icons.css'; diff --git a/firebase-using-vuefire/src/vendor/vee-validate.js b/firebase-using-vuefire/src/vendor/vee-validate.js deleted file mode 100644 index 8defc43..0000000 --- a/firebase-using-vuefire/src/vendor/vee-validate.js +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import messages from 'vee-validate/dist/locale/ru'; -import VeeValidate, { Validator } from 'vee-validate'; - -Validator.addLocale(messages); - -const config = { - locale: 'ru' -}; - -Vue.use(VeeValidate, config); diff --git a/firebase-using-vuefire/src/vendor/vue-material.js b/firebase-using-vuefire/src/vendor/vue-material.js deleted file mode 100644 index e0ca397..0000000 --- a/firebase-using-vuefire/src/vendor/vue-material.js +++ /dev/null @@ -1,19 +0,0 @@ -import 'vue-material/dist/vue-material.css'; - -import Vue from 'vue'; -import VueMaterial from 'vue-material' - -Vue.use(VueMaterial); - -/* -Vue.material.registerTheme('default', { - primary: 'blue', - accent: 'red', - warn: 'red', - background: 'grey' -}); -*/ - -Vue.material.registerTheme('default', { - primary: 'teal', -}); diff --git a/firebase-using-vuefire/src/vendor/vue-progressbar.js b/firebase-using-vuefire/src/vendor/vue-progressbar.js deleted file mode 100644 index 934a7c1..0000000 --- a/firebase-using-vuefire/src/vendor/vue-progressbar.js +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue'; -import VueProgressbar from 'vue-progressbar'; - -export const config = { - color: 'rgb(143, 255, 199)', - failedColor: 'darkgreen', - thickness: '5px', - transition: { - speed: '0.6s', - opacity: '0.6s', - termination: 400 - }, - autoRevert: true, - location: 'top', - inverse: false -}; - -Vue.use(VueProgressbar/*, config */); diff --git a/firebase-using-vuefire/src/vendor/vuefire.js b/firebase-using-vuefire/src/vendor/vuefire.js deleted file mode 100644 index 98b58a6..0000000 --- a/firebase-using-vuefire/src/vendor/vuefire.js +++ /dev/null @@ -1,4 +0,0 @@ -import Vue from 'vue'; -import VueFire from 'vuefire'; - -Vue.use(VueFire); diff --git a/firebase-using-vuefire/src/vuex/actions/contactList.js b/firebase-using-vuefire/src/vuex/actions/contactList.js deleted file mode 100644 index ad88470..0000000 --- a/firebase-using-vuefire/src/vuex/actions/contactList.js +++ /dev/null @@ -1,11 +0,0 @@ -export const contactListActions = { - addNewContactAction({ commit }) { - commit('addNewContactMutation'); - }, - setNewNameAction({ commit }, newValue) { - commit('setNewNameMutation', newValue); - }, - setNewPhoneAction(store, newValue) { - store.commit('setNewPhoneMutation', newValue); - }, -}; diff --git a/firebase-using-vuefire/src/vuex/actions/counter.js b/firebase-using-vuefire/src/vuex/actions/counter.js deleted file mode 100644 index a1ded21..0000000 --- a/firebase-using-vuefire/src/vuex/actions/counter.js +++ /dev/null @@ -1,6 +0,0 @@ -export const counterActions = { - decrementCounterAction: ({ commit }) => { - commit('decrementCounterMutation'); - }, - incrementCounterAction: store => store.commit('incrementCounterMutation'), -}; diff --git a/firebase-using-vuefire/src/vuex/actions/index.js b/firebase-using-vuefire/src/vuex/actions/index.js deleted file mode 100644 index ea0e5ed..0000000 --- a/firebase-using-vuefire/src/vuex/actions/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import { counterActions } from './counter'; -import { todoActions } from './todo'; -import { contactListActions } from './contactList'; - -export const actions = Object.assign( - {}, counterActions, todoActions, contactListActions, -); diff --git a/firebase-using-vuefire/src/vuex/actions/todo.js b/firebase-using-vuefire/src/vuex/actions/todo.js deleted file mode 100644 index def090a..0000000 --- a/firebase-using-vuefire/src/vuex/actions/todo.js +++ /dev/null @@ -1,14 +0,0 @@ -export const todoActions = { - toggleTodoAction(store, todo) { - store.commit('toggleTodoMutation', todo); - }, - addNewTodoTitleAction(store) { - store.commit('addNewTodoTitleMutation'); - }, - removeTodoAction(store, todo) { - store.commit('removeTodoMutation', todo); - }, - setNewTodoTitleAction(store, newValue) { - store.commit('setNewTodoTitleMutation', newValue); - } -}; diff --git a/firebase-using-vuefire/src/vuex/getters.js b/firebase-using-vuefire/src/vuex/getters.js deleted file mode 100644 index 35aacab..0000000 --- a/firebase-using-vuefire/src/vuex/getters.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getters = { - counter: state => state.counter, -}; diff --git a/firebase-using-vuefire/src/vuex/initialState.js b/firebase-using-vuefire/src/vuex/initialState.js deleted file mode 100644 index aeb92fc..0000000 --- a/firebase-using-vuefire/src/vuex/initialState.js +++ /dev/null @@ -1,32 +0,0 @@ -export const state = { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', -}; diff --git a/firebase-using-vuefire/src/vuex/mutations.js b/firebase-using-vuefire/src/vuex/mutations.js deleted file mode 100644 index 107c98b..0000000 --- a/firebase-using-vuefire/src/vuex/mutations.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Counter App - */ -export const decrementCounterMutation = state => state.counter--; - -export const incrementCounterMutation = state => state.counter++; - -/** - * TO DO App - */ -export const toggleTodoMutation = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitleMutation = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodoMutation = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitleMutation = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/** - * Contact App - */ -export const setNewNameMutation = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhoneMutation = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContactMutation = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; - -// mutations -export const mutations = { - decrementCounterMutation, - incrementCounterMutation, - // - toggleTodoMutation, - addNewTodoTitleMutation, - removeTodoMutation, - setNewTodoTitleMutation, - // - setNewNameMutation, - setNewPhoneMutation, - addNewContactMutation, -}; diff --git a/firebase-using-vuefire/src/vuex/store.js b/firebase-using-vuefire/src/vuex/store.js deleted file mode 100644 index a62f6ed..0000000 --- a/firebase-using-vuefire/src/vuex/store.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { state } from './initialState'; -import { getters } from './getters'; -import { mutations } from './mutations'; -import { actions } from './actions'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; diff --git a/firebase-using-vuefire/static/.gitkeep b/firebase-using-vuefire/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/firebase-using-vuefire/vue-examples-5f262-export.json b/firebase-using-vuefire/vue-examples-5f262-export.json deleted file mode 100644 index 9cad4af..0000000 --- a/firebase-using-vuefire/vue-examples-5f262-export.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "messages" : { - "-KsX5S80LDQPTcvaWuGS" : { - "date" : 1503810495789, - "email" : "daggerok@gmail.com", - "message" : "Hello Firebase!", - "name" : "Max" - }, - "-KsX4mALG27xmB-rxVLG" : { - "date" : 1503810671244, - "email" : "test@test.com", - "messages" : "Test from Firebase!", - "name" : "Test T. Tester" - } - } -} diff --git a/hello-vuex/.babelrc b/hello-vuex/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/hello-vuex/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/hello-vuex/.eslintignore b/hello-vuex/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/hello-vuex/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/hello-vuex/.eslintrc.js b/hello-vuex/.eslintrc.js deleted file mode 100644 index 7046848..0000000 --- a/hello-vuex/.eslintrc.js +++ /dev/null @@ -1,36 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - } -}; diff --git a/hello-vuex/.postcssrc.js b/hello-vuex/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/hello-vuex/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/hello-vuex/README.md b/hello-vuex/README.md deleted file mode 100644 index 2ed06be..0000000 --- a/hello-vuex/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Hello Vuex - -Uni-directional data flow (like react flux / redux) - -``` -a s y n c - R E S T - A P I - ^| - |v - action -> mutation -> state -> vue component - ^ | - | | - +----------------------------------+ -``` - -- state is mutable (Mutator function) -- on state change, vue will automatically knows which components require re-rendering -- disadvantage: you can't really use v-model on bit of application state -available commands - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/hello-vuex/bin/replace-href.bash b/hello-vuex/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/hello-vuex/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/hello-vuex/build/build.js b/hello-vuex/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/hello-vuex/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/hello-vuex/build/check-versions.js b/hello-vuex/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/hello-vuex/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/hello-vuex/build/dev-client.js b/hello-vuex/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/hello-vuex/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/hello-vuex/build/dev-server.js b/hello-vuex/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/hello-vuex/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/hello-vuex/build/utils.js b/hello-vuex/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/hello-vuex/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/hello-vuex/build/vue-loader.conf.js b/hello-vuex/build/vue-loader.conf.js deleted file mode 100644 index 6570a29..0000000 --- a/hello-vuex/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/hello-vuex/build/webpack.base.conf.js b/hello-vuex/build/webpack.base.conf.js deleted file mode 100644 index c933990..0000000 --- a/hello-vuex/build/webpack.base.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/hello-vuex/build/webpack.dev.conf.js b/hello-vuex/build/webpack.dev.conf.js deleted file mode 100644 index d79d998..0000000 --- a/hello-vuex/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/hello-vuex/build/webpack.prod.conf.js b/hello-vuex/build/webpack.prod.conf.js deleted file mode 100644 index cf56ff2..0000000 --- a/hello-vuex/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/hello-vuex/build/webpack.test.conf.js b/hello-vuex/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/hello-vuex/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/hello-vuex/config/dev.env.js b/hello-vuex/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/hello-vuex/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/hello-vuex/config/index.js b/hello-vuex/config/index.js deleted file mode 100644 index 690eb3e..0000000 --- a/hello-vuex/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/hello-vuex/config/prod.env.js b/hello-vuex/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/hello-vuex/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/hello-vuex/config/test.env.js b/hello-vuex/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/hello-vuex/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/hello-vuex/index.html b/hello-vuex/index.html deleted file mode 100644 index 7b620cc..0000000 --- a/hello-vuex/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - vue-examples - - -
- - - diff --git a/hello-vuex/package.json b/hello-vuex/package.json deleted file mode 100644 index 22e34d5..0000000 --- a/hello-vuex/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.2", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "vue": "2.4.3", - "vue-router": "2.7.0", - "vuex": "2.4.0" - }, - "devDependencies": { - "@types/node": "8.0.28", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.1.0", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "cross-env": "5.0.5", - "cross-spawn": "5.1.0", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "shelljs": "0.7.8", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/hello-vuex/src/App.vue b/hello-vuex/src/App.vue deleted file mode 100644 index 62e9e9a..0000000 --- a/hello-vuex/src/App.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/hello-vuex/src/components/Counter.vue b/hello-vuex/src/components/Counter.vue deleted file mode 100644 index 44bdaf4..0000000 --- a/hello-vuex/src/components/Counter.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/hello-vuex/src/components/Links.vue b/hello-vuex/src/components/Links.vue deleted file mode 100644 index b2281f5..0000000 --- a/hello-vuex/src/components/Links.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/hello-vuex/src/components/TodoApp.vue b/hello-vuex/src/components/TodoApp.vue deleted file mode 100644 index 7335f4d..0000000 --- a/hello-vuex/src/components/TodoApp.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/hello-vuex/src/main.js b/hello-vuex/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/hello-vuex/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/hello-vuex/src/router/index.js b/hello-vuex/src/router/index.js deleted file mode 100644 index 658c3ec..0000000 --- a/hello-vuex/src/router/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; - -Vue.use(Router); - -export default new Router({ - routes: [ - { - path: '/', - name: 'Counter', - component: Counter, - }, - { - path: '/todo-app', - name: 'TodoApp', - component: TodoApp, - }, - ], -}); diff --git a/hello-vuex/src/vuex/store.js b/hello-vuex/src/vuex/store.js deleted file mode 100644 index 045975a..0000000 --- a/hello-vuex/src/vuex/store.js +++ /dev/null @@ -1,16 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state: { - counter: 0, - }, - mutations: { - decrement: state => state.counter--, - increment: state => state.counter++, - }, -}); - -export default store; diff --git a/hello-vuex/static/favicon.ico b/hello-vuex/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/hello-vuex/static/favicon.ico and /dev/null differ diff --git a/hello-world/.babelrc b/hello-world/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/hello-world/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/hello-world/.eslintignore b/hello-world/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/hello-world/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/hello-world/.eslintrc.js b/hello-world/.eslintrc.js deleted file mode 100644 index f61f809..0000000 --- a/hello-world/.eslintrc.js +++ /dev/null @@ -1,35 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - } -}; diff --git a/hello-world/.postcssrc.js b/hello-world/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/hello-world/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/hello-world/README.md b/hello-world/README.md deleted file mode 100644 index 2c9171c..0000000 --- a/hello-world/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# hello world - -available commands - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/hello-world/bin/replace-href.bash b/hello-world/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/hello-world/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/hello-world/build/build.js b/hello-world/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/hello-world/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/hello-world/build/check-versions.js b/hello-world/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/hello-world/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/hello-world/build/dev-client.js b/hello-world/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/hello-world/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/hello-world/build/dev-server.js b/hello-world/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/hello-world/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/hello-world/build/utils.js b/hello-world/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/hello-world/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/hello-world/build/vue-loader.conf.js b/hello-world/build/vue-loader.conf.js deleted file mode 100644 index 6570a29..0000000 --- a/hello-world/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/hello-world/build/webpack.base.conf.js b/hello-world/build/webpack.base.conf.js deleted file mode 100644 index c933990..0000000 --- a/hello-world/build/webpack.base.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/hello-world/build/webpack.dev.conf.js b/hello-world/build/webpack.dev.conf.js deleted file mode 100644 index d79d998..0000000 --- a/hello-world/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/hello-world/build/webpack.prod.conf.js b/hello-world/build/webpack.prod.conf.js deleted file mode 100644 index cf56ff2..0000000 --- a/hello-world/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/hello-world/build/webpack.test.conf.js b/hello-world/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/hello-world/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/hello-world/config/dev.env.js b/hello-world/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/hello-world/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/hello-world/config/index.js b/hello-world/config/index.js deleted file mode 100644 index 690eb3e..0000000 --- a/hello-world/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/hello-world/config/prod.env.js b/hello-world/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/hello-world/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/hello-world/config/test.env.js b/hello-world/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/hello-world/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/hello-world/index.html b/hello-world/index.html deleted file mode 100644 index 7b620cc..0000000 --- a/hello-world/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - vue-examples - - -
- - - diff --git a/hello-world/package.json b/hello-world/package.json deleted file mode 100644 index 34da2e5..0000000 --- a/hello-world/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.1", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "vue": "2.4.3", - "vue-router": "2.7.0" - }, - "devDependencies": { - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.1.0", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "cross-env": "5.0.5", - "cross-spawn": "5.1.0", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "shelljs": "0.7.8", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/hello-world/src/App.vue b/hello-world/src/App.vue deleted file mode 100644 index f6656da..0000000 --- a/hello-world/src/App.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/hello-world/src/components/Home.vue b/hello-world/src/components/Home.vue deleted file mode 100644 index ce5a33c..0000000 --- a/hello-world/src/components/Home.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/hello-world/src/main.js b/hello-world/src/main.js deleted file mode 100644 index edc161d..0000000 --- a/hello-world/src/main.js +++ /dev/null @@ -1,15 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App'; -import router from './router'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - router, - template: '', - components: { App } -}); diff --git a/hello-world/src/router/index.js b/hello-world/src/router/index.js deleted file mode 100644 index dd76670..0000000 --- a/hello-world/src/router/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import Home from '../components/Home.vue'; - -Vue.use(Router); - -export default new Router({ - routes: [ - { - path: '/', - name: 'Home', - component: Home - } - ] -}); diff --git a/hello-world/static/favicon.ico b/hello-world/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/hello-world/static/favicon.ico and /dev/null differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..3bf4616 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +eaglejs-slideshow
\ No newline at end of file diff --git a/js/app.51fa92d6.js b/js/app.51fa92d6.js new file mode 100644 index 0000000..144b57b --- /dev/null +++ b/js/app.51fa92d6.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,i,l=t[0],a=t[1],c=t[2],p=0,f=[];p\n
\n
\n \n

Hello hello!

\n ololo trololo!\n
\n \n

Second slide!

\n

Come on, baby, light my fire!

\n
\n \n

Do you want some?

\n

Yes. All we need is coffee, code and a hugs

\n
\n
\n
\n\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=5dd1cc00&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport App from './App.vue';\n\nimport Eagle from 'eagle.js';\nimport 'animate.css';\nVue.use(Eagle);\n\nVue.config.productionTip = false;\n\nnew Vue({\n render: h => h(App),\n}).$mount('#app');\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors.e8f65031.js b/js/chunk-vendors.e8f65031.js new file mode 100644 index 0000000..d7fcff8 --- /dev/null +++ b/js/chunk-vendors.e8f65031.js @@ -0,0 +1,8 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"0049":function(e,t,n){"use strict";var r=n("65ee").IteratorPrototype,i=n("6756"),o=n("8d23"),a=n("77da"),s=n("ca70"),c=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=i(r,{next:o(1,n)}),a(e,u,!1,!0),s[u]=c,e}},"0209":function(e,t,n){var r=n("db8f"),i=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return i.call(e)}),e.exports=r.inspectSource},"0368":function(e,t,n){var r=n("a714");e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"0761":function(e,t,n){var r=n("d0c8"),i=n("caad"),o=n("09d1"),a=n("4dd8"),s=n("c35a"),c=n("cf9e"),u=function(e,t){this.stopped=e,this.result=t},l=e.exports=function(e,t,n,l,d){var f,p,v,h,m,g,A,y=a(t,n,l?2:1);if(d)f=e;else{if(p=s(e),"function"!=typeof p)throw TypeError("Target is not iterable");if(i(p)){for(v=0,h=o(e.length);h>v;v++)if(m=l?y(r(A=e[v])[0],A[1]):y(e[v]),m&&m instanceof u)return m;return new u(!1)}f=p.call(e)}g=f.next;while(!(A=g.call(f)).done)if(m=c(f,y,A.value,l),"object"==typeof m&&m&&m instanceof u)return m;return new u(!1)};l.stop=function(e){return new u(!0,e)}},"0828":function(e,t,n){var r=n("0f33"),i=n("db8f");(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"09d1":function(e,t,n){var r=n("59c2"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},"09e4":function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n("c8ba"))},"0d05":function(e,t,n){var r=n("09e4"),i=n("0209"),o=r.WeakMap;e.exports="function"===typeof o&&/native code/.test(i(o))},"0e17":function(e,t,n){"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!r.call({1:2},1);t.f=o?function(e){var t=i(this,e);return!!t&&t.enumerable}:r},"0ee6":function(e,t,n){var r=n("d1d7"),i=n("09e4"),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(r[e])||o(i[e]):r[e]&&r[e][t]||i[e]&&i[e][t]}},"0f33":function(e,t){e.exports=!1},"0fd9":function(e,t,n){var r,i,o,a=n("09e4"),s=n("a714"),c=n("d714"),u=n("4dd8"),l=n("68d9"),d=n("c4dd"),f=n("68e0"),p=a.location,v=a.setImmediate,h=a.clearImmediate,m=a.process,g=a.MessageChannel,A=a.Dispatch,y=0,b={},w="onreadystatechange",_=function(e){if(b.hasOwnProperty(e)){var t=b[e];delete b[e],t()}},C=function(e){return function(){_(e)}},x=function(e){_(e.data)},k=function(e){a.postMessage(e+"",p.protocol+"//"+p.host)};v&&h||(v=function(e){var t=[],n=1;while(arguments.length>n)t.push(arguments[n++]);return b[++y]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},r(y),y},h=function(e){delete b[e]},"process"==c(m)?r=function(e){m.nextTick(C(e))}:A&&A.now?r=function(e){A.now(C(e))}:g&&!f?(i=new g,o=i.port2,i.port1.onmessage=x,r=u(o.postMessage,o,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||s(k)||"file:"===p.protocol?r=w in d("script")?function(e){l.appendChild(d("script"))[w]=function(){l.removeChild(this),_(e)}}:function(e){setTimeout(C(e),0)}:(r=k,a.addEventListener("message",x,!1))),e.exports={set:v,clear:h}},"189d":function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},"199f":function(e,t,n){var r=n("09e4"),i=n("2439").f,o=n("3261"),a=n("7024"),s=n("79ae"),c=n("2d0a"),u=n("25d0");e.exports=function(e,t){var n,l,d,f,p,v,h=e.target,m=e.global,g=e.stat;if(l=m?r:g?r[h]||s(h,{}):(r[h]||{}).prototype,l)for(d in t){if(p=t[d],e.noTargetGet?(v=i(l,d),f=v&&v.value):f=l[d],n=u(m?d:h+(g?".":"#")+d,e.forced),!n&&void 0!==f){if(typeof p===typeof f)continue;c(p,f)}(e.sham||f&&f.sham)&&o(p,"sham",!0),a(l,d,p,e)}}},"1fc1":function(e,t){e.exports={}},"20a7":function(e,t,n){var r=n("a714");e.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},2439:function(e,t,n){var r=n("0368"),i=n("0e17"),o=n("8d23"),a=n("a84f"),s=n("fe68"),c=n("7f34"),u=n("bf45"),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=a(e),t=s(t,!0),u)try{return l(e,t)}catch(n){}if(c(e,t))return o(!i.f.call(e,t),e[t])}},"25d0":function(e,t,n){var r=n("a714"),i=/#|\.prototype\./,o=function(e,t){var n=s[a(e)];return n==u||n!=c&&("function"==typeof t?r(t):!!t)},a=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},s=o.data={},c=o.NATIVE="N",u=o.POLYFILL="P";e.exports=o},2877:function(e,t,n){"use strict";function r(e,t,n,r,i,o,a,s){var c,u="function"===typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=c):i&&(c=s?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:u}}n.d(t,"a",(function(){return r}))},"2b0e":function(e,t,n){"use strict";(function(e){ +/*! + * Vue.js v2.6.11 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +var n=Object.freeze({});function r(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function o(e){return!0===e}function a(e){return!1===e}function s(e){return"string"===typeof e||"number"===typeof e||"symbol"===typeof e||"boolean"===typeof e}function c(e){return null!==e&&"object"===typeof e}var u=Object.prototype.toString;function l(e){return"[object Object]"===u.call(e)}function d(e){return"[object RegExp]"===u.call(e)}function f(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return i(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function v(e){return null==e?"":Array.isArray(e)||l(e)&&e.toString===u?JSON.stringify(e,null,2):String(e)}function h(e){var t=parseFloat(e);return isNaN(t)?e:t}function m(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var y=Object.prototype.hasOwnProperty;function b(e,t){return y.call(e,t)}function w(e){var t=Object.create(null);return function(n){var r=t[n];return r||(t[n]=e(n))}}var _=/-(\w)/g,C=w((function(e){return e.replace(_,(function(e,t){return t?t.toUpperCase():""}))})),x=w((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),k=/\B([A-Z])/g,E=w((function(e){return e.replace(k,"-$1").toLowerCase()}));function S(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function $(e,t){return e.bind(t)}var O=Function.prototype.bind?$:S;function j(e,t){t=t||0;var n=e.length-t,r=new Array(n);while(n--)r[n]=e[n+t];return r}function B(e,t){for(var n in t)e[n]=t[n];return e}function T(e){for(var t={},n=0;n0,ne=Q&&Q.indexOf("edge/")>0,re=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===Z),ie=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),oe={}.watch,ae=!1;if(G)try{var se={};Object.defineProperty(se,"passive",{get:function(){ae=!0}}),window.addEventListener("test-passive",null,se)}catch(Ca){}var ce=function(){return void 0===Y&&(Y=!G&&!J&&"undefined"!==typeof e&&(e["process"]&&"server"===e["process"].env.VUE_ENV)),Y},ue=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function le(e){return"function"===typeof e&&/native code/.test(e.toString())}var de,fe="undefined"!==typeof Symbol&&le(Symbol)&&"undefined"!==typeof Reflect&&le(Reflect.ownKeys);de="undefined"!==typeof Set&&le(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var pe=I,ve=0,he=function(){this.id=ve++,this.subs=[]};he.prototype.addSub=function(e){this.subs.push(e)},he.prototype.removeSub=function(e){A(this.subs,e)},he.prototype.depend=function(){he.target&&he.target.addDep(this)},he.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t-1)if(o&&!b(i,"default"))a=!1;else if(""===a||a===E(e)){var c=et(String,i.type);(c<0||s0&&(a=St(a,(t||"")+"_"+n),Et(a[0])&&Et(u)&&(l[c]=_e(u.text+a[0].text),a.shift()),l.push.apply(l,a)):s(a)?Et(u)?l[c]=_e(u.text+a):""!==a&&l.push(_e(a)):Et(a)&&Et(u)?l[c]=_e(u.text+a.text):(o(e._isVList)&&i(a.tag)&&r(a.key)&&i(t)&&(a.key="__vlist"+t+"_"+n+"__"),l.push(a)));return l}function $t(e){var t=e.$options.provide;t&&(e._provided="function"===typeof t?t.call(e):t)}function Ot(e){var t=jt(e.$options.inject,e);t&&(Oe(!1),Object.keys(t).forEach((function(n){De(e,n,t[n])})),Oe(!0))}function jt(e,t){if(e){for(var n=Object.create(null),r=fe?Reflect.ownKeys(e):Object.keys(e),i=0;i0,a=e?!!e.$stable:!o,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&r&&r!==n&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},e)e[c]&&"$"!==c[0]&&(i[c]=Dt(t,c,e[c]))}else i={};for(var u in t)u in i||(i[u]=Pt(t,u));return e&&Object.isExtensible(e)&&(e._normalized=i),V(i,"$stable",a),V(i,"$key",s),V(i,"$hasNormal",o),i}function Dt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return e=e&&"object"===typeof e&&!Array.isArray(e)?[e]:kt(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function Pt(e,t){return function(){return e[t]}}function Mt(e,t){var n,r,o,a,s;if(Array.isArray(e)||"string"===typeof e)for(n=new Array(e.length),r=0,o=e.length;r1?j(n):n;for(var r=j(arguments,1),i='event handler for "'+e+'"',o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Yn=function(){return Kn.now()})}function Gn(){var e,t;for(qn=Yn(),Hn=!0,Fn.sort((function(e,t){return e.id-t.id})),Vn=0;VnVn&&Fn[n].id>e.id)n--;Fn.splice(n+1,0,e)}else Fn.push(e);Wn||(Wn=!0,vt(Gn))}}var tr=0,nr=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++tr,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new de,this.newDepIds=new de,this.expression="","function"===typeof t?this.getter=t:(this.getter=q(t),this.getter||(this.getter=I)),this.value=this.lazy?void 0:this.get()};nr.prototype.get=function(){var e;ge(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(Ca){if(!this.user)throw Ca;tt(Ca,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&mt(e),Ae(),this.cleanupDeps()}return e},nr.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},nr.prototype.cleanupDeps=function(){var e=this.deps.length;while(e--){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},nr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():er(this)},nr.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||c(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(Ca){tt(Ca,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},nr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},nr.prototype.depend=function(){var e=this.deps.length;while(e--)this.deps[e].depend()},nr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||A(this.vm._watchers,this);var e=this.deps.length;while(e--)this.deps[e].removeSub(this);this.active=!1}};var rr={enumerable:!0,configurable:!0,get:I,set:I};function ir(e,t,n){rr.get=function(){return this[t][n]},rr.set=function(e){this[t][n]=e},Object.defineProperty(e,n,rr)}function or(e){e._watchers=[];var t=e.$options;t.props&&ar(e,t.props),t.methods&&vr(e,t.methods),t.data?sr(e):Ie(e._data={},!0),t.computed&&lr(e,t.computed),t.watch&&t.watch!==oe&&hr(e,t.watch)}function ar(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[],o=!e.$parent;o||Oe(!1);var a=function(o){i.push(o);var a=Ge(o,t,n,e);De(r,o,a),o in e||ir(e,"_props",o)};for(var s in t)a(s);Oe(!0)}function sr(e){var t=e.$options.data;t=e._data="function"===typeof t?cr(t,e):t||{},l(t)||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);while(i--){var o=n[i];0,r&&b(r,o)||H(o)||ir(e,"_data",o)}Ie(t,!0)}function cr(e,t){ge();try{return e.call(t,t)}catch(Ca){return tt(Ca,t,"data()"),{}}finally{Ae()}}var ur={lazy:!0};function lr(e,t){var n=e._computedWatchers=Object.create(null),r=ce();for(var i in t){var o=t[i],a="function"===typeof o?o:o.get;0,r||(n[i]=new nr(e,a||I,I,ur)),i in e||dr(e,i,o)}}function dr(e,t,n){var r=!ce();"function"===typeof n?(rr.get=r?fr(t):pr(n),rr.set=I):(rr.get=n.get?r&&!1!==n.cache?fr(t):pr(n.get):I,rr.set=n.set||I),Object.defineProperty(e,t,rr)}function fr(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),he.target&&t.depend(),t.value}}function pr(e){return function(){return e.call(this,this)}}function vr(e,t){e.$options.props;for(var n in t)e[n]="function"!==typeof t[n]?I:O(t[n],e)}function hr(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1)return this;var n=j(arguments,1);return n.unshift(this),"function"===typeof e.install?e.install.apply(e,n):"function"===typeof e&&e.apply(null,n),t.push(e),this}}function kr(e){e.mixin=function(e){return this.options=Ye(this.options,e),this}}function Er(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name;var a=function(e){this._init(e)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=t++,a.options=Ye(n.options,e),a["super"]=n,a.options.props&&Sr(a),a.options.computed&&$r(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,F.forEach((function(e){a[e]=n[e]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=B({},a.options),i[r]=a,a}}function Sr(e){var t=e.options.props;for(var n in t)ir(e.prototype,"_props",n)}function $r(e){var t=e.options.computed;for(var n in t)dr(e.prototype,n,t[n])}function Or(e){F.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"===typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}function jr(e){return e&&(e.Ctor.options.name||e.tag)}function Br(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"===typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Tr(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=jr(a.componentOptions);s&&!t(s)&&Ir(n,o,r,i)}}}function Ir(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,A(n,t)}yr(Cr),gr(Cr),On(Cr),In(Cr),An(Cr);var Dr=[String,RegExp,Array],Pr={name:"keep-alive",abstract:!0,props:{include:Dr,exclude:Dr,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Ir(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",(function(t){Tr(e,(function(e){return Br(t,e)}))})),this.$watch("exclude",(function(t){Tr(e,(function(e){return!Br(t,e)}))}))},render:function(){var e=this.$slots.default,t=Cn(e),n=t&&t.componentOptions;if(n){var r=jr(n),i=this,o=i.include,a=i.exclude;if(o&&(!r||!Br(o,r))||a&&r&&Br(a,r))return t;var s=this,c=s.cache,u=s.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;c[l]?(t.componentInstance=c[l].componentInstance,A(u,l),u.push(l)):(c[l]=t,u.push(l),this.max&&u.length>parseInt(this.max)&&Ir(c,u[0],u,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},Mr={KeepAlive:Pr};function Nr(e){var t={get:function(){return U}};Object.defineProperty(e,"config",t),e.util={warn:pe,extend:B,mergeOptions:Ye,defineReactive:De},e.set=Pe,e.delete=Me,e.nextTick=vt,e.observable=function(e){return Ie(e),e},e.options=Object.create(null),F.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,B(e.options.components,Mr),xr(e),kr(e),Er(e),Or(e)}Nr(Cr),Object.defineProperty(Cr.prototype,"$isServer",{get:ce}),Object.defineProperty(Cr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cr,"FunctionalRenderContext",{value:Jt}),Cr.version="2.6.11";var Lr=m("style,class"),Rr=m("input,textarea,option,select,progress"),Fr=function(e,t,n){return"value"===n&&Rr(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},zr=m("contenteditable,draggable,spellcheck"),Ur=m("events,caret,typing,plaintext-only"),Wr=function(e,t){return Yr(t)||"false"===t?"false":"contenteditable"===e&&Ur(t)?t:"true"},Hr=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Vr="http://www.w3.org/1999/xlink",Xr=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},qr=function(e){return Xr(e)?e.slice(6,e.length):""},Yr=function(e){return null==e||!1===e};function Kr(e){var t=e.data,n=e,r=e;while(i(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(t=Gr(r.data,t));while(i(n=n.parent))n&&n.data&&(t=Gr(t,n.data));return Jr(t.staticClass,t.class)}function Gr(e,t){return{staticClass:Zr(e.staticClass,t.staticClass),class:i(e.class)?[e.class,t.class]:t.class}}function Jr(e,t){return i(e)||i(t)?Zr(e,Qr(t)):""}function Zr(e,t){return e?t?e+" "+t:e:t||""}function Qr(e){return Array.isArray(e)?ei(e):c(e)?ti(e):"string"===typeof e?e:""}function ei(e){for(var t,n="",r=0,o=e.length;r-1?si[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:si[e]=/HTMLUnknownElement/.test(t.toString())}var ui=m("text,number,password,search,email,tel,url");function li(e){if("string"===typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}function di(e,t){var n=document.createElement(e);return"select"!==e||t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function fi(e,t){return document.createElementNS(ni[e],t)}function pi(e){return document.createTextNode(e)}function vi(e){return document.createComment(e)}function hi(e,t,n){e.insertBefore(t,n)}function mi(e,t){e.removeChild(t)}function gi(e,t){e.appendChild(t)}function Ai(e){return e.parentNode}function yi(e){return e.nextSibling}function bi(e){return e.tagName}function wi(e,t){e.textContent=t}function _i(e,t){e.setAttribute(t,"")}var Ci=Object.freeze({createElement:di,createElementNS:fi,createTextNode:pi,createComment:vi,insertBefore:hi,removeChild:mi,appendChild:gi,parentNode:Ai,nextSibling:yi,tagName:bi,setTextContent:wi,setStyleScope:_i}),xi={create:function(e,t){ki(t)},update:function(e,t){e.data.ref!==t.data.ref&&(ki(e,!0),ki(t))},destroy:function(e){ki(e,!0)}};function ki(e,t){var n=e.data.ref;if(i(n)){var r=e.context,o=e.componentInstance||e.elm,a=r.$refs;t?Array.isArray(a[n])?A(a[n],o):a[n]===o&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var Ei=new ye("",{},[]),Si=["create","activate","update","remove","destroy"];function $i(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&i(e.data)===i(t.data)&&Oi(e,t)||o(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&r(t.asyncFactory.error))}function Oi(e,t){if("input"!==e.tag)return!0;var n,r=i(n=e.data)&&i(n=n.attrs)&&n.type,o=i(n=t.data)&&i(n=n.attrs)&&n.type;return r===o||ui(r)&&ui(o)}function ji(e,t,n){var r,o,a={};for(r=t;r<=n;++r)o=e[r].key,i(o)&&(a[o]=r);return a}function Bi(e){var t,n,a={},c=e.modules,u=e.nodeOps;for(t=0;th?(d=r(n[A+1])?null:n[A+1].elm,C(e,d,n,v,A,o)):v>A&&k(t,f,h)}function $(e,t,n,r){for(var o=n;o-1?Ui(e,t,n):Hr(t)?Yr(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):zr(t)?e.setAttribute(t,Wr(t,n)):Xr(t)?Yr(n)?e.removeAttributeNS(Vr,qr(t)):e.setAttributeNS(Vr,t,n):Ui(e,t,n)}function Ui(e,t,n){if(Yr(n))e.removeAttribute(t);else{if(ee&&!te&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var Wi={create:Fi,update:Fi};function Hi(e,t){var n=t.elm,o=t.data,a=e.data;if(!(r(o.staticClass)&&r(o.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var s=Kr(t),c=n._transitionClasses;i(c)&&(s=Zr(s,Qr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Vi,Xi={create:Hi,update:Hi},qi="__r",Yi="__c";function Ki(e){if(i(e[qi])){var t=ee?"change":"input";e[t]=[].concat(e[qi],e[t]||[]),delete e[qi]}i(e[Yi])&&(e.change=[].concat(e[Yi],e.change||[]),delete e[Yi])}function Gi(e,t,n){var r=Vi;return function i(){var o=t.apply(null,arguments);null!==o&&Qi(e,i,n,r)}}var Ji=at&&!(ie&&Number(ie[1])<=53);function Zi(e,t,n,r){if(Ji){var i=qn,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Vi.addEventListener(e,t,ae?{capture:n,passive:r}:n)}function Qi(e,t,n,r){(r||Vi).removeEventListener(e,t._wrapper||t,n)}function eo(e,t){if(!r(e.data.on)||!r(t.data.on)){var n=t.data.on||{},i=e.data.on||{};Vi=t.elm,Ki(n),bt(n,i,Zi,Qi,Gi,t.context),Vi=void 0}}var to,no={create:eo,update:eo};function ro(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var n,o,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in i(c.__ob__)&&(c=t.data.domProps=B({},c)),s)n in c||(a[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=o;var u=r(o)?"":String(o);io(a,u)&&(a.value=u)}else if("innerHTML"===n&&ii(a.tagName)&&r(a.innerHTML)){to=to||document.createElement("div"),to.innerHTML=""+o+"";var l=to.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(l.firstChild)a.appendChild(l.firstChild)}else if(o!==s[n])try{a[n]=o}catch(Ca){}}}}function io(e,t){return!e.composing&&("OPTION"===e.tagName||oo(e,t)||ao(e,t))}function oo(e,t){var n=!0;try{n=document.activeElement!==e}catch(Ca){}return n&&e.value!==t}function ao(e,t){var n=e.value,r=e._vModifiers;if(i(r)){if(r.number)return h(n)!==h(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}var so={create:ro,update:ro},co=w((function(e){var t={},n=/;(?![^(]*\))/g,r=/:(.+)/;return e.split(n).forEach((function(e){if(e){var n=e.split(r);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}));function uo(e){var t=lo(e.style);return e.staticStyle?B(e.staticStyle,t):t}function lo(e){return Array.isArray(e)?T(e):"string"===typeof e?co(e):e}function fo(e,t){var n,r={};if(t){var i=e;while(i.componentInstance)i=i.componentInstance._vnode,i&&i.data&&(n=uo(i.data))&&B(r,n)}(n=uo(e.data))&&B(r,n);var o=e;while(o=o.parent)o.data&&(n=uo(o.data))&&B(r,n);return r}var po,vo=/^--/,ho=/\s*!important$/,mo=function(e,t,n){if(vo.test(t))e.style.setProperty(t,n);else if(ho.test(n))e.style.setProperty(E(t),n.replace(ho,""),"important");else{var r=Ao(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(wo).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Co(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(wo).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function xo(e){if(e){if("object"===typeof e){var t={};return!1!==e.css&&B(t,ko(e.name||"v")),B(t,e),t}return"string"===typeof e?ko(e):void 0}}var ko=w((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Eo=G&&!te,So="transition",$o="animation",Oo="transition",jo="transitionend",Bo="animation",To="animationend";Eo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Oo="WebkitTransition",jo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Bo="WebkitAnimation",To="webkitAnimationEnd"));var Io=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Do(e){Io((function(){Io(e)}))}function Po(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),_o(e,t))}function Mo(e,t){e._transitionClasses&&A(e._transitionClasses,t),Co(e,t)}function No(e,t,n){var r=Ro(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===So?jo:To,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout((function(){c0&&(n=So,l=a,d=o.length):t===$o?u>0&&(n=$o,l=u,d=c.length):(l=Math.max(a,u),n=l>0?a>u?So:$o:null,d=n?n===So?o.length:c.length:0);var f=n===So&&Lo.test(r[Oo+"Property"]);return{type:n,timeout:l,propCount:d,hasTransform:f}}function Fo(e,t){while(e.length1}function Xo(e,t){!0!==t.data.show&&Uo(t)}var qo=G?{create:Xo,activate:Xo,remove:function(e,t){!0!==e.data.show?Wo(e,t):t()}}:{},Yo=[Wi,Xi,no,so,bo,qo],Ko=Yo.concat(Ri),Go=Bi({nodeOps:Ci,modules:Ko});te&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&ia(e,"input")}));var Jo={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?wt(n,"postpatch",(function(){Jo.componentUpdated(e,t,n)})):Zo(e,t,n.context),e._vOptions=[].map.call(e.options,ta)):("textarea"===n.tag||ui(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",na),e.addEventListener("compositionend",ra),e.addEventListener("change",ra),te&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Zo(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,ta);if(i.some((function(e,t){return!M(e,r[t])}))){var o=e.multiple?t.value.some((function(e){return ea(e,i)})):t.value!==t.oldValue&&ea(t.value,i);o&&ia(e,"change")}}}};function Zo(e,t,n){Qo(e,t,n),(ee||ne)&&setTimeout((function(){Qo(e,t,n)}),0)}function Qo(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s-1,a.selected!==o&&(a.selected=o);else if(M(ta(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ea(e,t){return t.every((function(t){return!M(t,e)}))}function ta(e){return"_value"in e?e._value:e.value}function na(e){e.target.composing=!0}function ra(e){e.target.composing&&(e.target.composing=!1,ia(e.target,"input"))}function ia(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function oa(e){return!e.componentInstance||e.data&&e.data.transition?e:oa(e.componentInstance._vnode)}var aa={bind:function(e,t,n){var r=t.value;n=oa(n);var i=n.data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Uo(n,(function(){e.style.display=o}))):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value,i=t.oldValue;if(!r!==!i){n=oa(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,r?Uo(n,(function(){e.style.display=e.__vOriginalDisplay})):Wo(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none"}},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}},sa={model:Jo,show:aa},ca={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ua(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ua(Cn(t.children)):e}function la(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[C(o)]=i[o];return t}function da(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}function fa(e){while(e=e.parent)if(e.data.transition)return!0}function pa(e,t){return t.key===e.key&&t.tag===e.tag}var va=function(e){return e.tag||_n(e)},ha=function(e){return"show"===e.name},ma={name:"transition",props:ca,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(va),n.length)){0;var r=this.mode;0;var i=n[0];if(fa(this.$vnode))return i;var o=ua(i);if(!o)return i;if(this._leaving)return da(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var c=(o.data||(o.data={})).transition=la(this),u=this._vnode,l=ua(u);if(o.data.directives&&o.data.directives.some(ha)&&(o.data.show=!0),l&&l.data&&!pa(o,l)&&!_n(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var d=l.data.transition=B({},c);if("out-in"===r)return this._leaving=!0,wt(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),da(e,i);if("in-out"===r){if(_n(o))return u;var f,p=function(){f()};wt(c,"afterEnter",p),wt(c,"enterCancelled",p),wt(d,"delayLeave",(function(e){f=e}))}}return i}}},ga=B({tag:String,moveClass:String},ca);delete ga.mode;var Aa={props:ga,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Bn(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=la(this),s=0;sl){var p,v=u(arguments[l++]),h=d?o(v).concat(d(v)):o(v),m=h.length,g=0;while(m>g)p=h[g++],r&&!f.call(v,p)||(n[p]=v[p])}return n}:l},5923:function(e,t,n){var r,i,o,a,s,c,u,l,d=n("09e4"),f=n("2439").f,p=n("d714"),v=n("0fd9").set,h=n("68e0"),m=d.MutationObserver||d.WebKitMutationObserver,g=d.process,A=d.Promise,y="process"==p(g),b=f(d,"queueMicrotask"),w=b&&b.value;w||(r=function(){var e,t;y&&(e=g.domain)&&e.exit();while(i){t=i.fn,i=i.next;try{t()}catch(n){throw i?a():o=void 0,n}}o=void 0,e&&e.enter()},y?a=function(){g.nextTick(r)}:m&&!h?(s=!0,c=document.createTextNode(""),new m(r).observe(c,{characterData:!0}),a=function(){c.data=s=!s}):A&&A.resolve?(u=A.resolve(void 0),l=u.then,a=function(){l.call(u,r)}):a=function(){v.call(d,r)}),e.exports=w||function(e){var t={fn:e,next:void 0};o&&(o.next=t),i||(i=t,a()),o=t}},"59c2":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},"5dc8":function(e,t,n){var r=n("199f"),i=n("51d2");r({target:"Object",stat:!0,forced:Object.assign!==i},{assign:i})},"5f2f":function(e,t,n){var r=n("0ee6");e.exports=r("navigator","userAgent")||""},6117:function(e,t,n){var r=n("8b0e"),i=r("toStringTag"),o={};o[i]="z",e.exports="[object z]"===String(o)},"613f":function(e,t,n){var r=n("8b0e"),i=n("6756"),o=n("4c07"),a=r("unscopables"),s=Array.prototype;void 0==s[a]&&o.f(s,a,{configurable:!0,value:i(null)}),e.exports=function(e){s[a][e]=!0}},"65ee":function(e,t,n){"use strict";var r,i,o,a=n("9aed"),s=n("3261"),c=n("7f34"),u=n("8b0e"),l=n("0f33"),d=u("iterator"),f=!1,p=function(){return this};[].keys&&(o=[].keys(),"next"in o?(i=a(a(o)),i!==Object.prototype&&(r=i)):f=!0),void 0==r&&(r={}),l||c(r,d)||s(r,d,p),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:f}},6756:function(e,t,n){var r,i=n("d0c8"),o=n("df84"),a=n("c51e"),s=n("1fc1"),c=n("68d9"),u=n("c4dd"),l=n("816e"),d=">",f="<",p="prototype",v="script",h=l("IE_PROTO"),m=function(){},g=function(e){return f+v+d+e+f+"/"+v+d},A=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=u("iframe"),n="java"+v+":";return t.style.display="none",c.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(g("document.F=Object")),e.close(),e.F},b=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}b=r?A(r):y();var e=a.length;while(e--)delete b[p][a[e]];return b()};s[h]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(m[p]=i(e),n=new m,m[p]=null,n[h]=e):n=b(),void 0===t?n:o(n,t)}},"68d9":function(e,t,n){var r=n("0ee6");e.exports=r("document","documentElement")},"68e0":function(e,t,n){var r=n("5f2f");e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},7024:function(e,t,n){var r=n("09e4"),i=n("3261"),o=n("7f34"),a=n("79ae"),s=n("0209"),c=n("a547"),u=c.get,l=c.enforce,d=String(String).split("String");(e.exports=function(e,t,n,s){var c=!!s&&!!s.unsafe,u=!!s&&!!s.enumerable,f=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||i(n,"name",t),l(n).source=d.join("string"==typeof t?t:"")),e!==r?(c?!f&&e[t]&&(u=!0):delete e[t],u?e[t]=n:i(e,t,n)):u?e[t]=n:a(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||s(this)}))},"761e":function(e,t,n){"use strict";var r=n("90c5"),i=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},"76af":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"774c":function(e,t,n){var r=n("a714"),i=n("d714"),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},"77da":function(e,t,n){var r=n("4c07").f,i=n("7f34"),o=n("8b0e"),a=o("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},"77ed":function(e,t,n){},7820:function(e,t,n){var r=n("6117"),i=n("d714"),o=n("8b0e"),a=o("toStringTag"),s="Arguments"==i(function(){return arguments}()),c=function(e,t){try{return e[t]}catch(n){}};e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=c(t=Object(e),a))?n:s?i(t):"Object"==(r=i(t))&&"function"==typeof t.callee?"Arguments":r}},"793f":function(e,t,n){"use strict";var r=n("0ee6"),i=n("4c07"),o=n("8b0e"),a=n("0368"),s=o("species");e.exports=function(e){var t=r(e),n=i.f;a&&t&&!t[s]&&n(t,s,{configurable:!0,get:function(){return this}})}},"79ae":function(e,t,n){var r=n("09e4"),i=n("3261");e.exports=function(e,t){try{i(r,e,t)}catch(n){r[e]=t}return t}},"7f34":function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},"808c":function(e,t,n){var r=n("8b0e"),i=r("iterator"),o=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){o=!0}};s[i]=function(){return this},Array.from(s,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var r={};r[i]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(c){}return n}},"816e":function(e,t,n){var r=n("0828"),i=n("f385"),o=r("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},"84a2":function(e,t,n){(function(t){var n="Expected a function",r=NaN,i="[object Symbol]",o=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt,l="object"==typeof t&&t&&t.Object===Object&&t,d="object"==typeof self&&self&&self.Object===Object&&self,f=l||d||Function("return this")(),p=Object.prototype,v=p.toString,h=Math.max,m=Math.min,g=function(){return f.Date.now()};function A(e,t,r){var i,o,a,s,c,u,l=0,d=!1,f=!1,p=!0;if("function"!=typeof e)throw new TypeError(n);function v(t){var n=i,r=o;return i=o=void 0,l=t,s=e.apply(r,n),s}function A(e){return l=e,c=setTimeout(_,t),d?v(e):s}function y(e){var n=e-u,r=e-l,i=t-n;return f?m(i,a-r):i}function w(e){var n=e-u,r=e-l;return void 0===u||n>=t||n<0||f&&r>=a}function _(){var e=g();if(w(e))return x(e);c=setTimeout(_,y(e))}function x(e){return c=void 0,p&&i?v(e):(i=o=void 0,s)}function k(){void 0!==c&&clearTimeout(c),l=0,i=u=o=c=void 0}function E(){return void 0===c?s:x(g())}function S(){var e=g(),n=w(e);if(i=arguments,o=this,u=e,n){if(void 0===c)return A(u);if(f)return c=setTimeout(_,t),v(u)}return void 0===c&&(c=setTimeout(_,t)),s}return t=C(t)||0,b(r)&&(d=!!r.leading,f="maxWait"in r,a=f?h(C(r.maxWait)||0,t):a,p="trailing"in r?!!r.trailing:p),S.cancel=k,S.flush=E,S}function y(e,t,r){var i=!0,o=!0;if("function"!=typeof e)throw new TypeError(n);return b(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),A(e,t,{leading:i,maxWait:t,trailing:o})}function b(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function w(e){return!!e&&"object"==typeof e}function _(e){return"symbol"==typeof e||w(e)&&v.call(e)==i}function C(e){if("number"==typeof e)return e;if(_(e))return r;if(b(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=b(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var n=s.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):a.test(e)?r:+e}e.exports=y}).call(this,n("c8ba"))},8779:function(e,t,n){var r=n("a714");e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},"894d":function(e,t,n){var r=n("d0c8"),i=n("90c5"),o=n("8b0e"),a=o("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[a])?t:i(n)}},"8b0e":function(e,t,n){var r=n("09e4"),i=n("0828"),o=n("7f34"),a=n("f385"),s=n("20a7"),c=n("aa51"),u=i("wks"),l=r.Symbol,d=c?l:l&&l.withoutSetter||a;e.exports=function(e){return o(u,e)||(s&&o(l,e)?u[e]=l[e]:u[e]=d("Symbol."+e)),u[e]}},"8d23":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"8f08":function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},"8fe4":function(e,t,n){var r=n("d0c8"),i=n("bb6e"),o=n("761e");e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=o.f(e),a=n.resolve;return a(t),n.promise}},"90c5":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"997c":function(e,t,n){var r=n("d0c8"),i=n("ba83");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,e.call(n,[]),t=n instanceof Array}catch(o){}return function(n,o){return r(n),i(o),t?e.call(n,o):n.__proto__=o,n}}():void 0)},"9aed":function(e,t,n){var r=n("7f34"),i=n("ebca"),o=n("816e"),a=n("8779"),s=o("IE_PROTO"),c=Object.prototype;e.exports=a?Object.getPrototypeOf:function(e){return e=i(e),r(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?c:null}},a547:function(e,t,n){var r,i,o,a=n("0d05"),s=n("09e4"),c=n("bb6e"),u=n("3261"),l=n("7f34"),d=n("816e"),f=n("1fc1"),p=s.WeakMap,v=function(e){return o(e)?i(e):r(e,{})},h=function(e){return function(t){var n;if(!c(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(a){var m=new p,g=m.get,A=m.has,y=m.set;r=function(e,t){return y.call(m,e,t),t},i=function(e){return g.call(m,e)||{}},o=function(e){return A.call(m,e)}}else{var b=d("state");f[b]=!0,r=function(e,t){return u(e,b,t),t},i=function(e){return l(e,b)?e[b]:{}},o=function(e){return l(e,b)}}e.exports={set:r,get:i,has:o,enforce:v,getterFor:h}},a580:function(e,t,n){"use strict";var r=n("199f"),i=n("0049"),o=n("9aed"),a=n("997c"),s=n("77da"),c=n("3261"),u=n("7024"),l=n("8b0e"),d=n("0f33"),f=n("ca70"),p=n("65ee"),v=p.IteratorPrototype,h=p.BUGGY_SAFARI_ITERATORS,m=l("iterator"),g="keys",A="values",y="entries",b=function(){return this};e.exports=function(e,t,n,l,p,w,_){i(n,t,l);var C,x,k,E=function(e){if(e===p&&B)return B;if(!h&&e in O)return O[e];switch(e){case g:return function(){return new n(this,e)};case A:return function(){return new n(this,e)};case y:return function(){return new n(this,e)}}return function(){return new n(this)}},S=t+" Iterator",$=!1,O=e.prototype,j=O[m]||O["@@iterator"]||p&&O[p],B=!h&&j||E(p),T="Array"==t&&O.entries||j;if(T&&(C=o(T.call(new e)),v!==Object.prototype&&C.next&&(d||o(C)===v||(a?a(C,v):"function"!=typeof C[m]&&c(C,m,b)),s(C,S,!0,!0),d&&(f[S]=b))),p==A&&j&&j.name!==A&&($=!0,B=function(){return j.call(this)}),d&&!_||O[m]===B||c(O,m,B),f[t]=B,p)if(x={values:E(A),keys:w?B:E(g),entries:E(y)},_)for(k in x)(h||$||!(k in O))&&u(O,k,x[k]);else r({target:t,proto:!0,forced:h||$},x);return x}},a5b6:function(e,t){t.f=Object.getOwnPropertySymbols},a714:function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},a84f:function(e,t,n){var r=n("774c"),i=n("76af");e.exports=function(e){return r(i(e))}},aa51:function(e,t,n){var r=n("20a7");e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},b1b0:function(e,t,n){var r=n("09e4");e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},b973:function(e,t,n){var r=n("0ee6"),i=n("fdbe"),o=n("a5b6"),a=n("d0c8");e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(a(e)),n=o.f;return n?t.concat(n(e)):t}},ba83:function(e,t,n){var r=n("bb6e");e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},bb6e:function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},bf45:function(e,t,n){var r=n("0368"),i=n("a714"),o=n("c4dd");e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},c272:function(e,t,n){var r=n("a84f"),i=n("09d1"),o=n("fb8a"),a=function(e){return function(t,n,a){var s,c=r(t),u=i(c.length),l=o(a,u);if(e&&n!=n){while(u>l)if(s=c[l++],s!=s)return!0}else for(;u>l;l++)if((e||l in c)&&c[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},c35a:function(e,t,n){var r=n("7820"),i=n("ca70"),o=n("8b0e"),a=o("iterator");e.exports=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||i[r(e)]}},c4dd:function(e,t,n){var r=n("09e4"),i=n("bb6e"),o=r.document,a=i(o)&&i(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},c51e:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},c85d:function(e,t,n){var r=n("09e4");e.exports=r.Promise},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},ca70:function(e,t){e.exports={}},caad:function(e,t,n){var r=n("8b0e"),i=n("ca70"),o=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[o]===e)}},cf9e:function(e,t,n){var r=n("d0c8");e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){var o=e["return"];throw void 0!==o&&r(o.call(e)),a}}},d0c8:function(e,t,n){var r=n("bb6e");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},d1d7:function(e,t,n){var r=n("09e4");e.exports=r},d714:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},d973:function(e,t,n){"use strict";n.d(t,"a",(function(){return _}));var r=n("2b0e"),i=n("84a2"),o=n.n(i),a="prev",s="next",c={props:{firstSlide:{default:1},startStep:{default:1},lastSlide:{default:null},embedded:{default:!1},inserted:{default:!1},keyboardNavigation:{default:!0},mouseNavigation:{default:!0},onStartExit:{default:function(){return function(){this.$router&&this.$router.push("/")}}},onEndExit:{default:function(){return function(){this.$router&&this.$router.push("/")}}},skip:{default:!1},backBySlide:{default:!1},repeat:{default:!1}},data:function(){return{currentSlideIndex:1,currentSlide:null,step:this.startStep,slideshowTimer:0,slideTimer:0,slides:[],active:!0}},computed:{computedActive:function(){return this.slides.some((function(e){return e.active}))}},mounted:function(){this.isSlideshow=!0;var e=this;this.findSlides(),this.$root.direction===a&&(this.currentSlideIndex=this.slides.length),this.inserted||(this.currentSlide=this.slides[this.currentSlideIndex-1],this.currentSlide.step=this.startStep,this.keyboardNavigation&&window.addEventListener("keydown",this.handleKeydown),this.mouseNavigation&&("ontouchstart"in window?window.addEventListener("touchstart",this.handleClick):(window.addEventListener("click",this.handleClick),window.addEventListener("wheel",this.handleWheel))),this.embedded&&(this.$el.className+=" embedded-slideshow")),window.addEventListener("resize",this.handleResize),this.preloadedImages&&setTimeout((function(){for(var t in e.preloadedImages)(new Image).src=e.preloadedImages[t]}),1e3),this.handleResize(),this.timerUpdater=setInterval((function(){e.slideshowTimer++,e.slideTimer++}),1e3),this.registerPlugins(),this.afterMounted()},beforeDestroy:function(){window.removeEventListener("keydown",this.handleKeydown),window.removeEventListener("click",this.handleClick),window.removeEventListener("touchstart",this.handleClick),window.removeEventListener("wheel",this.handleWheel),clearInterval(this.timerUpdater),this.unregisterPlugins()},methods:{changeDirection:function(e){this.slides.forEach((function(t){t.direction=e})),this.$root.direction=e},nextStep:function(){this.changeDirection(s);var e=this;this.$nextTick((function(){e.step>=e.currentSlide.steps?e.nextSlide():e.step++}))},previousStep:function(){this.changeDirection(a);var e=this;this.$nextTick((function(){e.step<=1?e.previousSlide():e.step--}))},nextSlide:function(){this.changeDirection(s);var e=this.currentSlideIndex+1;while(e=1&&(this.slides[e-1].skip||this.slides[e-1].$parent.skip))e--;e>=1?this.currentSlideIndex=e:this.embedded||this.onStartExit()},handleResize:function(){var e=this;o()((function(){var t=0,n=0;e.embedded?(t=e.$el.parentElement.clientWidth,n=e.$el.parentElement.clientHeight):(t=document.documentElement.clientWidth,n=document.documentElement.clientHeight),e.$el.style.fontSize=.04*Math.min(n,t)+"px"}),16)()},handleClick:function(e){var t=void 0===e.target["href"];if(this.mouseNavigation&&this.currentSlide.mouseNavigation&&t&&!e.altKey){var n=null!=e.clientX?e.clientX:e.touches[0].clientX;n<.25*document.documentElement.clientWidth?(e.preventDefault(),this.previousStep()):n>.75*document.documentElement.clientWidth&&(e.preventDefault(),this.nextStep())}},handleWheel:o()((function(e){this.mouseNavigation&&this.currentSlide.mouseNavigation&&(e.preventDefault(),e.wheelDeltaY>0||e.deltaY>0?this.nextStep():(e.wheelDeltaY<0||e.deltaY<0)&&this.previousStep())}),1e3),handleKeydown:function(e){this.keyboardNavigation&&(this.currentSlide.keyboardNavigation||e.ctrlKey||e.metaKey)&&("ArrowLeft"===e.key||"PageUp"===e.key?(this.previousStep(),e.preventDefault()):"ArrowRight"!==e.key&&"PageDown"!==e.key||(this.nextStep(),e.preventDefault()))},afterMounted:function(){},findSlides:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.resetIndex,n=void 0===t||t,r=this,i=0;r.slides=[],this.$children.forEach((function(e){e.isSlide?(i++,i>=r.firstSlide&&(!r.lastSlide||i<=r.lastSlide)&&r.slides.push(e)):e.isSlideshow&&(e.active=!1,e.slides.forEach((function(e){i++,e.active=!1,i>=r.firstSlide&&(!r.lastSlide||i<=r.lastSlide)&&r.slides.push(e)})))})),n&&(r.currentSlideIndex=1,r.currentSlide=null===r.currentSlide?null:r.slides[0],r.step=r.startStep)},updateSlideshowVisibility:function(e){this.$el.style.visibility=e?"visible":"hidden"},registerPlugins:function(){var e=this;Ze.plugins.forEach((function(t){t[0].init(e,t[1])}))},unregisterPlugins:function(){var e=this;Ze.plugins.forEach((function(t){t[0].destroy(e,t[1])}))}},watch:{currentSlide:function(e,t){t&&(t.active=!1,t.$parent!==e.$parent&&t.$parent!==this&&(t.$parent.active=!1)),this.slideTimer=0,this.backBySlide||e.direction===s?(this.step=1,e.step=1,e.$parent.step=1):e.direction===a&&(this.step=e.steps,e.step=e.steps,e.$parent.step=e.steps),e.active=!0,e.$parent.active=!0},currentSlideIndex:function(e){this.currentSlide=this.slides[e-1]},step:function(e){this.currentSlide&&(this.currentSlide.step=e,this.currentSlide.$parent.step=e)},active:"updateSlideshowVisibility",computedActive:"updateSlideshowVisibility"}};function u(e,t,n,r,i,o,a,s,c,u){"boolean"!==typeof a&&(c=s,s=a,a=!1);var l,d="function"===typeof n?n.options:n;if(e&&e.render&&(d.render=e.render,d.staticRenderFns=e.staticRenderFns,d._compiled=!0,i&&(d.functional=!0)),r&&(d._scopeId=r),o?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(o)},d._ssrRegister=l):t&&(l=a?function(){t.call(this,u(this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),l)if(d.functional){var f=d.render;d.render=function(e,t){return l.call(t),f(e,t)}}else{var p=d.beforeCreate;d.beforeCreate=p?[].concat(p,l):[l]}return n}var l,d=u,f="undefined"!==typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function p(e){return function(e,t){return h(e,t)}}var v={};function h(e,t){var n=f?t.media||"default":e,r=v[n]||(v[n]={ids:new Set,styles:[]});if(!r.ids.has(e)){r.ids.add(e);var i=t.source;if(t.map&&(i+="\n/*# sourceURL="+t.map.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),r.element||(r.element=document.createElement("style"),r.element.type="text/css",t.media&&r.element.setAttribute("media",t.media),void 0===l&&(l=document.head||document.getElementsByTagName("head")[0]),l.appendChild(r.element)),"styleSheet"in r.element)r.styles.push(i),r.element.styleSheet.cssText=r.styles.filter(Boolean).join("\n");else{var o=r.ids.size-1,a=document.createTextNode(i),s=r.element.childNodes;s[o]&&r.element.removeChild(s[o]),s.length?r.element.insertBefore(a,s[o]):r.element.appendChild(a)}}}var m=p;const g=c,A=function(e){e&&e("data-v-8c4a8dc4_0",{source:'@import url(https://fonts.googleapis.com/css?family=Source+Code+Pro);\n.eg-slideshow {\n margin-top: 0;\n background-attachment: fixed;\n position: absolute;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n.eg-slideshow h1,\n.eg-slideshow h2,\n.eg-slideshow h3 {\n text-align: center;\n}\n.eg-slideshow h1 {\n font-size: 4em;\n margin-bottom: 0.1em;\n}\n.eg-slideshow h2 {\n font-size: 3em;\n}\n.eg-slideshow h3 {\n font-size: 2em;\n margin-bottom: 0.5em;\n}\n.eg-slideshow h4 {\n font-size: 1.5em;\n}\n.eg-slideshow input {\n font-size: 1em;\n}\n.eg-slideshow strong {\n font-weight: bold;\n}\n.eg-slideshow .small {\n font-size: 0.65em;\n}\n.eg-slideshow img {\n max-width: 80%;\n}\n.eg-slideshow .eg-code-block {\n font-family: "Source Code Pro", Courier;\n text-align: left;\n font-size: 0.5em;\n}\n.eg-slideshow .eg-code-block .box {\n padding: 1em;\n}\n.eg-slideshow .eg-slide {\n height: 100%;\n overflow: hidden;\n width: 100%;\n position: absolute;\n}\n.eg-slideshow .subslide {\n position: absolute;\n margin-top: -1em;\n}\n.eg-slideshow .inline {\n display: inline-block;\n}\n.eg-slideshow .center {\n text-align: center;\n}\n.eg-slideshow .center p {\n text-align: center;\n}\n.eg-slideshow .quarter {\n display: inline-block;\n width: 50%;\n margin-bottom: 0.5em;\n}\n.eg-slideshow .eg-switch .switch {\n margin-right: 0.5em;\n}\n.eg-slideshow .eg-radio .radiobutton {\n margin-right: 0.5em;\n}\n.eg-slideshow .eg-triggered-message {\n position: absolute;\n}\n.eg-slideshow .button {\n font-size: 1em;\n}\n.eg-slideshow .nodisplay {\n display: none;\n}\n\n/*# sourceMappingURL=Slideshow.vue.map */',map:{version:3,sources:["Slideshow.vue"],names:[],mappings:"AAAA,oEAAoE;AACpE;EACE,aAAa;EACb,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,gBAAgB;AAClB;AACA;;;EAGE,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,oBAAoB;AACtB;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;EACd,oBAAoB;AACtB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,cAAc;AAChB;AACA;EACE,uCAAuC;EACvC,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;EACZ,gBAAgB;EAChB,WAAW;EACX,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,UAAU;EACV,oBAAoB;AACtB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;;AAEA,wCAAwC",file:"Slideshow.vue",sourcesContent:['@import url(https://fonts.googleapis.com/css?family=Source+Code+Pro);\n.eg-slideshow {\n margin-top: 0;\n background-attachment: fixed;\n position: absolute;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n.eg-slideshow h1,\n.eg-slideshow h2,\n.eg-slideshow h3 {\n text-align: center;\n}\n.eg-slideshow h1 {\n font-size: 4em;\n margin-bottom: 0.1em;\n}\n.eg-slideshow h2 {\n font-size: 3em;\n}\n.eg-slideshow h3 {\n font-size: 2em;\n margin-bottom: 0.5em;\n}\n.eg-slideshow h4 {\n font-size: 1.5em;\n}\n.eg-slideshow input {\n font-size: 1em;\n}\n.eg-slideshow strong {\n font-weight: bold;\n}\n.eg-slideshow .small {\n font-size: 0.65em;\n}\n.eg-slideshow img {\n max-width: 80%;\n}\n.eg-slideshow .eg-code-block {\n font-family: "Source Code Pro", Courier;\n text-align: left;\n font-size: 0.5em;\n}\n.eg-slideshow .eg-code-block .box {\n padding: 1em;\n}\n.eg-slideshow .eg-slide {\n height: 100%;\n overflow: hidden;\n width: 100%;\n position: absolute;\n}\n.eg-slideshow .subslide {\n position: absolute;\n margin-top: -1em;\n}\n.eg-slideshow .inline {\n display: inline-block;\n}\n.eg-slideshow .center {\n text-align: center;\n}\n.eg-slideshow .center p {\n text-align: center;\n}\n.eg-slideshow .quarter {\n display: inline-block;\n width: 50%;\n margin-bottom: 0.5em;\n}\n.eg-slideshow .eg-switch .switch {\n margin-right: 0.5em;\n}\n.eg-slideshow .eg-radio .radiobutton {\n margin-right: 0.5em;\n}\n.eg-slideshow .eg-triggered-message {\n position: absolute;\n}\n.eg-slideshow .button {\n font-size: 1em;\n}\n.eg-slideshow .nodisplay {\n display: none;\n}\n\n/*# sourceMappingURL=Slideshow.vue.map */']},media:void 0})},y=void 0,b=void 0,w=void 0;var _=d({},A,g,y,w,b,m,void 0),C={name:"slide",props:{skip:{default:!1},enter:{default:null},enterPrev:{default:null},enterNext:{default:null},leave:{default:null},leavePrev:{default:null},leaveNext:{default:null},steps:{default:1},mouseNavigation:{default:!0},keyboardNavigation:{default:!0}},data:function(){return{step:1,active:!1,isSlide:!0,slideTimer:0,direction:"next",transitions:{next:{enter:this.enterNext||this.enter,leave:this.leaveNext||this.leave},prev:{enter:this.enterPrev||this.enter,leave:this.leavePrev||this.leave}}}},computed:{enterTransition:function(){return this.transitions[this.direction].enter},leaveTransition:function(){return this.transitions[this.direction].leave}},methods:{nextStep:function(){this.step===this.steps?this.$parent.nextSlide():this.step++},previousStep:function(){1===this.step?this.$parent.previousSlide():this.step--}},watch:{step:function(e){this.$parent.step=e},active:function(e){var t=this;e?(this.slideTimer=0,this.timerUpdater=setInterval((function(){t.slideTimer++}),1e3)):clearInterval(this.timerUpdater)}}};const x=C;var k=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("eg-transition",{attrs:{enter:e.enterTransition,leave:e.leaveTransition}},[e.active?n("div",{staticClass:"eg-slide"},[n("div",{staticClass:"eg-slide-content"},[e._t("default")],2)]):e._e()])},E=[];k._withStripped=!0;const S=void 0,$=void 0,O=void 0,j=!1;var B=d({render:k,staticRenderFns:E},S,x,$,j,O,void 0,void 0),T={name:"eg-transition",props:{enter:{default:null},leave:{default:null}}};const I=T;var D=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{"enter-active-class":e.enter?"animated "+e.enter:"","leave-active-class":e.leave?"animated "+e.leave:""}},[e._t("default")],2)},P=[];D._withStripped=!0;const M=void 0,N=void 0,L=void 0,R=!1;var F=d({render:D,staticRenderFns:P},M,I,N,R,L,void 0,void 0),z={isWidget:!0,name:"eg-modal"};const U=z;var W=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"eg-modal"},[n("div",{staticClass:"content"},[e._t("default")],2)])},H=[];W._withStripped=!0;const V=function(e){e&&e("data-v-9cad53c8_0",{source:"\n.eg-modal {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n",map:{version:3,sources:["/Users/yao.ding/javascript/eagle.js/src/components/widgets/Modal.vue"],names:[],mappings:";AAcA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;AACA",file:"Modal.vue",sourcesContent:["\n\n\\n\\n\\n\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$3 = undefined;\n /* module identifier */\n const __vue_module_identifier__$3 = undefined;\n /* functional template */\n const __vue_is_functional_template__$3 = false;\n /* style inject SSR */\n \n\n \n var Modal = normalizeComponent_1(\n { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },\n __vue_inject_styles__$3,\n __vue_script__$3,\n __vue_scope_id__$3,\n __vue_is_functional_template__$3,\n __vue_module_identifier__$3,\n browser,\n undefined\n );\n\nfunction randId() {\n return Math.random().toString(36).substr(2, 10);\n}\n\nvar script$4 = {\n isWidget: true,\n name: 'eg-code-block',\n props: {\n id: {\n \"default\": function _default() {\n return randId();\n }\n },\n id2: {\n \"default\": function _default() {\n return randId();\n }\n },\n id3: {\n \"default\": function _default() {\n return randId();\n }\n },\n lang: {\n \"default\": null\n }\n },\n mounted: function mounted() {\n this.update();\n },\n updated: function updated() {\n this.update();\n },\n methods: {\n update: function update() {\n var codeBlock = document.getElementById(this.id);\n var commentsContent = document.getElementById(this.id2);\n var codeContent = document.getElementById(this.id3);\n codeContent.innerHTML = commentsContent.innerHTML;\n\n if (this.lang && Options.hljs) {\n Options.hljs.highlightBlock(codeBlock);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__$4 = script$4;\n\n/* template */\nvar __vue_render__$3 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"eg-code-block container\" }, [\n _c(\"div\", { staticClass: \"box hljs code-box\", attrs: { id: _vm.id } }, [\n _c(\"pre\", [\n _c(\"code\", { class: _vm.lang ? _vm.lang : \"\", attrs: { id: _vm.id3 } })\n ])\n ]),\n _c(\"div\", { staticClass: \"box comments-box\" }, [\n _c(\"pre\", [\n _c(\"code\", { attrs: { id: _vm.id2 } }, [_vm._t(\"default\")], 2)\n ])\n ])\n ])\n};\nvar __vue_staticRenderFns__$3 = [];\n__vue_render__$3._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$4 = function (inject) {\n if (!inject) return\n inject(\"data-v-5c3a9fcd_0\", { source: \".eg-code-block.container[data-v-5c3a9fcd] {\\n position: relative;\\n width: 100%;\\n}\\n.eg-code-block .code-box .eg-code-comment[data-v-5c3a9fcd] {\\n display: none;\\n}\\n.eg-code-block .comments-box[data-v-5c3a9fcd] {\\n position: absolute;\\n color: rgba(0, 0, 0, 0);\\n top: 0;\\n}\\n.eg-code-block .eg-code-comment[data-v-5c3a9fcd] {\\n z-index: 10 !important;\\n}\\n\\n/*# sourceMappingURL=CodeBlock.vue.map */\", map: {\"version\":3,\"sources\":[\"/Users/yao.ding/javascript/eagle.js/src/components/widgets/CodeBlock.vue\",\"CodeBlock.vue\"],\"names\":[],\"mappings\":\"AAgDA;EACA,kBAAA;EACA,WAAA;AC/CA;ADmDA;EACA,aAAA;ACjDA;ADqDA;EACA,kBAAA;EACA,uBAAA;EACA,MAAA;ACnDA;ADuDA;EACA,sBAAA;ACrDA;;AAEA,wCAAwC\",\"file\":\"CodeBlock.vue\",\"sourcesContent\":[\"\\n\\n\\n\\n\",\".eg-code-block.container {\\n position: relative;\\n width: 100%;\\n}\\n.eg-code-block .code-box .eg-code-comment {\\n display: none;\\n}\\n.eg-code-block .comments-box {\\n position: absolute;\\n color: rgba(0, 0, 0, 0);\\n top: 0;\\n}\\n.eg-code-block .eg-code-comment {\\n z-index: 10 !important;\\n}\\n\\n/*# sourceMappingURL=CodeBlock.vue.map */\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$4 = \"data-v-5c3a9fcd\";\n /* module identifier */\n const __vue_module_identifier__$4 = undefined;\n /* functional template */\n const __vue_is_functional_template__$4 = false;\n /* style inject SSR */\n \n\n \n var CodeBlock = normalizeComponent_1(\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\n __vue_inject_styles__$4,\n __vue_script__$4,\n __vue_scope_id__$4,\n __vue_is_functional_template__$4,\n __vue_module_identifier__$4,\n browser,\n undefined\n );\n\nvar script$5 = {\n isWidget: true,\n name: 'eg-code-comment',\n props: {\n enter: {\n \"default\": null\n },\n leave: {\n \"default\": null\n },\n active: {\n \"default\": true\n },\n arrow: {\n \"default\": true\n }\n }\n};\n\n/* script */\nconst __vue_script__$5 = script$5;\n\n/* template */\nvar __vue_render__$4 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"eg-transition\",\n { attrs: { enter: _vm.enter, leave: _vm.leave } },\n [\n _vm.active\n ? _c(\n \"div\",\n { staticClass: \"eg-code-comment\" },\n [\n _vm.arrow ? _c(\"span\", [_vm._v(\"←\")]) : _vm._e(),\n _vm._t(\"default\")\n ],\n 2\n )\n : _vm._e()\n ]\n )\n};\nvar __vue_staticRenderFns__$4 = [];\n__vue_render__$4._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$5 = function (inject) {\n if (!inject) return\n inject(\"data-v-0cbded58_0\", { source: \"\\n.eg-code-comment {\\n display: inline-block\\n}\\n\", map: {\"version\":3,\"sources\":[\"/Users/yao.ding/javascript/eagle.js/src/components/widgets/CodeComment.vue\"],\"names\":[],\"mappings\":\";AAmBA;EACA;AACA\",\"file\":\"CodeComment.vue\",\"sourcesContent\":[\"\\n\\n\\n\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$5 = undefined;\n /* module identifier */\n const __vue_module_identifier__$5 = undefined;\n /* functional template */\n const __vue_is_functional_template__$5 = false;\n /* style inject SSR */\n \n\n \n var CodeComment = normalizeComponent_1(\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\n __vue_inject_styles__$5,\n __vue_script__$5,\n __vue_scope_id__$5,\n __vue_is_functional_template__$5,\n __vue_module_identifier__$5,\n browser,\n undefined\n );\n\nvar script$6 = {\n isWidget: true,\n name: 'eg-toggle',\n props: {\n value: {\n \"default\": true\n },\n fontsize: {\n \"default\": '0.8em'\n }\n },\n data: function data() {\n return {\n checked: this.value\n };\n },\n methods: {\n toggle: function toggle() {\n this.checked = !this.checked;\n }\n },\n watch: {\n checked: function checked(val) {\n this.$emit('input', val);\n }\n }\n};\n\n/* script */\nconst __vue_script__$6 = script$6;\n\n/* template */\nvar __vue_render__$5 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"eg-switch\" }, [\n _c(\n \"div\",\n {\n staticClass: \"switch\",\n style: { \"font-size\": _vm.fontsize },\n on: { click: _vm.toggle }\n },\n [\n _c(\"input\", {\n attrs: { type: \"checkbox\" },\n domProps: { checked: _vm.checked }\n }),\n _c(\"div\", { staticClass: \"slider\", class: { checked: _vm.checked } }),\n _c(\"div\", { staticClass: \"sliderdot\", class: { checked: _vm.checked } })\n ]\n ),\n _c(\"span\", { class: { unchecked: !_vm.checked } }, [_vm._t(\"default\")], 2)\n ])\n};\nvar __vue_staticRenderFns__$5 = [];\n__vue_render__$5._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$6 = function (inject) {\n if (!inject) return\n inject(\"data-v-7848429c_0\", { source: \".eg-switch[data-v-7848429c] {\\n /* The slider */\\n}\\n.eg-switch p[data-v-7848429c] {\\n display: inline;\\n}\\n.eg-switch .switch[data-v-7848429c] {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 1em;\\n}\\n.eg-switch .switch input[data-v-7848429c] {\\n display: none;\\n}\\n.eg-switch .slider[data-v-7848429c] {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: #ccc;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.5em;\\n}\\n.eg-switch .sliderdot[data-v-7848429c] {\\n position: absolute;\\n cursor: pointer;\\n content: \\\"\\\";\\n height: 0.8em;\\n width: 0.8em;\\n left: 0.1em;\\n bottom: 0.1em;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.4em;\\n}\\n.eg-switch .sliderdot.checked[data-v-7848429c] {\\n -webkit-transform: translateX(1em);\\n -ms-transform: translateX(1em);\\n transform: translateX(1em);\\n}\\n\\n/*# sourceMappingURL=Toggle.vue.map */\", map: {\"version\":3,\"sources\":[\"/Users/yao.ding/javascript/eagle.js/src/components/widgets/Toggle.vue\",\"Toggle.vue\"],\"names\":[],\"mappings\":\"AAuCA;EAgBA,eAAA;ACrDA;ADsCA;EACA,eAAA;ACpCA;ADuCA;EACA,kBAAA;EACA,qBAAA;EACA,UAAA;EACA,WAAA;ACrCA;ADwCA;EACA,aAAA;ACtCA;AD0CA;EACA,kBAAA;EACA,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,sBAAA;EACA,wBAAA;EACA,gBAAA;EACA,oBAAA;ACxCA;AD2CA;EACA,kBAAA;EACA,eAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,uBAAA;EACA,wBAAA;EACA,gBAAA;EACA,oBAAA;ACzCA;AD4CA;EACA,kCAAA;EACA,8BAAA;EACA,0BAAA;AC1CA;;AAEA,qCAAqC\",\"file\":\"Toggle.vue\",\"sourcesContent\":[\"\\n\\n\\n\\n\",\".eg-switch {\\n /* The slider */\\n}\\n.eg-switch p {\\n display: inline;\\n}\\n.eg-switch .switch {\\n position: relative;\\n display: inline-block;\\n width: 2em;\\n height: 1em;\\n}\\n.eg-switch .switch input {\\n display: none;\\n}\\n.eg-switch .slider {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: #ccc;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.5em;\\n}\\n.eg-switch .sliderdot {\\n position: absolute;\\n cursor: pointer;\\n content: \\\"\\\";\\n height: 0.8em;\\n width: 0.8em;\\n left: 0.1em;\\n bottom: 0.1em;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.4em;\\n}\\n.eg-switch .sliderdot.checked {\\n -webkit-transform: translateX(1em);\\n -ms-transform: translateX(1em);\\n transform: translateX(1em);\\n}\\n\\n/*# sourceMappingURL=Toggle.vue.map */\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$6 = \"data-v-7848429c\";\n /* module identifier */\n const __vue_module_identifier__$6 = undefined;\n /* functional template */\n const __vue_is_functional_template__$6 = false;\n /* style inject SSR */\n \n\n \n var Toggle = normalizeComponent_1(\n { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },\n __vue_inject_styles__$6,\n __vue_script__$6,\n __vue_scope_id__$6,\n __vue_is_functional_template__$6,\n __vue_module_identifier__$6,\n browser,\n undefined\n );\n\nvar script$7 = {\n isWidget: true,\n name: 'eg-radio-button',\n props: {\n value: {\n \"default\": null\n },\n label: {\n \"default\": null\n },\n fontsize: {\n \"default\": '0.7em'\n }\n },\n methods: {\n select: function select() {\n this.$emit('input', this.label);\n }\n }\n};\n\n/* script */\nconst __vue_script__$7 = script$7;\n\n/* template */\nvar __vue_render__$6 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"div\",\n { staticClass: \"eg-radio\" },\n [\n _c(\n \"div\",\n {\n staticClass: \"radiobutton\",\n style: { \"font-size\": _vm.fontsize },\n on: { click: _vm.select }\n },\n [\n _c(\"div\", { staticClass: \"radio\" }),\n _c(\"div\", {\n staticClass: \"radiodot\",\n class: { checked: _vm.value === _vm.label }\n })\n ]\n ),\n _vm._t(\"default\")\n ],\n 2\n )\n};\nvar __vue_staticRenderFns__$6 = [];\n__vue_render__$6._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$7 = function (inject) {\n if (!inject) return\n inject(\"data-v-2c78d29a_0\", { source: \".eg-radio[data-v-2c78d29a] {\\n /* The slider */\\n}\\n.eg-radio p[data-v-2c78d29a] {\\n display: inline;\\n}\\n.eg-radio .radiobutton[data-v-2c78d29a] {\\n position: relative;\\n display: inline-block;\\n width: 1em;\\n height: 1em;\\n}\\n.eg-radio .radio[data-v-2c78d29a] {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.5em;\\n}\\n.eg-radio .radiodot[data-v-2c78d29a] {\\n position: absolute;\\n cursor: pointer;\\n content: \\\"\\\";\\n height: 0em;\\n width: 0em;\\n left: 0.5em;\\n bottom: 0.5em;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 50%;\\n}\\n.eg-radio .radiodot.checked[data-v-2c78d29a] {\\n height: 0.9em;\\n width: 0.9em;\\n left: 0.05em;\\n bottom: 0.05em;\\n}\\n\\n/*# sourceMappingURL=RadioButton.vue.map */\", map: {\"version\":3,\"sources\":[\"/Users/yao.ding/javascript/eagle.js/src/components/widgets/RadioButton.vue\",\"RadioButton.vue\"],\"names\":[],\"mappings\":\"AA0BA;EAYA,eAAA;ACpCA;ADyBA;EACA,eAAA;ACvBA;AD0BA;EACA,kBAAA;EACA,qBAAA;EACA,UAAA;EACA,WAAA;ACxBA;AD4BA;EACA,kBAAA;EACA,eAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,wBAAA;EACA,gBAAA;EACA,oBAAA;AC1BA;AD6BA;EACA,kBAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,uBAAA;EACA,wBAAA;EACA,gBAAA;EACA,kBAAA;AC3BA;AD8BA;EACA,aAAA;EACA,YAAA;EACA,YAAA;EACA,cAAA;AC5BA;;AAEA,0CAA0C\",\"file\":\"RadioButton.vue\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\",\".eg-radio {\\n /* The slider */\\n}\\n.eg-radio p {\\n display: inline;\\n}\\n.eg-radio .radiobutton {\\n position: relative;\\n display: inline-block;\\n width: 1em;\\n height: 1em;\\n}\\n.eg-radio .radio {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 0.5em;\\n}\\n.eg-radio .radiodot {\\n position: absolute;\\n cursor: pointer;\\n content: \\\"\\\";\\n height: 0em;\\n width: 0em;\\n left: 0.5em;\\n bottom: 0.5em;\\n background-color: white;\\n -webkit-transition: 0.4s;\\n transition: 0.4s;\\n border-radius: 50%;\\n}\\n.eg-radio .radiodot.checked {\\n height: 0.9em;\\n width: 0.9em;\\n left: 0.05em;\\n bottom: 0.05em;\\n}\\n\\n/*# sourceMappingURL=RadioButton.vue.map */\"]}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$7 = \"data-v-2c78d29a\";\n /* module identifier */\n const __vue_module_identifier__$7 = undefined;\n /* functional template */\n const __vue_is_functional_template__$7 = false;\n /* style inject SSR */\n \n\n \n var RadioButton = normalizeComponent_1(\n { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },\n __vue_inject_styles__$7,\n __vue_script__$7,\n __vue_scope_id__$7,\n __vue_is_functional_template__$7,\n __vue_module_identifier__$7,\n browser,\n undefined\n );\n\nvar script$8 = {\n isWidget: true,\n name: 'eg-image-slide',\n mixins: [Slide],\n props: {\n url: {\n \"default\": 'https://i.imgur.com/P7iyH.png'\n },\n enter: {\n \"default\": null\n },\n leave: {\n \"default\": null\n }\n },\n computed: {\n style: function style() {\n return {\n 'background-image': 'url(' + this.url + ')',\n 'background-position': 'center center',\n 'background-size': 'cover'\n };\n }\n }\n};\n\n/* script */\nconst __vue_script__$8 = script$8;\n\n/* template */\nvar __vue_render__$7 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"eg-transition\",\n { attrs: { enter: _vm.enter, leave: _vm.leave } },\n [\n _vm.active\n ? _c(\"div\", { staticClass: \"eg-slide image-slide\", style: _vm.style })\n : _vm._e()\n ]\n )\n};\nvar __vue_staticRenderFns__$7 = [];\n__vue_render__$7._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$8 = undefined;\n /* scoped */\n const __vue_scope_id__$8 = undefined;\n /* module identifier */\n const __vue_module_identifier__$8 = undefined;\n /* functional template */\n const __vue_is_functional_template__$8 = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var ImageSlide = normalizeComponent_1(\n { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },\n __vue_inject_styles__$8,\n __vue_script__$8,\n __vue_scope_id__$8,\n __vue_is_functional_template__$8,\n __vue_module_identifier__$8,\n undefined,\n undefined\n );\n\nvar script$9 = {\n isWidget: true,\n name: 'eg-triggered-message',\n props: {\n enter: {\n \"default\": 'slideInLeft'\n },\n leave: {\n \"default\": 'slideOutLeft'\n },\n trigger: {\n \"default\": false\n },\n position: {\n \"default\": 'left top'\n },\n duration: {\n \"default\": 3\n }\n },\n data: function data() {\n return {\n active: false,\n timeout: null,\n style: {\n top: this.position.indexOf('top') >= 0 ? '0%' : 'none',\n bottom: this.position.indexOf('bottom') >= 0 ? '0%' : 'none',\n left: this.position.indexOf('left') >= 0 ? '0%' : 'none',\n right: this.position.indexOf('right') >= 0 ? '0%' : 'none'\n }\n };\n },\n watch: {\n trigger: function trigger(val, oldVal) {\n if (!oldVal && val) {\n this.active = true;\n var self = this;\n this.timeout = setTimeout(function () {\n self.active = false;\n }, 1000 * this.duration);\n } else if (oldVal && !val) {\n this.active = false;\n clearTimeout(this.timeout);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__$9 = script$9;\n\n/* template */\nvar __vue_render__$8 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\n \"eg-transition\",\n { attrs: { enter: _vm.enter, leave: _vm.leave } },\n [\n _vm.active\n ? _c(\n \"div\",\n { staticClass: \"eg-triggered-message\", style: _vm.style },\n [_vm._t(\"default\")],\n 2\n )\n : _vm._e()\n ]\n )\n};\nvar __vue_staticRenderFns__$8 = [];\n__vue_render__$8._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$9 = undefined;\n /* scoped */\n const __vue_scope_id__$9 = undefined;\n /* module identifier */\n const __vue_module_identifier__$9 = undefined;\n /* functional template */\n const __vue_is_functional_template__$9 = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var TriggeredMessage = normalizeComponent_1(\n { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },\n __vue_inject_styles__$9,\n __vue_script__$9,\n __vue_scope_id__$9,\n __vue_is_functional_template__$9,\n __vue_module_identifier__$9,\n undefined,\n undefined\n );\n\nvar script$a = {\n isWidget: true,\n name: 'eg-timer',\n props: {\n key: {\n \"default\": 'T'\n }\n },\n data: function data() {\n return {\n text: '',\n active: false\n };\n },\n mounted: function mounted() {\n this.updateText();\n window.addEventListener('keydown', this.keydown);\n setInterval(this.updateText, 1000);\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('keydown', this.keydown);\n },\n methods: {\n toggle: function toggle() {\n this.display = !this.display;\n },\n keydown: function keydown(evt) {\n if (evt.key === this.key) {\n this.active = !this.active;\n }\n },\n updateText: function updateText() {\n var time = this.$parent.timer / 60 + ':' + this.$parent.timer % 60;\n var slide = this.$parent.currentSlideIndex + '/' + this.$parent.slides.length;\n return slide + ' - ' + time;\n }\n }\n};\n\n/* script */\nconst __vue_script__$a = script$a;\n\n/* template */\nvar __vue_render__$9 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"eg-transition\", { attrs: { enter: \"fadeIn\", leave: \"fadeOut\" } }, [\n _vm.display ? _c(\"div\", { staticClass: \"timer\" }) : _vm._e(),\n _vm._v(_vm._s(_vm.text))\n ])\n};\nvar __vue_staticRenderFns__$9 = [];\n__vue_render__$9._withStripped = true;\n\n /* style */\n const __vue_inject_styles__$a = function (inject) {\n if (!inject) return\n inject(\"data-v-b8b192c0_0\", { source: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", map: {\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"file\":\"Timer.vue\"}, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$a = \"data-v-b8b192c0\";\n /* module identifier */\n const __vue_module_identifier__$a = undefined;\n /* functional template */\n const __vue_is_functional_template__$a = false;\n /* style inject SSR */\n \n\n \n var Timer = normalizeComponent_1(\n { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },\n __vue_inject_styles__$a,\n __vue_script__$a,\n __vue_scope_id__$a,\n __vue_is_functional_template__$a,\n __vue_module_identifier__$a,\n browser,\n undefined\n );\n\nvar hasZoom = false;\n\nvar updateCoords = function updateCoords(slideshow, config) {\n return function () {\n slideshow._height = document.documentElement.clientHeight;\n slideshow._width = document.documentElement.clientWidth;\n slideshow._center.x = slideshow._width / 2;\n slideshow._center.y = slideshow._height / 2;\n slideshow._boundary.x = slideshow._center.x / config.scale;\n slideshow._boundary.y = slideshow._center.y / config.scale;\n };\n};\n\nvar magnify = function magnify(slideshow, config) {\n return function (event) {\n if (!event.altKey) return;\n\n if (document.body.style.transform) {\n document.body.style.transform = '';\n document.body.style.overflow = 'auto';\n } else {\n document.body.style.height = slideshow._height + 'px';\n document.body.style.overflow = 'hidden';\n document.body.style.transition = '0.5s';\n var translateX = slideshow._center.x - event.clientX;\n var translateY = slideshow._center.y - event.clientY;\n translateX = translateX < slideshow._boundary.x ? translateX > -slideshow._boundary.x ? translateX : -slideshow._boundary.x : slideshow._boundary.x;\n translateY = translateY < slideshow._boundary.y ? translateY > -slideshow._boundary.y ? translateY : -slideshow._boundary.y : slideshow._boundary.y;\n document.body.style.transform = \"scale(\".concat(config.scale, \") translate(\").concat(translateX, \"px, \").concat(translateY, \"px)\");\n }\n };\n};\n\nvar zoom = {\n isPlugin: true,\n init: function init(slideshow, config) {\n if (slideshow.embedded || slideshow.inserted || hasZoom) return;\n config = Object.assign({\n scale: 2\n }, config);\n hasZoom = true;\n slideshow._zoom = true;\n slideshow._height = document.documentElement.clientHeight;\n slideshow._width = document.documentElement.clientWidth;\n slideshow._center = {\n x: slideshow._width / 2,\n y: slideshow._height / 2\n };\n slideshow._boundary = {\n x: slideshow._center.x / config.scale,\n y: slideshow._center.y / config.scale\n };\n window.addEventListener('resize', updateCoords(slideshow, config));\n window.addEventListener('mousedown', magnify(slideshow, config));\n },\n destroy: function destroy(slideshow, config) {\n if (slideshow._zoom) {\n window.removeEventListener('resize', updateCoords(slideshow, config));\n window.removeEventListener('mousedown', magnify(slideshow, config));\n }\n }\n};\n\nvar hasPresenter = false;\n\nvar keydown = function keydown(slideshow, config) {\n return function (evt) {\n if (slideshow.keyboardNavigation && (slideshow.currentSlide.keyboardNavigation || evt.ctrlKey || evt.metaKey)) {\n if (evt.key === 'ArrowLeft' || evt.key === 'PageUp') {\n postMessage(slideshow, '{\"method\": \"previousStep\"}');\n } else if (evt.key === 'ArrowRight' || evt.key === 'PageDown') {\n postMessage(slideshow, '{\"method\": \"nextStep\"}');\n } else if (evt.key === config.presenterModeKey && !slideshow.parentWindow) {\n togglePresenterMode(slideshow);\n evt.preventDefault();\n }\n }\n };\n};\n\nvar click = function click(slideshow) {\n return function (evt) {\n if (slideshow.mouseNavigation && slideshow.currentSlide.mouseNavigation && !evt.altKey) {\n var clientX = evt.clientX != null ? evt.clientX : evt.touches[0].clientX;\n\n if (clientX < 0.25 * document.documentElement.clientWidth) {\n postMessage(slideshow, '{\"method\": \"previousStep\"}');\n } else if (clientX > 0.75 * document.documentElement.clientWidth) {\n postMessage(slideshow, '{\"method\": \"nextStep\"}');\n }\n }\n };\n};\n\nvar message = function message(slideshow) {\n return function (evt) {\n if (evt.origin !== window.location.origin) {\n return void 0;\n }\n\n try {\n var data = JSON.parse(evt.data);\n\n switch (data.method) {\n case 'nextStep':\n case 'previousStep':\n slideshow[data.method]();\n break;\n\n case 'getCurrentSlide':\n postMessage(slideshow, \"{\\n \\\"method\\\": \\\"setCurrentSlide\\\", \\n \\\"slideIndex\\\": \".concat(slideshow.currentSlideIndex, \",\\n \\\"step\\\": \").concat(slideshow.step, \"\\n }\"));\n break;\n\n case 'setCurrentSlide':\n slideshow.currentSlideIndex = data.slideIndex;\n slideshow.$nextTick(function () {\n slideshow.step = data.step;\n });\n break;\n\n default:\n }\n } catch (e) {\n console.log(\"Presenter mode runs into an error: \".concat(e));\n }\n };\n};\n\nfunction postMessage(slideshow, message) {\n if (slideshow.childWindow) {\n slideshow.childWindow.postMessage(message, window.location.origin);\n }\n\n if (slideshow.parentWindow) {\n slideshow.parentWindow.postMessage(message, window.location.origin);\n }\n}\n\nfunction togglePresenterMode(slideshow) {\n if (slideshow.childWindow) {\n slideshow.childWindow.close();\n slideshow.childWindow = null;\n } else {\n slideshow.childWindow = window.open(window.location.href, 'eagle-presenter');\n window.addEventListener('message', message(slideshow));\n }\n}\n\nvar presenter = {\n isPlugin: true,\n init: function init(slideshow, config) {\n if (slideshow.embedded || slideshow.inserted || hasPresenter) return;\n config = Object.assign({\n presenterModeKey: 'p'\n }, config);\n hasPresenter = true;\n slideshow._presenter = true;\n\n if (window.opener && window.opener.location.href === window.location.href) {\n slideshow.parentWindow = window.opener;\n postMessage(slideshow, '{\"method\": \"getCurrentSlide\"}');\n window.addEventListener('message', message(slideshow));\n }\n\n window.addEventListener('keydown', keydown(slideshow, config));\n window.addEventListener('click', click(slideshow));\n },\n destroy: function destroy(slideshow, config) {\n if (slideshow._presenter) {\n window.removeEventListener('message', message(slideshow));\n window.removeEventListener('keydown', keydown(slideshow, config));\n window.addEventListener('click', click(slideshow));\n }\n }\n};\n\nvar Options = {\n plugins: []\n};\nvar main = {\n install: function install(Vue) {\n Vue.component('slide', Slide);\n Vue.component('eg-transition', Transition);\n },\n use: function use(extension, config) {\n if (extension.isPlugin) {\n Options.plugins.push([extension, config]);\n }\n\n if (extension.isWidget) {\n Vue.component(extension.name, extension);\n }\n }\n};\n\nexport default main;\nexport { CodeBlock, CodeComment, ImageSlide, Modal, Options, presenter as Presenter, RadioButton, Slide, Slideshow, Timer, Toggle, Transition, TriggeredMessage, zoom as Zoom };\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/materialize-css/.babelrc b/materialize-css/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/materialize-css/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/materialize-css/.eslintignore b/materialize-css/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/materialize-css/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/materialize-css/.eslintrc.js b/materialize-css/.eslintrc.js deleted file mode 100644 index 6232fa6..0000000 --- a/materialize-css/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - } -}; diff --git a/materialize-css/.postcssrc.js b/materialize-css/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/materialize-css/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/materialize-css/README.md b/materialize-css/README.md deleted file mode 100644 index 8e6d78d..0000000 --- a/materialize-css/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Vue.js + materialize-css - -This repository is containing Vue.js + materialize-css + jquery installation. - -## jquery + materialize-css installation (using require instead of import) - -```html - - - diff --git a/materialize-css/src/assets/.gitkeep b/materialize-css/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/materialize-css/src/components/MaterializeCss.vue b/materialize-css/src/components/MaterializeCss.vue deleted file mode 100644 index 64f3719..0000000 --- a/materialize-css/src/components/MaterializeCss.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/materialize-css/src/main.js b/materialize-css/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/materialize-css/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/materialize-css/src/router/index.js b/materialize-css/src/router/index.js deleted file mode 100644 index e381709..0000000 --- a/materialize-css/src/router/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import MaterializeCss from '../components/MaterializeCss.vue'; - -Vue.use(Router); - -export const routes = [ - { - path: '/', - name: 'MaterializeCss', - component: MaterializeCss, - label: 'using Vue.js + materialize-css + jquery', - }, -]; - -const router = new Router({ - routes, -}); - -export default router; diff --git a/materialize-css/src/vuex/store.js b/materialize-css/src/vuex/store.js deleted file mode 100644 index 6f20a6a..0000000 --- a/materialize-css/src/vuex/store.js +++ /dev/null @@ -1,53 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state: { - counter: 0, - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - }, - mutations: { - decrementCounter: state => state.counter--, - incrementCounter: state => state.counter++, - toggleTodo: (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; - }, - addNewTodoTitle: state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; - }, - removeTodo: (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; - }, - setNewTodoTitle: (state, newValue) => { - state.newTodoTitle = newValue; - }, - }, -}); - -export default store; diff --git a/materialize-css/static/.gitkeep b/materialize-css/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/mvnw b/mvnw deleted file mode 100755 index e96ccd5..0000000 --- a/mvnw +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/nuxt-server-side-rendering/.eslintrc.js b/nuxt-server-side-rendering/.eslintrc.js deleted file mode 100644 index 944c5ab..0000000 --- a/nuxt-server-side-rendering/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - root: true, - parser: 'babel-eslint', - env: { - browser: true, - node: true - }, - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - rules: { - 'semi': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'yoda': 0, - }, - globals: {} -}; diff --git a/nuxt-server-side-rendering/README.md b/nuxt-server-side-rendering/README.md deleted file mode 100644 index 0b83c64..0000000 --- a/nuxt-server-side-rendering/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# nuxt-server-side-rendering - -Github pages deployment: - -package.json -```json -{ - "homepage": "https://daggerok.github.io/vue-examples", - "scripts": { - "precommit": "npm run lint", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:lint": "yarn lint", - "predeploy:clean": "rimraf -rf dist", - "predeploy:generate": "cross-env NODE_ENV=gh-pages nuxt generate", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "devDependencies": { - "cross-env": "5.0.5", - "gh-pages": "1.0.0", - "ncp": "2.0.0", - "npm-run-all": "4.0.2", - "rimraf": "2.6.1" - } -} -``` - -nuxt.config.js - -```javascript -const base = 'gh-pages' === process.env.NODE_ENV ? '/vue-examples/' : '/'; - -module.exports = { - router: { - base, - }, - head: { - link: [ - { rel: 'icon', type: 'image/x-icon', href: base + 'favicon.ico' }, - ], - }, - build: { - publicPath: '/static/', - }, -}; -``` - -## build run and deploy - -``` bash -yarn dev -yarn lint -yarn build -yarn start -yarn genetrate -yarn predeploy -yarn deploy -``` - -**auto generated part**: - -> Nuxt.js server-side rendenring with Vue.js - -## Build Setup - -``` bash -# install dependencies -$ npm install # Or yarn install - -# serve with hot reload at localhost:3000 -$ npm run dev - -# build for production and launch server -$ npm run build -$ npm start - -# generate static project -$ npm run generate -``` - -For detailed explanation on how things work, checkout the [Nuxt.js docs](https://github.com/nuxt/nuxt.js). diff --git a/nuxt-server-side-rendering/assets/README.md b/nuxt-server-side-rendering/assets/README.md deleted file mode 100644 index c67cf2e..0000000 --- a/nuxt-server-side-rendering/assets/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# ASSETS - -This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#webpacked - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/components/Links.vue b/nuxt-server-side-rendering/components/Links.vue deleted file mode 100644 index 150cc4e..0000000 --- a/nuxt-server-side-rendering/components/Links.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/nuxt-server-side-rendering/components/Logo.vue b/nuxt-server-side-rendering/components/Logo.vue deleted file mode 100644 index ad79906..0000000 --- a/nuxt-server-side-rendering/components/Logo.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/nuxt-server-side-rendering/components/README.md b/nuxt-server-side-rendering/components/README.md deleted file mode 100644 index d7768dd..0000000 --- a/nuxt-server-side-rendering/components/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# COMPONENTS - -The components directory contains your Vue.js Components. -Nuxt.js doesn't supercharge these components. - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/layouts/README.md b/nuxt-server-side-rendering/layouts/README.md deleted file mode 100644 index 83d09ca..0000000 --- a/nuxt-server-side-rendering/layouts/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# LAYOUTS - -This directory contains your Application Layouts. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/views#layouts - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/layouts/default.vue b/nuxt-server-side-rendering/layouts/default.vue deleted file mode 100644 index 62cacb4..0000000 --- a/nuxt-server-side-rendering/layouts/default.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/nuxt-server-side-rendering/middleware/README.md b/nuxt-server-side-rendering/middleware/README.md deleted file mode 100644 index edb9129..0000000 --- a/nuxt-server-side-rendering/middleware/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# MIDDLEWARE - -This directory contains your Application Middleware. -The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts). - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing#middleware - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/nuxt.config.js b/nuxt-server-side-rendering/nuxt.config.js deleted file mode 100644 index fe87555..0000000 --- a/nuxt-server-side-rendering/nuxt.config.js +++ /dev/null @@ -1,44 +0,0 @@ -const base = 'gh-pages' === process.env.NODE_ENV ? '/vue-examples/' : '/'; - -module.exports = { - router: { - base, - }, - /** - * Headers of the page - */ - head: { - title: 'nuxt-server-side-rendering', - meta: [ - { charset: 'utf-8' }, - { name: 'viewport', content: 'width=device-width, initial-scale=1' }, - { hid: 'description', name: 'description', content: 'Nuxt.js server-side rendering with Vue.js' } - ], - link: [ - { rel: 'icon', type: 'image/x-icon', href: `${base}favicon.ico` }, - ], - }, - /** - * Customize the progress-bar color - */ - loading: { color: '#3B8070' }, - /** - * Build configuration - */ - build: { - publicPath: '/static/', - /** - * Run ESLINT on save - */ - extend(config, ctx) { - if (ctx.dev && ctx.isClient) { - config.module.rules.push({ - enforce: 'pre', - test: /\.(js|vue)$/, - loader: 'eslint-loader', - exclude: /(node_modules)/ - }); - } - } - }, -}; diff --git a/nuxt-server-side-rendering/package.json b/nuxt-server-side-rendering/package.json deleted file mode 100644 index 2664ad9..0000000 --- a/nuxt-server-side-rendering/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.1", - "description": "Nuxt.js server-side rendering with Vue.js", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "lint": "eslint --ext .js,.vue --ignore-path ../.gitignore .", - "precommit": "npm run lint", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:lint": "yarn lint", - "predeploy:clean": "rimraf -rf dist", - "predeploy:generate": "cross-env NODE_ENV=gh-pages nuxt generate", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "nuxt": "1.0.0-rc6" - }, - "devDependencies": { - "babel-eslint": "8.0.0", - "cross-env": "5.0.5", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "gh-pages": "1.0.0", - "ncp": "2.0.0", - "npm-run-all": "4.1.1", - "rimraf": "2.6.2" - }, - "main": "nuxt.config.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/nuxt-server-side-rendering/pages/README.md b/nuxt-server-side-rendering/pages/README.md deleted file mode 100644 index 3c7faf5..0000000 --- a/nuxt-server-side-rendering/pages/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# PAGES - -This directory contains your Application Views and Routes. -The framework reads all the .vue files inside this directory and create the router of your application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing diff --git a/nuxt-server-side-rendering/pages/about/index.vue b/nuxt-server-side-rendering/pages/about/index.vue deleted file mode 100644 index ffcadd9..0000000 --- a/nuxt-server-side-rendering/pages/about/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/nuxt-server-side-rendering/pages/index.vue b/nuxt-server-side-rendering/pages/index.vue deleted file mode 100644 index fd373ca..0000000 --- a/nuxt-server-side-rendering/pages/index.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - - diff --git a/nuxt-server-side-rendering/pages/services/index.vue b/nuxt-server-side-rendering/pages/services/index.vue deleted file mode 100644 index 43d4e6a..0000000 --- a/nuxt-server-side-rendering/pages/services/index.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/nuxt-server-side-rendering/plugins/README.md b/nuxt-server-side-rendering/plugins/README.md deleted file mode 100644 index ec39a25..0000000 --- a/nuxt-server-side-rendering/plugins/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# PLUGINS - -This directory contains your Javascript plugins that you want to run before instantiating the root vue.js application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/plugins - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/static/README.md b/nuxt-server-side-rendering/static/README.md deleted file mode 100644 index 66fe23a..0000000 --- a/nuxt-server-side-rendering/static/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# STATIC - -This directory contains your static files. -Each file inside this directory is mapped to /. - -Example: /static/robots.txt is mapped as /robots.txt. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#static - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/nuxt-server-side-rendering/static/favicon.ico b/nuxt-server-side-rendering/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/nuxt-server-side-rendering/static/favicon.ico and /dev/null differ diff --git a/nuxt-server-side-rendering/store/README.md b/nuxt-server-side-rendering/store/README.md deleted file mode 100644 index b9a0b7e..0000000 --- a/nuxt-server-side-rendering/store/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# STORE - -This directory contains your Vuex Store files. -Vuex Store option is implemented in the Nuxt.js framework. -Creating a index.js file in this directory activate the option in the framework automatically. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/vuex-store - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 1db754f..0000000 --- a/pom.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - 4.0.0 - - com.github.daggerok - 0.0.1 - vue-examples - pom - - - UTF-8 - 1.8 - 1.8 - - - - - - org.asciidoctor - asciidoctor-maven-plugin - 1.5.6 - - - org.asciidoctor - asciidoctorj-pdf - 1.5.0-alpha.16 - - - - - output-pdf-doc - generate-resources - - process-asciidoc - - - pdf - coderay - - - - output-html - generate-resources - - process-asciidoc - - - html - - - - output-docbook - generate-resources - - process-asciidoc - - - docbook - - - - - target/generated-docs - docs - true - true - images - highlightjs - - left - false - book - erubis - ${project.build.sourceEncoding} - true - true - true - true - - - font - - - true - Table of Contents - ${project.artifactId} - ${project.artifactId} - ${project.version} - https://github.com/daggerok/${project.artifactId} - - - - - - clean process-resources - - diff --git a/refs-work-natively-with-DOM-elements/ deploy b/refs-work-natively-with-DOM-elements/ deploy deleted file mode 100644 index e69de29..0000000 diff --git a/refs-work-natively-with-DOM-elements/.editorconfig b/refs-work-natively-with-DOM-elements/.editorconfig deleted file mode 100644 index 9d08a1a..0000000 --- a/refs-work-natively-with-DOM-elements/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/refs-work-natively-with-DOM-elements/.postcssrc.js b/refs-work-natively-with-DOM-elements/.postcssrc.js deleted file mode 100644 index 5d69693..0000000 --- a/refs-work-natively-with-DOM-elements/.postcssrc.js +++ /dev/null @@ -1,10 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - "postcss-import": {}, - "postcss-url": {}, - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/refs-work-natively-with-DOM-elements/README.md b/refs-work-natively-with-DOM-elements/README.md deleted file mode 100644 index a111fb4..0000000 --- a/refs-work-natively-with-DOM-elements/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# event bus - -> A Vue.js project - -``` bash -yarn -i -yarn start -yarn deploy # gh-pages deployment -``` - -For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). diff --git a/refs-work-natively-with-DOM-elements/build/build.js b/refs-work-natively-with-DOM-elements/build/build.js deleted file mode 100644 index 8110c2e..0000000 --- a/refs-work-natively-with-DOM-elements/build/build.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, (err, stats) => { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. - chunks: false, - chunkModules: false - }) + '\n\n'); - - if (stats.hasErrors()) { - console.log(chalk.red(' Build failed with errors.\n')); - process.exit(1); - } - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/refs-work-natively-with-DOM-elements/build/check-versions.js b/refs-work-natively-with-DOM-elements/build/check-versions.js deleted file mode 100644 index 4bb64fc..0000000 --- a/refs-work-natively-with-DOM-elements/build/check-versions.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - } -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - - console.log(); - process.exit(1); - } -}; diff --git a/refs-work-natively-with-DOM-elements/build/logo.png b/refs-work-natively-with-DOM-elements/build/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/refs-work-natively-with-DOM-elements/build/logo.png and /dev/null differ diff --git a/refs-work-natively-with-DOM-elements/build/utils.js b/refs-work-natively-with-DOM-elements/build/utils.js deleted file mode 100644 index c573393..0000000 --- a/refs-work-natively-with-DOM-elements/build/utils.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const packageConfig = require('../package.json'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - sourceMap: options.sourceMap - } - }; - - const postcssLoader = { - loader: 'postcss-loader', - options: { - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]; - - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - - for (const extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - - return output; -}; - -exports.createNotifierCallback = () => { - const notifier = require('node-notifier'); - - return (severity, errors) => { - if (severity !== 'error') return; - - const error = errors[0]; - const filename = error.file && error.file.split('!').pop(); - - notifier.notify({ - title: packageConfig.name, - message: severity + ': ' + error.name, - subtitle: filename || '', - icon: path.join(__dirname, 'logo.png') - }); - }; -}; diff --git a/refs-work-natively-with-DOM-elements/build/vue-loader.conf.js b/refs-work-natively-with-DOM-elements/build/vue-loader.conf.js deleted file mode 100644 index a10f8c0..0000000 --- a/refs-work-natively-with-DOM-elements/build/vue-loader.conf.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -const utils = require('./utils'); -const config = require('../config'); -const isProduction = process.env.NODE_ENV === 'production'; -const sourceMapEnabled = isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: sourceMapEnabled, - extract: isProduction - }), - cssSourceMap: sourceMapEnabled, - cacheBusting: config.dev.cacheBusting, - transformToRequire: { - video: ['src', 'poster'], - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/refs-work-natively-with-DOM-elements/build/webpack.base.conf.js b/refs-work-natively-with-DOM-elements/build/webpack.base.conf.js deleted file mode 100644 index 9bfb7e9..0000000 --- a/refs-work-natively-with-DOM-elements/build/webpack.base.conf.js +++ /dev/null @@ -1,82 +0,0 @@ -'use strict'; -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - context: path.resolve(__dirname, '../'), - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'gh-pages' - ? config.gh.assetsPublicPath - : process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - }, - node: { - // prevent webpack from injecting useless setImmediate polyfill because Vue - // source contains it (although only uses it if it's native). - setImmediate: false, - // prevent webpack from injecting mocks to Node native modules - // that does not make sense for the client - dgram: 'empty', - fs: 'empty', - net: 'empty', - tls: 'empty', - child_process: 'empty' - } -}; diff --git a/refs-work-natively-with-DOM-elements/build/webpack.dev.conf.js b/refs-work-natively-with-DOM-elements/build/webpack.dev.conf.js deleted file mode 100755 index db90531..0000000 --- a/refs-work-natively-with-DOM-elements/build/webpack.dev.conf.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const path = require('path'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); -const portfinder = require('portfinder'); - -const HOST = process.env.HOST; -const PORT = process.env.PORT && Number(process.env.PORT); - -const devWebpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) - }, - // cheap-module-eval-source-map is faster for development - devtool: config.dev.devtool, - - // these devServer options should be customized in /config/index.js - devServer: { - clientLogLevel: 'warning', - historyApiFallback: { - rewrites: [ - { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, - ], - }, - hot: true, - contentBase: false, // since we use CopyWebpackPlugin. - compress: true, - host: HOST || config.dev.host, - port: PORT || config.dev.port, - open: config.dev.autoOpenBrowser, - overlay: config.dev.errorOverlay - ? { warnings: false, errors: true } - : false, - publicPath: config.dev.assetsPublicPath, - proxy: config.dev.proxyTable, - quiet: true, // necessary for FriendlyErrorsPlugin - watchOptions: { - poll: config.dev.poll, - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/dev.env') - }), - new webpack.HotModuleReplacementPlugin(), - new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.dev.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -module.exports = new Promise((resolve, reject) => { - portfinder.basePort = process.env.PORT || config.dev.port; - portfinder.getPort((err, port) => { - if (err) { - reject(err); - } else { - // publish the new Port, necessary for e2e tests - process.env.PORT = port; - // add port to devServer config - devWebpackConfig.devServer.port = port; - - // Add FriendlyErrorsPlugin - devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ - compilationSuccessInfo: { - messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], - }, - onErrors: config.dev.notifyOnErrors - ? utils.createNotifierCallback() - : undefined - })); - - resolve(devWebpackConfig); - } - }); -}); diff --git a/refs-work-natively-with-DOM-elements/build/webpack.prod.conf.js b/refs-work-natively-with-DOM-elements/build/webpack.prod.conf.js deleted file mode 100644 index f8ed2c2..0000000 --- a/refs-work-natively-with-DOM-elements/build/webpack.prod.conf.js +++ /dev/null @@ -1,145 +0,0 @@ -'use strict'; -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); - -const env = require('../config/prod.env'); - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true, - usePostCSS: true - }) - }, - devtool: config.build.productionSourceMap ? config.build.devtool : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new UglifyJsPlugin({ - uglifyOptions: { - compress: { - warnings: false - } - }, - sourceMap: config.build.productionSourceMap, - parallel: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css'), - // Setting the following option to `false` will not extract CSS from codesplit chunks. - // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. - // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, - // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 - allChunks: true, - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: config.build.productionSourceMap - ? { safe: true, map: { inline: false } } - : { safe: true } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // keep module.id stable when vendor modules does not change - new webpack.HashedModuleIdsPlugin(), - // enable scope hoisting - new webpack.optimize.ModuleConcatenationPlugin(), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks(module) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - minChunks: Infinity - }), - // This instance extracts shared chunks from code splitted chunks and bundles them - // in a separate chunk, similar to the vendor chunk - // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk - new webpack.optimize.CommonsChunkPlugin({ - name: 'app', - async: 'vendor-async', - children: true, - minChunks: 3 - }), - - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/refs-work-natively-with-DOM-elements/config/dev.env.js b/refs-work-natively-with-DOM-elements/config/dev.env.js deleted file mode 100644 index 60d5ba6..0000000 --- a/refs-work-natively-with-DOM-elements/config/dev.env.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -const merge = require('webpack-merge'); -const prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/refs-work-natively-with-DOM-elements/config/index.js b/refs-work-natively-with-DOM-elements/config/index.js deleted file mode 100644 index 78f5947..0000000 --- a/refs-work-natively-with-DOM-elements/config/index.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; -// Template version: 1.3.1 -// see http://vuejs-templates.github.io/webpack for documentation. - -const path = require('path'); - -module.exports = { - dev: { - - // Paths - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - - // Various Dev Server settings - host: 'localhost', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined - autoOpenBrowser: false, - errorOverlay: true, - notifyOnErrors: true, - poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- - - /** - * Source Maps - */ - - // https://webpack.js.org/configuration/devtool/#development - devtool: 'cheap-module-eval-source-map', - - // If you have problems debugging vue-files in devtools, - // set this to false - it *may* help - // https://vue-loader.vuejs.org/en/options.html#cachebusting - cacheBusting: true, - - cssSourceMap: true - }, - - build: { - // Template for index.html - index: path.resolve(__dirname, '../dist/index.html'), - - // Paths - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/vue-examples/', - - /** - * Source Maps - */ - - productionSourceMap: true, - // https://webpack.js.org/configuration/devtool/#production - devtool: '#source-map', - - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, -}; diff --git a/refs-work-natively-with-DOM-elements/config/prod.env.js b/refs-work-natively-with-DOM-elements/config/prod.env.js deleted file mode 100644 index a58e538..0000000 --- a/refs-work-natively-with-DOM-elements/config/prod.env.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/refs-work-natively-with-DOM-elements/index.html b/refs-work-natively-with-DOM-elements/index.html deleted file mode 100644 index 5366094..0000000 --- a/refs-work-natively-with-DOM-elements/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - event bus - - - -
- - - diff --git a/refs-work-natively-with-DOM-elements/package.json b/refs-work-natively-with-DOM-elements/package.json deleted file mode 100644 index 4a7044b..0000000 --- a/refs-work-natively-with-DOM-elements/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "refsto-native-DOM-elements", - "version": "0.0.1", - "description": "A Vue.js project", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "clean": "rimraf -rf ./dist", - "start": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", - "build": "node build/build.js", - "predeploy": "npm-run-all predeploy:*", - "predeploy:clean": "yarn clean", - "predeploy:build": "yarn build", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "predeploy:nojekyll": "touch ./dist/.nojekyll", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Parcel Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "hammerjs": "2.0.8", - "jquery": "3.4.1", - "materialize-css": "0.100.2", - "vue": "2.5.13" - }, - "devDependencies": { - "autoprefixer": "7.2.5", - "babel-core": "6.26.0", - "babel-helper-vue-jsx-merge-props": "2.0.3", - "babel-loader": "7.1.2", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-plugin-transform-vue-jsx": "3.5.1", - "babel-preset-env": "1.6.1", - "babel-preset-stage-2": "6.24.1", - "chalk": "2.3.0", - "copy-webpack-plugin": "4.3.1", - "css-loader": "0.28.9", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.6", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.1.0", - "html-webpack-plugin": "2.30.1", - "ncp": "2.0.0", - "node-notifier": "5.2.1", - "npm-run-all": "4.1.2", - "optimize-css-assets-webpack-plugin": "3.2.0", - "ora": "1.3.0", - "portfinder": "1.0.13", - "postcss-import": "11.0.0", - "postcss-loader": "2.0.10", - "postcss-url": "7.3.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "shelljs": "0.8.1", - "uglifyjs-webpack-plugin": "1.1.6", - "url-loader": "0.6.2", - "vue-loader": "13.7.0", - "vue-style-loader": "3.1.1", - "vue-template-compiler": "2.5.13", - "webpack": "3.10.0", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-server": "3.1.11", - "webpack-merge": "4.1.1" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "babel": { - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-vue-jsx", - "transform-runtime" - ] - } -} diff --git a/refs-work-natively-with-DOM-elements/src/RefsApp.vue b/refs-work-natively-with-DOM-elements/src/RefsApp.vue deleted file mode 100644 index c8b8e16..0000000 --- a/refs-work-natively-with-DOM-elements/src/RefsApp.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/refs-work-natively-with-DOM-elements/src/main.js b/refs-work-natively-with-DOM-elements/src/main.js deleted file mode 100644 index 3f6d601..0000000 --- a/refs-work-natively-with-DOM-elements/src/main.js +++ /dev/null @@ -1,14 +0,0 @@ -import 'hammerjs/hammer'; -import 'jquery/dist/jquery'; -import 'materialize-css/dist/js/materialize'; -import 'materialize-css/dist/css/materialize.css'; -import Vue from 'vue'; -import RefsApp from './RefsApp'; - -Vue.config.productionTip = false; - -new Vue({ - el: '#app', - components: { RefsApp }, - template: ``, -}); diff --git a/refs-work-natively-with-DOM-elements/static/favicon.ico b/refs-work-natively-with-DOM-elements/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/refs-work-natively-with-DOM-elements/static/favicon.ico and /dev/null differ diff --git a/responsive-web-design/.eslintrc.js b/responsive-web-design/.eslintrc.js deleted file mode 100644 index 944c5ab..0000000 --- a/responsive-web-design/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - root: true, - parser: 'babel-eslint', - env: { - browser: true, - node: true - }, - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - rules: { - 'semi': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'yoda': 0, - }, - globals: {} -}; diff --git a/responsive-web-design/README.md b/responsive-web-design/README.md deleted file mode 100644 index 0388bc7..0000000 --- a/responsive-web-design/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Responsive Web Design - -## build run and deploy - -``` bash -yarn dev -yarn lint -yarn build -yarn start -yarn genetrate -yarn predeploy -yarn deploy -``` diff --git a/responsive-web-design/assets/README.md b/responsive-web-design/assets/README.md deleted file mode 100644 index c67cf2e..0000000 --- a/responsive-web-design/assets/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# ASSETS - -This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#webpacked - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/assets/styles.css b/responsive-web-design/assets/styles.css deleted file mode 100644 index 6ddc268..0000000 --- a/responsive-web-design/assets/styles.css +++ /dev/null @@ -1,327 +0,0 @@ -body { - padding: 0; - margin: 0; - background-color: #f4f4f4; - font: 2vh/1.5 Arial, Helvetica, sans-serif; -} - -.container { - width: 90%; - margin: auto; - overflow: hidden; -} - -.dark { - background: #35424a; - color: #fff; - margin: 1vh 0 5vh; - padding: 2vh; -} - -.contact { - -} - -/**/ - -ul { - margin: 0; - padding: 0; - list-style-type: none; -} - -header { - background: #353637; - color: #fff; - padding-top: 3vh; - min-height: 7vh; -} - -header a { - color: #fff; - text-decoration: none; - text-transform: uppercase; - font-size: 2vh; -} - -/* -item1 -item2 => item1 item2 item3 -item3 - */ -header li { - float: left; - display: inline; - padding: 0 2vh; -} - -header #branding { - float: left; -} - -header #branding h1 { - margin: 0; -} - -/* move nav right */ -header nav { - float: right; - margin-top: 1vh; -} - -header .highlight, header .current a { - color: #32a0c2; -} - -header a:hover { - color: #ccc; - font-weight: bold; -} - -/**/ - -#showcase { - min-height: 40vh; - background: linear-gradient(rgba(0, 0, 0, 0.5), - rgba(0, 0, 0, 0.5)), - url("../static/i.jpg") no-repeat; - background-size: cover; - text-align: center; - color: #fff; -} - -#showcase h1 { - margin-top: 10vh; - font-size: 5vh; - margin-bottom: 1vh; -} - -#showcase p { - font-size: 2vh; -} - -/**/ - -#newsletter { - min-height: 5vh; - padding: 2vh; - color: #fff; - background: #353637; -} - -#newsletter h1 { - float: left; - margin: 1vh 0 0 2vh; -} - -#newsletter form { - float: right; - margin-top: 1vh; -} - -#newsletter input[type="email"] { - padding: 4px; - height: 25px; - min-width: 50%; - font-size: 2vh; -} - -.subscribe-btn { - height: 38px; - background: #ccc; - border: 0; - padding: 0 20px 0 20px; - color: #353637; - font-size: 2vh; - min-width: 20%; -} - -/**/ - -#boxes { - margin-top: 20px; -} - -#boxes .box { - float: left; - text-align: center; - width: 31%; - min-width: 300px; - padding: 10px; -} - -footer { - text-align: center; - color: #32a0c2; - background: #353637; - height: 10vh; - padding-top: 2vh; - margin-top: 2vh; - /* put footer bottom */ - clear: both; -} - -/**/ - -article#main { - float: left; - width: 65%; -} - -aside#sidebar { - float: right; - width: 30%; - padding: 2vh; -} - -article#main h1, -aside#sidebar h1 { - font-size: 5vh; -} - -/**/ - -#services ul li { - padding: 2vh 4vh; - border: #ccc solid 1px; - margin-bottom: 2vh; - background-color: #32a0c2; -} - -#services h3 { - border-bottom: #1443c2 solid 1px; -} - -aside#sidebar input, -aside#sidebar textarea, -aside#sidebar button { - font-size: 2vh; - padding: 5px; - margin-bottom: 1vh; -} - -aside#sidebar input { - width: 95%; -} - -aside#sidebar textarea { - width: 96%; -} - -aside#sidebar button { - width: 99%; -} - -/**/ - -@media(max-width: 1067px) { - header #branding, - header nav, - header nav li, - #newsletter h1, - #newsletter form, - #boxes .box, - article#main, aside#sidebar { - float: none; - text-align: center; - width: 99%; - } - - header #branding { - font-size: 4vh; - } - - header { - padding-bottom: 3vh; - } - - #showcase h1 { - font-size: 10vh; - margin-top: 1vh; - } - - #showcase p { - font-size: 3vh; - } - - #newsletter { - min-height: 5vh; - padding: 2vh; - color: #fff; - background: #353637; - } - - #newsletter h1 { - font-size: 5vh; - margin: 0 0 0 1vh; - } - - #newsletter input[type="email"] { - height: 40px; - width: 70%; - font-size: 2vh; - margin-top: 5px; - } - - .subscribe-btn { - height: 5vh; - margin-bottom: 1vh; - font-size: 2vh; - } - - .subscribe-btn { - margin-left: 2vh; - height: 5vh; - } - - .box { - font-size: 3vh; - } - - article#main h1, - aside#sidebar h1 { - font-size: 6vh; - } - - article#main p, - aside#sidebar p { - font-size: 5vh; - min-height: 5vh; - } - - - - aside#sidebar input, - aside#sidebar textarea { - font-size: 5vh; - } - - aside#sidebar input { - width: 95%; - } - - aside#sidebar textarea { - width: 95.5%; - } - - aside#sidebar button { - width: 97%; - margin: 1vh; - font-size: 3vh; - } -} - -/* -@media(max-width: 768px) { - header #branding, - header nav, - header nav li, - #newsletter h1, - #newsletter form, - #boxes .box { - float: none; - text-align: center; - width: 99%; - } -} -*/ diff --git a/responsive-web-design/components/Box.vue b/responsive-web-design/components/Box.vue deleted file mode 100644 index 0770b7e..0000000 --- a/responsive-web-design/components/Box.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/responsive-web-design/components/Boxes.vue b/responsive-web-design/components/Boxes.vue deleted file mode 100644 index 9cfa382..0000000 --- a/responsive-web-design/components/Boxes.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/responsive-web-design/components/Hanging.vue b/responsive-web-design/components/Hanging.vue deleted file mode 100644 index cd25027..0000000 --- a/responsive-web-design/components/Hanging.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/responsive-web-design/components/Heading.vue b/responsive-web-design/components/Heading.vue deleted file mode 100644 index 6bda5e3..0000000 --- a/responsive-web-design/components/Heading.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/responsive-web-design/components/Links.vue b/responsive-web-design/components/Links.vue deleted file mode 100644 index a1d20fd..0000000 --- a/responsive-web-design/components/Links.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/responsive-web-design/components/Newsletter.vue b/responsive-web-design/components/Newsletter.vue deleted file mode 100644 index c789bd1..0000000 --- a/responsive-web-design/components/Newsletter.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/responsive-web-design/components/README.md b/responsive-web-design/components/README.md deleted file mode 100644 index d7768dd..0000000 --- a/responsive-web-design/components/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# COMPONENTS - -The components directory contains your Vue.js Components. -Nuxt.js doesn't supercharge these components. - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/components/Showcase.vue b/responsive-web-design/components/Showcase.vue deleted file mode 100644 index 2c72029..0000000 --- a/responsive-web-design/components/Showcase.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/responsive-web-design/layouts/README.md b/responsive-web-design/layouts/README.md deleted file mode 100644 index 83d09ca..0000000 --- a/responsive-web-design/layouts/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# LAYOUTS - -This directory contains your Application Layouts. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/views#layouts - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/layouts/default.vue b/responsive-web-design/layouts/default.vue deleted file mode 100644 index bbf4d6e..0000000 --- a/responsive-web-design/layouts/default.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - - - diff --git a/responsive-web-design/middleware/README.md b/responsive-web-design/middleware/README.md deleted file mode 100644 index edb9129..0000000 --- a/responsive-web-design/middleware/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# MIDDLEWARE - -This directory contains your Application Middleware. -The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts). - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing#middleware - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/nuxt.config.js b/responsive-web-design/nuxt.config.js deleted file mode 100644 index b8c708c..0000000 --- a/responsive-web-design/nuxt.config.js +++ /dev/null @@ -1,49 +0,0 @@ -const base = 'gh-pages' === process.env.NODE_ENV ? '/vue-examples/' : '/'; - -module.exports = { - /** - * Headers of the page - */ - head: { - title: '10-nuxt-responsive-web-design', - meta: [ - { charset: 'utf-8' }, - { name: 'viewport', content: 'width=device-width, initial-scale=1' }, - { hid: 'description', name: 'description', content: 'Nuxt.js server-side rendering with Vue.js' } - ], - link: [ - { rel: 'icon', type: 'image/x-icon', href: base + 'favicon.ico' }, - ], - }, - /** - * Customize the progress-bar color - */ - loading: { color: '#3B8070' }, - /** - * Build configuration - */ - build: { - /** - * Run ESLINT on save - */ - extend(config, ctx) { - if (ctx.dev && ctx.isClient) { - config.module.rules.push({ - enforce: 'pre', - test: /\.(js|vue)$/, - loader: 'eslint-loader', - exclude: /(node_modules)/ - }); - } - }, - publicPath: '/static/', - extractCSS: true, - }, - router: { - base, - }, - css: [ - 'font-awesome/css/font-awesome.min.css', - '@/assets/styles.css', - ], -}; diff --git a/responsive-web-design/package.json b/responsive-web-design/package.json deleted file mode 100644 index 70b3321..0000000 --- a/responsive-web-design/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.1", - "description": "Nuxt.js server-side rendering with Vue.js", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "lint": "eslint --ext .js,.vue --ignore-path ../.gitignore .", - "precommit": "npm run lint", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:lint": "yarn lint", - "predeploy:clean": "rimraf -rf dist", - "predeploy:generate": "cross-env NODE_ENV=gh-pages nuxt generate", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "font-awesome": "4.7.0", - "nuxt": "1.0.0-rc6" - }, - "devDependencies": { - "babel-eslint": "8.0.0", - "cross-env": "5.0.5", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "gh-pages": "1.0.0", - "ncp": "2.0.0", - "npm-run-all": "4.1.1", - "rimraf": "2.6.2" - }, - "main": "nuxt.config.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/responsive-web-design/pages/README.md b/responsive-web-design/pages/README.md deleted file mode 100644 index 3c7faf5..0000000 --- a/responsive-web-design/pages/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# PAGES - -This directory contains your Application Views and Routes. -The framework reads all the .vue files inside this directory and create the router of your application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/routing diff --git a/responsive-web-design/pages/about/index.vue b/responsive-web-design/pages/about/index.vue deleted file mode 100644 index b6881ba..0000000 --- a/responsive-web-design/pages/about/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/responsive-web-design/pages/index.vue b/responsive-web-design/pages/index.vue deleted file mode 100644 index 8954fa7..0000000 --- a/responsive-web-design/pages/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/responsive-web-design/pages/services/index.vue b/responsive-web-design/pages/services/index.vue deleted file mode 100644 index 01a93f3..0000000 --- a/responsive-web-design/pages/services/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/responsive-web-design/plugins/README.md b/responsive-web-design/plugins/README.md deleted file mode 100644 index ec39a25..0000000 --- a/responsive-web-design/plugins/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# PLUGINS - -This directory contains your Javascript plugins that you want to run before instantiating the root vue.js application. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/plugins - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/static/README.md b/responsive-web-design/static/README.md deleted file mode 100644 index 66fe23a..0000000 --- a/responsive-web-design/static/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# STATIC - -This directory contains your static files. -Each file inside this directory is mapped to /. - -Example: /static/robots.txt is mapped as /robots.txt. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/assets#static - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/responsive-web-design/static/favicon.ico b/responsive-web-design/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/responsive-web-design/static/favicon.ico and /dev/null differ diff --git a/responsive-web-design/static/i.jpg b/responsive-web-design/static/i.jpg deleted file mode 100644 index 304acc6..0000000 Binary files a/responsive-web-design/static/i.jpg and /dev/null differ diff --git a/responsive-web-design/store/README.md b/responsive-web-design/store/README.md deleted file mode 100644 index b9a0b7e..0000000 --- a/responsive-web-design/store/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# STORE - -This directory contains your Vuex Store files. -Vuex Store option is implemented in the Nuxt.js framework. -Creating a index.js file in this directory activate the option in the framework automatically. - -More information about the usage of this directory in the documentation: -https://nuxtjs.org/guide/vuex-store - -**This directory is not required, you can delete it if you don't want to use it.** diff --git a/some-vuetify-app/.babelrc b/some-vuetify-app/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/some-vuetify-app/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/some-vuetify-app/.eslintignore b/some-vuetify-app/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/some-vuetify-app/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/some-vuetify-app/.eslintrc.js b/some-vuetify-app/.eslintrc.js deleted file mode 100644 index ef3388a..0000000 --- a/some-vuetify-app/.eslintrc.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - extends: 'standard', - plugins: [ - 'html' - ], - 'rules': { - 'arrow-parens': 0, - 'generator-star-spacing': 0, - 'no-debugger': 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - 'standard/computed-property-even-spacing': 0, - 'spaced-comment': 0, - 'padded-blocks': 0, - 'no-new': 0, - 'curly': 0, - } -}; diff --git a/some-vuetify-app/.postcssrc.js b/some-vuetify-app/.postcssrc.js deleted file mode 100644 index 23857b8..0000000 --- a/some-vuetify-app/.postcssrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - "plugins": { - "autoprefixer": {} - } -}; diff --git a/some-vuetify-app/README.md b/some-vuetify-app/README.md deleted file mode 100644 index b1fb865..0000000 --- a/some-vuetify-app/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Vietify [![Build Status](https://travis-ci.org/daggerok/vue-examples.svg?branch=master)](https://travis-ci.org/daggerok/vue-examples) - -Using [Vuetify.js](https://vuetifyjs.com/vuetify/quick-start) - -## build and run - -``` bash -yarn -i -yarn dev -yarn build -yarn deploy -``` diff --git a/some-vuetify-app/bin/replace-href.bash b/some-vuetify-app/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/some-vuetify-app/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/some-vuetify-app/build/build.js b/some-vuetify-app/build/build.js deleted file mode 100644 index e61bb6c..0000000 --- a/some-vuetify-app/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/some-vuetify-app/build/check-versions.js b/some-vuetify-app/build/check-versions.js deleted file mode 100644 index b050890..0000000 --- a/some-vuetify-app/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/some-vuetify-app/build/dev-client.js b/some-vuetify-app/build/dev-client.js deleted file mode 100644 index 09f6542..0000000 --- a/some-vuetify-app/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/some-vuetify-app/build/dev-server.js b/some-vuetify-app/build/dev-server.js deleted file mode 100644 index fab8761..0000000 --- a/some-vuetify-app/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -const config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -const opn = require('opn'); -const path = require('path'); -const express = require('express'); -const webpack = require('webpack'); -const proxyMiddleware = require('http-proxy-middleware'); -const webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -const port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -const autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -const proxyTable = config.dev.proxyTable; - -const app = express(); -const compiler = webpack(webpackConfig); - -const devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -const hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - let options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -const uri = 'http://localhost:' + port; - -let _resolve; -const readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -const server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/some-vuetify-app/build/env.js b/some-vuetify-app/build/env.js deleted file mode 100644 index 9f709a8..0000000 --- a/some-vuetify-app/build/env.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - isProduction: process.env.NODE_ENV === 'production', - isGhPages: !!process.env.GH_PAGES, -}; diff --git a/some-vuetify-app/build/utils.js b/some-vuetify-app/build/utils.js deleted file mode 100644 index 947387c..0000000 --- a/some-vuetify-app/build/utils.js +++ /dev/null @@ -1,72 +0,0 @@ -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const { isProduction } = require('./env'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = isProduction - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - minimize: isProduction, - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - for (let extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/some-vuetify-app/build/vue-loader.conf.js b/some-vuetify-app/build/vue-loader.conf.js deleted file mode 100644 index b198365..0000000 --- a/some-vuetify-app/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -const utils = require('./utils'); -const config = require('../config'); -const { isProduction } = require('./env'); - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/some-vuetify-app/build/webpack.base.conf.js b/some-vuetify-app/build/webpack.base.conf.js deleted file mode 100644 index bc46845..0000000 --- a/some-vuetify-app/build/webpack.base.conf.js +++ /dev/null @@ -1,82 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const { isGhPages } = require('./env'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: isGhPages - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - plugins: [ - new CopyWebpackPlugin([ - { from: 'service-worker' } - ]), - ], - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/some-vuetify-app/build/webpack.dev.conf.js b/some-vuetify-app/build/webpack.dev.conf.js deleted file mode 100644 index 30a9663..0000000 --- a/some-vuetify-app/build/webpack.dev.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true, - favicon: './favicon.ico', - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/some-vuetify-app/build/webpack.prod.conf.js b/some-vuetify-app/build/webpack.prod.conf.js deleted file mode 100644 index bbc3abe..0000000 --- a/some-vuetify-app/build/webpack.prod.conf.js +++ /dev/null @@ -1,131 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const SplitWebpackPlugin = require('split-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - new SplitWebpackPlugin({ - // chunks: ['vendors'], - size: 300, // kb - // divide: 2, - }), - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - favicon: './favicon.ico', - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/some-vuetify-app/config/dev.env.js b/some-vuetify-app/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/some-vuetify-app/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/some-vuetify-app/config/index.js b/some-vuetify-app/config/index.js deleted file mode 100644 index 59e2825..0000000 --- a/some-vuetify-app/config/index.js +++ /dev/null @@ -1,39 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); -const { isGhPages } = require('../build/env'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/some-vuetify-app/config/prod.env.js b/some-vuetify-app/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/some-vuetify-app/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/some-vuetify-app/config/test.env.js b/some-vuetify-app/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/some-vuetify-app/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/some-vuetify-app/favicon.ico b/some-vuetify-app/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/some-vuetify-app/favicon.ico and /dev/null differ diff --git a/some-vuetify-app/firebase.config.js.default b/some-vuetify-app/firebase.config.js.default deleted file mode 100644 index fdb44ed..0000000 --- a/some-vuetify-app/firebase.config.js.default +++ /dev/null @@ -1,11 +0,0 @@ -// copy your config from firebase console -// case of project vue-examples-98112 it could be: -// https://console.firebase.google.com/u/0/project/vue-examples-98112/overview -export const config = { - apiKey: "AIzaSyCZ1vxu8FR2zeUFvqhVbHe-sa4hH73bffA", - authDomain: "vue-examples-5f262.firebaseapp.com", - databaseURL: "https://vue-examples-5f262.firebaseio.com", - projectId: "vue-examples-5f262", - storageBucket: "vue-examples-5f262.appspot.com", - messagingSenderId: "683258749318" -}; diff --git a/some-vuetify-app/index.html b/some-vuetify-app/index.html deleted file mode 100644 index 7f6c180..0000000 --- a/some-vuetify-app/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Some Vuetify Router Shit App | Vue Examples - - -
- - - diff --git a/some-vuetify-app/package.json b/some-vuetify-app/package.json deleted file mode 100644 index 68c5874..0000000 --- a/some-vuetify-app/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.3", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "cross-env NODE_ENV=production node build/build.js", - "lint": "eslint --ext .js,.vue src", - "preserve": "yarn build", - "serve": "npm-run-all -p serve:*", - "serve:serve": "serve --single -l 3000 ./dist", - "serve:livereload": "livereload", - "predeploy": "npm i; npm-run-all predeploy:*", - "predeploy:build": "cross-env GH_PAGES=true yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "firebase": "5.3.1", - "font-awesome": "4.7.0", - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "vee-validate": "2.1.0-beta.7", - "vue": "2.5.17", - "vue-progressbar": "0.7.5", - "vue-router": "3.0.1", - "vuefire": "1.4.5", - "vuetify": "1.1.9", - "vuex": "3.0.1", - "vuexfire": "2.3.0", - "whatwg-fetch": "2.0.4" - }, - "devDependencies": { - "@types/firebase": "3.2.1", - "@types/jquery": "3.3.5", - "@types/node": "10.5.6", - "@types/whatwg-fetch": "0.0.33", - "autoprefixer": "9.1.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-loader": "7.1.5", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "connect-history-api-fallback": "1.5.0", - "copy-webpack-plugin": "4.5.2", - "cross-env": "5.2.0", - "css-loader": "1.0.0", - "cssnano": "4.0.5", - "eslint": "5.3.0", - "eslint-config-standard": "11.0.0", - "eslint-friendly-formatter": "4.0.1", - "eslint-loader": "2.1.0", - "eslint-plugin-html": "4.0.5", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "3.8.0", - "eslint-plugin-standard": "3.1.0", - "eventsource-polyfill": "0.9.6", - "express": "4.16.3", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "gh-pages": "1.2.0", - "html-webpack-plugin": "3.2.0", - "http-proxy-middleware": "0.18.0", - "inject-loader": "4.0.1", - "livereload": "0.7.0", - "lolex": "2.7.1", - "ncp": "2.0.0", - "nightwatch": "^1.0.8", - "node-sass": "4.9.2", - "npm-run-all": "4.1.3", - "opn": "5.3.0", - "optimize-css-assets-webpack-plugin": "3.2.0", - "ora": "3.0.0", - "rimraf": "2.6.2", - "sass-loader": "7.1.0", - "semver": "5.5.0", - "serve": ">=7.1.3", - "shelljs": "0.8.2", - "split-webpack-plugin": "1.1.0", - "stylus": "0.54.5", - "stylus-loader": "3.0.2", - "url-loader": "1.0.1", - "vue-loader": "13.7.2", - "vue-style-loader": "4.1.1", - "vue-template-compiler": "2.5.17", - "webpack": "3.12.0", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "3.1.3", - "webpack-hot-middleware": "2.22.3", - "webpack-merge": "4.1.4" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/some-vuetify-app/service-worker/service-worker-register.js b/some-vuetify-app/service-worker/service-worker-register.js deleted file mode 100644 index c550fed..0000000 --- a/some-vuetify-app/service-worker/service-worker-register.js +++ /dev/null @@ -1,15 +0,0 @@ -// @see http://www.pwabuilder.com/generator (Build Service Worker => Offline copy of pages) - -// This is the "Offline copy of pages" service worker - -// Add this below content to your HTML page, or add the js file to your page at the very top to register sercie worker -if (navigator.serviceWorker.controller) { - console.log('[PWA Builder] active service worker found, no need to register'); -} else { - // Register the ServiceWorker - navigator.serviceWorker.register('service-worker.js', { - scope: './' - }).then(function (reg) { - console.log('Service worker has been registered for scope:' + reg.scope); - }); -} diff --git a/some-vuetify-app/service-worker/service-worker.js b/some-vuetify-app/service-worker/service-worker.js deleted file mode 100644 index 12f83e2..0000000 --- a/some-vuetify-app/service-worker/service-worker.js +++ /dev/null @@ -1,44 +0,0 @@ -// @see http://www.pwabuilder.com/generator (Build Service Worker => Offline copy of pages) - -// This is the "Offline copy of pages" wervice worker -// Install stage sets up the index page (home page) in the cahche and opens a new cache -self.addEventListener('install', function (event) { - var indexPage = new Request('index.html'); - event.waitUntil( - fetch(indexPage).then(function (response) { - return caches.open('pwabuilder-offline').then(function (cache) { - console.log('[PWA Builder] Cached index page during Install' + response.url); - return cache.put(indexPage, response); - }); - })); -}); - -// If any fetch fails, it will look for the request in the cache and serve it from there first -self.addEventListener('fetch', function (event) { - var updateCache = function (request) { - return caches.open('pwabuilder-offline').then(function (cache) { - return fetch(request).then(function (response) { - console.log('[PWA Builder] add page to offline' + response.url); - return cache.put(request, response); - }); - }); - }; - - event.waitUntil(updateCache(event.request)); - - event.respondWith( - fetch(event.request).catch(function (error) { - console.log('[PWA Builder] Network request Failed. Serving content from cache: ' + error); - - // Check to see if you have it in the cache - // Return response - // If not in the cache, then return error page - return caches.open('pwabuilder-offline').then(function (cache) { - return cache.match(event.request).then(function (matching) { - var report = !matching || matching.status == 404 ? Promise.reject('no-match') : matching; - return report; - }); - }); - }) - ); -}); diff --git a/some-vuetify-app/src/assets/.gitkeep b/some-vuetify-app/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/some-vuetify-app/src/components/App.vue b/some-vuetify-app/src/components/App.vue deleted file mode 100644 index b986282..0000000 --- a/some-vuetify-app/src/components/App.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/some-vuetify-app/src/components/App/Links.vue b/some-vuetify-app/src/components/App/Links.vue deleted file mode 100644 index b4e6e31..0000000 --- a/some-vuetify-app/src/components/App/Links.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/some-vuetify-app/src/components/VuetifyApp.vue b/some-vuetify-app/src/components/VuetifyApp.vue deleted file mode 100644 index 13d30db..0000000 --- a/some-vuetify-app/src/components/VuetifyApp.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/some-vuetify-app/src/infrastructure/firebase.js b/some-vuetify-app/src/infrastructure/firebase.js deleted file mode 100644 index d19cb84..0000000 --- a/some-vuetify-app/src/infrastructure/firebase.js +++ /dev/null @@ -1,5 +0,0 @@ -import { initializeApp } from 'firebase'; -import { config } from '../../firebase.config'; - -const app = initializeApp(config); -export const db = app.database(); diff --git a/some-vuetify-app/src/infrastructure/router.js b/some-vuetify-app/src/infrastructure/router.js deleted file mode 100644 index 2bb1453..0000000 --- a/some-vuetify-app/src/infrastructure/router.js +++ /dev/null @@ -1,46 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import App from '../components/App.vue'; -import VuetifyApp from '../components/VuetifyApp.vue'; - -Vue.use(Router); - -const meta = { - progress: { - func: [ - { call: 'color', modifier: 'temp', argument: 'rgb(143, 255, 199)', }, - { call: 'fail', modifier: 'temp', argument: '#6e0000' }, - { call: 'location', modifier: 'temp', argument: 'top' }, - { call: 'transition', modifier: 'temp', argument: { speed: '1.5s', opacity: '0.6s', termination: 400 }, }, - ], - }, -}; - -export const routes = [ - { - path: '', - name: 'App', - component: App, - label: 'App', - }, - { - path: '/app', - name: 'VuetifyApp', - component: VuetifyApp, - label: 'Vuetify App', - }, - { - path: '/**', - redirect: '/', - }, -].map(r => { - r.meta = meta; - return r; -}); - -const router = new Router({ - routes, - mode: 'history', -}); - -export default router; diff --git a/some-vuetify-app/src/infrastructure/store/actions/contactList.js b/some-vuetify-app/src/infrastructure/store/actions/contactList.js deleted file mode 100644 index bd24bd8..0000000 --- a/some-vuetify-app/src/infrastructure/store/actions/contactList.js +++ /dev/null @@ -1,5 +0,0 @@ -export const contactListActions = { - addNewContactAction: ({ commit }) => commit('addNewContactMutation'), - setNewNameAction: ({ commit }, newValue) => commit('setNewNameMutation', newValue), - setNewPhoneAction: (store, newValue) => store.commit('setNewPhoneMutation', newValue), -}; diff --git a/some-vuetify-app/src/infrastructure/store/actions/counter.js b/some-vuetify-app/src/infrastructure/store/actions/counter.js deleted file mode 100644 index 34fa346..0000000 --- a/some-vuetify-app/src/infrastructure/store/actions/counter.js +++ /dev/null @@ -1,4 +0,0 @@ -export const counterActions = { - decrementCounterAction: ({ commit }) => commit('decrementCounterMutation'), - incrementCounterAction: store => store.commit('incrementCounterMutation'), -}; diff --git a/some-vuetify-app/src/infrastructure/store/actions/index.js b/some-vuetify-app/src/infrastructure/store/actions/index.js deleted file mode 100644 index ea0e5ed..0000000 --- a/some-vuetify-app/src/infrastructure/store/actions/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import { counterActions } from './counter'; -import { todoActions } from './todo'; -import { contactListActions } from './contactList'; - -export const actions = Object.assign( - {}, counterActions, todoActions, contactListActions, -); diff --git a/some-vuetify-app/src/infrastructure/store/actions/todo.js b/some-vuetify-app/src/infrastructure/store/actions/todo.js deleted file mode 100644 index 0640cb6..0000000 --- a/some-vuetify-app/src/infrastructure/store/actions/todo.js +++ /dev/null @@ -1,6 +0,0 @@ -export const todoActions = { - toggleTodoAction: (store, todo) => store.commit('toggleTodoMutation', todo), - addNewTodoTitleAction: (store) => store.commit('addNewTodoTitleMutation'), - removeTodoAction: (store, todo) => store.commit('removeTodoMutation', todo), - setNewTodoTitleAction: (store, newValue) => store.commit('setNewTodoTitleMutation', newValue), -}; diff --git a/some-vuetify-app/src/infrastructure/store/getters.js b/some-vuetify-app/src/infrastructure/store/getters.js deleted file mode 100644 index 35aacab..0000000 --- a/some-vuetify-app/src/infrastructure/store/getters.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getters = { - counter: state => state.counter, -}; diff --git a/some-vuetify-app/src/infrastructure/store/index.js b/some-vuetify-app/src/infrastructure/store/index.js deleted file mode 100644 index e8e1a70..0000000 --- a/some-vuetify-app/src/infrastructure/store/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { state } from './initialState'; -import { getters } from './getters'; -import { mutations } from './mutations'; -import { actions } from './actions/index'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; diff --git a/some-vuetify-app/src/infrastructure/store/initialState.js b/some-vuetify-app/src/infrastructure/store/initialState.js deleted file mode 100644 index aeb92fc..0000000 --- a/some-vuetify-app/src/infrastructure/store/initialState.js +++ /dev/null @@ -1,32 +0,0 @@ -export const state = { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', -}; diff --git a/some-vuetify-app/src/infrastructure/store/mutations.js b/some-vuetify-app/src/infrastructure/store/mutations.js deleted file mode 100644 index 107c98b..0000000 --- a/some-vuetify-app/src/infrastructure/store/mutations.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Counter App - */ -export const decrementCounterMutation = state => state.counter--; - -export const incrementCounterMutation = state => state.counter++; - -/** - * TO DO App - */ -export const toggleTodoMutation = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitleMutation = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodoMutation = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitleMutation = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/** - * Contact App - */ -export const setNewNameMutation = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhoneMutation = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContactMutation = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; - -// mutations -export const mutations = { - decrementCounterMutation, - incrementCounterMutation, - // - toggleTodoMutation, - addNewTodoTitleMutation, - removeTodoMutation, - setNewTodoTitleMutation, - // - setNewNameMutation, - setNewPhoneMutation, - addNewContactMutation, -}; diff --git a/some-vuetify-app/src/infrastructure/vendors.js b/some-vuetify-app/src/infrastructure/vendors.js deleted file mode 100644 index 346a5ac..0000000 --- a/some-vuetify-app/src/infrastructure/vendors.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * vue - */ - -import Vue from 'vue'; - -/* - * vue progress bar - */ - -import VueProgressbar from 'vue-progressbar'; - -export const config = { - color: 'rgb(143, 255, 199)', - failedColor: 'darkgreen', - thickness: '5px', - transition: { - speed: '0.6s', - opacity: '0.6s', - termination: 400 - }, - autoRevert: true, - location: 'top', - inverse: false -}; - -Vue.use(VueProgressbar/*, config */); - -/* - * fetch - */ - -if (!window.fetch || typeof window.fetch !== 'function') - require('whatwg-fetch'); - -/* - * jquery - */ - -if (!window.$ || typeof window.$ !== 'function') - window.$ = window.jQuery = require('jquery'); - -/* - * font-awesome - */ - -import 'font-awesome/css/font-awesome.css'; - -/* - * material design icons - */ - -import 'material-design-icons/iconfont/material-icons.css'; - -/* - * vuetify - */ - -// // import('vuetify/dist/vuetify.min.css'); -// import 'vuetify/src/stylus/main.styl'; - -import Vuetify from 'vuetify'; - -Vue.use(Vuetify); - -/* - * vuefire - */ - -import VueFire from 'vuefire'; - -Vue.use(VueFire); - -/* // vue-material -import 'vue-material/dist/vue-material.css'; -import VueMaterial from 'vue-material'; - -Vue.use(VueMaterial); - -Vue.material.registerTheme('default', { - primary: 'teal', -}); - */ - -/* // vee-validate -import messages from 'vee-validate/dist/locale/ru'; -import VeeValidate, { Validator } from 'vee-validate'; - -Validator.addLocale(messages); - -const config = { - locale: 'ru' -}; - -Vue.use(VeeValidate, config); -*/ diff --git a/some-vuetify-app/src/main.js b/some-vuetify-app/src/main.js deleted file mode 100644 index b7dfabe..0000000 --- a/some-vuetify-app/src/main.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import './infrastructure/vendors'; -import router from './infrastructure/router'; -import store from './infrastructure/store'; -import App from './components/App.vue'; - -Vue.config.productionTip = false; - -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/some-vuetify-app/static/.gitkeep b/some-vuetify-app/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/template/.babelrc b/template/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/template/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/template/.eslintignore b/template/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/template/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/template/.eslintrc.js b/template/.eslintrc.js deleted file mode 100644 index 6232fa6..0000000 --- a/template/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - } -}; diff --git a/template/.postcssrc.js b/template/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/template/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/template/README.md b/template/README.md deleted file mode 100644 index 9ab7434..0000000 --- a/template/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# vue-examples - -## do not update this - -```bash - optimize-css-assets-webpack-plugin → 3.2.0 - vue-loader → 13.7.2 - webpack → 3.12.0 -``` - -available commands - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/template/bin/replace-href.bash b/template/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/template/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/template/build/build.js b/template/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/template/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/template/build/check-versions.js b/template/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/template/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/template/build/dev-client.js b/template/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/template/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/template/build/dev-server.js b/template/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/template/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/template/build/env.js b/template/build/env.js deleted file mode 100644 index 9f709a8..0000000 --- a/template/build/env.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - isProduction: process.env.NODE_ENV === 'production', - isGhPages: !!process.env.GH_PAGES, -}; diff --git a/template/build/utils.js b/template/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/template/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/template/build/vue-loader.conf.js b/template/build/vue-loader.conf.js deleted file mode 100644 index 3a85171..0000000 --- a/template/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var { isProduction } = require('./env'); - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/template/build/webpack.base.conf.js b/template/build/webpack.base.conf.js deleted file mode 100644 index c933990..0000000 --- a/template/build/webpack.base.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/template/build/webpack.dev.conf.js b/template/build/webpack.dev.conf.js deleted file mode 100644 index d79d998..0000000 --- a/template/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/template/build/webpack.prod.conf.js b/template/build/webpack.prod.conf.js deleted file mode 100644 index cf56ff2..0000000 --- a/template/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/template/build/webpack.test.conf.js b/template/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/template/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/template/config/dev.env.js b/template/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/template/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/template/config/index.js b/template/config/index.js deleted file mode 100644 index bc34ac8..0000000 --- a/template/config/index.js +++ /dev/null @@ -1,39 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); -const {isGhPages } = require('../build/env'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/template/config/prod.env.js b/template/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/template/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/template/config/test.env.js b/template/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/template/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/template/index.html b/template/index.html deleted file mode 100644 index 7b620cc..0000000 --- a/template/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - vue-examples - - -
- - - diff --git a/template/package.json b/template/package.json deleted file mode 100644 index 2075b45..0000000 --- a/template/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.0", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "cross-env NODE_ENV=production node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "npm i && cross-env GH_PAGES=true npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "materialize-css": "0.100.2", - "vue": "2.5.17", - "vue-router": "3.0.1", - "vuex": "3.0.1", - "whatwg-fetch": "2.0.4" - }, - "devDependencies": { - "@types/jquery": "3.3.5", - "@types/node": "10.5.6", - "@types/systemjs": "0.20.6", - "autoprefixer": "9.1.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-loader": "7.1.5", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.4.1", - "connect-history-api-fallback": "1.5.0", - "copy-webpack-plugin": "4.5.2", - "cross-env": "5.2.0", - "cross-spawn": "6.0.5", - "css-loader": "1.0.0", - "cssnano": "4.0.5", - "eslint": "5.3.0", - "eslint-config-standard": "11.0.0", - "eslint-friendly-formatter": "4.0.1", - "eslint-loader": "2.1.0", - "eslint-plugin-html": "4.0.5", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "3.8.0", - "eslint-plugin-standard": "3.1.0", - "eventsource-polyfill": "0.9.6", - "express": "^4.16.3", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "gh-pages": "^1.2.0", - "html-webpack-plugin": "3.2.0", - "http-proxy-middleware": "0.18.0", - "inject-loader": "4.0.1", - "lolex": "2.7.1", - "ncp": "2.0.0", - "nightwatch": "^1.0.8", - "npm-run-all": "4.1.3", - "opn": "5.3.0", - "optimize-css-assets-webpack-plugin": "3.2.0", - "ora": "3.0.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "shelljs": "0.8.2", - "url-loader": "1.0.1", - "vue-loader": "13.7.2", - "vue-style-loader": "4.1.1", - "vue-template-compiler": "2.5.17", - "webpack": "3.12.0", - "webpack-bundle-analyzer": "^3.6.0", - "webpack-dev-middleware": "3.1.3", - "webpack-hot-middleware": "2.22.3", - "webpack-merge": "4.1.4" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "license": "MIT", - "repository": "https://github.com/daggerok/vue-examples.git" -} diff --git a/template/src/App.vue b/template/src/App.vue deleted file mode 100644 index 5376d37..0000000 --- a/template/src/App.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/template/src/assets/logo.png b/template/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/template/src/assets/logo.png and /dev/null differ diff --git a/template/src/components/Hello.vue b/template/src/components/Hello.vue deleted file mode 100644 index d60327e..0000000 --- a/template/src/components/Hello.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - diff --git a/template/src/main.js b/template/src/main.js deleted file mode 100644 index edc161d..0000000 --- a/template/src/main.js +++ /dev/null @@ -1,15 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App'; -import router from './router'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - router, - template: '', - components: { App } -}); diff --git a/template/src/router/index.js b/template/src/router/index.js deleted file mode 100644 index d05810b..0000000 --- a/template/src/router/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import Hello from '@/components/Hello'; - -Vue.use(Router); - -export default new Router({ - routes: [ - { - path: '/', - name: 'Hello', - component: Hello - } - ] -}); diff --git a/template/static/favicon.ico b/template/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/template/static/favicon.ico and /dev/null differ diff --git a/todo-list/.babelrc b/todo-list/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/todo-list/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/todo-list/.eslintignore b/todo-list/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/todo-list/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/todo-list/.eslintrc.js b/todo-list/.eslintrc.js deleted file mode 100644 index f61f809..0000000 --- a/todo-list/.eslintrc.js +++ /dev/null @@ -1,35 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - } -}; diff --git a/todo-list/.postcssrc.js b/todo-list/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/todo-list/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/todo-list/README.md b/todo-list/README.md deleted file mode 100644 index 782e42d..0000000 --- a/todo-list/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# TODO App - - -## do not update these versions - -```bash -npm i -ED webpack@3 optimize-css-assets-webpack-plugin@3 vue-loader@1 - -# optimize-css-assets-webpack-plugin → 3.2.0 -# vue-loader → 13.7.2 -# webpack → 3.12.0 -``` - -available commands - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/todo-list/bin/replace-href.bash b/todo-list/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/todo-list/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/todo-list/build/build.js b/todo-list/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/todo-list/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/todo-list/build/check-versions.js b/todo-list/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/todo-list/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/todo-list/build/dev-client.js b/todo-list/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/todo-list/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/todo-list/build/dev-server.js b/todo-list/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/todo-list/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/todo-list/build/env.js b/todo-list/build/env.js deleted file mode 100644 index 9f709a8..0000000 --- a/todo-list/build/env.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - isProduction: process.env.NODE_ENV === 'production', - isGhPages: !!process.env.GH_PAGES, -}; diff --git a/todo-list/build/utils.js b/todo-list/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/todo-list/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/todo-list/build/vue-loader.conf.js b/todo-list/build/vue-loader.conf.js deleted file mode 100644 index 3a85171..0000000 --- a/todo-list/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var { isProduction } = require('./env'); - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/todo-list/build/webpack.base.conf.js b/todo-list/build/webpack.base.conf.js deleted file mode 100644 index c933990..0000000 --- a/todo-list/build/webpack.base.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/todo-list/build/webpack.dev.conf.js b/todo-list/build/webpack.dev.conf.js deleted file mode 100644 index d79d998..0000000 --- a/todo-list/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/todo-list/build/webpack.prod.conf.js b/todo-list/build/webpack.prod.conf.js deleted file mode 100644 index cf56ff2..0000000 --- a/todo-list/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/todo-list/build/webpack.test.conf.js b/todo-list/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/todo-list/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/todo-list/config/dev.env.js b/todo-list/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/todo-list/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/todo-list/config/index.js b/todo-list/config/index.js deleted file mode 100644 index 2fdea2f..0000000 --- a/todo-list/config/index.js +++ /dev/null @@ -1,39 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); -const { isGhPages } = require('../build/env'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: isGhPages ? '/vue-examples/' : '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/todo-list/config/prod.env.js b/todo-list/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/todo-list/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/todo-list/config/test.env.js b/todo-list/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/todo-list/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/todo-list/index.html b/todo-list/index.html deleted file mode 100644 index 7b620cc..0000000 --- a/todo-list/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - vue-examples - - -
- - - diff --git a/todo-list/package.json b/todo-list/package.json deleted file mode 100644 index 25b7427..0000000 --- a/todo-list/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.2", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn -i; npm-run-all predeploy:*", - "predeploy:build": "cross-env GH_PAGES=true,NODE_ENV=production yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "vue": "2.5.17", - "vue-router": "3.0.1" - }, - "devDependencies": { - "@types/node": "10.5.6", - "autoprefixer": "9.1.0", - "babel-core": "6.26.3", - "babel-eslint": "8.2.6", - "babel-loader": "7.1.5", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.4.1", - "connect-history-api-fallback": "1.5.0", - "copy-webpack-plugin": "4.5.2", - "cross-env": "5.2.0", - "cross-spawn": "6.0.5", - "css-loader": "1.0.0", - "cssnano": "4.0.5", - "eslint": "5.3.0", - "eslint-config-standard": "11.0.0", - "eslint-friendly-formatter": "4.0.1", - "eslint-loader": "2.1.0", - "eslint-plugin-html": "4.0.5", - "eslint-plugin-import": "2.13.0", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "3.8.0", - "eslint-plugin-standard": "3.1.0", - "eventsource-polyfill": "0.9.6", - "express": "4.16.3", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "friendly-errors-webpack-plugin": "1.7.0", - "gh-pages": "1.2.0", - "html-webpack-plugin": "3.2.0", - "http-proxy-middleware": "0.18.0", - "inject-loader": "4.0.1", - "lolex": "2.7.1", - "ncp": "2.0.0", - "nightwatch": "^1.0.8", - "npm-run-all": "4.1.3", - "opn": "5.3.0", - "optimize-css-assets-webpack-plugin": "3.2.0", - "ora": "3.0.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "shelljs": "0.8.2", - "url-loader": "1.0.1", - "vue-loader": "13.7.2", - "vue-style-loader": "4.1.1", - "vue-template-compiler": "2.5.17", - "webpack": "3.12.0", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "3.1.3", - "webpack-hot-middleware": "2.22.3", - "webpack-merge": "4.1.4" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/todo-list/src/App.vue b/todo-list/src/App.vue deleted file mode 100644 index 6fb307c..0000000 --- a/todo-list/src/App.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/todo-list/src/components/TodoApp.vue b/todo-list/src/components/TodoApp.vue deleted file mode 100644 index 7335f4d..0000000 --- a/todo-list/src/components/TodoApp.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/todo-list/src/main.js b/todo-list/src/main.js deleted file mode 100644 index edc161d..0000000 --- a/todo-list/src/main.js +++ /dev/null @@ -1,15 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App'; -import router from './router'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - router, - template: '', - components: { App } -}); diff --git a/todo-list/src/router/index.js b/todo-list/src/router/index.js deleted file mode 100644 index 562554e..0000000 --- a/todo-list/src/router/index.js +++ /dev/null @@ -1,15 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; - -Vue.use(Router); - -export default new Router({ - routes: [ - { - path: '/', - name: 'TodoApp', - component: TodoApp - } - ] -}); diff --git a/todo-list/static/favicon.ico b/todo-list/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/todo-list/static/favicon.ico and /dev/null differ diff --git a/typescript-vue-app/.browserslistrc b/typescript-vue-app/.browserslistrc deleted file mode 100644 index d6471a3..0000000 --- a/typescript-vue-app/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -> 1% -last 2 versions diff --git a/typescript-vue-app/.gitignore b/typescript-vue-app/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/typescript-vue-app/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/typescript-vue-app/README.md b/typescript-vue-app/README.md deleted file mode 100644 index ae47a2f..0000000 --- a/typescript-vue-app/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# typescript-vue-app -TypeScript, Vue and Bulma + FontAwesome... - -## getting started - -``` -npm i -g @vue/cli -vue create my-app # and choose manual, then typescript without babel... -cd my-app - -npm i -E bulma font-awesome -npm i -ED @types/node forever - -vi package.json # and add forever scripts for CI... -``` - -## resources - -* [TypeScript Configuration Reference](https://ru.vuejs.org/v2/guide/typescript.html) -* [Configuration Reference](https://cli.vuejs.org/config/) diff --git a/typescript-vue-app/jest.config.js b/typescript-vue-app/jest.config.js deleted file mode 100644 index 792a67e..0000000 --- a/typescript-vue-app/jest.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - preset: '@vue/cli-plugin-unit-jest/presets/typescript' -}; diff --git a/typescript-vue-app/package.json b/typescript-vue-app/package.json deleted file mode 100644 index 1bc1ee0..0000000 --- a/typescript-vue-app/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "typescript-vue-app", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "test": "vue-cli-service test:unit", - "start": "forever start ./node_modules/.bin/vue-cli-service serve", - "stop": "forever stopall --killTree", - "logs": "forever -f logs 0" - }, - "dependencies": { - "bulma": "0.8.0", - "font-awesome": "4.7.0", - "vue": "2.6.10", - "vue-class-component": "7.1.0", - "vue-property-decorator": "8.3.0", - "vue-router": "3.1.3", - "vuex": "3.1.2" - }, - "devDependencies": { - "@types/jest": "24.0.23", - "@types/node": "12.12.17", - "@vue/cli-plugin-router": "4.1.1", - "@vue/cli-plugin-typescript": "4.1.1", - "@vue/cli-plugin-unit-jest": "4.1.1", - "@vue/cli-plugin-vuex": "4.1.1", - "@vue/cli-service": "4.1.1", - "@vue/test-utils": "1.0.0-beta.29", - "forever": "1.0.0", - "node-sass": "4.14.1", - "sass-loader": "8.0.0", - "typescript": "3.7.3", - "vue-template-compiler": "2.6.10" - } -} diff --git a/typescript-vue-app/public/favicon.ico b/typescript-vue-app/public/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/typescript-vue-app/public/favicon.ico and /dev/null differ diff --git a/typescript-vue-app/public/index.html b/typescript-vue-app/public/index.html deleted file mode 100644 index 7f41985..0000000 --- a/typescript-vue-app/public/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - typescript-vue-app - - - -
- - - diff --git a/typescript-vue-app/src/App.vue b/typescript-vue-app/src/App.vue deleted file mode 100644 index 4ca195b..0000000 --- a/typescript-vue-app/src/App.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/typescript-vue-app/src/assets/logo.png b/typescript-vue-app/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/typescript-vue-app/src/assets/logo.png and /dev/null differ diff --git a/typescript-vue-app/src/components/HelloWorld.vue b/typescript-vue-app/src/components/HelloWorld.vue deleted file mode 100644 index 39ac722..0000000 --- a/typescript-vue-app/src/components/HelloWorld.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - diff --git a/typescript-vue-app/src/main.ts b/typescript-vue-app/src/main.ts deleted file mode 100644 index 0d34ae1..0000000 --- a/typescript-vue-app/src/main.ts +++ /dev/null @@ -1,15 +0,0 @@ -import 'font-awesome/css/font-awesome.css'; -import 'bulma/css/bulma.css'; - -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './store'; - -Vue.config.productionTip = false; - -new Vue({ - router, - store, - render: h => h(App) -}).$mount('#app'); diff --git a/typescript-vue-app/src/router/index.ts b/typescript-vue-app/src/router/index.ts deleted file mode 100644 index 5d7660c..0000000 --- a/typescript-vue-app/src/router/index.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import Home from '../views/Home.vue'; - -Vue.use(VueRouter); - -const routes = [ - { - path: '/', - name: 'home', - component: Home - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') - } -]; - -const router = new VueRouter({ - mode: 'history', - base: process.env.BASE_URL, - routes -}); - -export default router; diff --git a/typescript-vue-app/src/shims-tsx.d.ts b/typescript-vue-app/src/shims-tsx.d.ts deleted file mode 100644 index cee45f0..0000000 --- a/typescript-vue-app/src/shims-tsx.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Vue, { VNode } from 'vue'; - -declare global { - namespace JSX { - // tslint:disable no-empty-interface - interface Element extends VNode {} - // tslint:disable no-empty-interface - interface ElementClass extends Vue {} - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/typescript-vue-app/src/shims-vue.d.ts b/typescript-vue-app/src/shims-vue.d.ts deleted file mode 100644 index 8f6f410..0000000 --- a/typescript-vue-app/src/shims-vue.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.vue' { - import Vue from 'vue'; - export default Vue; -} diff --git a/typescript-vue-app/src/store/index.ts b/typescript-vue-app/src/store/index.ts deleted file mode 100644 index 3431aaa..0000000 --- a/typescript-vue-app/src/store/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -export default new Vuex.Store({ - state: {}, - mutations: {}, - actions: {}, - modules: {}, -}); diff --git a/typescript-vue-app/src/views/About.vue b/typescript-vue-app/src/views/About.vue deleted file mode 100644 index 3fa2807..0000000 --- a/typescript-vue-app/src/views/About.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/typescript-vue-app/src/views/Home.vue b/typescript-vue-app/src/views/Home.vue deleted file mode 100644 index fc2e940..0000000 --- a/typescript-vue-app/src/views/Home.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/typescript-vue-app/tests/unit/example.spec.ts b/typescript-vue-app/tests/unit/example.spec.ts deleted file mode 100644 index cb7abba..0000000 --- a/typescript-vue-app/tests/unit/example.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { shallowMount } from '@vue/test-utils'; -import HelloWorld from '@/components/HelloWorld.vue'; - -describe('HelloWorld.vue', () => { - it('renders props.msg when passed', () => { - const msg = 'new message'; - const wrapper = shallowMount(HelloWorld, { - propsData: { msg } - }); - expect(wrapper.text()).toMatch(msg); - }); -}); diff --git a/typescript-vue-app/tsconfig.json b/typescript-vue-app/tsconfig.json deleted file mode 100644 index cb425e8..0000000 --- a/typescript-vue-app/tsconfig.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "importHelpers": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "baseUrl": ".", - "types": [ - "webpack-env", - "jest" - ], - "paths": { - "@/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.vue", - "tests/**/*.ts", - "tests/**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} diff --git a/vue-bootstrap-css/.babelrc b/vue-bootstrap-css/.babelrc deleted file mode 100644 index 8e51b22..0000000 --- a/vue-bootstrap-css/.babelrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "presets": [ - ["env", { - "targets": { - "browsers": ["last 2 versions", "safari >= 7", "chrome >= 36", "firefox >= 28"] - } - }], - "vue", - "stage-0" - ] -} diff --git a/vue-bootstrap-css/.gitignore b/vue-bootstrap-css/.gitignore deleted file mode 100644 index b6c8605..0000000 --- a/vue-bootstrap-css/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -.idea/ -*.iml -*.ipr -*.iws - -.cache/ -dist/ - -node_modules/ -.DS_Store -*.log* diff --git a/vue-bootstrap-css/README.adoc b/vue-bootstrap-css/README.adoc deleted file mode 100644 index dbe327f..0000000 --- a/vue-bootstrap-css/README.adoc +++ /dev/null @@ -1 +0,0 @@ -= vue-bootstrap-css image:https://travis-ci.org/daggerok/vue-examples.svg?branch=master["Build Status", link="https://travis-ci.org/daggerok/vue-examples"] diff --git a/vue-bootstrap-css/bin/gh-pages-base-href.bash b/vue-bootstrap-css/bin/gh-pages-base-href.bash deleted file mode 100644 index fe6afcc..0000000 --- a/vue-bootstrap-css/bin/gh-pages-base-href.bash +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -FILE="$1" -BASE_HREF="$2" -COMMAND="$3" - -if ! [ -z "$FILE" ] || ! [ -z "$BASE_HREF" ] || ! [ -z "$COMMAND" ] ; then - if [ -f "$FILE" ]; then - if [ "add" = "$COMMAND" ]; then - sed -i -e "s///g" "$FILE" - fi - if [ "remove" = "$COMMAND" ]; then - sed -i -e "s///g" "$FILE" - fi - rm -rf "$FILE-e" - fi -fi diff --git a/vue-bootstrap-css/package.json b/vue-bootstrap-css/package.json deleted file mode 100644 index 80169e6..0000000 --- a/vue-bootstrap-css/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples/", - "name": "vue-bootstrap-css-app", - "version": "0.0.0", - "description": "Vue.js + Bootstrap + Tachyons CSS App", - "main": "index.js", - "scripts": { - "predev": "npm run clean", - "dev": "npm-run-all -p dev:*", - "dev:watch": "parcel watch --no-cache src/index.html", - "dev:serve": "parcel serve --no-cache src/index.html", - "start": "parcel src/index.html", - "clean": "rimraf -rf .cache dist", - "prebuild": "npm run clean", - "build": "parcel build src/index.html", - "preserve": "npm run build", - "serve": "browser-sync start --no-notify --single -s ./dist/", - "test": "echo \"Error: no test specified\" && exit 1", - "predeploy": "npm i && npm-run-all predeploy:*", - "predeploy:clean": "npm run clean", - "predeploy:build": "parcel build --public-url /vue-examples/ src/index.html", - "predeploy:add-base-href": "bash ./bin/gh-pages-base-href.bash ./dist/index.html vue-examples add", - "predeploy:gh-pages-404": "ncp ./dist/index.html ./dist/404.html", - "predeploy:nojekyll": "touch ./dist/.nojekyll", - "deploy": "gh-pages -e ./ -d ./dist -s '{*.*,.*,*,**}' --branch gh-pages --dotfiles=true -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "keywords": [ - "parcel" - ], - "author": "Maksim Kostromin (https://github.com/daggerok)", - "license": "MIT", - "devDependencies": { - "@types/vue": "2.0.0", - "@vue/component-compiler-utils": "2.1.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-0": "6.24.1", - "babel-preset-vue": "2.0.2", - "browser-sync": "2.24.6", - "gh-pages": "1.2.0", - "ncp": "2.0.0", - "npm-run-all": "4.1.3", - "parcel-bundler": "1.10.0", - "rimraf": "2.6.2", - "vue-template-compiler": "2.5.16" - }, - "dependencies": { - "babel-polyfill": "6.26.0", - "bootstrap": "4.3.1", - "tachyons": "4.11.1", - "vue-app": "file:vue" - } -} diff --git a/vue-bootstrap-css/src/app/App.vue b/vue-bootstrap-css/src/app/App.vue deleted file mode 100644 index f493a35..0000000 --- a/vue-bootstrap-css/src/app/App.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/vue-bootstrap-css/src/favicon.ico b/vue-bootstrap-css/src/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vue-bootstrap-css/src/favicon.ico and /dev/null differ diff --git a/vue-bootstrap-css/src/index.html b/vue-bootstrap-css/src/index.html deleted file mode 100644 index c7e526c..0000000 --- a/vue-bootstrap-css/src/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - Functional JS | Functional Starter - - - - - -
- - - diff --git a/vue-bootstrap-css/src/main.js b/vue-bootstrap-css/src/main.js deleted file mode 100644 index 30be4b3..0000000 --- a/vue-bootstrap-css/src/main.js +++ /dev/null @@ -1,9 +0,0 @@ -import 'babel-polyfill'; - -import Vue from 'vue'; -import App from './app/App'; - -new Vue({ - el: '#app', - render: h => h(App) -}); diff --git a/vue-bootstrap-css/vue/.babelrc b/vue-bootstrap-css/vue/.babelrc deleted file mode 100644 index 009a08e..0000000 --- a/vue-bootstrap-css/vue/.babelrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "presets": [ - "env", - "vue", - "stage-0" - ] -} diff --git a/vue-bootstrap-css/vue/.gitignore b/vue-bootstrap-css/vue/.gitignore deleted file mode 100644 index 3f61e9e..0000000 --- a/vue-bootstrap-css/vue/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.cache -node_modules -dist diff --git a/vue-bootstrap-css/vue/package.json b/vue-bootstrap-css/vue/package.json deleted file mode 100644 index 2de8e76..0000000 --- a/vue-bootstrap-css/vue/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "scripts": { - "start": "parcel serve src/", - "build": "parcel build src/index.html" - }, - "name": "vue-app", - "version": "1.0.0", - "main": "index.js", - "keywords": [], - "author": "Maksim Kostromin (https://github.com/daggerok)", - "license": "MIT", - "description": "", - "devDependencies": { - "@vue/component-compiler-utils": "2.0.0", - "babel-preset-env": "1.7.0", - "babel-preset-stage-0": "6.24.1", - "babel-preset-vue": "2.0.2", - "parcel-bundler": "1.10.0", - "vue-template-compiler": "2.5.16" - }, - "dependencies": { - "babel-polyfill": "6.26.0", - "vue": "2.5.16", - "vue-hot-reload-api": "2.3.0" - } -} diff --git a/vue-bootstrap-css/vue/src/components/App.vue b/vue-bootstrap-css/vue/src/components/App.vue deleted file mode 100644 index 1d904f9..0000000 --- a/vue-bootstrap-css/vue/src/components/App.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/vue-bootstrap-css/vue/src/favicon.ico b/vue-bootstrap-css/vue/src/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vue-bootstrap-css/vue/src/favicon.ico and /dev/null differ diff --git a/vue-bootstrap-css/vue/src/index.html b/vue-bootstrap-css/vue/src/index.html deleted file mode 100644 index 6761518..0000000 --- a/vue-bootstrap-css/vue/src/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Vue | Parcel - - - -
- - - diff --git a/vue-bootstrap-css/vue/src/main.js b/vue-bootstrap-css/vue/src/main.js deleted file mode 100644 index 5377537..0000000 --- a/vue-bootstrap-css/vue/src/main.js +++ /dev/null @@ -1,10 +0,0 @@ -import 'babel-polyfill'; -//tag::content[] -import Vue from 'vue' -import App from './components/App.vue' - -new Vue({ - el: '#app', - render: h => h(App) -}); -//end::content[] diff --git a/vue-material/.babelrc b/vue-material/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vue-material/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vue-material/.eslintignore b/vue-material/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vue-material/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vue-material/.eslintrc.js b/vue-material/.eslintrc.js deleted file mode 100644 index 6232fa6..0000000 --- a/vue-material/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - } -}; diff --git a/vue-material/.postcssrc.js b/vue-material/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/vue-material/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/vue-material/README.md b/vue-material/README.md deleted file mode 100644 index 8e6d78d..0000000 --- a/vue-material/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Vue.js + materialize-css - -This repository is containing Vue.js + materialize-css + jquery installation. - -## jquery + materialize-css installation (using require instead of import) - -```html - - - diff --git a/vue-material/src/assets/.gitkeep b/vue-material/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vue-material/src/components/VueMaterial.vue b/vue-material/src/components/VueMaterial.vue deleted file mode 100644 index 4c57b34..0000000 --- a/vue-material/src/components/VueMaterial.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - diff --git a/vue-material/src/main.js b/vue-material/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/vue-material/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vue-material/src/router/index.js b/vue-material/src/router/index.js deleted file mode 100644 index eca8b6e..0000000 --- a/vue-material/src/router/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import VueMaterial from '../components/VueMaterial.vue'; - -Vue.use(Router); - -export const routes = [ - { - path: '/', - name: 'VueMaterial', - component: VueMaterial, - label: 'using Vue.js + vue-materialize-css + jquery', - }, -]; - -const router = new Router({ - routes, -}); - -export default router; diff --git a/vue-material/src/vuex/store.js b/vue-material/src/vuex/store.js deleted file mode 100644 index 6f20a6a..0000000 --- a/vue-material/src/vuex/store.js +++ /dev/null @@ -1,53 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state: { - counter: 0, - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - }, - mutations: { - decrementCounter: state => state.counter--, - incrementCounter: state => state.counter++, - toggleTodo: (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; - }, - addNewTodoTitle: state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; - }, - removeTodo: (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; - }, - setNewTodoTitle: (state, newValue) => { - state.newTodoTitle = newValue; - }, - }, -}); - -export default store; diff --git a/vue-material/static/.gitkeep b/vue-material/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vue-parcel/app/favicon.ico b/vue-parcel/app/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vue-parcel/app/favicon.ico and /dev/null differ diff --git a/vue-parcel/app/index.html b/vue-parcel/app/index.html deleted file mode 100644 index 5e281c5..0000000 --- a/vue-parcel/app/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - Parcel | Vue - - - - - -
- - - - - - diff --git a/vue-parcel/app/main.js b/vue-parcel/app/main.js deleted file mode 100644 index e8a7b6d..0000000 --- a/vue-parcel/app/main.js +++ /dev/null @@ -1,7 +0,0 @@ -import Vue from 'vue/dist/vue'; - -new Vue({ - el: '#app', - data() { return { name: 'Parcel' }; }, - template: `

hey, {{ name }}!

`, -}); diff --git a/vue-parcel/app/style.css b/vue-parcel/app/style.css deleted file mode 100644 index 25cce63..0000000 --- a/vue-parcel/app/style.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - margin: 0; - padding: 1%; -} diff --git a/vue-parcel/package.json b/vue-parcel/package.json deleted file mode 100644 index 519b40a..0000000 --- a/vue-parcel/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "devDependencies": { - "babel-preset-env": "1.6.1", - "gh-pages": "1.1.0", - "ncp": "2.0.0", - "npm-run-all": "4.1.2", - "parcel-bundler": "1.10.0", - "rimraf": "2.6.2" - }, - "dependencies": { - "hammerjs": "2.0.8", - "jquery": "3.5.0", - "materialize-css": "0.100.2", - "vue": "2.5.13" - }, - "scripts": { - "start": "parcel ./app/index.html", - "prebuild": "yarn -i || npm i --no-optional", - "build": "parcel build ./app/index.html", - "predeploy": "npm-run-all predeploy:*", - "predeploy:clean": "rimraf -rf ./dist", - "predeploy:build": "parcel build ./app/index.html --no-cache --public-url='/vue-examples/'", - "predeploy:fallback": "ncp ./dist/index.html ./dist/404.html", - "predeploy:nojekyll": "touch ./dist/.nojekyll", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Parcel Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "babel": { - "presets": [ - "env" - ] - } -} diff --git a/vuesax-example/.gitignore b/vuesax-example/.gitignore deleted file mode 100644 index a0dddc6..0000000 --- a/vuesax-example/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/vuesax-example/README.md b/vuesax-example/README.md deleted file mode 100644 index 9980f5a..0000000 --- a/vuesax-example/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# vuesax-example - -## Project setup -``` -npm install -``` - -### Compiles and hot-reloads for development -``` -npm run serve -``` - -### Compiles and minifies for production -``` -npm run build -``` - -### Run your unit tests -``` -npm run test:unit -``` - -### Customize configuration -See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/vuesax-example/babel.config.js b/vuesax-example/babel.config.js deleted file mode 100644 index e955840..0000000 --- a/vuesax-example/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/vuesax-example/package.json b/vuesax-example/package.json deleted file mode 100644 index 144bfcf..0000000 --- a/vuesax-example/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "vuesax-example", - "version": "0.1.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "test": "vue-cli-service test:unit", - "start": "forever start ./node_modules/.bin/vue-cli-service serve", - "stop": "forever stopall --killTree", - "logs": "forever -f logs 0" - }, - "dependencies": { - "core-js": "3.5.0", - "material-icons": "0.3.1", - "vue": "2.6.10", - "vue-router": "3.1.3", - "vuesax": "3.11.2", - "vuex": "3.1.2" - }, - "devDependencies": { - "@types/chai": "4.2.7", - "@types/mocha": "5.2.7", - "@vue/cli-plugin-babel": "4.1.1", - "@vue/cli-plugin-router": "4.1.1", - "@vue/cli-plugin-unit-mocha": "4.1.1", - "@vue/cli-plugin-vuex": "4.1.1", - "@vue/cli-service": "4.1.1", - "@vue/test-utils": "1.0.0-beta.29", - "chai": "4.2.0", - "forever": "1.0.0", - "sass": "1.23.7", - "sass-loader": "8.0.0", - "vue-template-compiler": "2.6.10" - }, - "browserslist": [ - "> 1%", - "last 2 versions" - ] -} diff --git a/vuesax-example/public/favicon.ico b/vuesax-example/public/favicon.ico deleted file mode 100644 index df36fcf..0000000 Binary files a/vuesax-example/public/favicon.ico and /dev/null differ diff --git a/vuesax-example/public/index.html b/vuesax-example/public/index.html deleted file mode 100644 index cabfd95..0000000 --- a/vuesax-example/public/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - vuesax-example - - - -
- - - diff --git a/vuesax-example/src/App.vue b/vuesax-example/src/App.vue deleted file mode 100644 index 41ac8bc..0000000 --- a/vuesax-example/src/App.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/vuesax-example/src/assets/logo.png b/vuesax-example/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/vuesax-example/src/assets/logo.png and /dev/null differ diff --git a/vuesax-example/src/components/ButtonsDemo.vue b/vuesax-example/src/components/ButtonsDemo.vue deleted file mode 100644 index bb6287c..0000000 --- a/vuesax-example/src/components/ButtonsDemo.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/vuesax-example/src/components/ColorsDemo.vue b/vuesax-example/src/components/ColorsDemo.vue deleted file mode 100644 index c52e8c6..0000000 --- a/vuesax-example/src/components/ColorsDemo.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/vuesax-example/src/components/GridDemo.vue b/vuesax-example/src/components/GridDemo.vue deleted file mode 100644 index c68a0c0..0000000 --- a/vuesax-example/src/components/GridDemo.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/vuesax-example/src/components/HelloVuesax.vue b/vuesax-example/src/components/HelloVuesax.vue deleted file mode 100644 index 27c7798..0000000 --- a/vuesax-example/src/components/HelloVuesax.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/vuesax-example/src/main.js b/vuesax-example/src/main.js deleted file mode 100644 index 3059bf9..0000000 --- a/vuesax-example/src/main.js +++ /dev/null @@ -1,26 +0,0 @@ -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './store'; -import Vuesax from 'vuesax'; -import 'vuesax/dist/vuesax.css'; -import 'material-icons/iconfont/material-icons.css'; - -Vue.config.productionTip = false; -Vue.use(Vuesax, { - theme:{ - colors:{ - primary:'#5b3cc4', - success:'rgb(23, 201, 100)', - danger:'rgb(242, 19, 93)', - warning:'rgb(255, 130, 0)', - dark:'rgb(36, 33, 69)' - } - } -}); - -new Vue({ - router, - store, - render: h => h(App) -}).$mount('#app'); diff --git a/vuesax-example/src/router/index.js b/vuesax-example/src/router/index.js deleted file mode 100644 index 8351517..0000000 --- a/vuesax-example/src/router/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import Vuesax from '../views/Vuesax.vue'; - -Vue.use(VueRouter); - -const routes = [ - { - path: '/', - name: 'vuesax', - // component: Vuesax, - component: () => import(/* webpackChunkName: "about" */ '../views/Vuesax.vue'), - }, -]; - -const router = new VueRouter({ - mode: 'history', - base: process.env.BASE_URL, - routes, -}); - -export default router; diff --git a/vuesax-example/src/store/index.js b/vuesax-example/src/store/index.js deleted file mode 100644 index 3431aaa..0000000 --- a/vuesax-example/src/store/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -export default new Vuex.Store({ - state: {}, - mutations: {}, - actions: {}, - modules: {}, -}); diff --git a/vuesax-example/src/views/Vuesax.vue b/vuesax-example/src/views/Vuesax.vue deleted file mode 100644 index acbd891..0000000 --- a/vuesax-example/src/views/Vuesax.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - diff --git a/vuesax-example/tests/unit/example.spec.js b/vuesax-example/tests/unit/example.spec.js deleted file mode 100644 index 3aa1eb1..0000000 --- a/vuesax-example/tests/unit/example.spec.js +++ /dev/null @@ -1,13 +0,0 @@ -import { expect } from 'chai'; -import { shallowMount } from '@vue/test-utils'; -import HelloVuesax from '@/components/HelloVuesax.vue'; - -describe('HelloVuesax.vue', () => { - it('renders props.msg when passed', () => { - const msg = 'Aloha Aloha!'; - const wrapper = shallowMount(HelloVuesax, { - propsData: { msg } - }); - expect(wrapper.text()).to.include(msg); - }); -}); diff --git a/vuetify/.babelrc b/vuetify/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vuetify/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vuetify/.eslintignore b/vuetify/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vuetify/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vuetify/.eslintrc.js b/vuetify/.eslintrc.js deleted file mode 100644 index e8d5f98..0000000 --- a/vuetify/.eslintrc.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - extends: 'standard', - plugins: [ - 'html' - ], - 'rules': { - 'arrow-parens': 0, - 'generator-star-spacing': 0, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - 'standard/computed-property-even-spacing': 0, - 'spaced-comment': 0, - 'padded-blocks': 0, - 'no-new': 0, - 'curly': 0, - } -}; diff --git a/vuetify/.postcssrc.js b/vuetify/.postcssrc.js deleted file mode 100644 index 23857b8..0000000 --- a/vuetify/.postcssrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - "plugins": { - "autoprefixer": {} - } -}; diff --git a/vuetify/README.md b/vuetify/README.md deleted file mode 100644 index b1fb865..0000000 --- a/vuetify/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Vietify [![Build Status](https://travis-ci.org/daggerok/vue-examples.svg?branch=master)](https://travis-ci.org/daggerok/vue-examples) - -Using [Vuetify.js](https://vuetifyjs.com/vuetify/quick-start) - -## build and run - -``` bash -yarn -i -yarn dev -yarn build -yarn deploy -``` diff --git a/vuetify/build/build.js b/vuetify/build/build.js deleted file mode 100644 index e61bb6c..0000000 --- a/vuetify/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/vuetify/build/check-versions.js b/vuetify/build/check-versions.js deleted file mode 100644 index b050890..0000000 --- a/vuetify/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/vuetify/build/dev-client.js b/vuetify/build/dev-client.js deleted file mode 100644 index 09f6542..0000000 --- a/vuetify/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/vuetify/build/dev-server.js b/vuetify/build/dev-server.js deleted file mode 100644 index fab8761..0000000 --- a/vuetify/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -const config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -const opn = require('opn'); -const path = require('path'); -const express = require('express'); -const webpack = require('webpack'); -const proxyMiddleware = require('http-proxy-middleware'); -const webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -const port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -const autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -const proxyTable = config.dev.proxyTable; - -const app = express(); -const compiler = webpack(webpackConfig); - -const devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -const hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - let options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -const uri = 'http://localhost:' + port; - -let _resolve; -const readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -const server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/vuetify/build/utils.js b/vuetify/build/utils.js deleted file mode 100644 index a5b6693..0000000 --- a/vuetify/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - for (let extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/vuetify/build/vue-loader.conf.js b/vuetify/build/vue-loader.conf.js deleted file mode 100644 index 516e7b6..0000000 --- a/vuetify/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -const utils = require('./utils'); -const config = require('../config'); -const isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/vuetify/build/webpack.base.conf.js b/vuetify/build/webpack.base.conf.js deleted file mode 100644 index 8e7d20d..0000000 --- a/vuetify/build/webpack.base.conf.js +++ /dev/null @@ -1,87 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - plugins: [ - new CopyWebpackPlugin([ - { from: 'service-worker' } - ]), - new BaseHrefWebpackPlugin({ - baseHref: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath, - }), - ], - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/vuetify/build/webpack.dev.conf.js b/vuetify/build/webpack.dev.conf.js deleted file mode 100644 index 30a9663..0000000 --- a/vuetify/build/webpack.dev.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true, - favicon: './favicon.ico', - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/vuetify/build/webpack.prod.conf.js b/vuetify/build/webpack.prod.conf.js deleted file mode 100644 index bbc3abe..0000000 --- a/vuetify/build/webpack.prod.conf.js +++ /dev/null @@ -1,131 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const SplitWebpackPlugin = require('split-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - new SplitWebpackPlugin({ - // chunks: ['vendors'], - size: 300, // kb - // divide: 2, - }), - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - favicon: './favicon.ico', - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/vuetify/config/dev.env.js b/vuetify/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/vuetify/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/vuetify/config/index.js b/vuetify/config/index.js deleted file mode 100644 index 9c16dd9..0000000 --- a/vuetify/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/vue-examples/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/vuetify/config/prod.env.js b/vuetify/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/vuetify/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/vuetify/config/test.env.js b/vuetify/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/vuetify/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/vuetify/favicon.ico b/vuetify/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vuetify/favicon.ico and /dev/null differ diff --git a/vuetify/firebase.config.js.default b/vuetify/firebase.config.js.default deleted file mode 100644 index fdb44ed..0000000 --- a/vuetify/firebase.config.js.default +++ /dev/null @@ -1,11 +0,0 @@ -// copy your config from firebase console -// case of project vue-examples-98112 it could be: -// https://console.firebase.google.com/u/0/project/vue-examples-98112/overview -export const config = { - apiKey: "AIzaSyCZ1vxu8FR2zeUFvqhVbHe-sa4hH73bffA", - authDomain: "vue-examples-5f262.firebaseapp.com", - databaseURL: "https://vue-examples-5f262.firebaseio.com", - projectId: "vue-examples-5f262", - storageBucket: "vue-examples-5f262.appspot.com", - messagingSenderId: "683258749318" -}; diff --git a/vuetify/index.html b/vuetify/index.html deleted file mode 100644 index 80a79a0..0000000 --- a/vuetify/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Vuetify | Vue Examples - - -
- - - diff --git a/vuetify/package.json b/vuetify/package.json deleted file mode 100644 index 86c80dd..0000000 --- a/vuetify/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.3", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "preserve": "yarn build", - "serve": "npm-run-all -p serve:*", - "serve:serve": "serve --cors --open --single --port 3000 --ignore 'node_modules,.idea' ./dist", - "serve:livereload": "livereload", - "predeploy": "yarn -i; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "firebase": "4.3.1", - "font-awesome": "4.7.0", - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "vee-validate": "2.0.0-rc.14", - "vue": "2.4.3", - "vue-progressbar": "0.7.3", - "vue-router": "2.7.0", - "vuefire": "1.4.3", - "vuetify": "0.15.7", - "vuex": "2.4.0", - "vuexfire": "2.3.0", - "whatwg-fetch": "2.0.3" - }, - "devDependencies": { - "@types/firebase": "2.4.32", - "@types/jquery": "3.2.12", - "@types/node": "8.0.28", - "@types/whatwg-fetch": "0.0.33", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "base-href-webpack-plugin": "1.0.2", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "livereload": "0.6.2", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "node-sass": "4.14.1", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "semver": "5.4.1", - "serve": ">=7.0.0", - "shelljs": "0.7.8", - "split-webpack-plugin": "1.1.0", - "stylus": "0.54.5", - "stylus-loader": "3.0.1", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/vuetify/service-worker/service-worker-register.js b/vuetify/service-worker/service-worker-register.js deleted file mode 100644 index c550fed..0000000 --- a/vuetify/service-worker/service-worker-register.js +++ /dev/null @@ -1,15 +0,0 @@ -// @see http://www.pwabuilder.com/generator (Build Service Worker => Offline copy of pages) - -// This is the "Offline copy of pages" service worker - -// Add this below content to your HTML page, or add the js file to your page at the very top to register sercie worker -if (navigator.serviceWorker.controller) { - console.log('[PWA Builder] active service worker found, no need to register'); -} else { - // Register the ServiceWorker - navigator.serviceWorker.register('service-worker.js', { - scope: './' - }).then(function (reg) { - console.log('Service worker has been registered for scope:' + reg.scope); - }); -} diff --git a/vuetify/service-worker/service-worker.js b/vuetify/service-worker/service-worker.js deleted file mode 100644 index 12f83e2..0000000 --- a/vuetify/service-worker/service-worker.js +++ /dev/null @@ -1,44 +0,0 @@ -// @see http://www.pwabuilder.com/generator (Build Service Worker => Offline copy of pages) - -// This is the "Offline copy of pages" wervice worker -// Install stage sets up the index page (home page) in the cahche and opens a new cache -self.addEventListener('install', function (event) { - var indexPage = new Request('index.html'); - event.waitUntil( - fetch(indexPage).then(function (response) { - return caches.open('pwabuilder-offline').then(function (cache) { - console.log('[PWA Builder] Cached index page during Install' + response.url); - return cache.put(indexPage, response); - }); - })); -}); - -// If any fetch fails, it will look for the request in the cache and serve it from there first -self.addEventListener('fetch', function (event) { - var updateCache = function (request) { - return caches.open('pwabuilder-offline').then(function (cache) { - return fetch(request).then(function (response) { - console.log('[PWA Builder] add page to offline' + response.url); - return cache.put(request, response); - }); - }); - }; - - event.waitUntil(updateCache(event.request)); - - event.respondWith( - fetch(event.request).catch(function (error) { - console.log('[PWA Builder] Network request Failed. Serving content from cache: ' + error); - - // Check to see if you have it in the cache - // Return response - // If not in the cache, then return error page - return caches.open('pwabuilder-offline').then(function (cache) { - return cache.match(event.request).then(function (matching) { - var report = !matching || matching.status == 404 ? Promise.reject('no-match') : matching; - return report; - }); - }); - }) - ); -}); diff --git a/vuetify/src/assets/.gitkeep b/vuetify/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuetify/src/components/App.vue b/vuetify/src/components/App.vue deleted file mode 100644 index 600bcc4..0000000 --- a/vuetify/src/components/App.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/vuetify/src/components/App/Links.vue b/vuetify/src/components/App/Links.vue deleted file mode 100644 index b4e6e31..0000000 --- a/vuetify/src/components/App/Links.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/vuetify/src/components/VuetifyApp.vue b/vuetify/src/components/VuetifyApp.vue deleted file mode 100644 index 13d30db..0000000 --- a/vuetify/src/components/VuetifyApp.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - - diff --git a/vuetify/src/infrastructure/firebase.js b/vuetify/src/infrastructure/firebase.js deleted file mode 100644 index d19cb84..0000000 --- a/vuetify/src/infrastructure/firebase.js +++ /dev/null @@ -1,5 +0,0 @@ -import { initializeApp } from 'firebase'; -import { config } from '../../firebase.config'; - -const app = initializeApp(config); -export const db = app.database(); diff --git a/vuetify/src/infrastructure/router.js b/vuetify/src/infrastructure/router.js deleted file mode 100644 index f113afe..0000000 --- a/vuetify/src/infrastructure/router.js +++ /dev/null @@ -1,38 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import VuetifyApp from '../components/VuetifyApp.vue'; - -Vue.use(Router); - -const meta = { - progress: { - func: [ - { call: 'color', modifier: 'temp', argument: 'rgb(143, 255, 199)', }, - { call: 'fail', modifier: 'temp', argument: '#6e0000' }, - { call: 'location', modifier: 'temp', argument: 'top' }, - { call: 'transition', modifier: 'temp', argument: { speed: '1.5s', opacity: '0.6s', termination: 400 }, }, - ], - }, -}; - -export const routes = [ - { - path: '/', - name: 'VuetifyApp', - component: VuetifyApp, - label: 'Vuetify App', - }, - { - path: '/**', - redirect: '/', - }, -].map(r => { - r.meta = meta; - return r; -}); - -const router = new Router({ - routes, -}); - -export default router; diff --git a/vuetify/src/infrastructure/store/actions/contactList.js b/vuetify/src/infrastructure/store/actions/contactList.js deleted file mode 100644 index bd24bd8..0000000 --- a/vuetify/src/infrastructure/store/actions/contactList.js +++ /dev/null @@ -1,5 +0,0 @@ -export const contactListActions = { - addNewContactAction: ({ commit }) => commit('addNewContactMutation'), - setNewNameAction: ({ commit }, newValue) => commit('setNewNameMutation', newValue), - setNewPhoneAction: (store, newValue) => store.commit('setNewPhoneMutation', newValue), -}; diff --git a/vuetify/src/infrastructure/store/actions/counter.js b/vuetify/src/infrastructure/store/actions/counter.js deleted file mode 100644 index 34fa346..0000000 --- a/vuetify/src/infrastructure/store/actions/counter.js +++ /dev/null @@ -1,4 +0,0 @@ -export const counterActions = { - decrementCounterAction: ({ commit }) => commit('decrementCounterMutation'), - incrementCounterAction: store => store.commit('incrementCounterMutation'), -}; diff --git a/vuetify/src/infrastructure/store/actions/index.js b/vuetify/src/infrastructure/store/actions/index.js deleted file mode 100644 index ea0e5ed..0000000 --- a/vuetify/src/infrastructure/store/actions/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import { counterActions } from './counter'; -import { todoActions } from './todo'; -import { contactListActions } from './contactList'; - -export const actions = Object.assign( - {}, counterActions, todoActions, contactListActions, -); diff --git a/vuetify/src/infrastructure/store/actions/todo.js b/vuetify/src/infrastructure/store/actions/todo.js deleted file mode 100644 index 0640cb6..0000000 --- a/vuetify/src/infrastructure/store/actions/todo.js +++ /dev/null @@ -1,6 +0,0 @@ -export const todoActions = { - toggleTodoAction: (store, todo) => store.commit('toggleTodoMutation', todo), - addNewTodoTitleAction: (store) => store.commit('addNewTodoTitleMutation'), - removeTodoAction: (store, todo) => store.commit('removeTodoMutation', todo), - setNewTodoTitleAction: (store, newValue) => store.commit('setNewTodoTitleMutation', newValue), -}; diff --git a/vuetify/src/infrastructure/store/getters.js b/vuetify/src/infrastructure/store/getters.js deleted file mode 100644 index 35aacab..0000000 --- a/vuetify/src/infrastructure/store/getters.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getters = { - counter: state => state.counter, -}; diff --git a/vuetify/src/infrastructure/store/index.js b/vuetify/src/infrastructure/store/index.js deleted file mode 100644 index e8e1a70..0000000 --- a/vuetify/src/infrastructure/store/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { state } from './initialState'; -import { getters } from './getters'; -import { mutations } from './mutations'; -import { actions } from './actions/index'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; diff --git a/vuetify/src/infrastructure/store/initialState.js b/vuetify/src/infrastructure/store/initialState.js deleted file mode 100644 index aeb92fc..0000000 --- a/vuetify/src/infrastructure/store/initialState.js +++ /dev/null @@ -1,32 +0,0 @@ -export const state = { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', -}; diff --git a/vuetify/src/infrastructure/store/mutations.js b/vuetify/src/infrastructure/store/mutations.js deleted file mode 100644 index 107c98b..0000000 --- a/vuetify/src/infrastructure/store/mutations.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Counter App - */ -export const decrementCounterMutation = state => state.counter--; - -export const incrementCounterMutation = state => state.counter++; - -/** - * TO DO App - */ -export const toggleTodoMutation = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitleMutation = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodoMutation = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitleMutation = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/** - * Contact App - */ -export const setNewNameMutation = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhoneMutation = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContactMutation = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; - -// mutations -export const mutations = { - decrementCounterMutation, - incrementCounterMutation, - // - toggleTodoMutation, - addNewTodoTitleMutation, - removeTodoMutation, - setNewTodoTitleMutation, - // - setNewNameMutation, - setNewPhoneMutation, - addNewContactMutation, -}; diff --git a/vuetify/src/infrastructure/vendors.js b/vuetify/src/infrastructure/vendors.js deleted file mode 100644 index 346a5ac..0000000 --- a/vuetify/src/infrastructure/vendors.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - * vue - */ - -import Vue from 'vue'; - -/* - * vue progress bar - */ - -import VueProgressbar from 'vue-progressbar'; - -export const config = { - color: 'rgb(143, 255, 199)', - failedColor: 'darkgreen', - thickness: '5px', - transition: { - speed: '0.6s', - opacity: '0.6s', - termination: 400 - }, - autoRevert: true, - location: 'top', - inverse: false -}; - -Vue.use(VueProgressbar/*, config */); - -/* - * fetch - */ - -if (!window.fetch || typeof window.fetch !== 'function') - require('whatwg-fetch'); - -/* - * jquery - */ - -if (!window.$ || typeof window.$ !== 'function') - window.$ = window.jQuery = require('jquery'); - -/* - * font-awesome - */ - -import 'font-awesome/css/font-awesome.css'; - -/* - * material design icons - */ - -import 'material-design-icons/iconfont/material-icons.css'; - -/* - * vuetify - */ - -// // import('vuetify/dist/vuetify.min.css'); -// import 'vuetify/src/stylus/main.styl'; - -import Vuetify from 'vuetify'; - -Vue.use(Vuetify); - -/* - * vuefire - */ - -import VueFire from 'vuefire'; - -Vue.use(VueFire); - -/* // vue-material -import 'vue-material/dist/vue-material.css'; -import VueMaterial from 'vue-material'; - -Vue.use(VueMaterial); - -Vue.material.registerTheme('default', { - primary: 'teal', -}); - */ - -/* // vee-validate -import messages from 'vee-validate/dist/locale/ru'; -import VeeValidate, { Validator } from 'vee-validate'; - -Validator.addLocale(messages); - -const config = { - locale: 'ru' -}; - -Vue.use(VeeValidate, config); -*/ diff --git a/vuetify/src/main.js b/vuetify/src/main.js deleted file mode 100644 index b7dfabe..0000000 --- a/vuetify/src/main.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import './infrastructure/vendors'; -import router from './infrastructure/router'; -import store from './infrastructure/store'; -import App from './components/App.vue'; - -Vue.config.productionTip = false; - -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vuetify/static/.gitkeep b/vuetify/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuetifyjs-setup/.babelrc b/vuetifyjs-setup/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vuetifyjs-setup/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vuetifyjs-setup/.eslintignore b/vuetifyjs-setup/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vuetifyjs-setup/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vuetifyjs-setup/.eslintrc.js b/vuetifyjs-setup/.eslintrc.js deleted file mode 100644 index e8d5f98..0000000 --- a/vuetifyjs-setup/.eslintrc.js +++ /dev/null @@ -1,34 +0,0 @@ -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - extends: 'standard', - plugins: [ - 'html' - ], - 'rules': { - 'arrow-parens': 0, - 'generator-star-spacing': 0, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - 'standard/computed-property-even-spacing': 0, - 'spaced-comment': 0, - 'padded-blocks': 0, - 'no-new': 0, - 'curly': 0, - } -}; diff --git a/vuetifyjs-setup/.postcssrc.js b/vuetifyjs-setup/.postcssrc.js deleted file mode 100644 index 23857b8..0000000 --- a/vuetifyjs-setup/.postcssrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - "plugins": { - "autoprefixer": {} - } -}; diff --git a/vuetifyjs-setup/README.md b/vuetifyjs-setup/README.md deleted file mode 100644 index b9f7895..0000000 --- a/vuetifyjs-setup/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Vietify - -Using [Vuetify.js](https://vuetifyjs.com/vuetify/quick-start) - -## build and run - -``` bash -yarn -i -yarn dev -yarn build -yarn deploy -``` diff --git a/vuetifyjs-setup/build/build.js b/vuetifyjs-setup/build/build.js deleted file mode 100644 index e61bb6c..0000000 --- a/vuetifyjs-setup/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -const ora = require('ora'); -const rm = require('rimraf'); -const path = require('path'); -const chalk = require('chalk'); -const webpack = require('webpack'); -const config = require('../config'); -const webpackConfig = require('./webpack.prod.conf'); - -const spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/vuetifyjs-setup/build/check-versions.js b/vuetifyjs-setup/build/check-versions.js deleted file mode 100644 index b050890..0000000 --- a/vuetifyjs-setup/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -const chalk = require('chalk'); -const semver = require('semver'); -const packageConfig = require('../package.json'); -const shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -const versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - const warnings = []; - for (let i = 0; i < versionRequirements.length; i++) { - const mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (let i = 0; i < warnings.length; i++) { - const warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/vuetifyjs-setup/build/dev-client.js b/vuetifyjs-setup/build/dev-client.js deleted file mode 100644 index 09f6542..0000000 --- a/vuetifyjs-setup/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -const hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/vuetifyjs-setup/build/dev-server.js b/vuetifyjs-setup/build/dev-server.js deleted file mode 100644 index fab8761..0000000 --- a/vuetifyjs-setup/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -const config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -const opn = require('opn'); -const path = require('path'); -const express = require('express'); -const webpack = require('webpack'); -const proxyMiddleware = require('http-proxy-middleware'); -const webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -const port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -const autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -const proxyTable = config.dev.proxyTable; - -const app = express(); -const compiler = webpack(webpackConfig); - -const devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -const hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - let options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -const staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -const uri = 'http://localhost:' + port; - -let _resolve; -const readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -const server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/vuetifyjs-setup/build/utils.js b/vuetifyjs-setup/build/utils.js deleted file mode 100644 index a5b6693..0000000 --- a/vuetifyjs-setup/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -const path = require('path'); -const config = require('../config'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - const assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - const cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - const loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - const output = []; - const loaders = exports.cssLoaders(options); - for (let extension in loaders) { - const loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/vuetifyjs-setup/build/vue-loader.conf.js b/vuetifyjs-setup/build/vue-loader.conf.js deleted file mode 100644 index 516e7b6..0000000 --- a/vuetifyjs-setup/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -const utils = require('./utils'); -const config = require('../config'); -const isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/vuetifyjs-setup/build/webpack.base.conf.js b/vuetifyjs-setup/build/webpack.base.conf.js deleted file mode 100644 index ed1a972..0000000 --- a/vuetifyjs-setup/build/webpack.base.conf.js +++ /dev/null @@ -1,83 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const config = require('../config'); -const vueLoaderConfig = require('./vue-loader.conf'); -const { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - plugins: [ - new BaseHrefWebpackPlugin({ - baseHref: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath, - }), - ], - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/vuetifyjs-setup/build/webpack.dev.conf.js b/vuetifyjs-setup/build/webpack.dev.conf.js deleted file mode 100644 index 30a9663..0000000 --- a/vuetifyjs-setup/build/webpack.dev.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true, - favicon: './favicon.ico', - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/vuetifyjs-setup/build/webpack.prod.conf.js b/vuetifyjs-setup/build/webpack.prod.conf.js deleted file mode 100644 index a19dbdc..0000000 --- a/vuetifyjs-setup/build/webpack.prod.conf.js +++ /dev/null @@ -1,125 +0,0 @@ -const path = require('path'); -const utils = require('./utils'); -const webpack = require('webpack'); -const config = require('../config'); -const merge = require('webpack-merge'); -const baseWebpackConfig = require('./webpack.base.conf'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -const webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - favicon: './favicon.ico', - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - const CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/vuetifyjs-setup/config/dev.env.js b/vuetifyjs-setup/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/vuetifyjs-setup/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/vuetifyjs-setup/config/index.js b/vuetifyjs-setup/config/index.js deleted file mode 100644 index 9c16dd9..0000000 --- a/vuetifyjs-setup/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/vue-examples/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/vuetifyjs-setup/config/prod.env.js b/vuetifyjs-setup/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/vuetifyjs-setup/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/vuetifyjs-setup/config/test.env.js b/vuetifyjs-setup/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/vuetifyjs-setup/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/vuetifyjs-setup/favicon.ico b/vuetifyjs-setup/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vuetifyjs-setup/favicon.ico and /dev/null differ diff --git a/vuetifyjs-setup/firebase.js.default b/vuetifyjs-setup/firebase.js.default deleted file mode 100644 index fdb44ed..0000000 --- a/vuetifyjs-setup/firebase.js.default +++ /dev/null @@ -1,11 +0,0 @@ -// copy your config from firebase console -// case of project vue-examples-98112 it could be: -// https://console.firebase.google.com/u/0/project/vue-examples-98112/overview -export const config = { - apiKey: "AIzaSyCZ1vxu8FR2zeUFvqhVbHe-sa4hH73bffA", - authDomain: "vue-examples-5f262.firebaseapp.com", - databaseURL: "https://vue-examples-5f262.firebaseio.com", - projectId: "vue-examples-5f262", - storageBucket: "vue-examples-5f262.appspot.com", - messagingSenderId: "683258749318" -}; diff --git a/vuetifyjs-setup/index.html b/vuetifyjs-setup/index.html deleted file mode 100644 index ae3f141..0000000 --- a/vuetifyjs-setup/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vuetify | Vue Examples - - -
- - diff --git a/vuetifyjs-setup/package.json b/vuetifyjs-setup/package.json deleted file mode 100644 index 219952c..0000000 --- a/vuetifyjs-setup/package.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.3", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn -i; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "firebase": "4.3.1", - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "materialize-css": "0.100.2", - "vee-validate": "2.0.0-rc.14", - "vue": "2.4.3", - "vue-material": "0.7.5", - "vue-progressbar": "0.7.3", - "vue-router": "2.7.0", - "vuefire": "1.4.3", - "vuetify": "0.15.7", - "vuex": "2.4.0", - "vuexfire": "2.3.0", - "whatwg-fetch": "2.0.3" - }, - "devDependencies": { - "@types/firebase": "2.4.32", - "@types/jquery": "3.2.12", - "@types/node": "8.0.28", - "@types/whatwg-fetch": "0.0.33", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "base-href-webpack-plugin": "1.0.2", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.19.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "node-sass": "4.5.3", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "sass-loader": "6.0.6", - "semver": "5.4.1", - "shelljs": "0.7.8", - "stylus": "0.54.5", - "stylus-loader": "3.0.1", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "3.6.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/vuetifyjs-setup/src/App.vue b/vuetifyjs-setup/src/App.vue deleted file mode 100644 index dd32dfd..0000000 --- a/vuetifyjs-setup/src/App.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/assets/.gitkeep b/vuetifyjs-setup/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuetifyjs-setup/src/components/ContactList.vue b/vuetifyjs-setup/src/components/ContactList.vue deleted file mode 100644 index e8aad0f..0000000 --- a/vuetifyjs-setup/src/components/ContactList.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/components/Counter.vue b/vuetifyjs-setup/src/components/Counter.vue deleted file mode 100644 index e4cae31..0000000 --- a/vuetifyjs-setup/src/components/Counter.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - diff --git a/vuetifyjs-setup/src/components/FirebaseApp.vue b/vuetifyjs-setup/src/components/FirebaseApp.vue deleted file mode 100644 index bcc0391..0000000 --- a/vuetifyjs-setup/src/components/FirebaseApp.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/components/Links.vue b/vuetifyjs-setup/src/components/Links.vue deleted file mode 100644 index f072485..0000000 --- a/vuetifyjs-setup/src/components/Links.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/components/TodoApp.vue b/vuetifyjs-setup/src/components/TodoApp.vue deleted file mode 100644 index 6cc5a50..0000000 --- a/vuetifyjs-setup/src/components/TodoApp.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/components/VuetifyApp.vue b/vuetifyjs-setup/src/components/VuetifyApp.vue deleted file mode 100644 index b874a4f..0000000 --- a/vuetifyjs-setup/src/components/VuetifyApp.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/vuetifyjs-setup/src/firebase/index.js b/vuetifyjs-setup/src/firebase/index.js deleted file mode 100644 index 7ecda2e..0000000 --- a/vuetifyjs-setup/src/firebase/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import { initializeApp } from 'firebase'; -import { config } from '../../firebase'; - -const app = initializeApp(config); -export const db = app.database(); diff --git a/vuetifyjs-setup/src/main.js b/vuetifyjs-setup/src/main.js deleted file mode 100644 index 67cde4b..0000000 --- a/vuetifyjs-setup/src/main.js +++ /dev/null @@ -1,17 +0,0 @@ -import './vendor'; -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vuetifyjs-setup/src/router/index.js b/vuetifyjs-setup/src/router/index.js deleted file mode 100644 index d36170f..0000000 --- a/vuetifyjs-setup/src/router/index.js +++ /dev/null @@ -1,66 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; -import ContactList from '../components/ContactList.vue'; -import FirebaseApp from '../components/FirebaseApp.vue'; -import VuetifyApp from '../components/VuetifyApp.vue'; - -Vue.use(Router); - -const meta = { - progress: { - func: [ - { call: 'color', modifier: 'temp', argument: 'rgb(143, 255, 199)', }, - { call: 'fail', modifier: 'temp', argument: '#6e0000' }, - { call: 'location', modifier: 'temp', argument: 'top' }, - { call: 'transition', modifier: 'temp', argument: { speed: '1.5s', opacity: '0.6s', termination: 400 }, }, - ], - }, -}; - -export const routes = [ - { - path: '/', - name: 'VuetifyApp', - component: VuetifyApp, - label: 'Vuetify App', - }, - { - path: '/firebase-app', - name: 'FirebaseApp', - component: FirebaseApp, - label: 'Firebase App', - }, - { - path: '/contact-list', - name: 'ContactList', - component: ContactList, - label: 'Contact List App', - }, - { - path: '/todo-app', - name: 'TodoApp', - component: TodoApp, - label: 'TODO App', - }, - { - path: '/counter', - name: 'Counter', - component: Counter, - label: 'Counter App', - }, - { - path: '/**', - redirect: '/', - }, -].map(r => { - r.meta = meta; - return r; -}); - -const router = new Router({ - routes, -}); - -export default router; diff --git a/vuetifyjs-setup/src/vendor/fetch.js b/vuetifyjs-setup/src/vendor/fetch.js deleted file mode 100644 index dba24b4..0000000 --- a/vuetifyjs-setup/src/vendor/fetch.js +++ /dev/null @@ -1,2 +0,0 @@ -if (!window.fetch || typeof window.fetch !== 'function') - require('whatwg-fetch'); diff --git a/vuetifyjs-setup/src/vendor/index.js b/vuetifyjs-setup/src/vendor/index.js deleted file mode 100644 index f5af939..0000000 --- a/vuetifyjs-setup/src/vendor/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import './vue-progressbar'; -import './fetch'; diff --git a/vuetifyjs-setup/src/vendor/jquery.js b/vuetifyjs-setup/src/vendor/jquery.js deleted file mode 100644 index b58532e..0000000 --- a/vuetifyjs-setup/src/vendor/jquery.js +++ /dev/null @@ -1 +0,0 @@ -window.$ = window.jQuery = require('jquery'); diff --git a/vuetifyjs-setup/src/vendor/material-design-icons.js b/vuetifyjs-setup/src/vendor/material-design-icons.js deleted file mode 100644 index 2549090..0000000 --- a/vuetifyjs-setup/src/vendor/material-design-icons.js +++ /dev/null @@ -1 +0,0 @@ -import 'material-design-icons/iconfont/material-icons.css'; diff --git a/vuetifyjs-setup/src/vendor/materialize-css.js b/vuetifyjs-setup/src/vendor/materialize-css.js deleted file mode 100644 index 4e8a303..0000000 --- a/vuetifyjs-setup/src/vendor/materialize-css.js +++ /dev/null @@ -1,3 +0,0 @@ -import 'materialize-css/dist/css/materialize.min.css'; -window.$ = window.jQuery = require('jquery'); -require('materialize-css'); diff --git a/vuetifyjs-setup/src/vendor/roboto-fontface.js b/vuetifyjs-setup/src/vendor/roboto-fontface.js deleted file mode 100644 index 4d2a3e2..0000000 --- a/vuetifyjs-setup/src/vendor/roboto-fontface.js +++ /dev/null @@ -1,3 +0,0 @@ -// yarn add -E roboto-fontface -// "roboto-fontface": "0.8.0", -import 'roboto-fontface/css/roboto/roboto-fontface.css'; diff --git a/vuetifyjs-setup/src/vendor/vee-validate.js b/vuetifyjs-setup/src/vendor/vee-validate.js deleted file mode 100644 index 8defc43..0000000 --- a/vuetifyjs-setup/src/vendor/vee-validate.js +++ /dev/null @@ -1,11 +0,0 @@ -import Vue from 'vue'; -import messages from 'vee-validate/dist/locale/ru'; -import VeeValidate, { Validator } from 'vee-validate'; - -Validator.addLocale(messages); - -const config = { - locale: 'ru' -}; - -Vue.use(VeeValidate, config); diff --git a/vuetifyjs-setup/src/vendor/vue-material.js b/vuetifyjs-setup/src/vendor/vue-material.js deleted file mode 100644 index bb811b9..0000000 --- a/vuetifyjs-setup/src/vendor/vue-material.js +++ /dev/null @@ -1,10 +0,0 @@ -import 'vue-material/dist/vue-material.css'; - -import Vue from 'vue'; -import VueMaterial from 'vue-material'; - -Vue.use(VueMaterial); - -Vue.material.registerTheme('default', { - primary: 'teal', -}); diff --git a/vuetifyjs-setup/src/vendor/vue-progressbar.js b/vuetifyjs-setup/src/vendor/vue-progressbar.js deleted file mode 100644 index 934a7c1..0000000 --- a/vuetifyjs-setup/src/vendor/vue-progressbar.js +++ /dev/null @@ -1,18 +0,0 @@ -import Vue from 'vue'; -import VueProgressbar from 'vue-progressbar'; - -export const config = { - color: 'rgb(143, 255, 199)', - failedColor: 'darkgreen', - thickness: '5px', - transition: { - speed: '0.6s', - opacity: '0.6s', - termination: 400 - }, - autoRevert: true, - location: 'top', - inverse: false -}; - -Vue.use(VueProgressbar/*, config */); diff --git a/vuetifyjs-setup/src/vendor/vuefire.js b/vuetifyjs-setup/src/vendor/vuefire.js deleted file mode 100644 index 98b58a6..0000000 --- a/vuetifyjs-setup/src/vendor/vuefire.js +++ /dev/null @@ -1,4 +0,0 @@ -import Vue from 'vue'; -import VueFire from 'vuefire'; - -Vue.use(VueFire); diff --git a/vuetifyjs-setup/src/vendor/vuetify.js b/vuetifyjs-setup/src/vendor/vuetify.js deleted file mode 100644 index 60c3383..0000000 --- a/vuetifyjs-setup/src/vendor/vuetify.js +++ /dev/null @@ -1,8 +0,0 @@ -import 'material-design-icons/iconfont/material-icons.css'; -import 'vuetify/dist/vuetify.min.css'; -// import 'vuetify/src/stylus/main.styl'; - -import Vue from 'vue'; -import Vuetify from 'vuetify'; - -Vue.use(Vuetify); diff --git a/vuetifyjs-setup/src/vuex/actions/contactList.js b/vuetifyjs-setup/src/vuex/actions/contactList.js deleted file mode 100644 index bd24bd8..0000000 --- a/vuetifyjs-setup/src/vuex/actions/contactList.js +++ /dev/null @@ -1,5 +0,0 @@ -export const contactListActions = { - addNewContactAction: ({ commit }) => commit('addNewContactMutation'), - setNewNameAction: ({ commit }, newValue) => commit('setNewNameMutation', newValue), - setNewPhoneAction: (store, newValue) => store.commit('setNewPhoneMutation', newValue), -}; diff --git a/vuetifyjs-setup/src/vuex/actions/counter.js b/vuetifyjs-setup/src/vuex/actions/counter.js deleted file mode 100644 index 34fa346..0000000 --- a/vuetifyjs-setup/src/vuex/actions/counter.js +++ /dev/null @@ -1,4 +0,0 @@ -export const counterActions = { - decrementCounterAction: ({ commit }) => commit('decrementCounterMutation'), - incrementCounterAction: store => store.commit('incrementCounterMutation'), -}; diff --git a/vuetifyjs-setup/src/vuex/actions/index.js b/vuetifyjs-setup/src/vuex/actions/index.js deleted file mode 100644 index ea0e5ed..0000000 --- a/vuetifyjs-setup/src/vuex/actions/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import { counterActions } from './counter'; -import { todoActions } from './todo'; -import { contactListActions } from './contactList'; - -export const actions = Object.assign( - {}, counterActions, todoActions, contactListActions, -); diff --git a/vuetifyjs-setup/src/vuex/actions/todo.js b/vuetifyjs-setup/src/vuex/actions/todo.js deleted file mode 100644 index 0640cb6..0000000 --- a/vuetifyjs-setup/src/vuex/actions/todo.js +++ /dev/null @@ -1,6 +0,0 @@ -export const todoActions = { - toggleTodoAction: (store, todo) => store.commit('toggleTodoMutation', todo), - addNewTodoTitleAction: (store) => store.commit('addNewTodoTitleMutation'), - removeTodoAction: (store, todo) => store.commit('removeTodoMutation', todo), - setNewTodoTitleAction: (store, newValue) => store.commit('setNewTodoTitleMutation', newValue), -}; diff --git a/vuetifyjs-setup/src/vuex/getters.js b/vuetifyjs-setup/src/vuex/getters.js deleted file mode 100644 index 35aacab..0000000 --- a/vuetifyjs-setup/src/vuex/getters.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getters = { - counter: state => state.counter, -}; diff --git a/vuetifyjs-setup/src/vuex/initialState.js b/vuetifyjs-setup/src/vuex/initialState.js deleted file mode 100644 index aeb92fc..0000000 --- a/vuetifyjs-setup/src/vuex/initialState.js +++ /dev/null @@ -1,32 +0,0 @@ -export const state = { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', -}; diff --git a/vuetifyjs-setup/src/vuex/mutations.js b/vuetifyjs-setup/src/vuex/mutations.js deleted file mode 100644 index 107c98b..0000000 --- a/vuetifyjs-setup/src/vuex/mutations.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Counter App - */ -export const decrementCounterMutation = state => state.counter--; - -export const incrementCounterMutation = state => state.counter++; - -/** - * TO DO App - */ -export const toggleTodoMutation = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitleMutation = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodoMutation = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitleMutation = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/** - * Contact App - */ -export const setNewNameMutation = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhoneMutation = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContactMutation = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; - -// mutations -export const mutations = { - decrementCounterMutation, - incrementCounterMutation, - // - toggleTodoMutation, - addNewTodoTitleMutation, - removeTodoMutation, - setNewTodoTitleMutation, - // - setNewNameMutation, - setNewPhoneMutation, - addNewContactMutation, -}; diff --git a/vuetifyjs-setup/src/vuex/store.js b/vuetifyjs-setup/src/vuex/store.js deleted file mode 100644 index a62f6ed..0000000 --- a/vuetifyjs-setup/src/vuex/store.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { state } from './initialState'; -import { getters } from './getters'; -import { mutations } from './mutations'; -import { actions } from './actions'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; diff --git a/vuetifyjs-setup/static/.gitkeep b/vuetifyjs-setup/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuex-contact-list/.babelrc b/vuex-contact-list/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vuex-contact-list/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vuex-contact-list/.eslintignore b/vuex-contact-list/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vuex-contact-list/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vuex-contact-list/.eslintrc.js b/vuex-contact-list/.eslintrc.js deleted file mode 100644 index 6232fa6..0000000 --- a/vuex-contact-list/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - } -}; diff --git a/vuex-contact-list/.postcssrc.js b/vuex-contact-list/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/vuex-contact-list/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/vuex-contact-list/README.md b/vuex-contact-list/README.md deleted file mode 100644 index 86128c9..0000000 --- a/vuex-contact-list/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Vuex SPA: Counter + TODO - -## jquery + materialize-css installation (using require instead of import) - -### js - -```html - - - diff --git a/vuex-contact-list/src/assets/.gitkeep b/vuex-contact-list/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuex-contact-list/src/components/ContactList.vue b/vuex-contact-list/src/components/ContactList.vue deleted file mode 100644 index 9c9acc4..0000000 --- a/vuex-contact-list/src/components/ContactList.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/vuex-contact-list/src/components/Counter.vue b/vuex-contact-list/src/components/Counter.vue deleted file mode 100644 index 78ded25..0000000 --- a/vuex-contact-list/src/components/Counter.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/vuex-contact-list/src/components/Links.vue b/vuex-contact-list/src/components/Links.vue deleted file mode 100644 index 59c6968..0000000 --- a/vuex-contact-list/src/components/Links.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/vuex-contact-list/src/components/TodoApp.vue b/vuex-contact-list/src/components/TodoApp.vue deleted file mode 100644 index 87f32d5..0000000 --- a/vuex-contact-list/src/components/TodoApp.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/vuex-contact-list/src/main.js b/vuex-contact-list/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/vuex-contact-list/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vuex-contact-list/src/router/index.js b/vuex-contact-list/src/router/index.js deleted file mode 100644 index 22d35c9..0000000 --- a/vuex-contact-list/src/router/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; -import ContactList from '../components/ContactList.vue'; - -Vue.use(Router); - -export const routes = [ - { - path: '/', - name: 'ContactList', - component: ContactList, - label: 'Contact List App', - }, - { - path: '/todo-app', - name: 'TodoApp', - component: TodoApp, - label: 'TODO App', - }, - { - path: '/counter', - name: 'Counter', - component: Counter, - label: 'Counter App', - }, - { - path: '/**', - redirect: '/', - }, -]; - -const router = new Router({ - routes, -}); - -export default router; diff --git a/vuex-contact-list/src/vuex/mutations.js b/vuex-contact-list/src/vuex/mutations.js deleted file mode 100644 index 2459aca..0000000 --- a/vuex-contact-list/src/vuex/mutations.js +++ /dev/null @@ -1,60 +0,0 @@ -/* Counter App */ -export const decrementCounter = state => state.counter--; - -export const incrementCounter = state => state.counter++; - -/* TO DO App */ -export const toggleTodo = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitle = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodo = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitle = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/* Contact App */ -export const setNewName = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhone = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContact = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; diff --git a/vuex-contact-list/src/vuex/store.js b/vuex-contact-list/src/vuex/store.js deleted file mode 100644 index 7669b00..0000000 --- a/vuex-contact-list/src/vuex/store.js +++ /dev/null @@ -1,65 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { - addNewContact, - addNewTodoTitle, - decrementCounter, - incrementCounter, - removeTodo, - setNewName, - setNewPhone, - setNewTodoTitle, - toggleTodo -} from './mutations'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state: { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', - }, - mutations: { - decrementCounter, - incrementCounter, - // - toggleTodo, - addNewTodoTitle, - removeTodo, - setNewTodoTitle, - // - setNewName, - setNewPhone, - addNewContact, - }, -}); - -export default store; diff --git a/vuex-contact-list/static/.gitkeep b/vuex-contact-list/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuex-counter-todo/.babelrc b/vuex-counter-todo/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vuex-counter-todo/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vuex-counter-todo/.eslintignore b/vuex-counter-todo/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vuex-counter-todo/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vuex-counter-todo/.eslintrc.js b/vuex-counter-todo/.eslintrc.js deleted file mode 100644 index 7046848..0000000 --- a/vuex-counter-todo/.eslintrc.js +++ /dev/null @@ -1,36 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - } -}; diff --git a/vuex-counter-todo/.postcssrc.js b/vuex-counter-todo/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/vuex-counter-todo/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/vuex-counter-todo/README.md b/vuex-counter-todo/README.md deleted file mode 100644 index 5143aa5..0000000 --- a/vuex-counter-todo/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Vuex SPA: Counter + TODO - -Uni-directional data flow (like react flux / redux) - -``` -a s y n c - R E S T - A P I - ^| - |v - action -> mutation -> state -> vue component - ^ | - | | - +----------------------------------+ -``` - -- state is mutable (Mutator function) -- on state change, vue will automatically knows which components require re-rendering -- disadvantage: you can't really use v-model on bit of application state -available commands - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/vuex-counter-todo/bin/replace-href.bash b/vuex-counter-todo/bin/replace-href.bash deleted file mode 100644 index c94a9fe..0000000 --- a/vuex-counter-todo/bin/replace-href.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# 1. add base tag: -# -> -# 2. replace root with base-path: -# / -> /vue-examples/ - -if ! [ -z "$1" ]; then - sed -i -e "s/\(\)//g" $1 - sed -i -e "s/\(\/static\/\)/\/vue-examples\/static\//g" $1 -fi diff --git a/vuex-counter-todo/build/build.js b/vuex-counter-todo/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/vuex-counter-todo/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/vuex-counter-todo/build/check-versions.js b/vuex-counter-todo/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/vuex-counter-todo/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/vuex-counter-todo/build/dev-client.js b/vuex-counter-todo/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/vuex-counter-todo/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/vuex-counter-todo/build/dev-server.js b/vuex-counter-todo/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/vuex-counter-todo/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/vuex-counter-todo/build/utils.js b/vuex-counter-todo/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/vuex-counter-todo/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/vuex-counter-todo/build/vue-loader.conf.js b/vuex-counter-todo/build/vue-loader.conf.js deleted file mode 100644 index 6570a29..0000000 --- a/vuex-counter-todo/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/vuex-counter-todo/build/webpack.base.conf.js b/vuex-counter-todo/build/webpack.base.conf.js deleted file mode 100644 index c933990..0000000 --- a/vuex-counter-todo/build/webpack.base.conf.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/vuex-counter-todo/build/webpack.dev.conf.js b/vuex-counter-todo/build/webpack.dev.conf.js deleted file mode 100644 index d79d998..0000000 --- a/vuex-counter-todo/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/vuex-counter-todo/build/webpack.prod.conf.js b/vuex-counter-todo/build/webpack.prod.conf.js deleted file mode 100644 index cf56ff2..0000000 --- a/vuex-counter-todo/build/webpack.prod.conf.js +++ /dev/null @@ -1,124 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/vuex-counter-todo/build/webpack.test.conf.js b/vuex-counter-todo/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/vuex-counter-todo/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/vuex-counter-todo/config/dev.env.js b/vuex-counter-todo/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/vuex-counter-todo/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/vuex-counter-todo/config/index.js b/vuex-counter-todo/config/index.js deleted file mode 100644 index 690eb3e..0000000 --- a/vuex-counter-todo/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/vuex-counter-todo/config/prod.env.js b/vuex-counter-todo/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/vuex-counter-todo/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/vuex-counter-todo/config/test.env.js b/vuex-counter-todo/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/vuex-counter-todo/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/vuex-counter-todo/index.html b/vuex-counter-todo/index.html deleted file mode 100644 index 7b620cc..0000000 --- a/vuex-counter-todo/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - vue-examples - - -
- - - diff --git a/vuex-counter-todo/package.json b/vuex-counter-todo/package.json deleted file mode 100644 index fa981b7..0000000 --- a/vuex-counter-todo/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.2", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:base-href": "bash ./bin/replace-href.bash ./dist/index.html", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "vue": "2.4.3", - "vue-router": "2.7.0", - "vuex": "2.4.0" - }, - "devDependencies": { - "@types/node": "8.0.28", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.1.0", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "cross-env": "5.0.5", - "cross-spawn": "5.1.0", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.6.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "shelljs": "0.7.8", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "2.9.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/vuex-counter-todo/src/App.vue b/vuex-counter-todo/src/App.vue deleted file mode 100644 index 62e9e9a..0000000 --- a/vuex-counter-todo/src/App.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/vuex-counter-todo/src/components/Counter.vue b/vuex-counter-todo/src/components/Counter.vue deleted file mode 100644 index 78ded25..0000000 --- a/vuex-counter-todo/src/components/Counter.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/vuex-counter-todo/src/components/Links.vue b/vuex-counter-todo/src/components/Links.vue deleted file mode 100644 index cd1a4b3..0000000 --- a/vuex-counter-todo/src/components/Links.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/vuex-counter-todo/src/components/TodoApp.vue b/vuex-counter-todo/src/components/TodoApp.vue deleted file mode 100644 index 998b40b..0000000 --- a/vuex-counter-todo/src/components/TodoApp.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/vuex-counter-todo/src/main.js b/vuex-counter-todo/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/vuex-counter-todo/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vuex-counter-todo/src/router/index.js b/vuex-counter-todo/src/router/index.js deleted file mode 100644 index 0979178..0000000 --- a/vuex-counter-todo/src/router/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; - -Vue.use(Router); - -export default new Router({ - routes: [ - { - path: '/', - name: 'TodoApp', - component: TodoApp, - }, - { - path: '/counter', - name: 'Counter', - component: Counter, - }, - ], -}); diff --git a/vuex-counter-todo/src/vuex/store.js b/vuex-counter-todo/src/vuex/store.js deleted file mode 100644 index 8667950..0000000 --- a/vuex-counter-todo/src/vuex/store.js +++ /dev/null @@ -1,53 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state: { - counter: 0, - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodo: '', - }, - mutations: { - decrementCounter: state => state.counter--, - incrementCounter: state => state.counter++, - toggleTodo: (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; - }, - addNewTodo: state => { - if (!state.newTodo || !state.newTodo.trim().length) return; - state.todoList = [ - { - title: state.newTodo.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodo = ''; - }, - removeTodo: (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList - .filter(t => t.title !== todo.title) - .filter(t => t.done !== todo.done) - ]; - }, - setNewTodo: (state, newValue) => { - state.newTodo = newValue; - }, - }, -}); - -export default store; diff --git a/vuex-counter-todo/static/favicon.ico b/vuex-counter-todo/static/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vuex-counter-todo/static/favicon.ico and /dev/null differ diff --git a/vuex-map-getters-and-map-actions/.babelrc b/vuex-map-getters-and-map-actions/.babelrc deleted file mode 100644 index 383669d..0000000 --- a/vuex-map-getters-and-map-actions/.babelrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "presets": [ - [ - "env", - { - "modules": false, - "targets": { - "browsers": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] - } - } - ], - "stage-2" - ], - "plugins": [ - "transform-runtime" - ], - "env": { - "test": { - "presets": [ - "env", - "stage-2" - ], - "plugins": [ - "istanbul" - ] - } - } -} diff --git a/vuex-map-getters-and-map-actions/.eslintignore b/vuex-map-getters-and-map-actions/.eslintignore deleted file mode 100644 index 34af377..0000000 --- a/vuex-map-getters-and-map-actions/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -build/*.js -config/*.js diff --git a/vuex-map-getters-and-map-actions/.eslintrc.js b/vuex-map-getters-and-map-actions/.eslintrc.js deleted file mode 100644 index 6232fa6..0000000 --- a/vuex-map-getters-and-map-actions/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -// http://eslint.org/docs/user-guide/configuring - -module.exports = { - root: true, - parser: 'babel-eslint', - parserOptions: { - sourceType: 'module' - }, - env: { - browser: true, - }, - // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style - extends: 'standard', - // required to lint *.vue files - plugins: [ - 'html' - ], - // add your custom rules here - 'rules': { - // allow paren-less arrow functions - 'arrow-parens': 0, - // allow async-await - 'generator-star-spacing': 0, - // allow debugger during development - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'semi': 0, - 'no-unused-expressions': 0, - 'no-unused-vars': 0, - 'no-undef': 0, - 'no-labels': 0, - 'comma-dangle': 0, - 'space-before-function-paren': 0, - 'indent': 0, - 'no-multiple-empty-lines': 0, - 'import/first': 0, - } -}; diff --git a/vuex-map-getters-and-map-actions/.postcssrc.js b/vuex-map-getters-and-map-actions/.postcssrc.js deleted file mode 100644 index 33d5421..0000000 --- a/vuex-map-getters-and-map-actions/.postcssrc.js +++ /dev/null @@ -1,8 +0,0 @@ -// https://github.com/michael-ciniawsky/postcss-load-config - -module.exports = { - "plugins": { - // to edit target browsers: use "browserslist" field in package.json - "autoprefixer": {} - } -}; diff --git a/vuex-map-getters-and-map-actions/README.md b/vuex-map-getters-and-map-actions/README.md deleted file mode 100644 index 90e7848..0000000 --- a/vuex-map-getters-and-map-actions/README.md +++ /dev/null @@ -1,94 +0,0 @@ -# Using vuex mapGetters for computed and mapActions for methods - -### component - -```html - - - -``` - -### store.js - -```javascript -// ... -import { state } from './state.js'; -import { getters } from './getters.js'; -import { mutations } from './mutations.js'; -import { actions } from './actions.js'; -// ... -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; -``` - -### state.js - -```javascript -export const state = { - counter: 0, -}; -``` - -### getters.js - -```javascript -export const getters = { - counter: state => state.counter, -}; -``` - -### mutations.js - -```javascript -export const actions = { - decrementCounterMutation: state => state.counter--, - incrementCounterMutation: state => state.counter++, -}; -``` - -### actions.js - -```javascript -export const actions = { - decrementCounterAction: ({ commit }) => commit('decrementCounterMutation'), - incrementCounterAction: ({ commit }) => commit('incrementCounterMutation'), -}; -``` - -## build and run - -``` bash -yarn install -yarn dev -yarn build -yarn build --report -yarn deploy -``` - -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). diff --git a/vuex-map-getters-and-map-actions/build/build.js b/vuex-map-getters-and-map-actions/build/build.js deleted file mode 100644 index c8e9632..0000000 --- a/vuex-map-getters-and-map-actions/build/build.js +++ /dev/null @@ -1,35 +0,0 @@ -require('./check-versions')(); - -process.env.NODE_ENV = 'production'; - -var ora = require('ora'); -var rm = require('rimraf'); -var path = require('path'); -var chalk = require('chalk'); -var webpack = require('webpack'); -var config = require('../config'); -var webpackConfig = require('./webpack.prod.conf'); - -var spinner = ora('building for production...'); -spinner.start(); - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err; - webpack(webpackConfig, function (err, stats) { - spinner.stop(); - if (err) throw err; - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n'); - - console.log(chalk.cyan(' Build complete.\n')); - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )); - }); -}); diff --git a/vuex-map-getters-and-map-actions/build/check-versions.js b/vuex-map-getters-and-map-actions/build/check-versions.js deleted file mode 100644 index fbf7d81..0000000 --- a/vuex-map-getters-and-map-actions/build/check-versions.js +++ /dev/null @@ -1,49 +0,0 @@ -var chalk = require('chalk'); -var semver = require('semver'); -var packageConfig = require('../package.json'); -var shell = require('shelljs'); - -function exec(cmd) { - return require('child_process').execSync(cmd).toString().trim(); -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, -]; - -if (shell.which('npm')) { - versionRequirements.push({ - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - }); -} - -module.exports = function () { - var warnings = []; - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i]; - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ); - } - } - - if (warnings.length) { - console.log(''); - console.log(chalk.yellow('To use this template, you must update following to modules:')); - console.log(); - for (var i = 0; i < warnings.length; i++) { - var warning = warnings[i]; - console.log(' ' + warning); - } - console.log(); - process.exit(1); - } -}; diff --git a/vuex-map-getters-and-map-actions/build/dev-client.js b/vuex-map-getters-and-map-actions/build/dev-client.js deleted file mode 100644 index 5b0c48b..0000000 --- a/vuex-map-getters-and-map-actions/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill'); -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true'); - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload(); - } -}); diff --git a/vuex-map-getters-and-map-actions/build/dev-server.js b/vuex-map-getters-and-map-actions/build/dev-server.js deleted file mode 100644 index 0fa3627..0000000 --- a/vuex-map-getters-and-map-actions/build/dev-server.js +++ /dev/null @@ -1,92 +0,0 @@ -require('./check-versions')(); - -var config = require('../config'); -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV); -} - -var opn = require('opn'); -var path = require('path'); -var express = require('express'); -var webpack = require('webpack'); -var proxyMiddleware = require('http-proxy-middleware'); -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf'); - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port; -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser; -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable; - -var app = express(); -var compiler = webpack(webpackConfig); - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}); - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: false, - heartbeat: 2000 -}); -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }); - cb(); - }); -}); - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context]; - if (typeof options === 'string') { - options = { target: options }; - } - app.use(proxyMiddleware(options.filter || context, options)); -}); - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()); - -// serve webpack bundle output -app.use(devMiddleware); - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware); - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory); -app.use(staticPath, express.static('./static')); - -var uri = 'http://localhost:' + port; - -var _resolve; -var readyPromise = new Promise(resolve => { - _resolve = resolve; -}); - -console.log('> Starting dev server...'); -devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n'); - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri); - } - _resolve(); -}); - -var server = app.listen(port); - -module.exports = { - ready: readyPromise, - close: () => { - server.close(); - } -}; diff --git a/vuex-map-getters-and-map-actions/build/utils.js b/vuex-map-getters-and-map-actions/build/utils.js deleted file mode 100644 index 817df9f..0000000 --- a/vuex-map-getters-and-map-actions/build/utils.js +++ /dev/null @@ -1,71 +0,0 @@ -var path = require('path'); -var config = require('../config'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.build.assetsSubDirectory - : config.dev.assetsSubDirectory; - return path.posix.join(assetsSubDirectory, _path); -}; - -exports.cssLoaders = function (options) { - options = options || {}; - - var cssLoader = { - loader: 'css-loader', - options: { - minimize: process.env.NODE_ENV === 'production', - sourceMap: options.sourceMap - } - }; - - // generate loader string to be used with extract text plugin - function generateLoaders(loader, loaderOptions) { - var loaders = [cssLoader]; - if (loader) { - loaders.push({ - loader: loader + '-loader', - options: Object.assign({}, loaderOptions, { - sourceMap: options.sourceMap - }) - }); - } - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: loaders, - fallback: 'vue-style-loader' - }); - } else { - return ['vue-style-loader'].concat(loaders); - } - } - - // https://vue-loader.vuejs.org/en/configurations/extract-css.html - return { - css: generateLoaders(), - postcss: generateLoaders(), - less: generateLoaders('less'), - sass: generateLoaders('sass', { indentedSyntax: true }), - scss: generateLoaders('sass'), - stylus: generateLoaders('stylus'), - styl: generateLoaders('stylus') - }; -}; - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = []; - var loaders = exports.cssLoaders(options); - for (var extension in loaders) { - var loader = loaders[extension]; - output.push({ - test: new RegExp('\\.' + extension + '$'), - use: loader - }); - } - return output; -}; diff --git a/vuex-map-getters-and-map-actions/build/vue-loader.conf.js b/vuex-map-getters-and-map-actions/build/vue-loader.conf.js deleted file mode 100644 index 6570a29..0000000 --- a/vuex-map-getters-and-map-actions/build/vue-loader.conf.js +++ /dev/null @@ -1,18 +0,0 @@ -var utils = require('./utils'); -var config = require('../config'); -var isProduction = process.env.NODE_ENV === 'production'; - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.build.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - transformToRequire: { - video: 'src', - source: 'src', - img: 'src', - image: 'xlink:href' - } -}; diff --git a/vuex-map-getters-and-map-actions/build/webpack.base.conf.js b/vuex-map-getters-and-map-actions/build/webpack.base.conf.js deleted file mode 100644 index 7717fb5..0000000 --- a/vuex-map-getters-and-map-actions/build/webpack.base.conf.js +++ /dev/null @@ -1,83 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var config = require('../config'); -var vueLoaderConfig = require('./vue-loader.conf'); -var { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin'); - -function resolve(dir) { - return path.join(__dirname, '..', dir); -} - -module.exports = { - entry: { - app: './src/main.js' - }, - output: { - path: config.build.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath - }, - plugins: [ - new BaseHrefWebpackPlugin({ - baseHref: process.env.NODE_ENV === 'production' - ? config.build.assetsPublicPath - : config.dev.assetsPublicPath, - }), - ], - resolve: { - extensions: ['.js', '.vue', '.json'], - alias: { - 'vue$': 'vue/dist/vue.esm.js', - '@': resolve('src'), - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('test')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('media/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - options: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -}; diff --git a/vuex-map-getters-and-map-actions/build/webpack.dev.conf.js b/vuex-map-getters-and-map-actions/build/webpack.dev.conf.js deleted file mode 100644 index 9b045cb..0000000 --- a/vuex-map-getters-and-map-actions/build/webpack.dev.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]); -}); - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: 'index.html', - inject: true, - favicon: './favicon.ico', - }), - new FriendlyErrorsPlugin() - ] -}); diff --git a/vuex-map-getters-and-map-actions/build/webpack.prod.conf.js b/vuex-map-getters-and-map-actions/build/webpack.prod.conf.js deleted file mode 100644 index 2acb35f..0000000 --- a/vuex-map-getters-and-map-actions/build/webpack.prod.conf.js +++ /dev/null @@ -1,125 +0,0 @@ -var path = require('path'); -var utils = require('./utils'); -var webpack = require('webpack'); -var config = require('../config'); -var merge = require('webpack-merge'); -var baseWebpackConfig = require('./webpack.base.conf'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin'); - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.build.env; - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: config.build.productionSourceMap, - extract: true - }) - }, - devtool: config.build.productionSourceMap ? '#source-map' : false, - output: { - path: config.build.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin({ - cssProcessorOptions: { - safe: true - } - }), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.build.index, - template: 'index.html', - inject: true, - favicon: './favicon.ico', - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ); - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - // copy custom static assets - new CopyWebpackPlugin([ - { - from: path.resolve(__dirname, '../static'), - to: config.build.assetsSubDirectory, - ignore: ['.*'] - } - ]) - ] -}); - -if (config.build.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin'); - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.build.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ); -} - -if (config.build.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; - webpackConfig.plugins.push(new BundleAnalyzerPlugin()); -} - -module.exports = webpackConfig; diff --git a/vuex-map-getters-and-map-actions/build/webpack.test.conf.js b/vuex-map-getters-and-map-actions/build/webpack.test.conf.js deleted file mode 100644 index 83146c1..0000000 --- a/vuex-map-getters-and-map-actions/build/webpack.test.conf.js +++ /dev/null @@ -1,31 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils'); -var webpack = require('webpack'); -var merge = require('webpack-merge'); -var baseConfig = require('./webpack.base.conf'); - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - resolveLoader: { - alias: { - // necessary to to make lang="scss" work in test when using vue-loader's ?inject option - // see discussion at https://github.com/vuejs/vue-loader/issues/724 - 'scss-loader': 'sass-loader' - } - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}); - -// no need for app entry during tests -delete webpackConfig.entry; - -module.exports = webpackConfig; diff --git a/vuex-map-getters-and-map-actions/config/dev.env.js b/vuex-map-getters-and-map-actions/config/dev.env.js deleted file mode 100644 index 83a4d8a..0000000 --- a/vuex-map-getters-and-map-actions/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var prodEnv = require('./prod.env'); - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}); diff --git a/vuex-map-getters-and-map-actions/config/index.js b/vuex-map-getters-and-map-actions/config/index.js deleted file mode 100644 index 9c16dd9..0000000 --- a/vuex-map-getters-and-map-actions/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path'); - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/vue-examples/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -}; diff --git a/vuex-map-getters-and-map-actions/config/prod.env.js b/vuex-map-getters-and-map-actions/config/prod.env.js deleted file mode 100644 index f051dac..0000000 --- a/vuex-map-getters-and-map-actions/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -}; diff --git a/vuex-map-getters-and-map-actions/config/test.env.js b/vuex-map-getters-and-map-actions/config/test.env.js deleted file mode 100644 index 677ed0b..0000000 --- a/vuex-map-getters-and-map-actions/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge'); -var devEnv = require('./dev.env'); - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}); diff --git a/vuex-map-getters-and-map-actions/favicon.ico b/vuex-map-getters-and-map-actions/favicon.ico deleted file mode 100644 index 27b3e27..0000000 Binary files a/vuex-map-getters-and-map-actions/favicon.ico and /dev/null differ diff --git a/vuex-map-getters-and-map-actions/index.html b/vuex-map-getters-and-map-actions/index.html deleted file mode 100644 index 4ec2ebd..0000000 --- a/vuex-map-getters-and-map-actions/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - vue-examples - - -
- - - diff --git a/vuex-map-getters-and-map-actions/package.json b/vuex-map-getters-and-map-actions/package.json deleted file mode 100644 index 17e3998..0000000 --- a/vuex-map-getters-and-map-actions/package.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "homepage": "https://daggerok.github.io/vue-examples", - "name": "vue-examples", - "version": "0.0.2", - "description": "This repository is contains Vue.js playground projects", - "author": "Maksim Kostromin ", - "private": true, - "scripts": { - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "build": "node build/build.js", - "lint": "eslint --ext .js,.vue src", - "predeploy": "yarn install; npm-run-all predeploy:*", - "predeploy:build": "yarn build", - "predeploy:404-html": "ncp ./dist/index.html ./dist/404.html", - "deploy": "gh-pages -d ./dist -b gh-pages -m \"Github Pages $(date +%Y-%m-%d) deployment\"" - }, - "dependencies": { - "base-href-webpack-plugin": "1.0.2", - "jquery": "3.5.0", - "material-design-icons": "3.0.1", - "materialize-css": "0.100.2", - "vue": "2.4.3", - "vue-router": "2.7.0", - "vuex": "2.4.0", - "whatwg-fetch": "2.0.3" - }, - "devDependencies": { - "@types/jquery": "3.2.12", - "@types/node": "8.0.28", - "@types/systemjs": "0.20.5", - "autoprefixer": "7.1.4", - "babel-core": "6.26.0", - "babel-eslint": "8.0.0", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.24.1", - "babel-register": "6.26.0", - "chalk": "2.1.0", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "cross-env": "5.0.5", - "cross-spawn": "5.1.0", - "css-loader": "0.28.7", - "cssnano": "3.10.0", - "eslint": "4.6.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "3.0.0", - "file-loader": "0.11.2", - "friendly-errors-webpack-plugin": "1.6.1", - "gh-pages": "1.0.0", - "html-webpack-plugin": "2.30.1", - "http-proxy-middleware": "0.17.4", - "inject-loader": "3.0.1", - "lolex": "2.1.2", - "ncp": "2.0.0", - "nightwatch": "0.9.16", - "npm-run-all": "4.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "3.1.1", - "ora": "1.3.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "shelljs": "0.7.8", - "url-loader": "0.5.9", - "vue-loader": "13.0.4", - "vue-style-loader": "3.0.2", - "vue-template-compiler": "2.4.3", - "webpack": "3.5.6", - "webpack-bundle-analyzer": "2.9.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ], - "main": "index.js", - "repository": "https://github.com/daggerok/vue-examples.git", - "license": "MIT" -} diff --git a/vuex-map-getters-and-map-actions/src/App.vue b/vuex-map-getters-and-map-actions/src/App.vue deleted file mode 100644 index b6730a7..0000000 --- a/vuex-map-getters-and-map-actions/src/App.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - - diff --git a/vuex-map-getters-and-map-actions/src/assets/.gitkeep b/vuex-map-getters-and-map-actions/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/vuex-map-getters-and-map-actions/src/components/ContactList.vue b/vuex-map-getters-and-map-actions/src/components/ContactList.vue deleted file mode 100644 index d5b2e6e..0000000 --- a/vuex-map-getters-and-map-actions/src/components/ContactList.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/vuex-map-getters-and-map-actions/src/components/Counter.vue b/vuex-map-getters-and-map-actions/src/components/Counter.vue deleted file mode 100644 index 8196ad6..0000000 --- a/vuex-map-getters-and-map-actions/src/components/Counter.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/vuex-map-getters-and-map-actions/src/components/Links.vue b/vuex-map-getters-and-map-actions/src/components/Links.vue deleted file mode 100644 index 59c6968..0000000 --- a/vuex-map-getters-and-map-actions/src/components/Links.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/vuex-map-getters-and-map-actions/src/components/TodoApp.vue b/vuex-map-getters-and-map-actions/src/components/TodoApp.vue deleted file mode 100644 index d59601c..0000000 --- a/vuex-map-getters-and-map-actions/src/components/TodoApp.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/vuex-map-getters-and-map-actions/src/main.js b/vuex-map-getters-and-map-actions/src/main.js deleted file mode 100644 index eb34427..0000000 --- a/vuex-map-getters-and-map-actions/src/main.js +++ /dev/null @@ -1,19 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue'; -import App from './App.vue'; -import router from './router'; -import store from './vuex/store'; - -Vue.config.productionTip = false; - -/* eslint-disable no-new */ -new Vue({ - store, - router, - el: '#app', - template: '', - components: { - App, - } -}); diff --git a/vuex-map-getters-and-map-actions/src/router/index.js b/vuex-map-getters-and-map-actions/src/router/index.js deleted file mode 100644 index 22d35c9..0000000 --- a/vuex-map-getters-and-map-actions/src/router/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import Vue from 'vue'; -import Router from 'vue-router'; -import TodoApp from '../components/TodoApp.vue'; -import Counter from '../components/Counter.vue'; -import ContactList from '../components/ContactList.vue'; - -Vue.use(Router); - -export const routes = [ - { - path: '/', - name: 'ContactList', - component: ContactList, - label: 'Contact List App', - }, - { - path: '/todo-app', - name: 'TodoApp', - component: TodoApp, - label: 'TODO App', - }, - { - path: '/counter', - name: 'Counter', - component: Counter, - label: 'Counter App', - }, - { - path: '/**', - redirect: '/', - }, -]; - -const router = new Router({ - routes, -}); - -export default router; diff --git a/vuex-map-getters-and-map-actions/src/vuex/actions/contactList.js b/vuex-map-getters-and-map-actions/src/vuex/actions/contactList.js deleted file mode 100644 index ad88470..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/actions/contactList.js +++ /dev/null @@ -1,11 +0,0 @@ -export const contactListActions = { - addNewContactAction({ commit }) { - commit('addNewContactMutation'); - }, - setNewNameAction({ commit }, newValue) { - commit('setNewNameMutation', newValue); - }, - setNewPhoneAction(store, newValue) { - store.commit('setNewPhoneMutation', newValue); - }, -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/actions/counter.js b/vuex-map-getters-and-map-actions/src/vuex/actions/counter.js deleted file mode 100644 index a1ded21..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/actions/counter.js +++ /dev/null @@ -1,6 +0,0 @@ -export const counterActions = { - decrementCounterAction: ({ commit }) => { - commit('decrementCounterMutation'); - }, - incrementCounterAction: store => store.commit('incrementCounterMutation'), -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/actions/index.js b/vuex-map-getters-and-map-actions/src/vuex/actions/index.js deleted file mode 100644 index ea0e5ed..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/actions/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import { counterActions } from './counter'; -import { todoActions } from './todo'; -import { contactListActions } from './contactList'; - -export const actions = Object.assign( - {}, counterActions, todoActions, contactListActions, -); diff --git a/vuex-map-getters-and-map-actions/src/vuex/actions/todo.js b/vuex-map-getters-and-map-actions/src/vuex/actions/todo.js deleted file mode 100644 index def090a..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/actions/todo.js +++ /dev/null @@ -1,14 +0,0 @@ -export const todoActions = { - toggleTodoAction(store, todo) { - store.commit('toggleTodoMutation', todo); - }, - addNewTodoTitleAction(store) { - store.commit('addNewTodoTitleMutation'); - }, - removeTodoAction(store, todo) { - store.commit('removeTodoMutation', todo); - }, - setNewTodoTitleAction(store, newValue) { - store.commit('setNewTodoTitleMutation', newValue); - } -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/getters.js b/vuex-map-getters-and-map-actions/src/vuex/getters.js deleted file mode 100644 index 35aacab..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/getters.js +++ /dev/null @@ -1,3 +0,0 @@ -export const getters = { - counter: state => state.counter, -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/initialState.js b/vuex-map-getters-and-map-actions/src/vuex/initialState.js deleted file mode 100644 index aeb92fc..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/initialState.js +++ /dev/null @@ -1,32 +0,0 @@ -export const state = { - counter: 0, - // - todoList: [ - { - title: 'Complete task', - done: true, - }, - { - title: 'Incomplete task', - done: false, - }, - ], - newTodoTitle: '', - // - contactList: [ - { - name: 'Max', - phone: '+380933495900', - }, - { - name: 'Ahtung!', - phone: '02', - }, - { - name: 'Help', - phone: '911', - }, - ], - newName: '', - newPhone: '', -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/mutations.js b/vuex-map-getters-and-map-actions/src/vuex/mutations.js deleted file mode 100644 index 97c3ac4..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/mutations.js +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Counter App - */ -export const decrementCounterMutation = state => state.counter--; - -export const incrementCounterMutation = state => state.counter++; - -/** - * TO DO App - */ -export const toggleTodoMutation = (state, todo) => { - const toBeToggled = state.todoList.find(t => t.title === todo.title); - toBeToggled.done = !toBeToggled.done; -}; - -export const addNewTodoTitleMutation = state => { - if (!state.newTodoTitle || !state.newTodoTitle.trim().length) return; - const foundTodo = state.todoList.find(t => t.title === state.newTodoTitle); - if (foundTodo) return; - state.todoList = [ - { - title: state.newTodoTitle.trim(), - done: false, - }, - ...state.todoList, - ]; - state.newTodoTitle = ''; -}; - -export const removeTodoMutation = (state, todo) => { - if (!todo.done && !confirm("TODO you going to delete wasn't complete, are you sure?")) return; - state.todoList = [ - ...state.todoList.filter(t => t.title !== todo.title) - ]; -}; - -export const setNewTodoTitleMutation = (state, newValue) => { - state.newTodoTitle = newValue; -}; - -/** - * Contact App - */ -export const setNewNameMutation = (state, newValue) => { - state.newName = newValue; -}; - -export const setNewPhoneMutation = (state, newValue) => { - state.newPhone = newValue; -}; - -export const addNewContactMutation = state => { - if (!state.newName || !state.newName.trim().length || !state.newPhone || !state.newPhone.trim().length) { - Materialize.toast('name and phone may not be empty.', 10000); - return; - } - const foundContact = state.contactList.find(c => c.name === state.newName || c.phone === state.newPhone); - if (foundContact) { - Materialize.toast('contact with such name or phone already exists.', 10000); - return; - } - state.contactList.push({ name: state.newName, phone: state.newPhone }); - state.contactList.sort((a, b) => a.phone - b.phone); - Materialize.toast(`contact ${state.newName} successfully added!`, 5000); - state.newName = state.newPhone = ''; -}; - -export const mutations = { - decrementCounterMutation, - incrementCounterMutation, - // - toggleTodoMutation, - addNewTodoTitleMutation, - removeTodoMutation, - setNewTodoTitleMutation, - // - setNewNameMutation, - setNewPhoneMutation, - addNewContactMutation, -}; diff --git a/vuex-map-getters-and-map-actions/src/vuex/store.js b/vuex-map-getters-and-map-actions/src/vuex/store.js deleted file mode 100644 index a62f6ed..0000000 --- a/vuex-map-getters-and-map-actions/src/vuex/store.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import Vuex from 'vuex'; -import { state } from './initialState'; -import { getters } from './getters'; -import { mutations } from './mutations'; -import { actions } from './actions'; - -Vue.use(Vuex); - -const store = new Vuex.Store({ - state, - getters, - mutations, - actions, -}); - -export default store; diff --git a/vuex-map-getters-and-map-actions/static/.gitkeep b/vuex-map-getters-and-map-actions/static/.gitkeep deleted file mode 100644 index e69de29..0000000