Skip to content

feat(core): create configurable base global configuration #2905

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 253 commits into from
Mar 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
253 commits
Select commit Hold shift + click to select a range
3404dc2
Update form-group.js
tmorehouse Mar 23, 2019
286fe14
Update config.js
tmorehouse Mar 23, 2019
fb6117b
Create config.spec.js
tmorehouse Mar 23, 2019
e8bad3a
Update config.spec.js
tmorehouse Mar 23, 2019
ae21764
Update config.js
tmorehouse Mar 23, 2019
370dc99
Update config.js
tmorehouse Mar 23, 2019
4edaea1
Update config.js
tmorehouse Mar 23, 2019
481ba54
Update config.js
tmorehouse Mar 23, 2019
668f6aa
lint
tmorehouse Mar 23, 2019
eda3572
Update config.spec.js
tmorehouse Mar 23, 2019
c7d0f37
Update config.spec.js
tmorehouse Mar 23, 2019
4354c2b
Update componentdoc.vue
tmorehouse Mar 23, 2019
fb9061d
Update componentdoc.vue
tmorehouse Mar 23, 2019
01a3345
Update componentdoc.vue
tmorehouse Mar 23, 2019
b57bc4f
Update componentdoc.vue
tmorehouse Mar 23, 2019
222ba07
Update form-group.js
tmorehouse Mar 23, 2019
1d4d46f
Update componentdoc.vue
tmorehouse Mar 23, 2019
707b424
Update componentdoc.vue
tmorehouse Mar 23, 2019
0427412
Update mixin-filtering.js
tmorehouse Mar 23, 2019
3e0d800
lint
tmorehouse Mar 23, 2019
8c36db6
Update mixin-filtering.js
tmorehouse Mar 23, 2019
e4d5d21
Update mixin-filtering.js
tmorehouse Mar 23, 2019
bf0e5d8
Update config.js
tmorehouse Mar 23, 2019
d696443
Update config.spec.js
tmorehouse Mar 23, 2019
0347bf1
Update alert.js
tmorehouse Mar 23, 2019
428d515
Update badge.js
tmorehouse Mar 23, 2019
d6cbbdd
Update button.js
tmorehouse Mar 23, 2019
bab7b5f
Update config.js
tmorehouse Mar 23, 2019
7cc7a66
Update button-close.js
tmorehouse Mar 23, 2019
8f45b2f
Update button-close.js
tmorehouse Mar 23, 2019
11654a6
Update button.js
tmorehouse Mar 23, 2019
ea8f046
Update badge.js
tmorehouse Mar 23, 2019
cc1a6a5
Update alert.js
tmorehouse Mar 23, 2019
a710db7
Update form-group.js
tmorehouse Mar 23, 2019
59a00cf
Update dropdown.js
tmorehouse Mar 23, 2019
8384072
Update img.js
tmorehouse Mar 24, 2019
6f9139e
Update config.js
tmorehouse Mar 24, 2019
91d121c
Update img-lazy.js
tmorehouse Mar 24, 2019
c5bee2f
Update config.js
tmorehouse Mar 24, 2019
7a9c8af
Update modal.js
tmorehouse Mar 24, 2019
3d00144
Update navbar.js
tmorehouse Mar 24, 2019
7e5c551
Update config.js
tmorehouse Mar 24, 2019
7281356
Update form-file.js
tmorehouse Mar 24, 2019
2e8ff5b
Update index.js
tmorehouse Mar 24, 2019
c286e27
Update index.js
tmorehouse Mar 24, 2019
397d6d4
Update index.js
tmorehouse Mar 24, 2019
f1d50a1
Update index.js
tmorehouse Mar 24, 2019
096eb60
lint
tmorehouse Mar 24, 2019
fd615e4
Update config.js
tmorehouse Mar 24, 2019
e71aef3
Update config.js
tmorehouse Mar 24, 2019
a085370
Update config.js
tmorehouse Mar 24, 2019
b7df3e5
Update button-close.js
tmorehouse Mar 24, 2019
bc7d86b
Update config.js
tmorehouse Mar 24, 2019
1ea82c7
Update bootstrap-vue.js
tmorehouse Mar 24, 2019
1a03540
Update bootstrap-vue.js
tmorehouse Mar 24, 2019
b14fd5a
Update index.js
tmorehouse Mar 24, 2019
0790147
Update bootstrap-vue.js
tmorehouse Mar 24, 2019
1bdd8b8
Update bootstrap-vue.js
tmorehouse Mar 24, 2019
f204f12
Update col.js
tmorehouse Mar 24, 2019
1cb0a70
Update col.js
tmorehouse Mar 24, 2019
2ea2ee9
Update col.js
tmorehouse Mar 24, 2019
8bb146c
Update componentdoc.vue
tmorehouse Mar 24, 2019
a92745d
Update componentdoc.vue
tmorehouse Mar 24, 2019
c9e9570
Update componentdoc.vue
tmorehouse Mar 24, 2019
f393bfe
Update col.js
tmorehouse Mar 24, 2019
8fbee55
Update componentdoc.vue
tmorehouse Mar 24, 2019
721c225
Update config.js
tmorehouse Mar 24, 2019
7889590
Update config.js
tmorehouse Mar 24, 2019
aa7672c
Update componentdoc.vue
tmorehouse Mar 24, 2019
3094a28
Update componentdoc.vue
tmorehouse Mar 24, 2019
74f0385
Update componentdoc.vue
tmorehouse Mar 24, 2019
1e4bbe0
Update col.js
tmorehouse Mar 24, 2019
25ccc23
Update form-group.js
tmorehouse Mar 24, 2019
cdcd034
Update form-group.js
tmorehouse Mar 24, 2019
ee181e1
Update form-group.js
tmorehouse Mar 24, 2019
81f5c15
Update componentdoc.vue
tmorehouse Mar 24, 2019
cc23771
Update config.js
tmorehouse Mar 24, 2019
e939d1a
Update alert.js
tmorehouse Mar 24, 2019
7a8c91f
Update componentdoc.vue
tmorehouse Mar 24, 2019
fdd08f6
Update componentdoc.vue
tmorehouse Mar 24, 2019
1010eb9
Update badge.js
tmorehouse Mar 24, 2019
ba2dcbc
Update button-close.js
tmorehouse Mar 24, 2019
800f3a1
Update button.js
tmorehouse Mar 24, 2019
54d2d6c
Update config.js
tmorehouse Mar 24, 2019
0722de2
Update dropdown.js
tmorehouse Mar 24, 2019
2d07890
Update form-file.js
tmorehouse Mar 24, 2019
6cf3812
Update img-lazy.js
tmorehouse Mar 24, 2019
f794993
Update img.js
tmorehouse Mar 24, 2019
a59cf5c
Update modal.js
tmorehouse Mar 24, 2019
d5b50dc
Update index.js
tmorehouse Mar 24, 2019
1b13480
Update config.spec.js
tmorehouse Mar 24, 2019
205b5e4
Update config.js
tmorehouse Mar 24, 2019
5492dc1
Update config.js
tmorehouse Mar 24, 2019
2e349fe
Update index.js
tmorehouse Mar 24, 2019
6b17962
Update plugins.js
tmorehouse Mar 24, 2019
7c91670
Update plugins.js
tmorehouse Mar 24, 2019
12ce242
Update index.js
tmorehouse Mar 24, 2019
fbc26f5
Update index.js
tmorehouse Mar 24, 2019
fcc8e31
Update index.js
tmorehouse Mar 24, 2019
1504655
Update index.js
tmorehouse Mar 24, 2019
4cf3db9
Update index.js
tmorehouse Mar 24, 2019
96926a8
Update index.js
tmorehouse Mar 24, 2019
ce7d9d7
Update index.js
tmorehouse Mar 24, 2019
3827796
Update index.js
tmorehouse Mar 24, 2019
f1a8b0e
Update index.js
tmorehouse Mar 24, 2019
380aad2
Update index.js
tmorehouse Mar 24, 2019
d8b1401
Update index.js
tmorehouse Mar 24, 2019
cc142a2
Update index.js
tmorehouse Mar 24, 2019
47ebe53
Update index.js
tmorehouse Mar 24, 2019
3bc0c14
Update index.js
tmorehouse Mar 24, 2019
4f523e4
Update index.js
tmorehouse Mar 24, 2019
55fcd71
Update index.js
tmorehouse Mar 24, 2019
dd5a46a
Update index.js
tmorehouse Mar 24, 2019
3b1537c
Update index.js
tmorehouse Mar 24, 2019
ed7721f
Update index.js
tmorehouse Mar 24, 2019
b7ec496
Update index.js
tmorehouse Mar 24, 2019
a3c7f3f
Update index.js
tmorehouse Mar 24, 2019
5e74c35
Update index.js
tmorehouse Mar 24, 2019
03aef88
Update index.js
tmorehouse Mar 24, 2019
0aa72f3
Update index.js
tmorehouse Mar 24, 2019
1fe4b5e
Update index.js
tmorehouse Mar 24, 2019
bf05bd3
Update index.js
tmorehouse Mar 24, 2019
d499b75
Update index.js
tmorehouse Mar 24, 2019
7361805
Update plugins.js
tmorehouse Mar 24, 2019
454a318
Update index.js
tmorehouse Mar 24, 2019
a5e16f1
Update index.js
tmorehouse Mar 24, 2019
f56319d
Update index.js
tmorehouse Mar 24, 2019
c7e86a9
Update index.js
tmorehouse Mar 24, 2019
5613400
Update index.js
tmorehouse Mar 24, 2019
68cc6c8
Update index.js
tmorehouse Mar 24, 2019
73789af
Update index.js
tmorehouse Mar 24, 2019
f076fe9
Update index.js
tmorehouse Mar 24, 2019
f984f21
Update index.js
tmorehouse Mar 24, 2019
555ec04
Update index.js
tmorehouse Mar 24, 2019
8212537
Update index.js
tmorehouse Mar 24, 2019
38f9ccc
Update index.js
tmorehouse Mar 24, 2019
84e470c
Update index.js
tmorehouse Mar 24, 2019
cefc1f6
Update index.js
tmorehouse Mar 24, 2019
60c3127
Update index.js
tmorehouse Mar 24, 2019
77906a1
Update index.js
tmorehouse Mar 24, 2019
3ebfa86
Update index.js
tmorehouse Mar 24, 2019
b464585
Update index.js
tmorehouse Mar 24, 2019
bc06647
Update index.js
tmorehouse Mar 24, 2019
ec96434
Update index.js
tmorehouse Mar 24, 2019
be05366
Update index.js
tmorehouse Mar 24, 2019
72d9a69
Update index.js
tmorehouse Mar 24, 2019
e06a25c
Update index.js
tmorehouse Mar 24, 2019
8b292b3
Update index.js
tmorehouse Mar 24, 2019
837bea7
Update index.js
tmorehouse Mar 24, 2019
efcff3f
Update README.md
tmorehouse Mar 24, 2019
7db0b49
Update index.js
tmorehouse Mar 24, 2019
7d82444
Create anchored-heading.js
tmorehouse Mar 24, 2019
c0be116
Update componentdoc.vue
tmorehouse Mar 24, 2019
4f40f70
Update importdoc.vue
tmorehouse Mar 24, 2019
69564c7
Update anchored-heading.js
tmorehouse Mar 24, 2019
5188321
Update config.js
tmorehouse Mar 24, 2019
31f512f
Update form-text.js
tmorehouse Mar 24, 2019
40b6dad
Update config.js
tmorehouse Mar 24, 2019
2e5b0ab
Update card-sub-title.js
tmorehouse Mar 24, 2019
f7e29c2
Update config.js
tmorehouse Mar 24, 2019
8251024
Update _slug.vue
tmorehouse Mar 24, 2019
14d1232
Update _slug.vue
tmorehouse Mar 24, 2019
746c1aa
Update anchored-heading.js
tmorehouse Mar 24, 2019
d037d1e
Update _slug.vue
tmorehouse Mar 24, 2019
3cc4bee
Update _slug.vue
tmorehouse Mar 24, 2019
bcaa05c
Update _slug.vue
tmorehouse Mar 24, 2019
30af046
Update componentdoc.vue
tmorehouse Mar 24, 2019
4d8ef22
Update importdoc.vue
tmorehouse Mar 24, 2019
b25e642
Update _slug.vue
tmorehouse Mar 24, 2019
8d870a5
Update _slug.vue
tmorehouse Mar 24, 2019
6bb8fd6
Update importdoc.vue
tmorehouse Mar 24, 2019
5ce2fd8
Update index.js
tmorehouse Mar 25, 2019
6514566
Add `cloneDeep()` util
jacobmllr95 Mar 25, 2019
b053925
Merge branch 'tmorehouse/config' of https://github.com/bootstrap-vue/…
jacobmllr95 Mar 25, 2019
74279e6
Update index.js
tmorehouse Mar 25, 2019
73d7ce4
Merge branch 'dev' into tmorehouse/config
tmorehouse Mar 25, 2019
a221198
Update README.md
tmorehouse Mar 25, 2019
67829fb
Update index.js
tmorehouse Mar 25, 2019
5f30e16
Update _slug.vue
tmorehouse Mar 25, 2019
9d44b0f
Update _slug.vue
tmorehouse Mar 25, 2019
a052edc
Update _slug.vue
tmorehouse Mar 25, 2019
3ae2407
Update _slug.vue
tmorehouse Mar 25, 2019
d5d9e0b
Update _slug.vue
tmorehouse Mar 25, 2019
4093972
Update _slug.vue
tmorehouse Mar 25, 2019
ab0579e
Update _slug.vue
tmorehouse Mar 25, 2019
6940c76
Update _slug.vue
tmorehouse Mar 25, 2019
ed240dc
Update _slug.vue
tmorehouse Mar 25, 2019
77bbfc9
Update _slug.vue
tmorehouse Mar 25, 2019
4f7d7af
Update _slug.vue
tmorehouse Mar 25, 2019
8ee31a7
Update _slug.vue
tmorehouse Mar 25, 2019
0459993
Update README.md
tmorehouse Mar 25, 2019
fc70f78
Update README.md
tmorehouse Mar 25, 2019
d2156f7
Update index.js
tmorehouse Mar 25, 2019
423b43f
Update plugin.template.js
tmorehouse Mar 25, 2019
e9b48f4
Update README.md
tmorehouse Mar 25, 2019
b6f4477
Update plugin.template.js
tmorehouse Mar 25, 2019
229ba73
Update clone-deep.spec.js
tmorehouse Mar 25, 2019
a7f90cf
config mathod name improvements and code cleanup
jacobmllr95 Mar 25, 2019
0f87824
make component imports all PascalCase
jacobmllr95 Mar 25, 2019
25a5f10
Merge branch 'dev' into tmorehouse/config
jacobmllr95 Mar 25, 2019
bfee9cd
Update componentdoc.vue
tmorehouse Mar 25, 2019
7edf2cf
Update componentdoc.vue
tmorehouse Mar 25, 2019
d93a0bc
Merge branch 'dev' into tmorehouse/config
tmorehouse Mar 25, 2019
9a07748
Update tabs.js
tmorehouse Mar 25, 2019
1bee717
Update carousel.js
tmorehouse Mar 25, 2019
090646c
Update form-file.js
tmorehouse Mar 25, 2019
5b80c10
Update form-select.js
tmorehouse Mar 25, 2019
3a27618
Update pagination.js
tmorehouse Mar 25, 2019
736ef2a
Update componentdoc.vue
tmorehouse Mar 25, 2019
b2bda86
Update README.md
tmorehouse Mar 25, 2019
60aace9
Update importdoc.vue
tmorehouse Mar 25, 2019
535a514
importdoc.vue: fix plugin import path
tmorehouse Mar 25, 2019
63219d2
Update README.md
tmorehouse Mar 25, 2019
511c787
Update README.md
tmorehouse Mar 25, 2019
847d1d9
Update meta.json
tmorehouse Mar 25, 2019
2d87ab1
Create modal-defaults.spec.js
tmorehouse Mar 25, 2019
4f15163
Update modal-defaults.spec.js
tmorehouse Mar 25, 2019
ccd117d
Merge branch 'dev' into tmorehouse/config
tmorehouse Mar 25, 2019
9f1fa19
Update config.js
tmorehouse Mar 25, 2019
93db9bf
Update config.js
tmorehouse Mar 25, 2019
6faba76
lint
tmorehouse Mar 25, 2019
9ab6a12
Update config.js
tmorehouse Mar 25, 2019
86822a7
Update config.spec.js
tmorehouse Mar 25, 2019
f30c1f0
Update config.js
tmorehouse Mar 25, 2019
a6e7d62
config.js: add in warnings for unknown/invalid config properties
tmorehouse Mar 25, 2019
4478dd5
Update config.js
tmorehouse Mar 25, 2019
c9e4027
Update config.js
tmorehouse Mar 25, 2019
5e053c3
Update config.spec.js
tmorehouse Mar 25, 2019
2f2722c
lint
tmorehouse Mar 25, 2019
93d72d9
Update config.spec.js
tmorehouse Mar 25, 2019
bfee866
Update config.spec.js
tmorehouse Mar 25, 2019
4511fdd
Create tsconfig.json
tmorehouse Mar 25, 2019
384a74e
Update config.spec.js
tmorehouse Mar 25, 2019
cea8020
Delete tsconfig.json
tmorehouse Mar 25, 2019
0f6a355
Update config.spec.js
tmorehouse Mar 25, 2019
c6c0ee5
Update README.md
tmorehouse Mar 25, 2019
df14291
Create bv-config.js
tmorehouse Mar 25, 2019
2b1de76
Update plugin.template.js
tmorehouse Mar 25, 2019
c7c2592
Update README.md
tmorehouse Mar 25, 2019
4774079
Update config.spec.js
tmorehouse Mar 25, 2019
6d088af
Update README.md
tmorehouse Mar 25, 2019
8c830f3
Update docs.vue
tmorehouse Mar 25, 2019
0716e70
Update index.js
tmorehouse Mar 25, 2019
b1dc4ae
Update README.md
tmorehouse Mar 25, 2019
924f7b8
Merge branch 'dev' into tmorehouse/config
tmorehouse Mar 25, 2019
90d345d
Update config.js
jacobmllr95 Mar 25, 2019
9eb0e3a
prettify
jacobmllr95 Mar 25, 2019
a55eb65
Update componentdoc.vue
jacobmllr95 Mar 25, 2019
2d3d731
Update importdoc.vue
jacobmllr95 Mar 25, 2019
da1344f
Update componentdoc.vue
tmorehouse Mar 25, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/components/anchored-heading.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
export default {
props: {
level: {
type: [Number, String],
default: 2
},
id: {
type: String,
default: ''
}
},
render(h) {
const $anchor = h(
'b-link',
{
staticClass: 'anchorjs-link',
attrs: { to: { hash: `#${this.id}` }, 'aria-label': 'Anchor' }
},
[h(false)]
)
const $content = h('span', { staticClass: 'bd-content-title' }, [this.$slots.default, $anchor])
return h(`h${this.level}`, { attrs: { id: this.id, tabindex: '-1' } }, [$content])
}
}
165 changes: 116 additions & 49 deletions docs/components/componentdoc.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
>
<b-row tag="header" align-v="center">
<b-col sm="9">
<h2 :id="`comp-ref-${componentName}`"><code>{{ tag }}</code></h2>
<anchored-heading :id="`comp-ref-${componentName}`" level="2">
<code>{{ tag }}</code>
</anchored-heading>
</b-col>
<b-col sm="3" class="text-sm-right">
<b-btn variant="outline-secondary" size="sm" :href="githubURL" target="_blank">
Expand All @@ -15,30 +17,66 @@
</b-row>

