2022-01-20 10:19:44 +01:00
|
|
|
<div *ngIf="filter.values.length >0">
|
|
|
|
<div class="uk-flex uk-flex-middle uk-margin-bottom">
|
|
|
|
<h6 [title]="filter.title"
|
|
|
|
class="uk-margin-right uk-margin-remove-bottom">{{_formatTitle(filter.title, filter.values.length)}}</h6>
|
|
|
|
<a *ngIf="filter.countSelectedValues>0" class="uk-text-small" (click)="clearFilter()" [class.uk-disabled]="isDisabled">Clear</a>
|
2020-02-17 15:19:14 +01:00
|
|
|
</div>
|
2022-01-20 10:19:44 +01:00
|
|
|
<div aria-expanded="false">
|
|
|
|
<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 && (filter.values.length) > filterValuesNum">
|
|
|
|
<a
|
|
|
|
[class]="((isDisabled)?'uk-disabled uk-link-muted ':' portal-link ') + ' uk-margin-small-top'"
|
|
|
|
[attr.uk-toggle]="'target: #toggle-'+filter.filterId" (click)="toggle()">
|
|
|
|
<span *ngIf="!isOpen">+ View all</span>
|
|
|
|
<!-- <span *ngIf="isOpen">- View less</span>-->
|
|
|
|
</a>
|
2020-02-17 15:19:14 +01:00
|
|
|
|
2022-01-20 10:19:44 +01:00
|
|
|
<div hidden [id]="'toggle-'+filter.filterId" class="uk-text-small uk-margin-small-bottom">
|
|
|
|
<div class="">
|
|
|
|
<span class="uk-text-meta uk-margin-small-left">Top 100 values are
|
|
|
|
shown in the filters</span>
|
|
|
|
<div class="uk-grid uk-margin-small-left uk-flex uk-flex-bottom">
|
|
|
|
<input class="uk-input uk-margin-small-top uk-form-small uk-width-2-3@m uk-width-3-5@s text-input-box "
|
|
|
|
name="filter-keyword"
|
|
|
|
placeholder="Search..." type="text" [(ngModel)]="keyword">
|
2020-02-17 15:19:14 +01:00
|
|
|
|
2022-01-20 10:19:44 +01:00
|
|
|
<span *ngIf="showResultCount === true"
|
|
|
|
class="uk-width-1-3@m uk-width-2-5@s uk-padding-small uk-padding-remove-vertical uk-padding-remove-right">
|
|
|
|
<span class="uk-width-1-4 uk-text-muted"> Sort by:</span>
|
|
|
|
<select [(ngModel)]="sortBy"
|
|
|
|
class=" uk-width-expand uk-select uk-hidden@m uk-form-small"
|
|
|
|
id="form-horizontal-select" name="select_order">
|
|
|
|
<option value="num">Results number</option>
|
|
|
|
<option value="name">Name</option>
|
|
|
|
</select>
|
|
|
|
<mat-select [(ngModel)]="sortBy"
|
|
|
|
class="uk-width-expand matSelection uk-visible@m"
|
|
|
|
id="form-horizontal-select1" name="select_order"
|
|
|
|
[disableOptionCentering]="true" panelClass="matSelectionPanel">
|
|
|
|
<mat-option value="num">Results number</mat-option>
|
|
|
|
<mat-option value="name">Name</mat-option>
|
|
|
|
</mat-select>
|
|
|
|
</span>
|
2020-04-27 10:14:05 +02:00
|
|
|
</div>
|
2022-01-20 10:19:44 +01:00
|
|
|
</div>
|
2019-07-15 18:11:07 +02:00
|
|
|
|
2022-01-20 10:19:44 +01:00
|
|
|
<div class="uk-overflow-auto uk-height-max-small uk-padding-remove
|
|
|
|
uk-margin-small-left uk-margin-small-right uk-margin-small-top uk-width-1-1">
|
|
|
|
<ng-container *ngFor="let value of sort(filter.values)">
|
|
|
|
<div *ngIf="filterKeywords(value.name)" title="{{value.name}}"
|
|
|
|
class="uk-animation-fade filterItem searchFilterItem uk-text-small">
|
|
|
|
<ng-container
|
|
|
|
*ngTemplateOutlet="input_label_wrapper; context: {filter: filter, value: value}"></ng-container>
|
2019-07-15 18:11:07 +02:00
|
|
|
</div>
|
2022-01-20 10:19:44 +01:00
|
|
|
</ng-container>
|
2019-07-15 18:11:07 +02:00
|
|
|
</div>
|
2022-01-20 10:19:44 +01:00
|
|
|
</div>
|
|
|
|
<a [class]="(isDisabled)?'uk-disabled uk-link-muted ':' portal-link '"
|
|
|
|
[attr.uk-toggle]="'target: #toggle-'+filter.filterId" (click)="toggle()">
|
|
|
|
<span *ngIf="isOpen">- View less</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2017-12-19 13:53:46 +01:00
|
|
|
</div>
|
2020-02-17 15:19:14 +01:00
|
|
|
</div>
|
2020-07-24 13:21:22 +02:00
|
|
|
<ng-template #input_label let-filter="filter" let-value="value">
|
2022-01-20 10:19:44 +01:00
|
|
|
<span *ngIf="filter.filterType == 'checkbox' || filter.filterType == 'radio'" class="uk-flex uk-flex-middle"
|
|
|
|
[class.uk-disabled]="isDisabled || (showResultCount && value.number === 0)">
|
|
|
|
<span>
|
|
|
|
<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)"/>
|
2020-07-24 13:21:22 +02:00
|
|
|
</span>
|
2022-01-20 10:19:44 +01:00
|
|
|
<span class="uk-margin-small-left">
|
|
|
|
{{_formatName(value)}}
|
|
|
|
<span *ngIf="showResultCount">({{value.number|number}})</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
2020-07-24 13:21:22 +02:00
|
|
|
</ng-template>
|
2020-10-20 11:11:15 +02:00
|
|
|
<ng-template #input_label_wrapper let-filter="filter" let-value="value">
|
2022-01-20 10:19:44 +01:00
|
|
|
<a *ngIf="actionRoute" [routerLink]="getRoute()"
|
2022-02-16 17:18:12 +01:00
|
|
|
[queryParams]="getParams(filter,value)" class="uk-link-muted uk-display-inline-block"
|
2022-01-20 10:19:44 +01:00
|
|
|
[class.uk-disabled]="disabled(value.number)" [class.uk-link-text]="!disabled(value.number)">
|
2020-10-20 11:11:15 +02:00
|
|
|
<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>
|