refactor: vuex re-org + modal-create-page

This commit is contained in:
NGPixel 2017-05-25 20:54:03 -04:00
parent 12132ad42e
commit f075c266ef
19 changed files with 201 additions and 116 deletions

View File

@ -4,9 +4,11 @@
/* eslint-disable no-new */
import $ from 'jquery'
import _ from 'lodash'
import Vue from 'vue'
import VueResource from 'vue-resource'
import VueClipboards from 'vue-clipboards'
import VueLodash from 'vue-lodash'
import store from './store'
import io from 'socket-io-client'
import i18next from 'i18next'
@ -15,6 +17,12 @@ import VueI18Next from '@panter/vue-i18next'
import 'jquery-smooth-scroll'
import 'jquery-sticky'
// ====================================
// Load Helpers
// ====================================
import helpers from './helpers'
// ====================================
// Load Vue Components
// ====================================
@ -40,6 +48,7 @@ import sourceViewComponent from './pages/source-view.component.js'
Vue.use(VueResource)
Vue.use(VueClipboards)
Vue.use(VueI18Next)
Vue.use(VueLodash, _)
i18next
.use(i18nextXHR)
@ -78,6 +87,7 @@ $(() => {
const i18n = new VueI18Next(i18next)
new Vue({
mixins: [helpers],
components: {
alert: alertComponent,
adminProfile: adminProfileComponent,

View File

@ -1,12 +1,12 @@
<template lang="pug">
.modal(v-if='isShown')
.modal(v-bind:class='{ "is-active": isShown }')
.modal-background
.modal-container
.modal-content
header.is-light-blue Create New Document
section
label.label Enter the new document path:
p.control.is-fullwidth(v-class='{ "is-loading": isLoading }')
p.control.is-fullwidth(v-bind:class='{ "is-loading": isLoading }')
input.input(type='text', placeholder='page-name', v-model='entrypath', autofocus)
span.help.is-danger(v-show='isInvalid') This document path is invalid!
footer
@ -15,30 +15,29 @@
</template>
<script>
import { isEmpty } from 'lodash'
// import { makeSafePath } from '../helpers/pages'
import { mapState } from 'vuex'
export default {
name: 'modal-create',
name: 'modal-create-page',
props: ['basepath'],
data () {
return {
isLoading: false
}
},
computed: mapState('createPage', {
entrypath: '',
isShown: 'shown',
isInvalid: 'invalid'
}),
computed: {
entrypath () { return this.$store.state.modalCreatePage.entrypath }
isShown () { return this.$store.state.modalCreatePage.shown }
isInvalid () { return this.$store.state.modalCreatePage.invalid }
},
methods: {
cancel: function () {
this.$store.dispatch('createPageClose')
this.$store.dispatch('modalCreatePage/close')
},
create: function () {
this.isInvalid = false
let newDocPath = makeSafePath(this.entrypath)
if (isEmpty(newDocPath)) {
let newDocPath = this.helpers.pages.makeSafePath(this.entrypath)
if (this._.isEmpty(newDocPath)) {
this.$store.createPage.commit('')
} else {
this.isLoading = true
@ -47,7 +46,7 @@
}
},
mounted () {
// this.entrypath = currentBasePath + '/new-page'
this.$store.commit('modalCreatePage/pathChange', this.basepath + '/new-page')
}
}
</script>

View File

@ -36,7 +36,7 @@
<script>
export default {
name: 'admin-users-create',
name: 'modal-create-user',
data () {
return {
email: '',
@ -48,12 +48,12 @@
},
computed: {
isShown () {
return this.$store.state.adminUsersCreate.shown
return this.$store.state.modalCreateUser.shown
}
},
methods: {
cancel () {
this.$store.dispatch('adminUsersCreateClose')
this.$store.dispatch('modalCreateUser/close')
this.email = ''
this.provider = 'local'
},

View File

@ -1,13 +1,13 @@
'use strict'
import $ from 'jquery'
import delay from 'lodash/delay'
import _ from 'lodash'
module.exports = {
complete () {
complete() {
$('#page-loader').addClass('is-loaded')
delay(() => {
_.delay(() => {
$('#page-loader').addClass('is-hidden')
}, 1100)
}

View File

@ -18,7 +18,6 @@
</template>
<script>
import * as _ from 'lodash'
import * as $ from 'jquery'
export default {
@ -44,7 +43,7 @@
socket.emit('search', { terms: val }, (data) => {
self.searchres = data.match
self.searchsuggest = data.suggest
self.searchmovearr = _.concat([], self.searchres, self.searchsuggest)
self.searchmovearr = self._.concat([], self.searchres, self.searchsuggest)
if (self.searchload > 0) { self.searchload-- }
})
} else {

View File

@ -15,8 +15,6 @@
</template>
<script>
import * as _ from 'lodash'
export default {
name: '',
data () {
@ -31,9 +29,9 @@
self.$nextTick(() => {
socket.emit('treeFetch', { basePath }, (data) => {
if (self.tree.length > 0) {
let branch = _.last(self.tree)
let branch = self._.last(self.tree)
branch.hasChildren = true
_.find(branch.pages, { _id: basePath }).isActive = true
self._.find(branch.pages, { _id: basePath }).isActive = true
}
self.tree.push({
hasChildren: false,
@ -49,14 +47,14 @@
unfold (entryPath) {
let self = this
let lastIndex = 0
_.forEach(self.tree, branch => {
self._.forEach(self.tree, branch => {
lastIndex++
if (_.find(branch.pages, { _id: entryPath }) !== undefined) {
if (self._.find(branch.pages, { _id: entryPath }) !== undefined) {
return false
}
})
self.tree = _.slice(self.tree, 0, lastIndex)
let branch = _.last(self.tree)
self.tree = self._.slice(self.tree, 0, lastIndex)
let branch = self._.last(self.tree)
branch.hasChildren = false
branch.pages.forEach(page => {
page.isActive = false

View File

@ -0,0 +1,8 @@
'use strict'
export default {
helpers: {
form: require('./form'),
pages: require('./pages')
}
}

View File

@ -1,15 +1,19 @@
'use strict'
export default {
namespaced: true,
state: {
shown: false
entrypath: '',
shown: false,
invalid: false
},
getters: {},
mutations: {
shownChange: (state, shownState) => { state.shown = shownState }
shownChange: (state, shownState) => { state.shown = shownState },
pathChange: (state, newpath) => { state.entrypath = newpath }
},
actions: {
adminUsersCreateOpen({ commit }) { commit('shownChange', true) },
adminUsersCreateClose({ commit }) { commit('shownChange', false) }
open({ commit }) { commit('shownChange', true) },
close({ commit }) { commit('shownChange', false) }
}
}

View File

@ -1,6 +1,7 @@
'use strict'
export default {
namespaced: true,
state: {
shown: false
},
@ -9,7 +10,7 @@ export default {
shownChange: (state, shownState) => { state.shown = shownState }
},
actions: {
adminUsersCreateOpen({ commit }) { commit('shownChange', true) },
adminUsersCreateClose({ commit }) { commit('shownChange', false) }
open({ commit }) { commit('shownChange', true) },
close({ commit }) { commit('shownChange', false) }
}
}

56
fuse.js
View File

@ -46,6 +46,32 @@ if (args.d) {
console.info(colors.bgWhite.black(' Starting Fuse in BUILD mode... '))
}
// ======================================================
// BUILD VARS
// ======================================================
const ALIASES = {
'brace-ext-modelist': 'brace/ext/modelist.js',
'simplemde': 'simplemde/dist/simplemde.min.js',
'socket-io-client': 'socket.io-client/dist/socket.io.js',
'vue': (dev) ? 'vue/dist/vue.js' : 'vue/dist/vue.min.js',
'vue-lodash': 'vue-lodash/dist/vue-lodash.min.js'
}
const SHIMS = {
_preinit: {
source: '.build/_preinit.js',
exports: '_preinit'
},
jquery: {
source: 'node_modules/jquery/dist/jquery.js',
exports: '$'
},
mathjax: {
source: 'node_modules/mathjax/MathJax.js',
exports: 'MathJax'
}
}
// ======================================================
// Global Tasks
// ======================================================
@ -191,27 +217,6 @@ let globalTasks = Promise.mapSeries([
// Fuse Tasks
// ======================================================
const ALIASES = {
'brace-ext-modelist': 'brace/ext/modelist.js',
'simplemde': 'simplemde/dist/simplemde.min.js',
'socket-io-client': 'socket.io-client/dist/socket.io.js',
'vue': (dev) ? 'vue/dist/vue.js' : 'vue/dist/vue.min.js'
}
const SHIMS = {
_preinit: {
source: '.build/_preinit.js',
exports: '_preinit'
},
jquery: {
source: 'node_modules/jquery/dist/jquery.js',
exports: '$'
},
mathjax: {
source: 'node_modules/mathjax/MathJax.js',
exports: 'MathJax'
}
}
globalTasks.then(() => {
let fuse = fsbx.FuseBox.init({
homeDir: './client',
@ -222,7 +227,7 @@ globalTasks.then(() => {
fsbx.EnvPlugin({ NODE_ENV: (dev) ? 'development' : 'production' }),
fsbx.VuePlugin(),
['.scss', fsbx.SassPlugin({ outputStyle: (dev) ? 'nested' : 'compressed' }), fsbx.CSSPlugin()],
fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }),
dev && fsbx.BabelPlugin({ comments: false, presets: ['es2015'] }),
fsbx.JSONPlugin(),
!dev && fsbx.UglifyESPlugin({
compress: { unused: false },
@ -240,13 +245,14 @@ globalTasks.then(() => {
})
}
const bundleLibs = fuse.bundle('libs').instructions('~ index.js - brace')
const bundleApp = fuse.bundle('app').instructions('!> [index.js]')
// const bundleLibs = fuse.bundle('libs').instructions('~ index.js - brace')
// const bundleApp = fuse.bundle('app').instructions('!> [index.js]')
const bundleApp = fuse.bundle('app').instructions('> index.js')
const bundleSetup = fuse.bundle('configure').instructions('> configure.js')
switch (mode) {
case 'dev':
bundleLibs.watch()
// bundleLibs.watch()
bundleApp.watch()
break
case 'dev-configure':

View File

@ -139,7 +139,7 @@
"eslint-plugin-node": "latest",
"eslint-plugin-promise": "latest",
"eslint-plugin-standard": "latest",
"fuse-box": "^2.0.0",
"fuse-box": "2.1.0-beta.10",
"i18next-xhr-backend": "^1.4.1",
"jest": "latest",
"jquery": "^3.2.1",
@ -147,6 +147,7 @@
"jquery-simple-upload": "^1.0.0",
"jquery-smooth-scroll": "^2.2.0",
"jquery-sticky": "^1.0.4",
"lodash-cli": "^4.17.4",
"lodash-es": "^4.17.4",
"mathjax": "^2.7.1",
"node-sass": "latest",
@ -159,6 +160,7 @@
"vee-validate": "^2.0.0-rc.3",
"vue": "^2.3.3",
"vue-clipboards": "^1.0.0",
"vue-lodash": "^1.0.3",
"vue-resource": "^1.3.3",
"vue-template-compiler": "^2.3.3",
"vue-template-es2015-compiler": "^1.5.2",

View File

@ -18,7 +18,7 @@ html(data-logic='login')
link(rel='manifest', href='/manifest.json')
// JS / CSS
script(type='text/javascript', src='/js/libs.min.js')
//- script(type='text/javascript', src='/js/libs.min.js')
script(type='text/javascript', src='/js/app.min.js')
body

View File

@ -18,7 +18,7 @@ html(data-logic='error')
link(rel='manifest', href='/manifest.json')
// JS / CSS
script(type='text/javascript', src='/js/libs.min.js')
//- script(type='text/javascript', src='/js/libs.min.js')
script(type='text/javascript', src='/js/app.min.js')
body(class='is-forbidden')

View File

@ -18,7 +18,7 @@ html(data-logic='error')
link(rel='manifest', href='/manifest.json')
// JS / CSS
script(type='text/javascript', src='/js/libs.min.js')
//- script(type='text/javascript', src='/js/libs.min.js')
script(type='text/javascript', src='/js/app.min.js')
body(class='is-notexist')

View File

@ -18,7 +18,7 @@ html(data-logic='error')
link(rel='manifest', href='/manifest.json')
// JS / CSS
script(type='text/javascript', src='/js/libs.min.js')
//- script(type='text/javascript', src='/js/libs.min.js')
script(type='text/javascript', src='/js/app.min.js')
body(class='is-error')

View File

@ -23,7 +23,7 @@ html
var siteRoot = '!{appconfig.host}';
//- JS / CSS
script(type='text/javascript', src='/js/libs.min.js')
//- script(type='text/javascript', src='/js/libs.min.js')
script(type='text/javascript', src='/js/app.min.js')
block head

View File

@ -3,7 +3,7 @@ extends ./_layout.pug
block rootNavRight
loading-spinner
.nav-item
a.button(v-on:click='$store.dispatch("adminUsersCreateOpen")')
a.button(v-on:click='$store.dispatch("modalCreateUser/open")')
i.icon-plus
span= t('admin:users.createauthorize')
@ -43,4 +43,4 @@ block adminContent
td.is-centered= moment(usr.createdAt).format('lll')
td.is-centered= moment(usr.updatedAt).format('lll')
admin-users-create
modal-create-user

View File

@ -25,13 +25,12 @@ block rootNavRight
a.button(href='/edit/' + pageData.meta.path)
i.icon-document-text
span= t('nav.edit')
a.button.btn-create-prompt
a.button(v-on:click='$store.dispatch("modalCreatePage/open")')
i.icon-plus
span= t('nav.create')
block content
//- #page-type-view.page-type-container(data-entrypath=pageData.meta.path)
content-view(inline-template)
.container.is-fluid.has-mkcontent
.columns.is-gapless
@ -82,6 +81,5 @@ block content
.content.mkcontent
!= pageData.html
include ../modals/create.pug
include ../modals/move.pug
modal-create-page(basepath=pageData.meta.path)
anchor

146
yarn.lock
View File

@ -338,6 +338,10 @@ async@2.1.4, async@^2.1.4:
dependencies:
lodash "^4.14.0"
async@~0.2.6:
version "0.2.10"
resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
async@~0.9.0:
version "0.9.2"
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
@ -722,7 +726,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
babel-polyfill@^6.23.0:
babel-polyfill@6.23.0, babel-polyfill@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
dependencies:
@ -1108,7 +1112,7 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
chalk@^1.0.0, chalk@^1.1, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
@ -1261,6 +1265,12 @@ cliui@^3.2.0:
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
closure-compiler@0.2.12:
version "0.2.12"
resolved "https://registry.yarnpkg.com/closure-compiler/-/closure-compiler-0.2.12.tgz#6c3087cad12742c79e47f0ce50e87af91cf8e171"
dependencies:
google-closure-compiler "20150901.x"
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@ -1834,6 +1844,12 @@ encodeurl@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
encoding@^0.1.11:
version "0.1.12"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
dependencies:
iconv-lite "~0.4.13"
end-of-stream@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e"
@ -2595,9 +2611,9 @@ functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
fuse-box@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-2.0.0.tgz#b5a712c91e2266af41b3045e6ed341d64aafb992"
fuse-box@2.1.0-beta.10:
version "2.1.0-beta.10"
resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-2.1.0-beta.10.tgz#37a3eced1aaa3e665a848af6523f3b87f39e6cbc"
dependencies:
acorn "^4.0.3"
acorn-es7 "^0.1.0"
@ -2616,6 +2632,7 @@ fuse-box@^2.0.0:
ieee754 "^1.1.8"
inquirer "^3.0.6"
mustache "^2.3.0"
opencollective "^1.0.3"
postcss "^6.0.1"
pretty-time "^0.2.0"
prettysize "0.0.3"
@ -2710,17 +2727,7 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
glob@^6.0.1:
version "6.0.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
dependencies:
inflight "^1.0.4"
inherits "2"
minimatch "2 || 3"
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1:
glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
dependencies:
@ -2731,6 +2738,16 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^6.0.1:
version "6.0.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
dependencies:
inflight "^1.0.4"
inherits "2"
minimatch "2 || 3"
once "^1.3.0"
path-is-absolute "^1.0.0"
global@~4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
@ -2767,6 +2784,10 @@ good-listener@^1.2.0:
dependencies:
delegate "^3.1.2"
google-closure-compiler@20150901.x:
version "20150901.0.0"
resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20150901.0.0.tgz#3d01c6cade65790a9bfb4e30b2158b7635acbade"
got@^3.2.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca"
@ -2996,7 +3017,7 @@ iconv-lite@0.4.13:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
iconv-lite@0.4.15:
iconv-lite@0.4.15, iconv-lite@~0.4.13:
version "0.4.15"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
@ -3079,6 +3100,24 @@ inquirer@1.0.3:
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@3.0.6, inquirer@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
dependencies:
ansi-escapes "^1.1.0"
chalk "^1.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.0.1"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rx "^4.1.0"
string-width "^2.0.0"
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
@ -3097,24 +3136,6 @@ inquirer@^0.12.0:
strip-ansi "^3.0.0"
through "^2.3.6"
inquirer@^3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
dependencies:
ansi-escapes "^1.1.0"
chalk "^1.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^2.0.1"
figures "^2.0.0"
lodash "^4.3.0"
mute-stream "0.0.7"
run-async "^2.2.0"
rx "^4.1.0"
string-width "^2.0.0"
strip-ansi "^3.0.0"
through "^2.3.6"
interpret@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
@ -3304,7 +3325,7 @@ is-retry-allowed@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
is-stream@^1.0.0, is-stream@^1.1.0:
is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@ -4005,6 +4026,16 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
lodash-cli@^4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-cli/-/lodash-cli-4.17.4.tgz#23b727cd0e91e28484fafda1521900a8a811df81"
dependencies:
closure-compiler "0.2.12"
glob "7.1.1"
lodash "4.17.4"
semver "5.3.0"
uglify-js "2.7.5"
lodash-es@^4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
@ -4183,7 +4214,7 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
lodash@4.17.4, lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@ -4418,7 +4449,7 @@ minimist@0.0.8, minimist@~0.0.1:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
@ -4627,6 +4658,13 @@ node-abi@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.2.tgz#00f3e0a58100eb480133b48c99a32cc1f9e6c93e"
node-fetch@1.6.3:
version "1.6.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04"
dependencies:
encoding "^0.1.11"
is-stream "^1.0.1"
node-graceful@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/node-graceful/-/node-graceful-0.2.3.tgz#ab120e1eed8c0c2b5e2ac874bf2754519c3fa942"
@ -4863,6 +4901,24 @@ open@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
opencollective@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1"
dependencies:
babel-polyfill "6.23.0"
chalk "1.1.3"
inquirer "3.0.6"
minimist "1.2.0"
node-fetch "1.6.3"
opn "4.0.2"
opn@4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
dependencies:
object-assign "^4.0.1"
pinkie-promise "^2.0.0"
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
@ -6808,14 +6864,14 @@ uglify-es@^3.0.10:
commander "~2.9.0"
source-map "~0.5.1"
uglify-js@^2.6, uglify-js@^2.6.1:
version "2.8.24"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.24.tgz#48eb5175cf32e22ec11a47e638d7c8b4e0faf2dd"
uglify-js@2.7.5, uglify-js@^2.6, uglify-js@^2.6.1:
version "2.7.5"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
dependencies:
async "~0.2.6"
source-map "~0.5.1"
yargs "~3.10.0"
optionalDependencies:
uglify-to-browserify "~1.0.0"
yargs "~3.10.0"
uglify-to-browserify@~1.0.0:
version "1.0.2"
@ -7043,6 +7099,10 @@ vue-clipboards@^1.0.0:
dependencies:
clipboard "^1.5.15"
vue-lodash@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/vue-lodash/-/vue-lodash-1.0.3.tgz#777ef3e190a4cdde0d211a614e52a0b38659c13f"
vue-resource@^1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.3.3.tgz#6f12cfc77cccd47fb7e07aff6c42d75e34005992"