<div *ngFor="let configurationGroup of changes; let last=last">
  <material-chips>
    <template
        ngFor
        let-configuration
        [ngForOf]="summaries(configurationGroup).keys">
      <material-chip
          tooltipTarget
          #chip="tooltipTarget"
          [removable]="false"
          displayNameRenderer>
        {{configuration}}
      </material-chip>
      <material-tooltip-card [for]="chip">
        <div *deferredContent>
              <span *ngFor="let singleConfiguration of summaries(configurationGroup)[configuration]">
                {{singleConfiguration}}<br>
              </span>
        </div>
      </material-tooltip-card>
    </template>
  </material-chips>
  <div
      *ngFor="let resultGroup of configurationGroup"
      class="indent">
        <span [class]="resultGroup.first.resultStyle">
          {{resultGroup.first.changesText}}
        </span><br>
    <span *ngFor="let change of resultGroup.take(resultLimit)"
          tooltipTarget #logs="tooltipTarget"
          class="indent pointer">
          {{approvalContent(change)}}{{change.name}}<br>
      <material-tooltip-card
          *ngIf="range != null"
          [for]="logs"
          [preferredPositions]="preferredTooltipPositions">
        <div *deferredContent>
          <h4>{{change.name}}</h4>
          <dart-log
              *ngFor="let configuration of change.configurations.configurations"
              [configuration]="configuration"
              [index]="range.end"
              [test]="change.name">
          </dart-log>
        </div>
      </material-tooltip-card>
      <material-tooltip-card
          *ngIf="builds != null"
          [for]="logs"
          [preferredPositions]="preferredTooltipPositions">
        <div *deferredContent>
          <h4>{{change.name}}</h4>
          <div *ngFor="let configuration of change.configurations.configurations">
            {{configuration}}
            <a
                href="https://dart-ci.firebaseapp.com/#showLatestFailures=false&test={{change.name}}&configurations={{configuration}}"
                target="_blank">
              history
            </a>
            <a *ngIf="buildbucketID(change.patchset, configuration) != null"
               target="_blank"
               href="https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket.appspot.com/{{buildbucketID(change.patchset, configuration)}}/+/steps/test_results/0/logs/new_test_failures__logs_/0">
              log
            </a>
          </div>
        </div>
      </material-tooltip-card>
    </span>
    <div
        *ngIf="resultGroup.length > resultLimit"
        (click)="resultLimit = resultGroup.length"
        class="pointer">
      &vellip; {{resultGroup.length - resultLimit}} more changed results
    </div>
  </div>
  <hr *ngIf="!last">
</div>