<commit_before><h3 class="mt-1" style="text-align: center">{{HsLayerUtilsService.translateTitle(layer.title)}}</h3>
<div class="form-group mt-1 mb-1">
    <div class="input-group" style="margin-bottom: 4px">
        <input type="text" class="form-control hs-filter" [placeholder]="'COMMON.filter' | translate"
            [(ngModel)]="searchedFeatures" name="FeatureName">
    </div>
</div>
<table style="width:100%;"
    *ngFor="let feature of HsFeatureTableService.features | featureFilter: searchedFeatures">
    <thead>
        <tr style="text-align: center; background-color: rgba(0,0,0,0.03);">
            <th colspan="2">{{feature.name}}</th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let attr of feature.attributes" rowspan="3">
            <th class="tdbreak" style="background-color: rgba(0,0,0,0.03);">{{attr.name}}<a href="#"
                    style="float: right;" (click)="HsFeatureTableService.sortFeaturesBy(attr.name)" [title]="'FEATURE_TABLE.sortFeaturesByValue' | translate">^</a>
            </th>
            <td class="tdbreak" style="min-width: 200px; max-width: 200px;">
                <span *ngIf="!attr.sanitizedValue && !attr.value.operations">
                    <i>{{attr.value}}</i>
                </span>
                <i><span *ngIf="!!attr.sanitizedValue" [innerHTML]="attr.sanitizedValue"></span></i>
                <div *ngIf="attr.value.operations">
                    <a href="#" *ngFor="let operation of attr.value.operations"
                        (click)="executeOperation(operation)"><span><i> {{translate(operation.customActionName) || translate(operation.action)}};</i></span></a>
                </div>
            </td>
        </tr>
        <tr [hidden]="!showFeatureStats" class="tdbreak" *ngFor="let stat of feature.stats">
            <th class="tdbreak" style="background-color: rgba(0,0,0,0.03);">{{stat.name}}</th>
            <td class="tdbreak" style="min-width: 200px; max-width: 200px;"><span><i>{{stat.value}}</i></span></td>
        </tr>
    </tbody>
</table>
<p class="p-2">
    <small><a href="#"
            (click)="showFeatureStats = !showFeatureStats">{{'FEATURE_TABLE.showFeatureStats' | translate}}</a></small>
</p>
<hr /><commit_msg>Added sorting also for feature names<commit_after><h3 class="mt-1" style="text-align: center">{{HsLayerUtilsService.translateTitle(layer.title)}}</h3>
<div class="form-group mt-1 mb-1">
    <div class="input-group" style="margin-bottom: 4px">
        <input type="text" class="form-control hs-filter" [placeholder]="'COMMON.filter' | translate" [(ngModel)]="searchedFeatures" name="FeatureName">
    </div>
</div>
<table style="width:100%;" *ngFor="let feature of HsFeatureTableService.features | featureFilter: searchedFeatures">
    <thead>
        <tr style="text-align: center; background-color: rgba(0,0,0,0.05);">
            <th colspan="2">{{feature.name}}
                <a href="#" style="float: center;" (click)="HsFeatureTableService.sortFeaturesBy(feature.name)" [title]="'FEATURE_TABLE.sortFeaturesByValue' | translate">^</a>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let attr of feature.attributes" rowspan="3">
            <th class="tdbreak" style="background-color: rgba(0,0,0,0.03);">{{attr.name}}<a href="#" style="float: right;" (click)="HsFeatureTableService.sortFeaturesBy(attr.name)" [title]="'FEATURE_TABLE.sortFeaturesByValue' | translate">^</a>
            </th>
            <td class="tdbreak" style="min-width: 200px; max-width: 200px;">
                <span *ngIf="!attr.sanitizedValue && !attr.value.operations">
                    <i>{{attr.value}}</i>
                </span>
                <i><span *ngIf="!!attr.sanitizedValue" [innerHTML]="attr.sanitizedValue"></span></i>
                <div *ngIf="attr.value.operations">
                    <a href="#" *ngFor="let operation of attr.value.operations" (click)="executeOperation(operation)"><span><i> {{translate(operation.customActionName) || translate(operation.action)}};</i></span></a>
                </div>
            </td>
        </tr>
        <tr [hidden]="!showFeatureStats" class="tdbreak" *ngFor="let stat of feature.stats">
            <th class="tdbreak" style="background-color: rgba(0,0,0,0.03);">{{stat.name}}</th>
            <td class="tdbreak" style="min-width: 200px; max-width: 200px;"><span><i>{{stat.value}}</i></span></td>
        </tr>
    </tbody>
</table>
<p class="p-2">
    <small><a href="#"
            (click)="showFeatureStats = !showFeatureStats">{{'FEATURE_TABLE.showFeatureStats' | translate}}</a></small>
</p>
<hr />
{'fraction_non_alphanumeric': 0.20229835212489158, 'fraction_numerical': 0.01821335646140503, 'mean_word_length': 3.182230281051677, 'pattern_counts': {'":': 0, '<': 121, '<?xml version=': 0, '>': 121, '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': '5826613', 'n_tokens_mistral': 1544, 'n_tokens_neox': 1444, 'n_words': 243}