diff options
Diffstat (limited to 'catalog-ui/src/app/ng2/pipes')
-rw-r--r-- | catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts | 8 | ||||
-rw-r--r-- | catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts | 18 | ||||
-rw-r--r-- | catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts | 19 | ||||
-rw-r--r-- | catalog-ui/src/app/ng2/pipes/keys.pipe.ts | 12 | ||||
-rw-r--r-- | catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts | 18 |
5 files changed, 75 insertions, 0 deletions
diff --git a/catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts b/catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts new file mode 100644 index 0000000000..68fba92b77 --- /dev/null +++ b/catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts @@ -0,0 +1,8 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ name: 'contentAfterLastDot' }) +export class ContentAfterLastDotPipe implements PipeTransform { + transform(value:string): string { + return value.split('.').pop(); + } +}
\ No newline at end of file diff --git a/catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts b/catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts new file mode 100644 index 0000000000..d2eaef0391 --- /dev/null +++ b/catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DerivedFEProperty } from 'app/models'; + +@Pipe({ + name: 'filterChildProperties', +}) +export class FilterChildPropertiesPipe implements PipeTransform { + public transform(childProperties: Array<DerivedFEProperty>, parentId: string) { + if (!parentId || !childProperties) return childProperties; + + let validParents: Array<string> = [parentId]; + while (parentId.lastIndexOf('#') > 0) { + parentId = parentId.substring(0, parentId.lastIndexOf('#')); + validParents.push(parentId); + } + return childProperties.filter(derivedProp => validParents.indexOf(derivedProp.parentName) > -1); + } +}
\ No newline at end of file diff --git a/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts b/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts new file mode 100644 index 0000000000..17ccc0ca75 --- /dev/null +++ b/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts @@ -0,0 +1,19 @@ +/** + * Created by rc2122 on 5/17/2017. + */ +import {Pipe, PipeTransform} from '@angular/core'; + +@Pipe({name: 'groupBy'}) +export class GroupByPipe implements PipeTransform { + transform(value: Array<any>, field: string): Array<any> { + const groupedObj = value.reduce((prev, cur)=> { + if(!prev[cur[field]]) { + prev[cur[field]] = [cur]; + } else { + prev[cur[field]].push(cur); + } + return prev; + }, {}); + return Object.keys(groupedObj).map((key:string) => {return { key, value: groupedObj[key] }; }); + } +} diff --git a/catalog-ui/src/app/ng2/pipes/keys.pipe.ts b/catalog-ui/src/app/ng2/pipes/keys.pipe.ts new file mode 100644 index 0000000000..13bd26969c --- /dev/null +++ b/catalog-ui/src/app/ng2/pipes/keys.pipe.ts @@ -0,0 +1,12 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({name: 'keys'}) +export class KeysPipe implements PipeTransform { + transform(value, args:string[]) : any { + let keys = []; + for (let key in value) { + keys.push(key); + } + return keys; + } +} diff --git a/catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts b/catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts new file mode 100644 index 0000000000..7e017e8590 --- /dev/null +++ b/catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'searchFilter', +}) +export class SearchFilterPipe implements PipeTransform { + public transform(value, key: string, term: string) { + if (!term || !term.length) return value; + return value.filter((item) => { + if (item.hasOwnProperty(key)) { + let regExp = new RegExp(term, 'gi'); + return regExp.test(item[key]); + } else { + return false; + } + }); + } +}
\ No newline at end of file |