aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts')
-rw-r--r--vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts b/vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts
new file mode 100644
index 000000000..4b4f1a5bc
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/pipes/dataFilter/data-filter.pipe.ts
@@ -0,0 +1,47 @@
+/**
+ * Created by cp2122 on 1/4/2018.
+ */
+import { Pipe, PipeTransform } from '@angular/core';
+import * as _ from 'lodash';
+
+@Pipe({
+ name: 'dataFilter'
+})
+export class DataFilterPipe implements PipeTransform {
+
+ transform(items: any, searchStr: string, keys?: string[][]): any {
+ if (items != null && items.length > 0 && !_.isNil(searchStr)) {
+ let ans = [];
+
+ if (_.isNil(keys) || keys.length === 0) {
+ keys = Object.keys(items[0]).map((key)=> new Array(key) );
+ }
+ for (const item of items) {
+ for(const key of keys) {
+
+ let val: string = DataFilterPipe.getDeepObjectValueByKeys(item, key);
+ if (!_.isNil(val) && val.toLowerCase().includes(searchStr.toLowerCase())) {
+ ans.push(item);
+ break;
+ }
+ }
+ }
+ return ans;
+ }
+ }
+ /**********************************************************************
+ get value from obj data by array of keys.
+ @keys: all table column and keys
+ @rowData : row data
+ ************************************************************************/
+ static getDeepObjectValueByKeys(rowData: any , keys: string[]) : string {
+ let obj = rowData[keys[0]];
+ if(_.isNil(obj)) {
+ return obj;
+ }
+ for(let i = 1; i < keys.length ; i++){
+ obj = obj[keys[i]];
+ }
+ return obj.toString();
+ }
+}