<article v-if="aliases && aliases.length > 0">
<h4 :id="`comp-ref-${componentName}-aliases`">Component aliases</h4>
<anchored-heading :id="`comp-ref-${componentName}-aliases`" level="4">
Component aliases
</anchored-heading>
<p><code>{{ tag }}</code> can also be used via the following aliases:</p>
<ul>
<li v-for="alias in aliases" :key="alias"><code>&lt;{{ kebabCase(alias) }}&gt;</code></li>
</ul>
</article>

<article v-if="propsItems && propsItems.length > 0">
<h4 :id="`comp-ref-${componentName}-props`">Properties</h4>
<anchored-heading :id="`comp-ref-${componentName}-props`" level="4">
Properties
</anchored-heading>
<b-table
:items="propsItems"
:fields="propsFields"
small
head-variant="default"
striped
>
<template slot="default" slot-scope="field">
<code v-if="field.value">{{ field.value }}</code>
<template slot="prop" slot-scope="{ value }">
<code>{{ value }}</code>
</template>
<template slot="row-details" slot-scope="{ item }">
<b-badge variant="warning">
{{ typeof item.deprecated === 'string' ? 'deprecation' : 'deprecated' }}
</b-badge>
<!-- if deprecated is a string, show the string value -->
<small v-if="typeof item.deprecated === 'string'">{{ item.deprecated }}</small>
</template>
<template slot="defaultValue" slot-scope="{ value }">
<code v-if="value">{{ value }}</code>
</template>
</b-table>

