{"version":3,"file":"metromobilite-m-features-reference.mjs","sources":["../../../projects/lib-m-features/reference/src/strategies/strategy.interface.ts","../../../projects/lib-m-features/reference/src/reference.service.ts","../../../projects/lib-m-features/reference/src/cluster-pattern.resolver.ts","../../../projects/lib-m-features/reference/src/poi.resolver.ts","../../../projects/lib-m-features/reference/src/cities.resolver.ts","../../../projects/lib-m-features/reference/src/cluster-to-poi.helper.ts","../../../projects/lib-m-features/reference/src/pipes/to-poi.pipe.ts","../../../projects/lib-m-features/reference/src/strategies/patterns/default.pattern.strategy.ts","../../../projects/lib-m-features/reference/src/reference.module.ts","../../../projects/lib-m-features/reference/metromobilite-m-features-reference.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ReferenceSortStrategy<T> {\r\n\tsort(a: T, b: T): number;\r\n}\r\n\r\nexport interface ReferenceTransformStrategy<T, U> {\r\n\ttransform(response: T): U;\r\n}\r\n\r\nexport interface ReferenceStrategy {\r\n\tname: string;\r\n}\r\n\r\nexport const PATTERNS_STRATEGY = new InjectionToken<ReferenceStrategy>('PatternsReferenceStrategy');\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { Poi, PoiCollection } from './models/poi.model';\r\nimport { ClusterPatternResponse, Pattern } from './models/cluster-pattern.model';\r\nimport { PATTERNS_STRATEGY, ReferenceStrategy, ReferenceTransformStrategy, ReferenceSortStrategy } from './strategies/strategy.interface';\r\nimport { City } from './models/city.model';\r\nimport { Line, LinesService } from '@metromobilite/m-features/core';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ReferenceService {\r\n\r\n\tpatterns: { [key: string]: { [key: string]: Pattern[] } } = {};\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate linesService : LinesService,\r\n\t\t@Inject(PATTERNS_STRATEGY) private strategies: ReferenceStrategy[]\r\n\t) { }\r\n\r\n\tgetPoi(code: string, type = 'clusters'): Observable<Poi> {\r\n\t\treturn this.getPois([code], type).pipe(map(collection => collection[0]));\r\n\t}\r\n\r\n\tgetPois(codes: string[], type = 'clusters'): Observable<Poi[]> {\r\n\t\tconst params = new HttpParams({\r\n\t\t\tfromObject: {\r\n\t\t\t\tcodes: codes.join(','),\r\n\t\t\t\ttypes: type,\r\n\t\t\t\tepci: 'All'\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this.http.get<PoiCollection>(`@domain/@api/points/json`, { params }).pipe(map(collection => collection.features));\r\n\t}\r\n\r\n\t/**\r\n\t * @param type Array of types to filter the POIs\r\n\t * @returns Observable of POIs\r\n\t * @example\r\n\t * getPoisByTypes(['PME', 'parking']).subscribe(pois => console.log(pois));\r\n\t */\r\n\tgetPoisByTypes(type: string[]): Observable<Poi[]> {\r\n\t\tconst params = new HttpParams({\r\n\t\t\tfromObject: {\r\n\t\t\t\ttypes: type.join(','),\r\n\t\t\t\tepci: 'All'\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this.http.get<PoiCollection>(`@domain/@api/points/json`, { params }).pipe(map(collection => collection.features));\r\n\t}\r\n\r\n\tgetClusterPatterns(cluster: string, strategy = 'default-pattern'): Observable<Pattern[]> {\r\n\t\tif (this.patterns[cluster] && this.patterns[cluster][strategy]) {\r\n\t\t\treturn of(this.patterns[cluster][strategy]);\r\n\t\t}\r\n\t\treturn this.http.get<ClusterPatternResponse>(`@domain/@api/clusters/${cluster}/patterns`).pipe(map((response) => {\r\n\t\t\tconst selectedStrategy = this.strategies.find(s => s.name === strategy);\r\n\t\t\tlet tmp: Pattern[];\r\n\t\t\tif ('transform' in selectedStrategy) {\r\n\t\t\t\ttmp = (selectedStrategy as unknown as ReferenceTransformStrategy<ClusterPatternResponse, Pattern[]>).transform(response);\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('No patterns reference transform strategy provided.');\r\n\t\t\t}\r\n\t\t\tif ('sort' in selectedStrategy) {\r\n\t\t\t\ttmp.sort((a, b) => {\r\n\t\t\t\t\treturn (selectedStrategy as unknown as ReferenceSortStrategy<Pattern>).sort(a, b);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t// Save in memory to reuse.\r\n\t\t\tif (!this.patterns[cluster]) {\r\n\t\t\t\tthis.patterns[cluster] = {};\r\n\t\t\t}\r\n\t\t\tif (!this.patterns[cluster][strategy]) {\r\n\t\t\t\tthis.patterns[cluster][strategy] = tmp;\r\n\t\t\t}\r\n\t\t\treturn this.patterns[cluster][strategy];\r\n\t\t}));\r\n\t}\r\n\r\n\tgetLinesAtCluster(cluster: string): Observable<Line[]> {\r\n\t\treturn this.http.get<Line[]>(`@domain/@api/routers/default/index/clusters/${cluster}/routes`).pipe(map(\r\n\t\t\tlines => this.linesService.enrichLines(lines))\r\n\t\t);\r\n\t}\r\n\r\n\tgetCities(): Observable<City[]> {\r\n\t\treturn this.http.get<City[]>(`@domain/@api/city/json`);\r\n\t}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router';\r\nimport {of} from 'rxjs';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {Pattern} from './models/cluster-pattern.model';\r\nimport {ReferenceService} from './reference.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class ClusterPatternResolver implements Resolve<any> {\r\n\r\n\tconstructor(private referenceService: ReferenceService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.referenceService.getClusterPatterns(route.params.id)\r\n\t\t\t.pipe(catchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getClusterPatterns in ClusterPatternResolver: ', error);\r\n\t\t\t\treturn of([] as Pattern[]);\r\n\t\t\t}))\r\n\t\t\t.subscribe((data: Pattern[]) => resolve(data));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router';\r\nimport {of} from 'rxjs';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {Poi} from './models/poi.model';\r\nimport {ReferenceService} from './reference.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class PoiResolver implements Resolve<any> {\r\n\r\n\tconstructor(private referenceService: ReferenceService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.referenceService.getPoi(route.params.id, route.params.type || 'clusters')\r\n\t\t\t.pipe(catchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getPoi in PoiResolver: ', error);\r\n\t\t\t\treturn of({} as Poi);\r\n\t\t\t}))\r\n\t\t\t.subscribe((data) => resolve(data));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router';\r\nimport {Observable, of} from 'rxjs';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {City} from './models/city.model';\r\nimport {ReferenceService} from './reference.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CitiesResolver implements Resolve<City[]> {\r\n\r\n\tconstructor(private referenceService: ReferenceService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<City[]> {\r\n\t\treturn this.referenceService.getCities().pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getCities in CitiesResolver: ', error);\r\n\t\t\treturn of([] as City[]);\r\n\t\t}));\r\n\t}\r\n}\r\n","import { Cluster } from '@metromobilite/m-features/core';\r\nimport { Poi } from './models/poi.model';\r\n\r\nexport function clusterToPoi(cluster: Cluster): Poi {\r\n\treturn {\r\n\t\tgeometry: {\r\n\t\t\ttype: 'Point',\r\n\t\t\tcoordinates: [cluster.lat, cluster.lon]\r\n\t\t},\r\n\t\tproperties: {\r\n\t\t\tcity: cluster.city,\r\n\t\t\tcode: cluster.code,\r\n\t\t\tid: cluster.id,\r\n\t\t\tname: cluster.name,\r\n\t\t\ttype: 'clusters',\r\n\t\t\tvisible: cluster.visible,\r\n\t\t\tLaMetro: undefined,\r\n\t\t\tLeGresivaudan: undefined,\r\n\t\t\tPaysVoironnais: undefined,\r\n\t\t},\r\n\t\ttype: 'Feature'\r\n\t};\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Cluster } from '@metromobilite/m-features/core';\r\nimport { Poi } from '../models/poi.model';\r\nimport { clusterToPoi } from '../cluster-to-poi.helper';\r\n\r\n@Pipe({\r\n\tname: 'toPoi'\r\n})\r\nexport class ToPoiPipe implements PipeTransform {\r\n\r\n\ttransform(value: Cluster): Poi {\r\n\t\treturn clusterToPoi(value);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ReferenceSortStrategy, ReferenceTransformStrategy, ReferenceStrategy } from '../strategy.interface';\r\nimport { Pattern, ClusterPatternResponse } from '../../models/cluster-pattern.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class DefaultPatternStrategy implements ReferenceStrategy,\r\n\tReferenceSortStrategy<Pattern>, ReferenceTransformStrategy<ClusterPatternResponse, Pattern[]> {\r\n\r\n\tname = 'default-pattern';\r\n\r\n\tsort(a: Pattern, b: Pattern): number {\r\n\t\tconst [an, al, ad, ap] = a.id.split(':');\r\n\t\tconst [bn, bl, bd, bp] = b.id.split(':');\r\n\t\tif (an === bn) {\r\n\t\t\tif (isNaN(+al) && !isNaN(+bl)) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else if (isNaN(+bl) && !isNaN(+al)) {\r\n\t\t\t\treturn 1;\r\n\t\t\t} else if (al.length === 1 && bl.length > 1) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else if (bl.length === 1 && al.length > 1) {\r\n\t\t\t\treturn 1;\r\n\t\t\t} else {\r\n\t\t\t\tif (al === bl) {\r\n\t\t\t\t\tif (ad === bd) {\r\n\t\t\t\t\t\treturn +ap > +bp ? 1 : -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn +ad > +bd ? 1 : -1;\r\n\t\t\t\t}\r\n\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (an === 'SEM' && bn !== an) return -1;\r\n\t\t\tif (an === 'C38' && ['GSV', 'TPV'].includes(bn)) return -1;\r\n\t\t\tif (an === 'GSV' && ['TPV'].includes(bn)) return -1;\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\ttransform(response: ClusterPatternResponse): Pattern[] {\r\n\t\treturn Object.values(response).reduce<Pattern[]>((acc, patterns) => {\r\n\t\t\tpatterns.forEach(pattern => {\r\n\t\t\t\tconst _p = acc.find(p => {\r\n\t\t\t\t\treturn p.id.split(':').slice(0, 3).join(':') === pattern.id.split(':').slice(0, 3).join(':') && p.lastStop === pattern.lastStop;\r\n\t\t\t\t});\r\n\t\t\t\tif (!_p) {\r\n\t\t\t\t\tacc.push(pattern);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn acc;\r\n\t\t}, []);\r\n\t}\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { CoreModule } from '@metromobilite/m-features/core';\r\nimport { ToPoiPipe } from './pipes/to-poi.pipe';\r\nimport { PATTERNS_STRATEGY } from './strategies/strategy.interface';\r\nimport { DefaultPatternStrategy } from './strategies/patterns/default.pattern.strategy';\r\n\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tToPoiPipe,\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tHttpClientModule,\r\n\t\tCoreModule,\r\n\t],\r\n\tproviders: [\r\n\t\t{ provide: PATTERNS_STRATEGY, useClass: DefaultPatternStrategy, multi: true },\r\n\t],\r\n\texports: [\r\n\t\tToPoiPipe,\r\n\t]\r\n})\r\nexport class ReferenceModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ReferenceService"],"mappings":"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"}