add quick filters
This commit is contained in:
parent
6811739c79
commit
f0c4408764
@ -6,3 +6,4 @@ $btn-bg: #f0f1f4 !default;
|
||||
$warn: #fdbd00 !default;
|
||||
$white: white !default;
|
||||
$separator: rgba(226, 228, 233, 0.9) !default;
|
||||
$quick-filter-border: #d3d5da !default;
|
||||
|
||||
@ -15,6 +15,7 @@ export * from './lib/filtering/filter.service';
|
||||
export * from './lib/filtering/models/filter.model';
|
||||
export * from './lib/filtering/models/filter-group.model';
|
||||
export * from './lib/filtering/models/nested-filter.model';
|
||||
export * from './lib/filtering/quick-filters/quick-filters.component';
|
||||
export * from './lib/sorting/sort-by.pipe';
|
||||
export * from './lib/sorting/sorting.service';
|
||||
export * from './lib/sorting/models/sorting-option.model';
|
||||
|
||||
@ -11,6 +11,7 @@ import { RoundCheckboxComponent } from './inputs/round-checkbox/round-checkbox.c
|
||||
import { SortByPipe } from './sorting/sort-by.pipe';
|
||||
import { HumanizePipe } from './utils/pipes/humanize.pipe';
|
||||
import { TableColumnNameComponent } from './tables/table-column-name/table-column-name.component';
|
||||
import { QuickFiltersComponent } from './filtering/quick-filters/quick-filters.component';
|
||||
|
||||
const buttons = [IconButtonComponent, ChevronButtonComponent, CircleButtonComponent];
|
||||
|
||||
@ -18,7 +19,7 @@ const inputs = [RoundCheckboxComponent];
|
||||
|
||||
const matModules = [MatIconModule, MatButtonModule, MatTooltipModule];
|
||||
|
||||
const components = [...buttons, ...inputs, TableColumnNameComponent];
|
||||
const components = [...buttons, ...inputs, TableColumnNameComponent, QuickFiltersComponent];
|
||||
|
||||
const pipes = [SortByPipe, HumanizePipe];
|
||||
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
<div
|
||||
(click)="filterService.toggleFilter('quickFilters', filter.key)"
|
||||
*ngFor="let filter of quickFilters"
|
||||
[class.active]="filter.checked"
|
||||
class="quick-filter"
|
||||
>
|
||||
{{ filter.label }}
|
||||
</div>
|
||||
34
src/lib/filtering/quick-filters/quick-filters.component.scss
Normal file
34
src/lib/filtering/quick-filters/quick-filters.component.scss
Normal file
@ -0,0 +1,34 @@
|
||||
@import '../../../assets/styles/common';
|
||||
|
||||
:host {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.quick-filter {
|
||||
box-sizing: border-box;
|
||||
border: 1px solid $quick-filter-border;
|
||||
border-radius: 17px;
|
||||
background-color: $btn-bg;
|
||||
padding: 0 14px;
|
||||
height: 34px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s;
|
||||
|
||||
&:hover {
|
||||
background-color: $white;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: $white;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
16
src/lib/filtering/quick-filters/quick-filters.component.ts
Normal file
16
src/lib/filtering/quick-filters/quick-filters.component.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||
import { Required } from '../../utils/decorators/required.decorator';
|
||||
import { NestedFilter } from '../models/nested-filter.model';
|
||||
import { FilterService } from '../filter.service';
|
||||
|
||||
@Component({
|
||||
selector: 'iqser-quick-filters',
|
||||
templateUrl: './quick-filters.component.html',
|
||||
styleUrls: ['./quick-filters.component.scss'],
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class QuickFiltersComponent {
|
||||
@Input() @Required() quickFilters!: Set<NestedFilter>;
|
||||
|
||||
constructor(readonly filterService: FilterService) {}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user