{"version":3,"file":"metromobilite-m-features-data.mjs","sources":["../../../projects/lib-m-features/data/src/data.token.ts","../../../projects/lib-m-features/data/src/transformer/transformer.helper.ts","../../../projects/lib-m-features/data/src/transformer/transformers/citiz.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/default.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/irve.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/mvc.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/parking-cov.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/parking.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/point-cov.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/pony.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/stationstaxi.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/tier.transformer.ts","../../../projects/lib-m-features/data/src/transformer/transformers/voi.transformer.ts","../../../projects/lib-m-features/data/src/data.module.ts","../../../projects/lib-m-features/data/src/transformer/data-transformer.service.ts","../../../projects/lib-m-features/data/src/transformer/transformers/citizyea.transformer.ts","../../../projects/lib-m-features/data/metromobilite-m-features-data.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const DATA_TRANSFORMER = new InjectionToken<any>('DATA_TRANSFORMER');\r\n","import {Injectable} from '@angular/core';\r\nimport {Interval} from '@metromobilite/m-features/core';\r\nimport {merge, Observable} from 'rxjs';\r\nimport {finalize, shareReplay, tap} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class TransformerHelper {\r\n\r\n\tconstructor() {\r\n\t}\r\n\r\n\tbuildDynamicProperties<T>(interval: Interval, getDataFn: () => Observable<T>): Observable<T> {\r\n\t\treturn merge(getDataFn(), interval.on(getDataFn())).pipe(shareReplay(1));\r\n\t}\r\n\r\n\tlistenDynamicProperties<T>(interval: Interval, obs: Observable<T>, id: string, subscribers: string[]): Observable<T> {\r\n\t\t// Use observable and async pipe to work with dynamic nbPlace value.\r\n\t\t// Finalize is called when the html element is removed from the DOM (and once when the element is created, for unknown reason...).\r\n\t\t// When there is no subscribers (See the finalize method) we are interrupting the interval.\r\n\t\treturn obs.pipe(tap(() => {\r\n\t\t\tsubscribers.push(id);\r\n\t\t\tif (interval.paused) {\r\n\t\t\t\tinterval.resume();\r\n\t\t\t}\r\n\t\t}), finalize(() => {\r\n\t\t\tfor (const _id of subscribers) {\r\n\t\t\t\tif (_id === id) {\r\n\t\t\t\t\t// tslint:disable-next-line:variable-name\r\n\t\t\t\t\tconst i = subscribers.findIndex(__id => __id === id);\r\n\t\t\t\t\tsubscribers.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (subscribers.length === 0) {\r\n\t\t\t\tinterval.pause();\r\n\t\t\t}\r\n\t\t}));\r\n\t}\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { ENABLE_PASSMOBILITE, Interval, IntervalBuilderService, TypesHelper } from '@metromobilite/m-features/core';\r\nimport { CitizHelper, CitizService, VehiculeStatus, VehiculesType, VehiculeType } from '@metromobilite/m-features/dyn';\r\nimport { concat, Observable, zip } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TransformerHelper } from '../transformer.helper';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CitizDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\tprivate static SUBSCRIBERS: string[] = [];\r\n\r\n\ttype = 'citiz';\r\n\r\n\tprivate interval: Interval;\r\n\tprivate citizObs: Observable<any>;\r\n\r\n\tconstructor(\r\n\t\t@Optional() @Inject(ENABLE_PASSMOBILITE) private enablePassmobilite: boolean,\r\n\t\tprivate typesHelper: TypesHelper,\r\n\t\tprivate citizService: CitizService,\r\n\t\tprivate citizHelper: CitizHelper,\r\n\t\tprivate intervalBuilder: IntervalBuilderService,\r\n\t\tprivate transformerHelper: TransformerHelper\r\n\t) {\r\n\t\tthis.interval = this.intervalBuilder.build(60000);\r\n\t\tthis.citizObs = this.transformerHelper.buildDynamicProperties(this.interval, this.citizService.getVehiculeStatus.bind(this.citizService));\r\n\t\tthis.interval.pause();\t\t\r\n\t}\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\t\t\r\n\t\tfeature.properties.meta.displayType = false;\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tconst id = feature.properties[this.typesHelper.idField(feature.properties.type)];\r\n\t\tfeature.properties.meta.id = id;\r\n\t\tfeature.properties.meta._id = id.replace('CIT_', '');\r\n\t\tfeature.properties.name = feature.properties.name.find(f => f.language == 'fr').text;\r\n\r\n\t\tconst dynObs = this.transformerHelper.listenDynamicProperties(this.interval, this.citizObs, id, CitizDataTransformer.SUBSCRIBERS);\r\n\t\t\r\n\t\t\r\n\t\tfeature.properties.meta.vehicles = zip(dynObs, this.citizService.getVehiculeTypes())\r\n\t\t.pipe(\r\n\t\t\tmap(([vehicules, vehicules_types]) => {\r\n\t\t\t\treturn vehicules.data.vehicles.filter((vehicle: any) => vehicle.station_id == feature.properties.station_id)\r\n\t\t\t\t.map((vehicle: any) => {\r\n\t\t\t\t\tvehicle.type = vehicules_types.data.vehicle_types.find((type: any) => type.vehicle_type_id == vehicle.vehicle_type_id);\r\n\t\t\t\t\treturn vehicle\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t)\r\n\t\t\r\n\t\tif (this.interval.paused) {\r\n\t\t\tthis.interval.resume();\r\n\t\t}\r\n\t\t\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {LibellePipe} from '@metromobilite/m-features/core';\r\nimport {Poi} from '@metromobilite/m-features/reference';\r\nimport {Feature} from 'ol';\r\nimport {DataObject, DataTransformerFeatureToObject} from '../transformer.model';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class DefaultDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'default';\r\n\r\n\tconstructor(public libellePipe: LibellePipe) {\r\n\t}\r\n\r\n\tfeatureToObject(feature: Feature | Poi): DataObject {\r\n\t\tlet type = null;\r\n\t\tif ('get' in feature && typeof feature.get === 'function') {\r\n\t\t\ttype = feature.get('type');\r\n\t\t} else if ('properties' in feature) {\r\n\t\t\ttype = feature.properties.type;\r\n\t\t}\r\n\t\tconst displayType = type !== '' && !['citiz', 'citizyea', 'parking', 'CAM'].includes(type) || true;\r\n\r\n\t\tconst poi = {\r\n\t\t\tproperties: {\r\n\t\t\t\t...JSON.parse(JSON.stringify((('getProperties' in feature && feature.getProperties()) || (feature as Poi).properties) as DataObject)),\r\n\t\t\t\tmeta: {\r\n\t\t\t\t\tdisplayType, subline: displayType,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t\tif ('geometry' in feature) {\r\n\t\t\t// tslint:disable-next-line:no-string-literal\r\n\t\t\tpoi['geometry'] = feature.geometry;\r\n\t\t}\r\n\t\treturn poi;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class IrveDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'irve';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tfeature.properties.name = feature.properties.nom_station.replace(/^(([\\S]* - )|(.*_))/, '');\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tfeature.properties.meta.thirdline = true;\r\n\t\tfeature.properties.meta.displayType = false;\r\n\r\n\t\tconst pdcTypePrise: Set<string> = new Set();\r\n\r\n\t\tfeature.properties.pdc.forEach((pdc: any) => {\r\n\t\t\t// Version IRVE@2.2.0\r\n\t\t\t// prise_type_ef: true|false\r\n\t\t\t// prise_type_2: true|false\r\n\t\t\t// prise_type_combo_ccs: true|false\r\n\t\t\t// prise_type_chademo: true|false\r\n\t\t\t// prise_type_autre: true|false\r\n\r\n\t\t\tif (pdc.prise_type_ef.toLowerCase() === 'true') {\r\n\t\t\t\tpdcTypePrise.add('E/F');\r\n\t\t\t\tpdc.prise_type_ef_icon = 'IRVE_EF';\r\n\t\t\t}\r\n\r\n\t\t\tif (pdc.prise_type_2.toLowerCase() === 'true') {\r\n\t\t\t\tpdcTypePrise.add('T2');\r\n\t\t\t\tpdc.prise_type_2_icon = 'IRVE_Type_2';\r\n\t\t\t}\r\n\r\n\t\t\tif (pdc.prise_type_combo_ccs.toLowerCase()  === 'true') {\r\n\t\t\t\tpdcTypePrise.add('Combo/CCS');\r\n\t\t\t\tpdc.prise_type_combo_ccs_icon = 'IRVE_Combo';\r\n\t\t\t}\r\n\r\n\t\t\tif (pdc.prise_type_chademo.toLowerCase() === 'true') {\r\n\t\t\t\tpdcTypePrise.add('Chademo');\r\n\t\t\t\tpdc.prise_type_chademo_icon = 'IRVE_Chademo';\r\n\t\t\t}\r\n\r\n\t\t\tif (pdc.prise_type_autre.toLowerCase() === 'true') {\r\n\t\t\t\tpdcTypePrise.add('Autre');\r\n\t\t\t\t// Pas d’icône pour les autres types de prises\r\n\t\t\t\t// pdc.prise_type_autre\r\n\t\t\t\t// pdc._icon = '';\r\n\t\t\t}\r\n\r\n\t\t});\r\n\r\n\t\tfeature.properties.meta.pdcTypePrise = [...pdcTypePrise].join(', ');\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\nimport { DefaultDataTransformer } from './default.transformer';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MvcDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'MVC';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tlet nbPlace: number;\r\n\t\tif ('properties' in feature) {\r\n\t\t\tnbPlace = feature.properties.TOTAL;\r\n\t\t}\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tif (nbPlace !== undefined) {\r\n\t\t\tfeature.properties.meta.nbPlace = nbPlace;\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t} else {\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\nimport { DefaultDataTransformer } from './default.transformer';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ParkingCovDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'parkingCov';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tconst nbPlace = feature.properties.nbre_pl;\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tif (nbPlace !== undefined) {\r\n\t\t\tfeature.properties.meta.nbPlace = nbPlace;\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t} else {\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Interval, IntervalBuilderService, LibellePipe, SubtypesHelper, TypesHelper } from '@metromobilite/m-features/core';\r\nimport { ParkingsCollection, ParkingsService } from '@metromobilite/m-features/dyn';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TransformerHelper } from '../transformer.helper';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\nimport { DefaultDataTransformer } from './default.transformer';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ParkingDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\tprivate static SUBSCRIBERS: string[] = [];\r\n\r\n\ttype = 'parking';\r\n\tprivate interval: Interval;\r\n\tprivate parkingsObs: Observable<ParkingsCollection>;\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate typesHelper: TypesHelper,\r\n\t\tprivate parkingService: ParkingsService,\r\n\t\tprivate intervalBuilder: IntervalBuilderService,\r\n\t\tprivate transformerHelper: TransformerHelper,\r\n\t\tprivate subtypesHelper: SubtypesHelper\r\n\t) {\r\n\t\tthis.interval = this.intervalBuilder.build(60000);\r\n\t\tthis.parkingsObs = this.transformerHelper.buildDynamicProperties(this.interval, this.parkingService.getParkings.bind(this.parkingService));\r\n\t\tthis.interval.pause();\r\n\t}\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\r\n\t\t// Define subtype property for display.\r\n\t\tfeature.properties.subtype = this.subtypesHelper.get(feature);\r\n\t\tfeature.properties.meta.displayType = true;\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tfeature.properties.meta.thirdline = true;\r\n\r\n\t\tconst id = feature.properties[this.typesHelper.idField(feature.properties.type)];\r\n\r\n\t\tfeature.properties.meta.nbPlace = this.transformerHelper.listenDynamicProperties(\r\n\t\t\tthis.interval,\r\n\t\t\tthis.parkingsObs,\r\n\t\t\tid,\r\n\t\t\tParkingDataTransformer.SUBSCRIBERS\r\n\t\t).pipe(\r\n\t\t\tmap(collection => {\r\n\t\t\t\tif (collection && collection.parking && collection.parking[id]) {\r\n\t\t\t\t\treturn collection.parking[id].nb_places_libres;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t);\r\n\t\tif (this.interval.paused) {\r\n\t\t\tthis.interval.resume();\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\nimport { DefaultDataTransformer } from './default.transformer';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PointCovDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'pointCov';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tconst nbPlace = feature.properties.nbre_pl;\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tif (nbPlace !== undefined) {\r\n\t\t\tfeature.properties.meta.nbPlace = nbPlace;\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t} else {\r\n\t\t\tfeature.properties.meta.displayType = true;\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { PlatformHelper } from '@metromobilite/m-features/core';\r\nimport { PonyService } from '@metromobilite/m-features/dyn';\r\nimport { iif, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PonyDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'ponyVehicle';\r\n\tdiscoveryUri: string;\r\n\tprivate si$: Observable<string | SafeUrl>;\r\n\r\n\tconstructor(\r\n\t\tprivate sanitizer: DomSanitizer,\r\n\t\tprivate ponyService: PonyService,\r\n\t\tprivate platformHelper: PlatformHelper\r\n\t) {\r\n\t\tthis.si$ = this.ponyService.getSystemInformation().pipe(\r\n\t\t\tmap(response => {\r\n\t\t\t\tconst app = this.platformHelper.isIOS ? 'ios' : 'android';\r\n\t\t\t\tif (response.data && response.data.rental_apps && response.data.rental_apps[app]) {\r\n\t\t\t\t\tthis.discoveryUri = response.data.rental_apps[app].discovery_uri;\r\n\t\t\t\t\treturn this.sanitizer.bypassSecurityTrustUrl(this.discoveryUri);\r\n\t\t\t\t}\r\n\t\t\t\treturn undefined;\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tfeature.properties.LIBELLE = 'PONY';\r\n\t\tfeature.properties.meta.displayType = false;\r\n\t\tfeature.properties.meta.discoveryUri$ = iif(() => this.discoveryUri === undefined, this.si$, of(this.discoveryUri));\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StationstaxiDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'stationstaxi';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\nimport { DefaultDataTransformer } from './default.transformer';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TierDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'tierVehicle';\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tfeature.properties.LIBELLE = 'TIER';\r\n\t\tfeature.properties.meta.displayType = false;\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\r\nimport {PlatformHelper} from '@metromobilite/m-features/core';\r\nimport {iif, Observable, of} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\nimport {DataObject, DataTransformerFeatureToObject} from '../transformer.model';\r\nimport { VoiService } from '@metromobilite/m-features/dyn';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class VoiDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\ttype = 'voi';\r\n\tdiscoveryUri: string;\r\n\tprivate si$: Observable<string | SafeUrl>;\r\n\r\n\tconstructor(\r\n\t\tprivate sanitizer: DomSanitizer,\r\n\t\tprivate voiService: VoiService,\r\n\t\tprivate platformHelper: PlatformHelper\r\n\t) {\r\n\t\tthis.si$ = this.voiService.getSystemInformation().pipe(map(response => {\r\n\t\t\tconst app = this.platformHelper.isIOS ? 'ios' : 'android';\r\n\t\t\tif (response.data && response.data.rental_apps && response.data.rental_apps[app]) {\r\n\t\t\t\tthis.discoveryUri = response.data.rental_apps[app].discovery_uri;\r\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustUrl(this.discoveryUri);\r\n\t\t\t}\r\n\t\t\treturn undefined;\r\n\t\t}));\r\n\t}\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tfeature.properties.LIBELLE = 'voi';\r\n\t\tfeature.properties.meta.displayType = false;\r\n\t\tfeature.properties.meta.discoveryUri$ = iif(() => this.discoveryUri === undefined, this.si$, of(this.discoveryUri));\r\n\t\t// Dans les cas où les transformers se font dans le désordre, réécrit la valeur d'arr pour le calculateur d'itineraire\r\n\t\tif (feature.properties.meta && feature.properties.meta.itineraryQueryParams &&\r\n\t\t\t(!feature.properties.meta.itineraryQueryParams.arr || typeof feature.properties.meta.itineraryQueryParams.arr === 'undefined')) {\r\n\t\t\tfeature.properties.meta.itineraryQueryParams.arr = feature.properties.LIBELLE;\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CoreModule, LibellePipe } from '@metromobilite/m-features/core';\r\nimport { DATA_TRANSFORMER } from './data.token';\r\nimport { CitizDataTransformer } from './transformer/transformers/citiz.transformer';\r\n// import { CitizYeaDataTransformer } from './transformer/transformers/citizyea.transformer';\r\nimport { DefaultDataTransformer } from './transformer/transformers/default.transformer';\r\nimport { IrveDataTransformer } from './transformer/transformers/irve.transformer';\r\nimport { MvcDataTransformer } from './transformer/transformers/mvc.transformer';\r\nimport { ParkingCovDataTransformer } from './transformer/transformers/parking-cov.transformer';\r\nimport { ParkingDataTransformer } from './transformer/transformers/parking.transformer';\r\nimport { PointCovDataTransformer } from './transformer/transformers/point-cov.transformer';\r\nimport { PonyDataTransformer } from './transformer/transformers/pony.transformer';\r\nimport { StationstaxiDataTransformer } from './transformer/transformers/stationstaxi.transformer';\r\nimport { TierDataTransformer } from './transformer/transformers/tier.transformer';\r\nimport { VoiDataTransformer } from './transformer/transformers/voi.transformer';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCoreModule,\r\n\t],\r\n\tproviders: [\r\n\t\tLibellePipe,\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: DefaultDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: MvcDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: ParkingDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: PonyDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: IrveDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: TierDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: CitizDataTransformer, multi: true },\r\n\t\t// { provide: DATA_TRANSFORMER, useClass: CitizYeaDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: PointCovDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: ParkingCovDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: StationstaxiDataTransformer, multi: true },\r\n\t\t{ provide: DATA_TRANSFORMER, useClass: VoiDataTransformer, multi: true },\r\n\t]\r\n})\r\nexport class DataModule { }\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Poi } from '@metromobilite/m-features/reference';\r\nimport { Feature } from 'ol';\r\nimport { DATA_TRANSFORMER } from '../data.token';\r\nimport { DataObject } from './transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DataTransformerService {\r\n\r\n\ttransformers: { [key: string]: any } = {};\r\n\r\n\tconstructor(\r\n\t\t@Inject(DATA_TRANSFORMER) transformers: any[]\r\n\t) {\r\n\t\tfor (const transformer of transformers) {\r\n\t\t\tif (transformer.type === undefined) {\r\n\t\t\t\tthrow new Error('A data transformer must have a type attribute');\r\n\t\t\t}\r\n\t\t\tthis.transformers[transformer.type] = transformer;\r\n\t\t}\r\n\t}\r\n\r\n\tfeatureToObject(feature: Feature | Poi): DataObject {\r\n\t\tlet type = null;\r\n\t\tif ('get' in feature && typeof feature.get === 'function') {\r\n\t\t\ttype = feature.get('type');\r\n\t\t} else if ('properties' in feature) {\r\n\t\t\ttype = feature.properties.type;\r\n\t\t}\r\n\t\tif (type) {\r\n\t\t\tconst transformers = [this.transformers.default];\r\n\t\t\tif (this.transformers[type] !== undefined) {\r\n\t\t\t\tconst transformer = this.transformers[type];\r\n\t\t\t\tif ('featureToObject' in transformer) {\r\n\t\t\t\t\ttransformers.push(this.transformers[type]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn transformers.reduce((acc, t) => t.featureToObject(acc), feature);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { ENABLE_PASSMOBILITE, Interval, IntervalBuilderService, TypesHelper } from '@metromobilite/m-features/core';\r\nimport { _CitizYeaService } from '@metromobilite/m-features/dyn';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TransformerHelper } from '../transformer.helper';\r\nimport { DataObject, DataTransformerFeatureToObject } from '../transformer.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class _CitizYeaDataTransformer implements DataTransformerFeatureToObject {\r\n\r\n\tprivate static SUBSCRIBERS: string[] = [];\r\n\r\n\ttype = 'citizyea';\r\n\r\n\tprivate interval: Interval;\r\n\tprivate citizObs: Observable<any>;\r\n\r\n\tconstructor(\r\n\t\t@Optional() @Inject(ENABLE_PASSMOBILITE) private enablePassmobilite: boolean,\r\n\t\tprivate typesHelper: TypesHelper,\r\n\t\tprivate citizYeaService: _CitizYeaService,\r\n\t\tprivate intervalBuilder: IntervalBuilderService,\r\n\t\tprivate transformerHelper: TransformerHelper\r\n\t) {\r\n\t\tthis.interval = this.intervalBuilder.build(60000);\r\n\t\tthis.citizObs = this.transformerHelper.buildDynamicProperties(this.interval, this.citizYeaService.getData.bind(this.citizYeaService));\r\n\t\tthis.interval.pause();\r\n\t}\r\n\r\n\tfeatureToObject(feature: DataObject): DataObject {\r\n\t\tfeature.properties.meta.displayType = false;\r\n\t\tfeature.properties.meta.subline = true;\r\n\t\tconst id = feature.properties[this.typesHelper.idField(feature.properties.type)];\r\n\t\tfeature.properties.meta.id = id;\r\n\t\tfeature.properties.meta._id = id.replace('YEA_', '');\r\n\t\tfeature.properties.meta.reservationLink = {\r\n\t\t\thref: this.enablePassmobilite ? `${location.origin}/mypass/citiz/reservation/confirm/${feature.properties.meta._id}` : 'https://citiz.coop/',\r\n\t\t\ttarget: this.enablePassmobilite ? '_self' : '_blank'\r\n\t\t};\r\n\r\n\t\tfeature.properties.meta.fuelLevel = this.transformerHelper.listenDynamicProperties(\r\n\t\t\tthis.interval,\r\n\t\t\tthis.citizObs,\r\n\t\t\tid,\r\n\t\t\t_CitizYeaDataTransformer.SUBSCRIBERS\r\n\t\t).pipe(\r\n\t\t\tmap(collection => {\r\n\t\t\t\tif (collection && collection.features) {\r\n\t\t\t\t\tconst vehicle = collection.features.find(f => f.properties.code === id);\r\n\t\t\t\t\tif (vehicle && vehicle.properties.fuelLevel) {\r\n\t\t\t\t\t\treturn vehicle.properties.fuelLevel;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t})\r\n\t\t);\r\n\t\tif (this.interval.paused) {\r\n\t\t\tthis.interval.resume();\r\n\t\t}\r\n\t\treturn feature;\r\n\t}\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.TransformerHelper","i1","i3"],"mappings":"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"}