Skip to content

Commit

Permalink
Merge pull request #61 from netceteragroup/feat/filter-without-options
Browse files Browse the repository at this point in the history
feat(grid): Enable filtering without filtering options provided
  • Loading branch information
hdimitrieski committed Aug 12, 2020
2 parents 41b76aa + 118423d commit 70bc5a3
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FilteringOptions, GridFilter } from 'ngrx-data-grid';
import { always, complement, cond, equals, identity, any, none, propEq } from 'ramda';
import { GridFilter } from 'ngrx-data-grid';
import { any, propEq } from 'ramda';

const isNotEqual = complement(equals);
const titleEquals = propEq('title');

const filterByOption = (option: FilteringOptions, value: Date) => cond([
[equals(FilteringOptions.None), always(identity)],
[equals(FilteringOptions.Equals), always(any(titleEquals(value)))],
[equals(FilteringOptions.NotEqual), always(none(titleEquals(value)))]
])(option);

@Component({
templateUrl: 'experience-filter.component.html'
})
Expand All @@ -29,18 +22,13 @@ export class ExperienceFilterComponent implements GridFilter<string> {
'Food Chemist'
];

readonly options = [
FilteringOptions.Equals,
FilteringOptions.NotEqual
];

onExperienceSelected(event) {
this.value = event.target.value;
this.valueChanged.emit(this.value);
}

filter({option, value, rawValue: experiences}) {
return filterByOption(option, value)(experiences);
filter({value, rawValue: experiences}) {
return any(titleEquals(value), experiences);
}

clear(): void {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<form novalidate [formGroup]="form" (submit)="onApplyFilter()" class="d-flex flex-direction-column">

<ngrx-select
<ngrx-select *ngIf="filterOptions"
[options]="filterOptions"
[formControl]="filterOption"
(selectionChanged)="onOptionSelected()"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ export class DynamicFilterComponent implements OnInit, OnChanges, OnDestroy {
}

private getDefaultFilterOption(): FilteringOptions {
return this.filterOptions ? this.filterOptions[0] : FilteringOptions.None;
return this.filterOptions ? this.filterOptions[0] : FilteringOptions.Equals;
}

private createFilterComponent() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export interface FilterParams<T> {
export type FilterFn<T> = (params: FilterParams<T>) => boolean;

export interface GridFilter<T = any> {
readonly options: FilteringOptions[];
readonly options?: FilteringOptions[];
option?: FilteringOptions;
value: T;
valueChanged: EventEmitter<T>;
Expand Down

0 comments on commit 70bc5a3

Please sign in to comment.