<commit_before>import {
  ChangeDetectionStrategy,
  ChangeDetectorRef,
  Component,
  Input,
  OnChanges,
  OnInit,
} from '@angular/core';
import { Client } from '../../../../services/api/client';

@Component({
  selector: 'm-admin--interactions--table',
  template: `
    <h3>{{ metric.title | titlecase }}</h3>
    <div
      class="mdl-spinner mdl-js-spinner is-active"
      [mdl]
      *ngIf="inProgress && !data[type].length"
    ></div>

    <table>
      <tbody>
        <tr *ngFor="let item of data[type]">
          <td [routerLink]="['/', item.user.guid]">
            <img
              class="m-admin--interactions--avatar"
              src="/icon/{{ item.user.guid }}/medium/{{ item.user.icontime }}"
            />
            @{{ item.user.username }}
          </td>
          <td>{{ item.value }}</td>
        </tr>

        <tr *ngIf="data[type].length === 0 && !inProgress">
          <td style="text-align: left" i18n="@@COMMON__ADMIN__NO_DATA">
            No data
          </td>
        </tr>
      </tbody>
    </table>
  `,
  host: {
    class: 'm-border',
  },
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class InteractionsTableComponent implements OnInit {
  @Input() metric: { title: string; metric: string };
  timeout;
<commit_msg>Open in new tab for interactions table #2341<commit_after>import {
  ChangeDetectionStrategy,
  ChangeDetectorRef,
  Component,
  Input,
  OnChanges,
  OnInit,
} from '@angular/core';
import { Client } from '../../../../services/api/client';

@Component({
  selector: 'm-admin--interactions--table',
  template: `
    <h3>{{ metric.title | titlecase }}</h3>
    <div
      class="mdl-spinner mdl-js-spinner is-active"
      [mdl]
      *ngIf="inProgress && !data[type].length"
    ></div>

    <table>
      <tbody>
        <tr *ngFor="let item of data[type]">
          <td [routerLink]="['/', item.user.guid]" target="_blank">
            <img
              class="m-admin--interactions--avatar"
              src="/icon/{{ item.user.guid }}/medium/{{ item.user.icontime }}"
            />
            @{{ item.user.username }}
          </td>
          <td>{{ item.value }}</td>
        </tr>

        <tr *ngIf="data[type].length === 0 && !inProgress">
          <td style="text-align: left" i18n="@@COMMON__ADMIN__NO_DATA">
            No data
          </td>
        </tr>
      </tbody>
    </table>
  `,
  host: {
    class: 'm-border',
  },
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class InteractionsTableComponent implements OnInit {
  @Input() metric: { title: string; metric: string };
  timeout;

{'fraction_non_alphanumeric': 0.17847567981616239, 'fraction_numerical': 0.005361930294906166, 'mean_word_length': 2.197062423500612, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2140529', 'n_tokens_mistral': 870, 'n_tokens_neox': 852, 'n_words': 172}