<template v-if="componentVModel">
<anchored-heading :id="`comp-ref-${componentName}-v-model`" level="4">
V-Model
</anchored-heading>
<b-table
:items="[componentVModel]"
:fields="['prop', 'event']"
small
head-variant="default"
striped
>
<template slot="prop" slot-scope="{ value }">
<code>{{ kebabCase(value) }}</code>
</template>
<template slot="event" slot-scope="{ value }">
<code>{{ value }}</code>
</template>
</b-table>
</template>
</article>

<article v-if="slots && slots.length > 0">
<h4 :id="`comp-ref-${componentName}-slots`">Slots</h4>
<anchored-heading :id="`comp-ref-${componentName}-slots`" level="4">
Slots
</anchored-heading>
<b-table
:items="slots"
:fields="slotsFields"
Expand All @@ -49,28 +87,32 @@
</article>

<article v-if="events && events.length > 0">
<h4 :id="`comp-ref-${componentName}-events`">Events</h4>
<anchored-heading :id="`comp-ref-${componentName}-events`" level="4">
Events
</anchored-heading>
<b-table
:items="events"
:fields="eventsFields"
small
head-variant="default"
striped
>
<template slot="args" slot-scope="field">
<template slot="args" slot-scope="{ value, item }">
<div
v-for="arg in field.value"
:key="`event-${field.item.event}-${arg.arg ? arg.arg : 'none'}`"
v-for="arg in value"
:key="`event-${item.event}-${arg.arg ? arg.arg : 'none'}`"
>
<template v-if="arg.arg"><code>{{ arg.arg }}</code> - </template>
<span v-html="arg.description" />
<span v-html="arg.description"></span>
</div>
</template>
</b-table>
</article>

