add accordion dynamic tabs support with v-for directive
parent
ae10ecfb8f
commit
2a39a97633
|
@ -98,11 +98,24 @@ export default {
|
|||
getHeaderIcon(i) {
|
||||
const active = this.isTabActive(i);
|
||||
return ['p-accordion-toggle-icon pi', {'pi-chevron-right': !active, 'pi-chevron-down': active}];
|
||||
},
|
||||
childIsAccordionTab(child) {
|
||||
return child.type.name === 'accordiontab'
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
tabs() {
|
||||
return this.$slots.default().filter(child => child.type.name === 'accordiontab');
|
||||
const tabs = []
|
||||
this.$slots.default().forEach(child => {
|
||||
if (this.childIsAccordionTab(child)) tabs.push(child)
|
||||
else if (child.children.length > 0)
|
||||
child.children.forEach(nestedChild => {
|
||||
if (this.childIsAccordionTab(nestedChild)) tabs.push(nestedChild)
|
||||
})
|
||||
}
|
||||
)
|
||||
return tabs
|
||||
},
|
||||
ariaId() {
|
||||
return UniqueComponentId();
|
||||
|
@ -128,4 +141,4 @@ export default {
|
|||
.p-accordion-header-text {
|
||||
line-height: 1;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
|
Loading…
Reference in New Issue