<div *ngIf="filter.values.length >0">
  <div *ngIf="!grouped else groupedTitle" class="uk-flex uk-flex-middle uk-margin-bottom">
    <h6 [title]="filter.title" class="uk-margin-remove-bottom">{{_formatTitle(filter.title, filter.values.length)}}</h6>
    <a *ngIf="filter.countSelectedValues>0" class="uk-text-small uk-margin-left" (click)="clearFilter()" [class.uk-disabled]="isDisabled">Clear</a>
  </div>
  <ng-template #groupedTitle>
    <div class="uk-flex uk-flex-middle uk-margin-small-bottom">
      <div [title]="filter.title" class="uk-margin-remove-bottom uk-text-meta">{{_formatTitle(filter.title, filter.values.length)}}</div>
      <a *ngIf="filter.countSelectedValues>0" class="uk-text-small uk-margin-left" (click)="clearFilter()" [class.uk-disabled]="isDisabled">Clear</a>
    </div>
  </ng-template>

  <div *ngIf="filter.type && filter.type == 'triplet'">
    <span>
      <mat-button-toggle-group [name]="filter.title" [aria-label]="filter.title" class="uk-text-xsmall"
                               [(ngModel)]="filter.radioValue" (ngModelChange)="tripletFilterChange()" [disabled]="isDisabled">
        <mat-button-toggle *ngFor="let value of filter.values" [value]="value.id" class="filter-button-toggle">
          <div style="width: 50px">{{value.name}}</div>
        </mat-button-toggle>
<!--        <ng-container *ngFor="let value of filter.values">-->
<!--          <mat-button-toggle value="true">-->
<!--            {{filter.title}}-->
<!--          </mat-button-toggle>-->
<!--          <mat-button-toggle value="false">-->
<!--            Not {{filter.title}}-->
<!--          </mat-button-toggle>-->
<!--        </ng-container>-->
      </mat-button-toggle-group>
    </span>
  </div>

  <div *ngIf="!filter.type || filter.type != 'triplet'">
    <div *ngFor="let value of getSelectedAndTopValues(filter, filterValuesNum)"
         class="uk-animation-fade uk-text-small uk-margin-small-bottom">
      <div [title]="value.name">
        <ng-container *ngTemplateOutlet="input_label_wrapper; context: {filter: filter, value: value}"></ng-container>
      </div>
    </div>
    <div *ngIf="addShowMore && hasMoreValues">
      <a  *ngIf="filterValuesNum > 0 " class="uk-text-small view-more-less-link uk-margin-small-top" [ngClass]="((isDisabled)?'uk-disabled uk-link-muted ':'')" (click)="toggle($event)">
        <span *ngIf="!filter.isViewAllOpen">View all</span>
        <span *ngIf="filter.isViewAllOpen">View less </span>
      </a>
      <div *ngIf="filter.isViewAllOpen" class="uk-text-small uk-margin-small-top uk-margin-small-bottom">
        <div *ngIf="filter.countAllValues == -1">
          <loading class="uk-height-small uk-display-block" size="medium"></loading>
        </div>
        <div *ngIf="filter.countAllValues == 0">
          <span class="uk-text-warning">An error occured. </span><span><a class="uk-button-link" (click)="toggleWithoutUpdate()">Please try again</a>.</span>
        </div>
        <ng-container *ngIf="(!filter.countAllValues && filter.countAllValues != 0) || filter.countAllValues > 0">
          <div class="uk-margin-small-left">
            <div class="uk-text-meta">Top 100 values are shown in the filters</div>
            <div class="uk-flex uk-flex-bottom uk-margin-top">
              <div input class="uk-width-1-2@m uk-margin-right" [placeholder]="{label: 'Search', static: true}" inputClass="inner small" [(value)]="keyword" (valueChange)="initMatching()"></div>
              <div *ngIf="showResultCount === true" input type="select" class="uk-width-expand" placeholder="Sort by"
                   inputClass="border-bottom" [(value)]="sortBy" [options]="sortByOptions" (valueChange)="sort()"></div>
            </div>
          </div>
          <div class="uk-overflow-auto uk-height-max-small uk-margin-small-left uk-margin-small-right uk-margin-top">
            <ng-container *ngFor="let value of this.sortedValues">
              <div *ngIf="filterKeywords(value.name)" title="{{value.name}}"
                class="uk-animation-fade uk-text-small">
                <ng-container *ngTemplateOutlet="input_label_wrapper; context: {filter: filter, value: value}"></ng-container>
              </div>
            </ng-container>
            <ng-container *ngIf="!hasMatch">
              <div class="uk-padding-small uk-text-meta">
                No filters available with that term
              </div>
            </ng-container>
          </div>
        </ng-container>
      </div>
    </div>
  </div>
</div>




