| 
														
															@@ -2,6 +2,7 @@ import { isObject, get } from 'lodash' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { Observable, Subject, interval, map, of } from 'rxjs' 
														 | 
														
														 | 
														
															 import { Observable, Subject, interval, map, of } from 'rxjs' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { DataPrepService } from './dataprep.service' 
														 | 
														
														 | 
														
															 import { DataPrepService } from './dataprep.service' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import _ = require("lodash") 
														 | 
														
														 | 
														
															 import _ = require("lodash") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { Conditions, DateRange, Storage } from '../types/interface' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export class SearchService { 
														 | 
														
														 | 
														
															 export class SearchService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private dataPrepService: DataPrepService 
														 | 
														
														 | 
														
															     private dataPrepService: DataPrepService 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -22,8 +23,8 @@ export class SearchService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public query(storage: Storage, ...conditions: Conditions[]): Observable<any> { 
														 | 
														
														 | 
														
															     public query(storage: Storage, ...conditions: Conditions[]): Observable<any> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let dataFromStorage: Subject<any> = new Subject() 
														 | 
														
														 | 
														
															         let dataFromStorage: Subject<any> = new Subject() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         let filteredResult: Subject<any> = new Subject() 
														 | 
														
														 | 
														
															         let filteredResult: Subject<any> = new Subject() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        // check if storaage is of type ObservableStorage 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (typeof storage === "object" && storage !== null && "type" in storage && "ref" in storage) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if (storage.type == 'observable') { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             let obsRef = storage.ref 
														 | 
														
														 | 
														
															             let obsRef = storage.ref 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             obsRef.subscribe((element) => { 
														 | 
														
														 | 
														
															             obsRef.subscribe((element) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 dataFromStorage.next(element) 
														 | 
														
														 | 
														
															                 dataFromStorage.next(element) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -31,6 +32,7 @@ export class SearchService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else { 
														 | 
														
														 | 
														
															         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             this.dataPrepService.loadObsData(storage, dataFromStorage) 
														 | 
														
														 | 
														
															             this.dataPrepService.loadObsData(storage, dataFromStorage) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         this.filterFromObs(dataFromStorage, filteredResult, ...conditions) 
														 | 
														
														 | 
														
															         this.filterFromObs(dataFromStorage, filteredResult, ...conditions) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return filteredResult.pipe() 
														 | 
														
														 | 
														
															         return filteredResult.pipe() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -172,26 +174,3 @@ export class SearchService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-// Entries that client will use. Subject to be improved later on 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export interface Conditions { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    $regex?: string, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    $dateRange?: DateRange, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    [key: string]: string | Date | DateRange | string[] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export interface DateRange { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    startDate: string | Date, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    endDate: string | Date, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    column: string 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export interface StorageLocation { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    type: string, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    url: string 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export interface ObservableStorage { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    type: "observable", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    ref: Observable<any> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export type Storage = ObservableStorage | StorageLocation 
														 | 
														
														 | 
														
															 
														 |