<div id="extension-panel">
  <data-panel id="extension-data-panel"
              title="{{ 'extensions.title' | translate }}"
              text="{{ 'extensions.text' | translate }}"
              [labelColumnContent]="searchExtensionPanel">
    <ng-template #noDataFound>
      <div class="empty-data-panel">{{ "extensions.label.no.extension.selected" | translate }}</div>
    </ng-template>
    <extension-panel [extension]="selected"  *ngIf="selected;else noDataFound "></extension-panel>
  </data-panel>
</div>


<ng-template #searchExtensionPanel>
  <mat-form-field id="extension-filter">
    <mat-label>{{ "extensions.label.filter" | translate }}</mat-label>
    <input matInput (keyup)="applyFilter($event)"  #input>
  </mat-form-field>


  <table class="mat-elevation-z2" mat-table [dataSource]="dataSource" matSort>

    <!-- Name Column -->
    <ng-container matColumnDef="name">
      <th mat-header-cell *matHeaderCellDef mat-sort-header class="extension-table-cell-header">{{ "extensions.label.name" | translate }}</th>
      <td mat-cell *matCellDef="let row"> {{row.name}} </td>
    </ng-container>

    <!-- Version Column -->
    <ng-container matColumnDef="version" class="extension-table-cell-header">
      <th mat-header-cell *matHeaderCellDef mat-sort-header class="extension-table-cell-header">{{ "extensions.label.version" | translate }}</th>
      <td mat-cell *matCellDef="let row"> {{row.version}}</td>
    </ng-container>

    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
    <tr mat-row *matRowDef="let odd = odd; let row; columns: displayedColumns;"
        (click)="extensionSelected(row)"
        [ngClass]="{'datatable-row-selected': row==selected,'datatable-row-odd': odd}"
    ></tr>

    <!-- Row shown when there is no matching data. -->
    <tr class="mat-row" *matNoDataRow>
      <td *ngIf="input.value;else noDataFound" class="mat-cell" colspan="2">{{ "extensions.label.no.filter.results" | translate: { filterValue: input.value } }}</td>
      <ng-template #noDataFound>
        <td class="mat-cell" colspan="2">{{ "extensions.label.no.data.found" }}</td>
      </ng-template>
    </tr>
  </table>

  <mat-paginator class="mat-elevation-z2" id="extension-paginator"
                 [hidePageSize]="true"
                 [pageSize]="5" aria-label="{{ 'extensions.label.select.page' | translate }}"></mat-paginator>

</ng-template>