<article v-if="rootEventListeners && rootEventListeners.length > 0">
<h4 :id="`comp-ref-${componentName}-rootEventListeners`">$root Event Listeners</h4>
<anchored-heading :id="`comp-ref-${componentName}-rootEventListeners`" level="4">
$root Event Listeners
</anchored-heading>
<p>You can control <code>{{ tag }}</code> by emitting the following events on <samp>$root</samp>:</p>
<b-table
:items="rootEventListeners"
Expand All @@ -79,13 +121,13 @@
head-variant="default"
striped
>
<template slot="args" slot-scope="field">
<template slot="args" slot-scope="{ value, item }">
<div
v-for="arg in field.value"
:key="`event-${field.item.event}-${arg.arg ? arg.arg : 'none'}`"
v-for="arg in value"
:key="`event-${item.event}-${arg.arg ? arg.arg : 'none'}`"
>
<template v-if="arg.arg"><code>{{ arg.arg }}</code> - </template>
<span v-html="arg.description" />
<span v-html="arg.description"></span>
</div>
</template>
</b-table>
Expand All @@ -106,8 +148,12 @@ h5 {
<script>
import Vue from 'vue'
import kebabCase from 'lodash/kebabCase'
import AnchoredHeading from './anchored-heading'

export default {
components: {
AnchoredHeading
},
props: {
component: {},
slots: {
Expand All @@ -130,56 +176,73 @@ export default {
computed: {
componentOptions() {
const component = Vue.options.components[this.component]
return component && component.options ? component.options : {}
},
propsFields() {
const component = Vue.options.components[this.component]
let props = []
if (component) {
props = component.options.props
if (!component) {
return {}
}
const hasRequired = props.length > 0 && props.filter(p => p.required).length > 0

const fields = {
prop: { label: 'Property' },
type: { label: 'Type' },
default: { label: 'Default Value' }
let options = {}
if (!component.options && typeof component === 'function') {
// Async component that hans't been resolved yet
component(opts => {
options = opts ? { ...opts } : {}
})
} else {
// Regular component
options = component.options || {}
}

return options
},
componentVModel() {
const model = this.componentOptions.model
if (model && model.prop && model.event) {
return model
} else {
return false
}
},
componentProps() {
return this.componentOptions.props || {}
},
propsFields() {
const props = this.componentProps

const hasRequired = Object.keys(props).some(p => props[p].required)

const fields = [
{ key: 'prop', label: 'Property' },
{ key: 'type', label: 'Type' },
{ key: 'defaultValue', label: 'Default Value' }
]

// Add the required column if there are required field(s)
if (hasRequired) {
fields.required = { label: 'Required' }
// Insert required field after prop name
fields.splice(1, 0, { key: 'required', label: 'Required' })
}

return fields
},
eventsFields() {
return {
event: { label: 'Event' },
args: { label: 'Arguments' },
description: { label: 'Description' }
}
return [
{ key: 'event', label: 'Event' },
{ key: 'args', label: 'Arguments' },
{ key: 'description', label: 'Description' }
]
},
rootEventListenersFields() {
return {
event: { label: 'Event' },
args: { label: 'Arguments' },
description: { label: 'Description' }
}
return [
{ key: 'event', label: 'Event' },
{ key: 'args', label: 'Arguments' },
{ key: 'description', label: 'Description' }
]
},
slotsFields() {
return {
name: { label: 'Slot' },
description: { label: 'Description' }
}
return [{ key: 'name', label: 'Slot' }, { key: 'description', label: 'Description' }]
},
propsItems() {
const component = Vue.options.components[this.component]
if (!component) {
return {}
}
const props = this.componentProps

const props = component.options.props
return Object.keys(props).map(prop => {
const p = props[prop]

Expand Down Expand Up @@ -213,13 +276,17 @@ export default {

// Requied prop?
const required = p.required ? 'Yes' : ''
// Deprecation?
const deprecated = p.deprecated || false

return {
prop: kebabCase(prop),
type,
required,
typeClass,
default: defaultVal
defaultValue: defaultVal,
deprecated,
_showDetails: !!deprecated
}
})
},
Expand Down
Loading