From ed64b5edff15e702493df21aa3230b81593e6133 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Fri, 9 Jun 2017 03:19:04 +0300 Subject: [SDC-29] catalog 1707 rebase commit. Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando --- .../src/app/ng2/pipes/contentAfterLastDot.pipe.ts | 8 ++++++++ .../src/app/ng2/pipes/filterChildProperties.pipe.ts | 18 ++++++++++++++++++ catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts | 19 +++++++++++++++++++ catalog-ui/src/app/ng2/pipes/keys.pipe.ts | 12 ++++++++++++ catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts | 18 ++++++++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts create mode 100644 catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts create mode 100644 catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts create mode 100644 catalog-ui/src/app/ng2/pipes/keys.pipe.ts create mode 100644 catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts (limited to 'catalog-ui/src/app/ng2/pipes') 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, parentId: string) { + if (!parentId || !childProperties) return childProperties; + + let validParents: Array = [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, field: string): Array { + 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 -- cgit 1.2.3-korg