renderItem method

dynamic renderItem(
  1. AccordionItem item,
  2. int itemIndex
)

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),
      ]);
}