diff --git a/custom-fonts/icomoon/demo-files/demo.css b/custom-fonts/icomoon/demo-files/demo.css index 900face..f842fb2 100644 --- a/custom-fonts/icomoon/demo-files/demo.css +++ b/custom-fonts/icomoon/demo-files/demo.css @@ -147,6 +147,9 @@ p { font-size: 16px; } .fs1 { + font-size: 24px; +} +.fs2 { font-size: 28px; } diff --git a/custom-fonts/icomoon/demo.html b/custom-fonts/icomoon/demo.html index b8a11e2..95f6590 100644 --- a/custom-fonts/icomoon/demo.html +++ b/custom-fonts/icomoon/demo.html @@ -9,11 +9,46 @@
-

Font Name: icomoon (Glyphs: 6)

+

Font Name: icomoon (Glyphs: 8)

-

Grid Size: 14

+

Grid Size: 24

+
+ + + + fa-directional +
+
+ + +
+
+ liga: + +
+
+
+
+

Grid Size: 14

+
+
+ + + + fa-gamepad +
+
+ + +
+
+ liga: + +
+
+
@@ -29,7 +64,7 @@

Grid Size: 14

-
+
@@ -45,7 +80,7 @@

Grid Size: 14

-
+
@@ -61,7 +96,7 @@

Grid Size: 14

-
+
@@ -77,7 +112,7 @@

Grid Size: 14

-
+
@@ -93,7 +128,7 @@

Grid Size: 14

