<div *ngIf="loading">
  <i
    class="bwi bwi-spinner bwi-spin tw-text-muted"
    title="{{ 'loading' | i18n }}"
    aria-hidden="true"
  ></i>
  <span class="tw-sr-only">{{ "loading" | i18n }}</span>
</div>
<div class="tw-mt-4" *ngIf="!dataSource.data.length">
  <bit-no-items [icon]="noItemsIcon" class="tw-text-main">
    <ng-container slot="title">
      <h2 class="tw-font-semibold mt-4">
        {{ "noCriticalAppsTitle" | i18n }}
      </h2>
    </ng-container>
    <ng-container slot="description">
      <p class="tw-text-muted">
        {{ "noCriticalAppsDescription" | i18n }}
      </p>
    </ng-container>
    <ng-container slot="button">
      <button (click)="goToAllAppsTab()" bitButton buttonType="primary" type="button">
        {{ "markCriticalApps" | i18n }}
      </button>
    </ng-container>
  </bit-no-items>
</div>
<div class="tw-mt-4 tw-flex tw-flex-col" *ngIf="!loading && dataSource.data.length">
  <div class="tw-flex tw-justify-between tw-mb-4">
    <h2 bitTypography="h2">{{ "criticalApplications" | i18n }}</h2>
    <button bitButton buttonType="primary" type="button">
      <i class="bwi bwi-envelope tw-mr-2"></i>
      {{ "requestPasswordChange" | i18n }}
    </button>
  </div>
  <div class="tw-flex tw-gap-6">
    <tools-card
      class="tw-flex-1"
      [title]="'atRiskMembers' | i18n"
      [value]="mockAtRiskMembersCount"
      [maxValue]="mockTotalMembersCount"
    >
    </tools-card>
    <tools-card
      class="tw-flex-1"
      [title]="'atRiskApplications' | i18n"
      [value]="mockAtRiskAppsCount"
      [maxValue]="mockTotalAppsCount"
    >
    </tools-card>
  </div>
  <div class="tw-flex tw-mt-8 tw-mb-4 tw-gap-4">
    <bit-search
      [placeholder]="'searchApps' | i18n"
      class="tw-grow"
      [formControl]="searchControl"
    ></bit-search>
  </div>
  <bit-table [dataSource]="dataSource">
    <ng-container header>
      <tr>
        <th></th>
        <th bitSortable="name" bitCell>{{ "application" | i18n }}</th>
        <th bitSortable="atRiskPasswords" bitCell>{{ "atRiskPasswords" | i18n }}</th>
        <th bitSortable="totalPasswords" bitCell>{{ "totalPasswords" | i18n }}</th>
        <th bitSortable="atRiskMembers" bitCell>{{ "atRiskMembers" | i18n }}</th>
        <th bitSortable="totalMembers" bitCell>{{ "totalMembers" | i18n }}</th>
      </tr>
    </ng-container>
    <ng-template body let-rows$>
      <tr bitRow *ngFor="let r of rows$ | async">
        <td>
          <i class="bwi bwi-star-f"></i>
        </td>
        <td bitCell>
          <span>{{ r.name }}</span>
        </td>
        <td bitCell>
          <span>
            {{ r.atRiskPasswords }}
          </span>
        </td>
        <td bitCell>
          <span>
            {{ r.totalPasswords }}
          </span>
        </td>
        <td bitCell>
          <span>
            {{ r.atRiskMembers }}
          </span>
        </td>
        <td bitCell data-testid="total-membership">
          {{ r.totalMembers }}
        </td>
      </tr>
    </ng-template>
  </bit-table>
</div>