<!--<ul *ngIf="filter.values.length >0" class="uk-accordion">-->
<!--  <li (click)="filter.isOpen = !filter.isOpen" [class]="filter.isOpen ? 'uk-open' : ''">-->
<!--    <a class="uk-accordion-title">-->
<!--      {{filter.isOpen}}-->
<!--      <span>{{_formatTitle(filter.title, filter.values.length)}}</span>-->
<!--      <span *ngIf="filter.countSelectedValues>0" class="uk-margin-left">{{filter.countSelectedValues}}</span>-->
<!--    </a>-->
<!--    <div *ngIf="filter.isOpen" class="uk-accordion-content">-->
<!--      <div *ngFor="let value of getSelectedAndTopValues(filter, filterValuesNum)"-->
<!--           class="uk-animation-fade uk-text-small uk-margin-small-bottom">-->
<!--        <div [title]="value.name">-->
<!--          <ng-container *ngTemplateOutlet="input_label_wrapper; context: {filter: filter, value: value}"></ng-container>-->
<!--        </div>-->
<!--      </div>-->
<!--      <div *ngIf="addShowMore && hasMoreValues">-->
<!--        <a  *ngIf="filterValuesNum > 0 " class="uk-text-small view-more-less-link uk-margin-small-top" [ngClass]="((isDisabled)?'uk-disabled uk-link-muted ':'')" (click)="toggle($event)">-->
<!--          <span *ngIf="!filter.isViewAllOpen">View all</span>-->
<!--          <span *ngIf="filter.isViewAllOpen">View less </span>-->
<!--        </a>-->
<!--        <div *ngIf="filter.isViewAllOpen" class="uk-text-small uk-margin-small-top uk-margin-small-bottom">-->
<!--          <div *ngIf="filter.countAllValues == -1">-->
<!--            <loading class="uk-height-small uk-display-block" size="medium"></loading>-->
<!--          </div>-->
<!--          <div *ngIf="filter.countAllValues == 0">-->
<!--            <span class="uk-text-warning">An error occured. </span><span><a class="uk-button-link" (click)="toggleWithoutUpdate()">Please try again</a>.</span>-->
<!--          </div>-->
<!--          <ng-container *ngIf="(!filter.countAllValues && filter.countAllValues != 0) || filter.countAllValues > 0">-->
<!--            <div class="uk-margin-small-left">-->
<!--              <div class="uk-text-meta">Top 100 values are shown in the filters</div>-->
<!--              <div class="uk-flex uk-flex-bottom uk-margin-top">-->
<!--                <div input class="uk-width-1-2@m uk-margin-right" [placeholder]="{label: 'Search', static: true}" inputClass="inner small" [(value)]="keyword" (valueChange)="initMatching()"></div>-->
<!--                <div *ngIf="showResultCount === true" input type="select" class="uk-width-expand" placeholder="Sort by"-->
<!--                     inputClass="border-bottom" [(value)]="sortBy" [options]="sortByOptions" (valueChange)="sort()"></div>-->
<!--              </div>-->
<!--            </div>-->
<!--            <div class="uk-overflow-auto uk-height-max-small uk-margin-small-left uk-margin-small-right uk-margin-top">-->
<!--              <ng-container *ngFor="let value of this.sortedValues">-->
<!--                <div *ngIf="filterKeywords(value.name)" title="{{value.name}}"-->
<!--                     class="uk-animation-fade uk-text-small">-->
<!--                  <ng-container *ngTemplateOutlet="input_label_wrapper; context: {filter: filter, value: value}"></ng-container>-->
<!--                </div>-->
<!--              </ng-container>-->
<!--              <ng-container *ngIf="!hasMatch">-->
<!--                <div class="uk-padding-small uk-text-meta">-->
<!--                  No filters available with that term-->
<!--                </div>-->
<!--              </ng-container>-->
<!--            </div>-->
<!--          </ng-container>-->
<!--        </div>-->
<!--      </div>-->
<!--    </div>-->
<!--  </li>-->
<!--</ul>-->



<ng-template #input_label let-filter="filter" let-value="value">
  <span *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'" class="uk-flex uk-flex-middle"
        [class.uk-disabled]="isDisabled || (showResultCount && value.number === 0)">
    <label>
      <input *ngIf="filter.filterType == 'checkbox'" type="checkbox" class="uk-checkbox"
             [disabled]="isDisabled || (showResultCount && value.number === 0)"
             [(ngModel)]="value.selected" (ngModelChange)="filterChange(value.selected)"/>
      <input *ngIf="filter.filterType == 'radio'" type="radio" class="uk-radio"
             [disabled]="isDisabled || (showResultCount && value.number === 0)"
             [name]="filter.filterId" [value]="value.id" [(ngModel)]="filter.radioValue"
             (ngModelChange)="uniqueFilterChange(value)"/>
       <span class="uk-margin-small-left">
       <span *ngIf="filter.type && filter.type == 'boolean' else noboolean">
         {{value.name=='true'?'Yes':'No'}}
        </span>
          <ng-template  #noboolean>
            <span class="uk-text-capitalize">{{_formatName(value)}} </span>
          </ng-template>

      <span *ngIf="showResultCount">({{value.number|number}})</span>
    </span>
    </label>
  </span>
</ng-template>
<ng-template #input_label_wrapper let-filter="filter" let-value="value">
  <a *ngIf="actionRoute" [routerLink]="getRoute()"
     [queryParams]="getParams(filter,value)" class="uk-link-muted uk-display-inline-block"
     [class.uk-disabled]="disabled(value.number)" [class.uk-link-text]="!disabled(value.number)">
    <ng-container *ngTemplateOutlet="input_label; context: {filter: filter, value: value}"></ng-container>
  </a>
  <ng-container *ngIf="!actionRoute">
    <ng-container *ngTemplateOutlet="input_label; context: {filter: filter, value: value}"></ng-container>
  </ng-container>
</ng-template>
