renderItem method
Implementation
dynamic renderItem(AccordionItem item, int itemIndex) {
var expanded = item.expanded;
if (!expanded && expandIndex != null) {
expanded = itemIndex == expandIndex ||
(expandIndex! < 0 && itemIndex == items.length + expandIndex!);
}
return $div(
classes: ['card', item.classes],
style: item.style,
content: [
$div(
id: '$id-heading-$itemIndex',
classes: ['card-header', item.headClasses],
style: item.headStyle,
content: $tag('h2',
classes: 'mb-0',
content: $button(
classes:
'd-flex w-100 align-items-center justify-content-between btn btn-link ${expanded ? '' : 'collapsed'}',
attributes: {
'data-toggle': 'collapse',
'data-target': '#$id-collapse-$itemIndex',
'aria-expanded': '$expanded',
'aria-controls': '$id-collapse-$itemIndex'
},
content: item.title))),
$div(
id: '$id-collapse-$itemIndex',
classes: [
'card-body',
'collapse ${expanded ? 'show' : ''}',
item.bodyClasses
],
style: item.bodyStyle,
attributes: {
'aria-labelledby': '$id-heading-$itemIndex',
'data-parent': '#$id'
},
content: item.content),
]);
}