-
+
diff --git a/custom-fonts/icomoon/fonts/icomoon.eot b/custom-fonts/icomoon/fonts/icomoon.eot index d3a9e4d..48124d1 100644 Binary files a/custom-fonts/icomoon/fonts/icomoon.eot and b/custom-fonts/icomoon/fonts/icomoon.eot differ diff --git a/custom-fonts/icomoon/fonts/icomoon.svg b/custom-fonts/icomoon/fonts/icomoon.svg index bc4b112..a01dff7 100644 --- a/custom-fonts/icomoon/fonts/icomoon.svg +++ b/custom-fonts/icomoon/fonts/icomoon.svg @@ -7,6 +7,8 @@ + + diff --git a/custom-fonts/icomoon/fonts/icomoon.ttf b/custom-fonts/icomoon/fonts/icomoon.ttf index ebc9a74..4f3ecac 100644 Binary files a/custom-fonts/icomoon/fonts/icomoon.ttf and b/custom-fonts/icomoon/fonts/icomoon.ttf differ diff --git a/custom-fonts/icomoon/fonts/icomoon.woff b/custom-fonts/icomoon/fonts/icomoon.woff index aa12c92..4a6a0f7 100644 Binary files a/custom-fonts/icomoon/fonts/icomoon.woff and b/custom-fonts/icomoon/fonts/icomoon.woff differ diff --git a/custom-fonts/icomoon/selection.json b/custom-fonts/icomoon/selection.json index cd2ce89..0d9e7e4 100644 --- a/custom-fonts/icomoon/selection.json +++ b/custom-fonts/icomoon/selection.json @@ -1,6 +1,65 @@ { "IcoMoonType": "selection", "icons": [ + { + "icon": { + "paths": [ + "M704 384h234v256h-234l-128-128zM384 704l128-128 128 128v234h-256v-234zM320 384l128 128-128 128h-234v-256h234zM640 320l-128 128-128-128v-234h256v234z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "games" + ], + "grid": 24 + }, + "attrs": [ + {} + ], + "properties": { + "order": 1, + "id": 0, + "name": "directional", + "prevSize": 24, + "code": 59649 + }, + "setIdx": 0, + "setId": 3, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M475.429 621.714v-73.143c0-10.286-8-18.286-18.286-18.286h-109.714v-109.714c0-10.286-8-18.286-18.286-18.286h-73.143c-10.286 0-18.286 8-18.286 18.286v109.714h-109.714c-10.286 0-18.286 8-18.286 18.286v73.143c0 10.286 8 18.286 18.286 18.286h109.714v109.714c0 10.286 8 18.286 18.286 18.286h73.143c10.286 0 18.286-8 18.286-18.286v-109.714h109.714c10.286 0 18.286-8 18.286-18.286zM804.571 658.286c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143 32.571 73.143 73.143 73.143 73.143-32.571 73.143-73.143zM950.857 512c0-40.571-32.571-73.143-73.143-73.143s-73.143 32.571-73.143 73.143 32.571 73.143 73.143 73.143 73.143-32.571 73.143-73.143zM1097.143 585.143c0 161.714-130.857 292.571-292.571 292.571-74.286 0-141.714-28-193.143-73.143h-125.714c-51.429 45.143-118.857 73.143-193.143 73.143-161.714 0-292.571-130.857-292.571-292.571s130.857-292.571 292.571-292.571h512c161.714 0 292.571 130.857 292.571 292.571z" + ], + "attrs": [ + {} + ], + "width": 1097, + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "gamepad" + ], + "grid": 14 + }, + "attrs": [ + {} + ], + "properties": { + "order": 1, + "id": 0, + "name": "gamepad", + "prevSize": 28, + "code": 59648 + }, + "setIdx": 1, + "setId": 2, + "iconIdx": 0 + }, { "icon": { "paths": [ @@ -24,8 +83,8 @@ "code": 61655, "name": "caret-down" }, - "setIdx": 0, - "setId": 4, + "setIdx": 2, + "setId": 1, "iconIdx": 0 }, { @@ -51,8 +110,8 @@ "code": 61656, "name": "caret-up" }, - "setIdx": 0, - "setId": 4, + "setIdx": 2, + "setId": 1, "iconIdx": 1 }, { @@ -78,8 +137,8 @@ "code": 61657, "name": "caret-left" }, - "setIdx": 0, - "setId": 4, + "setIdx": 2, + "setId": 1, "iconIdx": 2 }, { @@ -105,8 +164,8 @@ "code": 61658, "name": "caret-right" }, - "setIdx": 0, - "setId": 4, + "setIdx": 2, + "setId": 1, "iconIdx": 3 }, { @@ -132,9 +191,9 @@ "code": 61459, "name": "cog" }, - "setIdx": 1, - "setId": 3, - "iconIdx": 18 + "setIdx": 2, + "setId": 1, + "iconIdx": 4 }, { "icon": { @@ -158,9 +217,9 @@ "code": 61541, "name": "expand" }, - "setIdx": 1, - "setId": 3, - "iconIdx": 95 + "setIdx": 2, + "setId": 1, + "iconIdx": 5 } ], "height": 1024, diff --git a/custom-fonts/icomoon/style.css b/custom-fonts/icomoon/style.css index 6f91367..bbcc45a 100644 --- a/custom-fonts/icomoon/style.css +++ b/custom-fonts/icomoon/style.css @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('fonts/icomoon.eot?i94kbs'); - src: url('fonts/icomoon.eot?i94kbs#iefix') format('embedded-opentype'), - url('fonts/icomoon.ttf?i94kbs') format('truetype'), - url('fonts/icomoon.woff?i94kbs') format('woff'), - url('fonts/icomoon.svg?i94kbs#icomoon') format('svg'); + src: url('fonts/icomoon.eot?yfuwoz'); + src: url('fonts/icomoon.eot?yfuwoz#iefix') format('embedded-opentype'), + url('fonts/icomoon.ttf?yfuwoz') format('truetype'), + url('fonts/icomoon.woff?yfuwoz') format('woff'), + url('fonts/icomoon.svg?yfuwoz#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -24,6 +24,12 @@ -moz-osx-font-smoothing: grayscale; } +.fa-directional:before { + content: "\e901"; +} +.fa-gamepad:before { + content: "\e900"; +} .fa-caret-down:before { content: "\f0d7"; } diff --git a/package.json b/package.json index 9ba5ac2..4349d2c 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,12 @@ }, "dependencies": { "animate.css": "^3.5.2", - "bulma": "^0.3.1", + "bulma": "^0.4.0", "compression": "^1.6.2", "connect-history-api-fallback": "^1.1.0", "express": "^4.14.0", "mqtt": "^2.1.3", - "vue": "^2.1.0", + "vue": "^2.2.6", "vue-router": "^2.1.1", "vue-touch": "next", "vuex": "^2.1.1", @@ -78,9 +78,9 @@ "sinon": "^1.17.3", "sinon-chai": "^2.8.0", "url-loader": "^0.5.7", - "vue-loader": "^10.0.0", - "vue-style-loader": "^1.0.0", - "vue-template-compiler": "^2.1.0", + "vue-loader": "^11.3.4", + "vue-style-loader": "^2.0.5", + "vue-template-compiler": "^2.2.6", "webpack": "^1.13.2", "webpack-dev-middleware": "^1.8.3", "webpack-hot-middleware": "^2.12.2", diff --git a/src/assets/custom-fonts/fonts/icomoon.eot b/src/assets/custom-fonts/fonts/icomoon.eot index d3a9e4d..48124d1 100644 Binary files a/src/assets/custom-fonts/fonts/icomoon.eot and b/src/assets/custom-fonts/fonts/icomoon.eot differ diff --git a/src/assets/custom-fonts/fonts/icomoon.svg b/src/assets/custom-fonts/fonts/icomoon.svg index bc4b112..a01dff7 100644 --- a/src/assets/custom-fonts/fonts/icomoon.svg +++ b/src/assets/custom-fonts/fonts/icomoon.svg @@ -7,6 +7,8 @@ + + diff --git a/src/assets/custom-fonts/fonts/icomoon.ttf b/src/assets/custom-fonts/fonts/icomoon.ttf index ebc9a74..4f3ecac 100644 Binary files a/src/assets/custom-fonts/fonts/icomoon.ttf and b/src/assets/custom-fonts/fonts/icomoon.ttf differ diff --git a/src/assets/custom-fonts/fonts/icomoon.woff b/src/assets/custom-fonts/fonts/icomoon.woff index aa12c92..4a6a0f7 100644 Binary files a/src/assets/custom-fonts/fonts/icomoon.woff and b/src/assets/custom-fonts/fonts/icomoon.woff differ diff --git a/src/assets/custom-fonts/style.css b/src/assets/custom-fonts/style.css index 53886bc..bbcc45a 100644 --- a/src/assets/custom-fonts/style.css +++ b/src/assets/custom-fonts/style.css @@ -1,10 +1,10 @@ @font-face { font-family: 'icomoon'; - src: url('fonts/icomoon.eot?i94kbs'); - src: url('fonts/icomoon.eot?i94kbs#iefix') format('embedded-opentype'), - url('fonts/icomoon.ttf?i94kbs') format('truetype'), - url('fonts/icomoon.woff?i94kbs') format('woff'), - url('fonts/icomoon.svg?i94kbs#icomoon') format('svg'); + src: url('fonts/icomoon.eot?yfuwoz'); + src: url('fonts/icomoon.eot?yfuwoz#iefix') format('embedded-opentype'), + url('fonts/icomoon.ttf?yfuwoz') format('truetype'), + url('fonts/icomoon.woff?yfuwoz') format('woff'), + url('fonts/icomoon.svg?yfuwoz#icomoon') format('svg'); font-weight: normal; font-style: normal; } @@ -24,6 +24,12 @@ -moz-osx-font-smoothing: grayscale; } +.fa-directional:before { + content: "\e901"; +} +.fa-gamepad:before { + content: "\e900"; +} .fa-caret-down:before { content: "\f0d7"; } @@ -42,20 +48,4 @@ .fa-expand:before { content: "\f065"; } -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} + diff --git a/src/components/ConnectedIndicator.vue b/src/components/ConnectedIndicator.vue index 106e9cf..7d73850 100644 --- a/src/components/ConnectedIndicator.vue +++ b/src/components/ConnectedIndicator.vue @@ -1,6 +1,6 @@ + + diff --git a/src/layouts/directional/DirectionalAndTwoButtons.vue b/src/layouts/directional/DirectionalAndTwoButtons.vue new file mode 100644 index 0000000..cb1dae3 --- /dev/null +++ b/src/layouts/directional/DirectionalAndTwoButtons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/layouts/directional/LayoutSelectorItem.vue b/src/layouts/directional/LayoutSelectorItem.vue new file mode 100644 index 0000000..f7e2f06 --- /dev/null +++ b/src/layouts/directional/LayoutSelectorItem.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/layouts/directional/ModalLayoutSelector.vue b/src/layouts/directional/ModalLayoutSelector.vue new file mode 100644 index 0000000..90a894c --- /dev/null +++ b/src/layouts/directional/ModalLayoutSelector.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/layouts/directional/ThreeButtons.vue b/src/layouts/directional/ThreeButtons.vue new file mode 100644 index 0000000..8db007e --- /dev/null +++ b/src/layouts/directional/ThreeButtons.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/layouts/directional/TwoButtons.vue b/src/layouts/directional/TwoButtons.vue new file mode 100644 index 0000000..88828f5 --- /dev/null +++ b/src/layouts/directional/TwoButtons.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/mixins/mqtt_sender_wrapper.js b/src/mixins/mqtt_sender_wrapper.js new file mode 100644 index 0000000..5dd26f7 --- /dev/null +++ b/src/mixins/mqtt_sender_wrapper.js @@ -0,0 +1,42 @@ + +export default { + props: ['mqtt'], + data () { + return { + keypress: { + Y: false, + X: false, + B: false, + A: false, + left: false, + right: false, + up: false, + down: false + }, + lastCommandSent: null, + interval: null + } + }, + methods: { + send () { + const command = JSON.stringify(this.keypress) + if (this.mqtt.client && + this.$store.state.pad.enabled && + command !== this.lastCommandSent) { + // publishes only if the command change + this.lastCommandSent = command + const { player } = this.$store.state + this.mqtt.client.publish(`pad/${player}`, command) + } + } + }, + mounted () { + // Setup a 60fps interval - 15 + this.interval = setInterval(() => { + this.send() + }, 30) + }, + beforeDestroy () { + clearInterval(this.interval) + } +} diff --git a/src/pages/Config.vue b/src/pages/Config.vue index 790028e..9189d75 100644 --- a/src/pages/Config.vue +++ b/src/pages/Config.vue @@ -12,7 +12,8 @@ :value="obj.value" :number="obj.number" :selectedValue="player" - @updateSelected="updateSelected"> + @updateSelected="updateSelected" + :key="obj.number">

diff --git a/src/pages/DirectionalPad.vue b/src/pages/DirectionalPad.vue index 69da355..8c574bd 100644 --- a/src/pages/DirectionalPad.vue +++ b/src/pages/DirectionalPad.vue @@ -1,149 +1,62 @@ diff --git a/src/pages/RacePad.vue b/src/pages/RacePad.vue index b9874f8..ed35712 100644 --- a/src/pages/RacePad.vue +++ b/src/pages/RacePad.vue @@ -49,12 +49,7 @@
- + @@ -87,27 +82,6 @@ export default { ...mapGetters([ 'laf' ]) - }, - methods: { - touchstart (command) { - this.keypress[command] = true - }, - touchend (command) { - this.keypress[command] = false - }, - pan (command, opposite) { - this.keypress[command] = true - // guarantee that opposite buttons can't be enabled - // at the same time - this.keypress[opposite] = false - }, - panend () { - this.keypress.up = false - this.keypress.down = false - } - }, - mounted () { - this.$store.commit('updatePadType', 'race') } } diff --git a/src/store.js b/src/store.js index c8c6e80..2f8362e 100644 --- a/src/store.js +++ b/src/store.js @@ -20,20 +20,32 @@ const store = new Vuex.Store({ }, updatePadType (state, type) { state.pad.type = type + }, + showMessage (state, {text, type}) { + state.message.text = text + state.message.type = type + state.message.show = true + }, + clearMessage (state) { + state.message.text = '' + state.message.type = '' + state.message.show = false } }, getters: { laf (state) { - switch (state.profile) { - case 'n64--default': - return require(`./store/laf/${state.pad.type}/n64--default`) - case 'psx--default': - return require(`./store/laf/${state.pad.type}/psx--default`) - case 'snes--default': - return require(`./store/laf/${state.pad.type}/snes--default`) - default: + try { + return require(`./store/laf/${state.pad.type}/${state.profile}`) + } catch (err) { return require(`./store/laf/${state.pad.type}/default`) } + }, + layouts (state) { + try { + return require(`./store/layouts/${state.pad.type}/${state.profile}`) + } catch (e) { + return [] + } } }, plugins: [ @@ -50,7 +62,12 @@ const store = new Vuex.Store({ port: 1884 }, accelerationSensibility: 4, - profile: '' + profile: 'default', + message: { + text: '', + type: '', + show: false + } } }) ] diff --git a/src/store/laf/directional/n64--default.js b/src/store/laf/directional/n64--default.js index 9ac885e..3746bf4 100644 --- a/src/store/laf/directional/n64--default.js +++ b/src/store/laf/directional/n64--default.js @@ -8,33 +8,59 @@ module.exports = { btnA: { bgColor: BLUE, fgColor: WHITE, - label: 'A' + label: 'A', + keyb: 'A' }, btnB: { bgColor: GREEN, fgColor: WHITE, - label: 'B' + label: 'B', + keyb: 'B' }, btnY: { bgColor: BLUE_GREY, fgColor: WHITE, - label: 'R' + label: 'R', + keyb: 'Y' }, btnX: { bgColor: BLUE_GREY, fgColor: WHITE, - label: 'Z' + label: 'Z', + keyb: 'X' }, directional: { bgColor: BLUE_GREY, - fgColor: WHITE + fgColor: WHITE, + label: 'Directional', + icon: 'fa-directional' }, left: { bgColor: BLUE_GREY, - fgColor: WHITE + fgColor: WHITE, + label: 'Left', + icon: 'fa-caret-left', + keyb: 'left' }, right: { bgColor: BLUE_GREY, - fgColor: WHITE + fgColor: WHITE, + label: 'Right', + icon: 'fa-caret-right', + keyb: 'right' + }, + up: { + bgColor: BLUE_GREY, + fgColor: WHITE, + label: 'Up', + icon: 'fa-caret-up', + keyb: 'up' + }, + down: { + bgColor: BLUE_GREY, + fgColor: WHITE, + label: 'Down', + icon: 'fa-caret-down', + keyb: 'down' } } diff --git a/src/store/layouts/directional/n64--default.js b/src/store/layouts/directional/n64--default.js new file mode 100644 index 0000000..45f8721 --- /dev/null +++ b/src/store/layouts/directional/n64--default.js @@ -0,0 +1,23 @@ + +module.exports = [ + { + layout: 'pad-dir-and-2btn--touch', + keyset: ['directional', 'btnB', 'btnA'] + }, + { + layout: 'pad-2btn--touch', + keyset: ['btnB', 'btnA'] + }, + { + layout: 'pad-2btn--touch', + keyset: ['left', 'right'] + }, + { + layout: 'pad-3btn--touch', + keyset: ['btnX', 'btnB', 'btnA'] + }, + { + layout: 'pad-2btn--touch', + keyset: ['down', 'up'] + } +] diff --git a/yarn.lock b/yarn.lock index f014992..be4b670 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1010,9 +1010,9 @@ builtin-status-codes@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz#6f22003baacf003ccd287afe6872151fddc58579" -bulma@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.3.1.tgz#0166be77e7a5f62ede01b0be3f1e77e954978bd2" +bulma@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.4.0.tgz#2a0b07555d53bb4eb17861e3159e2616c21dfa6c" bytes@2.3.0: version "2.3.0" @@ -1429,6 +1429,17 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.1.tgz#817f2c2039347a1e9bf7d090c0923e53f749ca82" + dependencies: + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -3136,7 +3147,7 @@ js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" -js-yaml@3.x, js-yaml@^3.5.1: +js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.5.1: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: @@ -3347,7 +3358,7 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -loader-utils@0.2.x, loader-utils@^0.2.10, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: +loader-utils@0.2.x, loader-utils@^0.2.11, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -3356,6 +3367,14 @@ loader-utils@0.2.x, loader-utils@^0.2.10, loader-utils@^0.2.11, loader-utils@^0. json5 "^0.5.0" object-assign "^4.0.1" +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + lodash._arraycopy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" @@ -4115,7 +4134,7 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" @@ -4203,7 +4222,7 @@ os-browserify@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" -os-homedir@^1.0.0: +os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -4442,6 +4461,29 @@ postcss-filter-plugins@^2.0.0: postcss "^5.0.4" uniqid "^4.0.0" +postcss-load-config@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + postcss-merge-idents@^2.1.5: version "2.1.7" resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" @@ -4607,7 +4649,7 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.6: +postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.6: version "5.2.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.6.tgz#a252cd67cd52585035f17e9ad12b35137a7bdd9e" dependencies: @@ -5023,6 +5065,10 @@ require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -5851,40 +5897,41 @@ void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" -vue-hot-reload-api@^2.0.1: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.0.6.tgz#817d4bfb30f55428aa1012d029499e07f3147d21" +vue-hot-reload-api@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.0.11.tgz#bf26374fb73366ce03f799e65ef5dfd0e28a1568" -vue-loader@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-10.0.2.tgz#6fe7bcefb32c5439bd0338464aa22673ad62299c" +vue-loader@^11.3.4: + version "11.3.4" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-11.3.4.tgz#65e10a44ce092d906e14bbc72981dec99eb090d2" dependencies: consolidate "^0.14.0" hash-sum "^1.0.2" js-beautify "^1.6.3" - loader-utils "^0.2.10" + loader-utils "^1.1.0" lru-cache "^4.0.1" - object-assign "^4.0.0" - postcss "^5.0.10" + postcss "^5.0.21" + postcss-load-config "^1.1.0" postcss-selector-parser "^2.0.0" source-map "^0.5.6" - vue-hot-reload-api "^2.0.1" - vue-style-loader "^1.0.0" + vue-hot-reload-api "^2.0.11" + vue-style-loader "^2.0.0" vue-template-es2015-compiler "^1.2.2" vue-router@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-2.1.1.tgz#10c31bbdcb6da92bd3e0223fa12345e73018625a" -vue-style-loader@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-1.0.0.tgz#abeb7bd0f46313083741244d3079d4f14449e049" +vue-style-loader@^2.0.0, vue-style-loader@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-2.0.5.tgz#f0efac992febe3f12e493e334edb13cd235a3d22" dependencies: - loader-utils "^0.2.7" + hash-sum "^1.0.2" + loader-utils "^1.0.2" -vue-template-compiler@^2.1.0: - version "2.1.6" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.1.6.tgz#f96f968652fc1e861bb0052f61993ba1fdc18ad3" +vue-template-compiler@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.2.6.tgz#2e2928daf0cd0feca9dfc35a9729adeae173ec68" dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -5902,9 +5949,9 @@ vue-touch@next: rollup-plugin-commonjs "^7.0.0" rollup-plugin-node-resolve "^2.0.0" -vue@^2.1.0: - version "2.1.6" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.1.6.tgz#2fc0024c07479ac6bc7d34a2cd5ef9ca5e90b143" +vue@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.2.6.tgz#451714b394dd6d4eae7b773c40c2034a59621aed" vuex-localstorage@^1.0.0: version "1.0.0"