aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/pipes
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/ng2/pipes')
-rw-r--r--catalog-ui/src/app/ng2/pipes/contentAfterLastDot.pipe.ts8
-rw-r--r--catalog-ui/src/app/ng2/pipes/filterChildProperties.pipe.ts18
-rw-r--r--catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts19
-rw-r--r--catalog-ui/src/app/ng2/pipes/keys.pipe.ts12
-rw-r--r--catalog-ui/src/app/ng2/pipes/searchFilter.pipe.ts18
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