{ "version": 3, "sources": ["src/@omnial/_models/search/product.search-request.model.ts", "src/@omnial/_services/repository-search.service.ts", "src/@omnial/_services/search/auto-complete.service.ts"], "sourcesContent": ["import { ProductFilterOption } from \"../catalog/product-filter.model\";\r\n\r\nexport class ProductSearchRequest {\r\n filters: ProductFilterOption[];\r\n pageIndex: number;\r\n pageSize: number;\r\n term: string;\r\n}\r\n", "import { Injectable, OnDestroy } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\nimport { Observable, Subscription } from 'rxjs';\nimport { CookieService } from 'ngx-cookie-service';\nimport { AutoComplete } from '../_models/search/autocomplete.model';\nimport { SearchResults } from '../_models/search/search-results.model';\nimport { ProductSearchResults } from '../_models/search/product.search-results.model';\nimport { ProductFilterOption } from '../_models/catalog/product-filter.model';\nimport { ProductSearchRequest } from '../_models/search/product.search-request.model';\nimport { BlogPost } from '../_models/catalog/blog.model';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class RepositorySearchService implements OnDestroy {\n private subscriptions: Subscription[] = [];\n constructor(private http: HttpClient,\n private cookieService: CookieService) { }\n\n ngOnDestroy(): void {\n if (this.subscriptions && this.subscriptions.length > 0) {\n this.subscriptions.forEach((sub) => { sub.unsubscribe(); });\n }\n }\n\n public search(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('All', term, environment.searchEndPoint, 0, environment.pageSize), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: SearchResults) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting product search results');\n return null;\n }\n }\n\n public suggestBlogPost(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('BlogTerms', term, environment.searchEndPoint), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: AutoComplete[]) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting blog suggest results');\n return null;\n }\n }\n\n public searchBlogPosts(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('Blog', term, environment.searchEndPoint), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: BlogPost[]) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting blog search results');\n return null;\n }\n }\n\n public suggestProduct(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('SuggestProduct', term, environment.searchEndPoint), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: AutoComplete[]) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting product suggest results');\n return null;\n }\n }\n\n public suggestProductTerms(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('ProductTerms', term, environment.searchEndPoint), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: AutoComplete[]) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting product term results');\n return null;\n }\n }\n\n public searchProducts(term: string): Observable {\n try {\n return new Observable((observer) => {\n this.subscriptions.push(this.http.get(this.createCompleteRoute('Product', term, environment.searchEndPoint), this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: SearchResults) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting product search results');\n return null;\n }\n }\n\n public searchProductsPaged(term: string, pageIndex: number, pageSize: number, filters: ProductFilterOption[]): Observable {\n try {\n return new Observable((observer) => {\n const request = new ProductSearchRequest();\n request.term = term;\n request.pageIndex = pageIndex;\n request.pageSize = pageSize;\n if (filters) {\n request.filters = filters;\n } else {\n request.filters = [];\n }\n this.subscriptions.push(this.http.post(`${environment.searchEndPoint}/Search/ElasticSearch/Product/${environment.storeId}`, request, this.generateHeaderOptions(environment.searchEndPoint)).subscribe({\n next: (result: ProductSearchResults) => {\n observer.next(result);\n observer.complete();\n },\n error: (e: HttpErrorResponse) => {\n observer.error(e?.error);\n observer.complete();\n }\n }));\n });\n }\n catch {\n console.log('Error getting product search results');\n return null;\n }\n }\n\n private createCompleteRoute = (routeEnd: string, qualifier: string, envAddress: string, pageIndex?: number, pageSize?: number) => {\n if (pageSize) {\n return `${envAddress}/Search/ElasticSearch/${routeEnd}/${environment.storeId}/${encodeURIComponent(qualifier)}/${pageIndex}/${pageSize}`;\n }\n return `${envAddress}/Search/ElasticSearch/${routeEnd}/${environment.storeId}/${encodeURIComponent(qualifier)}`;\n }\n\n private generateHeaderOptions = (endPoint: string) => {\n if (localStorage.getItem('token') != null) {\n return {\n headers: new HttpHeaders({\n Authorization: 'Bearer ' + localStorage.getItem('token'),\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': endPoint,\n 'Access-Control-Allow-Methods': 'GET',\n 'Access-Control-Allow-Headers': 'Origin, Content-Type, X-Auth-Token, content-type',\n 'omnial': this.omnialHeader()\n })\n };\n } else {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': endPoint,\n 'Access-Control-Allow-Methods': 'GET',\n 'Access-Control-Allow-Headers': 'Origin, Content-Type, X-Auth-Token, content-type',\n 'omnial': this.omnialHeader()\n })\n };\n }\n }\n\n public omnialHeader(): string {\n let customerGuid = this.getCustomerGuid();\n if (!customerGuid) {\n customerGuid = null;\n }\n const omnialValues = {\n 'cacheWorker': false,\n 'storeId': environment.storeId,\n 'customerGuid': customerGuid,\n 'pageSize': environment.pageSize,\n 'topLevelCatId': environment.rootCatId,\n 'includeManufacturers': environment.manufacturers,\n 'currencyCode': environment.currencyCode\n };\n return JSON.stringify(omnialValues);\n }\n\n public getCustomerGuid(): string {\n try {\n if (this.cookieService.check(environment.customerCookieKey)) {\n localStorage.setItem(environment.customerCookieKey, this.cookieService.get(environment.customerCookieKey));\n return this.cookieService.get(environment.customerCookieKey);\n } else {\n setTimeout(() => {\n if (this.cookieService.check(environment.customerCookieKey)) {\n localStorage.setItem(environment.customerCookieKey, this.cookieService.get(environment.customerCookieKey));\n }\n }, 500);\n return localStorage.getItem(environment.customerCookieKey);\n }\n } catch (e) {\n return '';\n }\n }\n}\n", "import { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { AutoComplete } from \"src/@omnial/_models/search/autocomplete.model\";\r\nimport { RepositorySearchService } from \"../repository-search.service\";\r\n\r\n@Injectable()\r\nexport class AutoCompleteService implements OnDestroy {\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(public repoSearchService: RepositorySearchService) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscriptions && this.subscriptions.length > 0) {\r\n this.subscriptions.forEach((sub) => { sub.unsubscribe() });\r\n }\r\n }\r\n\r\n public product(term: string): Observable {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(this.repoSearchService.suggestProduct(term).subscribe({\r\n next: (res) => {\r\n observer.next(res);\r\n observer.complete();\r\n }\r\n }));\r\n });\r\n }\r\n\r\n public productTerms(term: string): Observable {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(this.repoSearchService.suggestProductTerms(term).subscribe({\r\n next: (res) => {\r\n observer.next(res);\r\n observer.complete();\r\n }\r\n }));\r\n });\r\n }\r\n\r\n public blogPostTerms(term: string): Observable {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(this.repoSearchService.suggestBlogPost(term).subscribe({\r\n next: (res) => {\r\n observer.next(res);\r\n observer.complete();\r\n }\r\n }));\r\n });\r\n }\r\n}\r\n"], "mappings": "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", "names": ["ProductSearchRequest", "RepositorySearchService", "constructor", "http", "cookieService", "subscriptions", "createCompleteRoute", "routeEnd", "qualifier", "envAddress", "pageIndex", "pageSize", "environment", "storeId", "encodeURIComponent", "generateHeaderOptions", "endPoint", "localStorage", "getItem", "headers", "HttpHeaders", "Authorization", "omnialHeader", "ngOnDestroy", "length", "forEach", "sub", "unsubscribe", "search", "term", "Observable", "observer", "push", "get", "searchEndPoint", "subscribe", "next", "result", "complete", "error", "e", "console", "log", "suggestBlogPost", "searchBlogPosts", "suggestProduct", "suggestProductTerms", "searchProducts", "searchProductsPaged", "filters", "request", "ProductSearchRequest", "post", "customerGuid", "getCustomerGuid", "omnialValues", "rootCatId", "manufacturers", "currencyCode", "JSON", "stringify", "check", "customerCookieKey", "setItem", "setTimeout", "\u0275\u0275inject", "HttpClient", "CookieService", "factory", "\u0275fac", "providedIn", "AutoCompleteService", "constructor", "repoSearchService", "subscriptions", "ngOnDestroy", "length", "forEach", "sub", "unsubscribe", "product", "term", "Observable", "observer", "push", "suggestProduct", "subscribe", "next", "res", "complete", "productTerms", "suggestProductTerms", "blogPostTerms", "suggestBlogPost", "\u0275\u0275inject", "RepositorySearchService", "factory", "\u0275fac"] }