<div class="container">
  <div class="row">
    <div class="col">
      <gf-activities-filter
        [allFilters]="allFilters"
        [isLoading]="isLoading"
        [placeholder]="placeholder"
        (valueChanged)="filters$.next($event)"
      ></gf-activities-filter>
    </div>
  </div>
  <div class="row">
    <div class="col">
      <table
        class="gf-table w-100"
        matSort
        matSortActive="symbol"
        matSortDirection="asc"
        mat-table
        [dataSource]="dataSource"
      >
        <ng-container matColumnDef="symbol">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Symbol</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1" mat-cell>
            {{ element.symbol }}
          </td>
        </ng-container>

        <ng-container matColumnDef="dataSource">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Data Source</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1" mat-cell>
            {{ element.dataSource }}
          </td>
        </ng-container>

        <ng-container matColumnDef="assetClass">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Asset Class</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1" mat-cell>
            {{ element.assetClass }}
          </td>
        </ng-container>

        <ng-container matColumnDef="assetSubClass">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Asset Sub Class</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1" mat-cell>
            {{ element.assetSubClass }}
          </td>
        </ng-container>

        <ng-container matColumnDef="date">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>First Activity</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1" mat-cell>
            {{ (element.date | date: defaultDateFormat) ?? '' }}
          </td>
        </ng-container>

        <ng-container matColumnDef="activityCount">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Activity Count</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1 text-right" mat-cell>
            {{ element.activityCount }}
          </td>
        </ng-container>

        <ng-container matColumnDef="marketDataItemCount">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Historical Data</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1 text-right" mat-cell>
            {{ element.marketDataItemCount }}
          </td>
        </ng-container>

        <ng-container matColumnDef="countriesCount">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Countries Count</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1 text-right" mat-cell>
            {{ element.countriesCount }}
          </td>
        </ng-container>

        <ng-container matColumnDef="sectorsCount">
          <th *matHeaderCellDef class="px-1" mat-header-cell mat-sort-header>
            <ng-container i18n>Sectors Count</ng-container>
          </th>
          <td *matCellDef="let element" class="px-1 text-right" mat-cell>
            {{ element.sectorsCount }}
          </td>
        </ng-container>

        <ng-container matColumnDef="actions">
          <th *matHeaderCellDef class="px-1 text-center" mat-header-cell></th>
          <td *matCellDef="let element" class="px-1 text-center" mat-cell>
            <button
              class="mx-1 no-min-width px-2"
              mat-button
              [matMenuTriggerFor]="accountMenu"
              (click)="$event.stopPropagation()"
            >
              <ion-icon name="ellipsis-vertical"></ion-icon>
            </button>
            <mat-menu #accountMenu="matMenu" xPosition="before">
              <button
                mat-menu-item
                (click)="onGatherSymbol({dataSource: element.dataSource, symbol: element.symbol})"
              >
                <ng-container i18n>Gather Data</ng-container>
              </button>
              <button
                mat-menu-item
                (click)="onGatherProfileDataBySymbol({dataSource: element.dataSource, symbol: element.symbol})"
              >
                <ng-container i18n>Gather Profile Data</ng-container>
              </button>
              <button
                mat-menu-item
                [disabled]="element.activityCount !== 0"
                (click)="onDeleteProfileData({dataSource: element.dataSource, symbol: element.symbol})"
              >
                <ng-container i18n>Delete</ng-container>
              </button>
            </mat-menu>
          </td>
        </ng-container>

        <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr>
        <tr
          *matRowDef="let row; columns: displayedColumns"
          class="cursor-pointer"
          mat-row
          (click)="onOpenAssetProfileDialog({ dateOfFirstActivity: row.date, dataSource: row.dataSource, symbol: row.symbol })"
        ></tr>
      </table>
    </div>
  </div>
</div>