-BootstrapVue -VueAwesome

- All non-modals no longer reference Bootstrap or Font Awesome (#20)
- Removed "full request" button from journal page (#16)
- Added role attributes in many places
This commit is contained in:
Daniel J. Summers 2018-08-16 21:57:54 -05:00
parent 96f2f2f7e0
commit 5bba499251
13 changed files with 267 additions and 221 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "my-prayer-journal", "name": "my-prayer-journal",
"version": "0.9.7", "version": "0.9.8",
"description": "myPrayerJournal - Front End", "description": "myPrayerJournal - Front End",
"author": "Daniel J. Summers <daniel@bitbadger.solutions>", "author": "Daniel J. Summers <daniel@bitbadger.solutions>",
"private": true, "private": true,
@ -18,12 +18,9 @@
"dependencies": { "dependencies": {
"auth0-js": "^9.3.3", "auth0-js": "^9.3.3",
"axios": "^0.18.0", "axios": "^0.18.0",
"bootstrap": "^4.0.0",
"bootstrap-vue": "^1.0.0-beta.9",
"moment": "^2.18.1", "moment": "^2.18.1",
"pug": "^2.0.1", "pug": "^2.0.1",
"vue": "^2.5.15", "vue": "^2.5.15",
"vue-awesome": "^2.3.3",
"vue-progressbar": "^0.7.3", "vue-progressbar": "^0.7.3",
"vue-router": "^3.0.0", "vue-router": "^3.0.0",
"vue-toast": "^3.1.0", "vue-toast": "^3.1.0",

View File

@ -1,12 +1,12 @@
<template lang="pug"> <template lang="pug">
#app #app(role='application')
navigation navigation
#content.container #content
router-view router-view
vue-progress-bar vue-progress-bar
toast(ref='toast') toast(ref='toast')
footer footer.mpj-text-right.mpj-muted-text
p.text-right.text-muted p
| myPrayerJournal v{{ version }} | myPrayerJournal v{{ version }}
br br
em: small. em: small.
@ -45,9 +45,27 @@ export default {
<style> <style>
html, body { html, body {
background-color: whitesmoke; background-color: whitesmoke;
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
font-size: 1rem;
} }
body { body {
padding-top: 60px; padding-top: 50px;
margin: 0;
}
p {
margin-bottom: 0;
}
button,
a[role="button"] {
border: solid 1px #050;
border-radius: .5rem;
background-color: whitesmoke;
}
button:hover,
a[role="button"]:hover {
background-color: #050;
color: white;
text-decoration: none;
} }
footer { footer {
border-top: solid 1px lightgray; border-top: solid 1px lightgray;
@ -59,14 +77,59 @@ footer p {
} }
a:link, a:visited { a:link, a:visited {
color: #050; color: #050;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.mpj-main-content {
max-width: 60rem;
margin: auto;
}
.mpj-main-content-wide {
margin: .5rem;
}
@media screen and (max-width: 21rem) {
.mpj-main-content-wide {
margin: 0;
}
} }
.mpj-request-text { .mpj-request-text {
white-space: pre-line; white-space: pre-line;
} }
.bg-mpj { .mpj-request-log {
width: 100%;
}
.mpj-request-log thead th {
border-top: solid 1px lightgray;
border-bottom: solid 2px lightgray;
text-align: left;
}
.mpj-request-log tbody td {
border-bottom: dotted 1px lightgray;
vertical-align: top;
}
.mpj-bg {
background-image: -webkit-gradient(linear, left top, left bottom, from(#050), to(whitesmoke)); background-image: -webkit-gradient(linear, left top, left bottom, from(#050), to(whitesmoke));
background-image: -webkit-linear-gradient(top, #050, whitesmoke); background-image: -webkit-linear-gradient(top, #050, whitesmoke);
background-image: -moz-linear-gradient(top, #050, whitesmoke); background-image: -moz-linear-gradient(top, #050, whitesmoke);
background-image: linear-gradient(to bottom, #050, whitesmoke); background-image: linear-gradient(to bottom, #050, whitesmoke);
} }
.mpj-text-center {
text-align: center;
}
.mpj-text-nowrap {
white-space: nowrap;
}
.mpj-text-right {
text-align: right;
color: rgba(0, 0, 0, .60);
}
.mpj-muted-text {
color: rgba(0, 0, 0, .60);
}
.mpj-margin {
margin-left: 1rem;
margin-right: 1rem;
}
</style> </style>

View File

@ -1,5 +1,5 @@
<template lang="pug"> <template lang="pug">
article article.mpj-main-content(role='main')
page-title(title='Answered Requests') page-title(title='Answered Requests')
p(v-if='!loaded') Loading answered requests... p(v-if='!loaded') Loading answered requests...
div(v-if='loaded').mpj-answered-list div(v-if='loaded').mpj-answered-list
@ -9,12 +9,12 @@ article
| {{ req.text }} | {{ req.text }}
br br
br br
b-btn(:to='{ name: "AnsweredDetail", params: { id: req.requestId }}' router-link(:to='{ name: "AnsweredDetail", params: { id: req.requestId }}'
size='sm' role='button'
variant='outline-secondary') title='View Full Request')
icon(name='search') md-icon(icon='description')
= ' View Full Request' = ' View Full Request'
small.text-muted: em. small.mpj-muted-text: em.
&nbsp; Answered #[date-from-now(:value='req.asOf')] &nbsp; Answered #[date-from-now(:value='req.asOf')]
</template> </template>

View File

@ -1,16 +1,23 @@
<template lang="pug"> <template lang="pug">
article article.mpj-main-content(role='main')
page-title(title='Answered Request') page-title(title='Answered Request')
p(v-if='!request') Loading request...
template(v-if='request') template(v-if='request')
p. p.
Answered {{ formatDate(answered) }} (#[date-from-now(:value='answered')]) &nbsp; Answered {{ formatDate(answered) }} (#[date-from-now(:value='answered')]) &nbsp;
#[small: em.text-muted prayed {{ prayedCount }} times, open {{ openDays }} days] #[small: em.mpj-muted-text prayed {{ prayedCount }} times, open {{ openDays }} days]
p.mpj-request-text {{ lastText }} p.mpj-request-text {{ lastText }}
b-table(small hover :fields='fields' :items='log') br
template(slot='action' scope='data'). table.mpj-request-log
{{ data.item.status }} on #[span.text-nowrap {{ formatDate(data.item.asOf) }}] thead
template(slot='text' scope='data' v-if='data.item.text') {{ data.item.text.fields[0] }} tr
th Action
th Update / Notes
tbody
tr(v-for='item in log' :key='item.asOf')
td {{ item.status }} on #[span.mpj-text-nowrap {{ formatDate(item.asOf) }}]
td(v-if='item.text').mpj-request-text {{ item.text.fields[0] }}
td(v-else) &nbsp;
p(v-else) Loading request...
</template> </template>
<script> <script>
@ -32,11 +39,7 @@ export default {
}, },
data () { data () {
return { return {
request: null, request: null
fields: [
{ key: 'action', label: 'Action' },
{ key: 'text', label: 'Update / Notes' }
]
} }
}, },
computed: { computed: {

View File

@ -1,5 +1,5 @@
<template lang="pug"> <template lang="pug">
article article.mpj-main-content(role='main')
page-title(title='Welcome!' page-title(title='Welcome!'
hideOnPage='true') hideOnPage='true')
p &nbsp; p &nbsp;

View File

@ -1,11 +1,11 @@
<template lang="pug"> <template lang="pug">
article article.mpj-main-content-wide(role='main')
page-title(:title='title') page-title(:title='title')
p(v-if='isLoadingJournal') Loading your prayer journal... p(v-if='isLoadingJournal') Loading your prayer journal...
template(v-if='!isLoadingJournal') template(v-if='!isLoadingJournal')
new-request new-request
br br
b-row(v-if='journal.length > 0') .mpj-journal(v-if='journal.length > 0')
request-card(v-for='request in journal' request-card(v-for='request in journal'
:key='request.requestId' :key='request.requestId'
:request='request' :request='request'
@ -67,3 +67,11 @@ export default {
} }
} }
</script> </script>
<style>
.mpj-journal {
display: flex;
flex-flow: row wrap;
justify-content: center;
}
</style>

View File

@ -1,25 +1,30 @@
<template lang="pug"> <template lang="pug">
b-navbar(toggleable='sm' nav.mpj-top-nav.mpj-bg(role='menubar')
type='dark' router-link.title(:to="{ name: 'Home' }"
variant='mpj' role='menuitem')
fixed='top')
b-nav-toggle(target='nav_collapse')
b-navbar-brand(to='/')
span(style='font-weight:100;') my span(style='font-weight:100;') my
span(style='font-weight:600;') Prayer span(style='font-weight:600;') Prayer
span(style='font-weight:700;') Journal span(style='font-weight:700;') Journal
b-collapse#nav_collapse(is-nav) router-link(v-if='isAuthenticated'
b-navbar-nav :to="{ name: 'Journal' }"
b-nav-item(v-if='isAuthenticated' role='menuitem') Journal
to='/journal') Journal router-link(v-if='hasSnoozed'
b-nav-item(v-if='hasSnoozed' :to="{ name: 'Snoozed' }"
to='/snoozed') Snoozed role='menuitem') Snoozed
b-nav-item(v-if='isAuthenticated' router-link(v-if='isAuthenticated'
to='/answered') Answered :to="{ name: 'Answered' }"
b-nav-item(v-if='isAuthenticated'): a(@click.stop='logOff()') Log Off role='menuitem') Answered
b-nav-item(v-if='!isAuthenticated'): a(@click.stop='logOn()') Log On a(v-if='isAuthenticated'
b-nav-item(href='https://bit-badger.github.io/myPrayerJournal/' href='#'
role='menuitem'
@click.stop='logOff()') Log Off
a(v-if='!isAuthenticated'
href='#'
role='menuitem'
@click.stop='logOn()') Log On
a(href='https://bit-badger.github.io/myPrayerJournal/'
target='_blank' target='_blank'
role='menuitem'
@click.stop='') Docs @click.stop='') Docs
</template> </template>
@ -27,6 +32,7 @@ b-navbar(toggleable='sm'
'use strict' 'use strict'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import AuthService from '@/auth/AuthService' import AuthService from '@/auth/AuthService'
export default { export default {
@ -54,3 +60,34 @@ export default {
} }
} }
</script> </script>
<style>
.mpj-top-nav {
position: fixed;
display: flex;
flex-flow: row wrap;
align-items: center;
top: 0;
left: 0;
width: 100%;
padding-left: .5rem;
min-height: 50px;
}
.mpj-top-nav a:link,
.mpj-top-nav a:visited {
text-decoration: none;
color: rgba(255, 255, 255, .75);
padding-left: 1rem;
}
.mpj-top-nav a:link.router-link-active,
.mpj-top-nav a:visited.router-link-active,
.mpj-top-nav a:hover {
color: white;
}
.mpj-top-nav .title {
font-size: 1.25rem;
color: white;
padding-left: 1.25rem;
padding-right: 1.25rem;
}
</style>

View File

@ -1,21 +1,19 @@
<template lang="pug"> <template lang="pug">
article article.mpj-main-content(role='main')
page-title(title='Snoozed Requests') page-title(title='Snoozed Requests')
p(v-if='!loaded') Loading journal...
div(v-if='loaded').mpj-snoozed-list div(v-if='loaded').mpj-snoozed-list
p.text-center(v-if='requests.length === 0'): em. p.mpj-text-center(v-if='requests.length === 0'): em.
No snoozed requests found; return to #[router-link(:to='{ name: "Journal" } ') your journal] No snoozed requests found; return to #[router-link(:to='{ name: "Journal" } ') your journal]
p.mpj-snoozed-text(v-for='req in requests' :key='req.requestId') p.mpj-request-text(v-for='req in requests' :key='req.requestId')
| {{ req.text }} | {{ req.text }}
br br
br br
b-btn(@click='cancelSnooze(req.requestId)' button(@click='cancelSnooze(req.requestId)')
size='sm' md-icon(icon='restore')
variant='outline-secondary')
icon(name='times')
= ' Cancel Snooze' = ' Cancel Snooze'
small.text-muted: em. small.mpj-muted-text: em.
&nbsp; Snooze expires #[date-from-now(:value='req.snoozedUntil')] &nbsp; Snooze expires #[date-from-now(:value='req.snoozedUntil')]
p(v-else) Loading journal...
</template> </template>
<script> <script>

View File

@ -0,0 +1,15 @@
<template lang="pug">
i.material-icons(v-html='icon')
</template>
<script>
export default {
name: 'md-icon',
props: {
icon: {
type: String,
required: true
}
}
}
</script>

View File

@ -1,7 +1,7 @@
<template lang="pug"> <template lang="pug">
div div
b-btn(@click='openDialog()' size='sm' variant='primary') button(@click='openDialog()')
icon(name='plus') md-icon(icon='add_box')
| &nbsp; Add a New Request | &nbsp; Add a New Request
b-modal(v-model='showNewVisible' b-modal(v-model='showNewVisible'
header-bg-variant='mpj' header-bg-variant='mpj'
@ -16,8 +16,26 @@ div
v-model='form.requestText' v-model='form.requestText'
:rows='10' :rows='10'
@blur='trimText()') @blur='trimText()')
b-form-group(label='Recurrence')
| After prayer, request reappears
b-radio(v-model='form.recur.typ'
label='Immediately'
value='immediately'
checked='checked'
@click='checkRadios')
b-radio(v-model='form.recur.typ'
label='Every...'
value='other'
@click='checkRadios')
b-input(v-model='form.recur.count'
placeholder='##')
b-select(v-model='form.recur.other')
b-option(value='hours') hours
b-option(value='days') days
b-option(value='weeks') weeks
div.w-100.text-right(slot='modal-footer') div.w-100.text-right(slot='modal-footer')
b-btn(variant='primary' b-btn(variant='primary'
:disabled='!isValid'
@click='saveRequest()') Save @click='saveRequest()') Save
| &nbsp; &nbsp; | &nbsp; &nbsp;
b-btn(variant='outline-secondary' b-btn(variant='outline-secondary'
@ -36,7 +54,12 @@ export default {
return { return {
showNewVisible: false, showNewVisible: false,
form: { form: {
requestText: '' requestText: '',
recur: {
typ: 'immediate',
other: '',
count: ''
}
}, },
formLabelWidth: '120px' formLabelWidth: '120px'
} }
@ -44,6 +67,12 @@ export default {
mounted () { mounted () {
this.$refs.toast.setOptions({ position: 'bottom right' }) this.$refs.toast.setOptions({ position: 'bottom right' })
}, },
computed: {
isValid () {
// TODO disallow submission if recurrence is too long
return true
}
},
methods: { methods: {
closeDialog () { closeDialog () {
this.form.requestText = '' this.form.requestText = ''

View File

@ -1,16 +1,14 @@
<template lang="pug"> <template lang="pug">
b-col(v-if="!isSnoozed" md='6' lg='4')
.mpj-request-card .mpj-request-card
b-card-header.text-center.py-1. header.mpj-card-header.mpj-bg(role='toolbar').
#[b-btn(@click='markPrayed()' variant='outline-primary' title='Pray' size='sm'): icon(name='check')] #[button.pray(@click='markPrayed()' title='Pray' size='sm'): md-icon(icon='done')]
#[b-btn(@click.stop='showEdit()' variant='outline-secondary' title='Edit' size='sm'): icon(name='pencil')] #[button(@click.stop='showEdit()' title='Edit' size='sm'): md-icon(icon='edit')]
#[b-btn(@click.stop='showNotes()' variant='outline-secondary' title='Add Notes' size='sm'): icon(name='file-text-o')] #[button(@click.stop='showNotes()' title='Add Notes' size='sm'): md-icon(icon='comment')]
#[b-btn(@click.stop='showFull()' variant='outline-secondary' title='View Full Request' size='sm'): icon(name='search')] #[button(@click.stop='snooze()' title='Snooze Request' size='sm'): md-icon(icon='schedule')]
#[b-btn(@click.stop='snooze()' variant='outline-secondary' title='Snooze Request' size='sm'): icon(name='clock-o')] div
b-card-body.p-0 p.card-text.mpj-request-text
p.card-text.mpj-request-text.mb-1.px-3.pt-3
| {{ request.text }} | {{ request.text }}
p.card-text.p-0.pr-1.text-right: small.text-muted: em p.as-of.mpj-text-right: small.mpj-muted-text: em
= '(last activity ' = '(last activity '
date-from-now(:value='request.asOf') date-from-now(:value='request.asOf')
| ) | )
@ -29,8 +27,8 @@ export default {
events: { required: true } events: { required: true }
}, },
computed: { computed: {
isSnoozed () { shouldDisplay () {
return Date.now() < this.request.snoozedUntil return Date.now() >= this.request.showAfter
} }
}, },
methods: { methods: {
@ -63,6 +61,39 @@ export default {
.mpj-request-card { .mpj-request-card {
border: solid 1px darkgray; border: solid 1px darkgray;
border-radius: 5px; border-radius: 5px;
margin-bottom: 15px; width: 20rem;
margin: .5rem;
}
@media screen and (max-width: 20rem) {
.mpj-request-card {
width: 100%;
}
}
.mpj-card-header {
display: flex;
flex-flow: row;
justify-content: center;
}
.mpj-card-header button {
background-color: rgba(255, 255, 255, .75);
border-radius: .25rem;
margin: .25rem;
border: solid #050 1px;
font-size: .8rem;
}
.mpj-card-header button:hover {
cursor: pointer;
background-color: white;
color: #050;
}
.mpj-card-header button.pray {
background-color: white;
}
.mpj-request-card .card-text {
margin-left: 1rem;
margin-right: 1rem;
}
.mpj-request-card .as-of {
margin-right: .25rem;
} }
</style> </style>

View File

@ -1,33 +1,20 @@
// The Vue build version to load with the `import` command // The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue' import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
import Icon from 'vue-awesome/components/Icon'
import VueProgressBar from 'vue-progressbar' import VueProgressBar from 'vue-progressbar'
import VueToast from 'vue-toast' import VueToast from 'vue-toast'
import 'bootstrap-vue/dist/bootstrap-vue.css'
import 'bootstrap/dist/css/bootstrap.css'
import 'vue-toast/dist/vue-toast.min.css' import 'vue-toast/dist/vue-toast.min.css'
// Only import the icons we need; the whole set is ~500K!
import 'vue-awesome/icons/check'
import 'vue-awesome/icons/clock-o'
import 'vue-awesome/icons/file-text-o'
import 'vue-awesome/icons/pencil'
import 'vue-awesome/icons/plus'
import 'vue-awesome/icons/search'
import 'vue-awesome/icons/times'
import App from './App' import App from './App'
import router from './router' import router from './router'
import store from './store' import store from './store'
import DateFromNow from './components/common/DateFromNow' import DateFromNow from './components/common/DateFromNow'
import MaterialDesignIcon from './components/common/MaterialDesignIcon'
import PageTitle from './components/common/PageTitle' import PageTitle from './components/common/PageTitle'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(BootstrapVue)
Vue.use(VueProgressBar, { Vue.use(VueProgressBar, {
color: 'yellow', color: 'yellow',
failedColor: 'red', failedColor: 'red',
@ -39,8 +26,8 @@ Vue.use(VueProgressBar, {
} }
}) })
Vue.component('icon', Icon)
Vue.component('date-from-now', DateFromNow) Vue.component('date-from-now', DateFromNow)
Vue.component('md-icon', MaterialDesignIcon)
Vue.component('page-title', PageTitle) Vue.component('page-title', PageTitle)
Vue.component('toast', VueToast) Vue.component('toast', VueToast)

View File

@ -811,14 +811,6 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0" babel-runtime "^6.22.0"
babel-types "^6.24.1" babel-types "^6.24.1"
babel-polyfill@6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d"
dependencies:
babel-runtime "^6.22.0"
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
babel-preset-env@^1.3.2: babel-preset-env@^1.3.2:
version "1.7.0" version "1.7.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
@ -1051,19 +1043,6 @@ boom@5.x.x:
dependencies: dependencies:
hoek "4.x.x" hoek "4.x.x"
bootstrap-vue@^1.0.0-beta.9:
version "1.5.1"
resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-1.5.1.tgz#0baa713d3b34a6c39197323f93989f7af55bc286"
dependencies:
lodash.startcase "^4.4.0"
opencollective "^1.0.3"
popper.js "^1.12.9"
vue-functional-data-merge "^2.0.3"
bootstrap@^4.0.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.1.tgz#3aec85000fa619085da8d2e4983dfd67cf2114cb"
brace-expansion@^1.0.0, brace-expansion@^1.1.7: brace-expansion@^1.0.0, brace-expansion@^1.1.7:
version "1.1.11" version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@ -1324,7 +1303,7 @@ chai@^3.5.0:
deep-eql "^0.1.3" deep-eql "^0.1.3"
type-detect "^1.0.0" type-detect "^1.0.0"
chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3" version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies: dependencies:
@ -1348,10 +1327,6 @@ character-parser@^2.1.1:
dependencies: dependencies:
is-regex "^1.0.3" is-regex "^1.0.3"
chardet@^0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
check-types@^7.3.0: check-types@^7.3.0:
version "7.3.0" version "7.3.0"
resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d"
@ -2249,12 +2224,6 @@ encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
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, end-of-stream@^1.1.0: end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
@ -2678,14 +2647,6 @@ extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
dependencies:
chardet "^0.4.0"
iconv-lite "^0.4.17"
tmp "^0.0.33"
extglob@^0.3.1: extglob@^0.3.1:
version "0.3.2" version "0.3.2"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
@ -2760,12 +2721,6 @@ figures@^1.3.5:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
object-assign "^4.1.0" object-assign "^4.1.0"
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
file-entry-cache@^2.0.0: file-entry-cache@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
@ -3426,7 +3381,7 @@ iconv-lite@0.4.19:
version "0.4.19" version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
iconv-lite@0.4.23, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: iconv-lite@0.4.23, iconv-lite@^0.4.4:
version "0.4.23" version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
dependencies: dependencies:
@ -3513,24 +3468,6 @@ inject-loader@^3.0.1:
dependencies: dependencies:
babel-core "~6" babel-core "~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: inquirer@^0.12.0:
version "0.12.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
@ -3786,7 +3723,7 @@ is-primitive@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
is-promise@^2.0.0, is-promise@^2.1.0: is-promise@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
@ -4311,10 +4248,6 @@ lodash.rest@^4.0.0:
version "4.0.5" version "4.0.5"
resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa"
lodash.startcase@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8"
lodash.uniq@^4.5.0: lodash.uniq@^4.5.0:
version "4.5.0" version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
@ -4671,10 +4604,6 @@ mute-stream@0.0.5:
version "0.0.5" version "0.0.5"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
nan@^2.9.2: nan@^2.9.2:
version "2.10.0" version "2.10.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
@ -4749,13 +4678,6 @@ no-case@^2.2.0:
dependencies: dependencies:
lower-case "^1.1.1" lower-case "^1.1.1"
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-libs-browser@^2.0.0: node-libs-browser@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
@ -4943,28 +4865,10 @@ onetime@^2.0.0:
dependencies: dependencies:
mimic-fn "^1.0.0" mimic-fn "^1.0.0"
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"
opener@^1.4.3: opener@^1.4.3:
version "1.4.3" version "1.4.3"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
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"
opn@^5.1.0: opn@^5.1.0:
version "5.3.0" version "5.3.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c"
@ -5267,10 +5171,6 @@ pluralize@^1.2.1:
version "1.2.1" version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
popper.js@^1.12.9:
version "1.14.3"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095"
posix-character-classes@^0.1.0: posix-character-classes@^0.1.0:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@ -5927,10 +5827,6 @@ regenerate@^1.2.1:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
regenerator-runtime@^0.10.0:
version "0.10.5"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
regenerator-runtime@^0.11.0: regenerator-runtime@^0.11.0:
version "0.11.1" version "0.11.1"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
@ -6134,12 +6030,6 @@ run-async@^0.1.0:
dependencies: dependencies:
once "^1.3.0" once "^1.3.0"
run-async@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
is-promise "^2.1.0"
run-queue@^1.0.0, run-queue@^1.0.3: run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
@ -6150,10 +6040,6 @@ rx-lite@^3.1.2:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
rx@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
safe-buffer@5.1.1: safe-buffer@5.1.1:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@ -6772,7 +6658,7 @@ tmp@0.0.31:
dependencies: dependencies:
os-tmpdir "~1.0.1" os-tmpdir "~1.0.1"
tmp@0.0.x, tmp@^0.0.33: tmp@0.0.x:
version "0.0.33" version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies: dependencies:
@ -7063,14 +6949,6 @@ void-elements@^2.0.0, void-elements@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
vue-awesome@^2.3.3:
version "2.3.5"
resolved "https://registry.yarnpkg.com/vue-awesome/-/vue-awesome-2.3.5.tgz#fe7fcf185cff794cb37a3c45d16eeb851e94fd9c"
vue-functional-data-merge@^2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-2.0.6.tgz#f08055adfb92458debcf2ad10c3aa712277f7fc2"
vue-hot-reload-api@^2.1.0: vue-hot-reload-api@^2.1.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926"