new role for members
This commit is contained in:
10
src/app/widget-modules/pipes/sort-by/sort-by.module.ts
Normal file
10
src/app/widget-modules/pipes/sort-by/sort-by.module.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import {NgModule} from '@angular/core';
|
||||
import {CommonModule} from '@angular/common';
|
||||
import {SortByPipe} from './sort-by.pipe';
|
||||
|
||||
@NgModule({
|
||||
declarations: [SortByPipe],
|
||||
exports: [SortByPipe],
|
||||
imports: [CommonModule],
|
||||
})
|
||||
export class SortByModule {}
|
||||
@@ -0,0 +1,8 @@
|
||||
import {SortByPipe} from './sort-by.pipe';
|
||||
|
||||
describe('SortByPipe', () => {
|
||||
it('create an instance', () => {
|
||||
const pipe = new SortByPipe();
|
||||
expect(pipe).toBeTruthy();
|
||||
});
|
||||
});
|
||||
23
src/app/widget-modules/pipes/sort-by/sort-by.pipe.ts
Normal file
23
src/app/widget-modules/pipes/sort-by/sort-by.pipe.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import {Pipe, PipeTransform} from '@angular/core';
|
||||
import {orderBy} from 'lodash';
|
||||
|
||||
@Pipe({name: 'sortBy'})
|
||||
export class SortByPipe implements PipeTransform {
|
||||
public transform(value: unknown[] | null, order: 'asc' | 'desc' = 'asc', column = ''): unknown[] | null {
|
||||
if (!value || !order) {
|
||||
return value;
|
||||
} // no array
|
||||
if (!column || column === '') {
|
||||
if (order === 'asc') {
|
||||
return value.sort();
|
||||
} else {
|
||||
return value.sort().reverse();
|
||||
}
|
||||
} // sort 1d array
|
||||
if (value.length <= 1) {
|
||||
return value;
|
||||
} // array with only one item
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
||||
return orderBy(value, [column], [order]) as unknown[];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user