{"version":3,"file":"metromobilite-m-features-core.mjs","sources":["../../../projects/lib-m-features/core/src/core.token.ts","../../../projects/lib-m-features/core/src/pipes/type-label.pipe.ts","../../../projects/lib-m-features/core/src/components/type-label/type-label.component.ts","../../../projects/lib-m-features/core/src/components/type-label/type-label.component.html","../../../projects/lib-m-features/core/src/core.model.ts","../../../projects/lib-m-features/core/src/helpers/platform.helper.ts","../../../projects/lib-m-features/core/src/config/config.service.ts","../../../projects/lib-m-features/core/src/pipes/commune.pipe.ts","../../../projects/lib-m-features/core/src/pipes/extract-city.pipe.ts","../../../projects/lib-m-features/core/src/pipes/extract-line-id.pipe.ts","../../../projects/lib-m-features/core/src/helpers/object.helper.ts","../../../projects/lib-m-features/core/src/helpers/string.helper.ts","../../../projects/lib-m-features/core/src/pipes/filter.pipe.ts","../../../projects/lib-m-features/core/src/pipes/groupBy.pipe.ts","../../../projects/lib-m-features/core/src/helpers/types.helper.ts","../../../projects/lib-m-features/core/src/pipes/id.pipe.ts","../../../projects/lib-m-features/core/src/pipes/libelle.pipe.ts","../../../projects/lib-m-features/core/src/config/data-types.resolver.ts","../../../projects/lib-m-features/core/src/config/map-filters.resolver.ts","../../../projects/lib-m-features/core/src/config/routes-types.resolver.ts","../../../projects/lib-m-features/core/src/config/plans-reseaux.resolver.ts","../../../projects/lib-m-features/core/src/config/poc-tiles.resolver.ts","../../../projects/lib-m-features/core/src/config/filter-infomation.resolver.ts","../../../projects/lib-m-features/core/src/config/legal-notice.resolver.ts","../../../projects/lib-m-features/core/src/config/otp.resolver.ts","../../../projects/lib-m-features/core/src/config/ping-reseau-updates.resolver.ts","../../../projects/lib-m-features/core/src/config/ping.resolver.ts","../../../projects/lib-m-features/core/src/config/global.service.ts","../../../projects/lib-m-features/core/src/lines/lines.service.ts","../../../projects/lib-m-features/core/src/pipes/line-color.pipe.ts","../../../projects/lib-m-features/core/src/pipes/line.pipe.ts","../../../projects/lib-m-features/core/src/pipes/mode.pipe.ts","../../../projects/lib-m-features/core/src/pipes/time.pipe.ts","../../../projects/lib-m-features/core/src/lines/lines.resolver.ts","../../../projects/lib-m-features/core/src/lines/all-routes.resolver.ts","../../../projects/lib-m-features/core/src/lines/linesCalendar.resolver.ts","../../../projects/lib-m-features/core/src/lines/browse-lines.ts","../../../projects/lib-m-features/core/src/lines/routesType.service.ts","../../../projects/lib-m-features/core/src/interceptors/api.interceptor.ts","../../../projects/lib-m-features/core/src/interceptors/domain.interceptor.ts","../../../projects/lib-m-features/core/src/core.constant.ts","../../../projects/lib-m-features/core/src/pipes/duration.pipe.ts","../../../projects/lib-m-features/core/src/pipes/distance.pipe.ts","../../../projects/lib-m-features/core/src/subtypes/parking.subtypes.ts","../../../projects/lib-m-features/core/src/directives/image.directive.ts","../../../projects/lib-m-features/core/src/pipes/join.pipe.ts","../../../projects/lib-m-features/core/src/pipes/transport-mode.pipe.ts","../../../projects/lib-m-features/core/src/helpers/json-to-html.helper.ts","../../../projects/lib-m-features/core/src/pipes/json-to-html.pipe.ts","../../../projects/lib-m-features/core/src/directives/pm-absolute-link.directive.ts","../../../projects/lib-m-features/core/src/pipes/pm-fix-coordinates.pipe.ts","../../../projects/lib-m-features/core/src/pipes/detail-poi-route.pipe.ts","../../../projects/lib-m-features/core/src/pipes/safe-url.pipe.ts","../../../projects/lib-m-features/core/src/pipes/line-detail-route.pipe.ts","../../../projects/lib-m-features/core/src/pipes/line-type.pipe.ts","../../../projects/lib-m-features/core/src/pipes/line-use-circle.pipe.ts","../../../projects/lib-m-features/core/src/pipes/line-use-rounded.pipe.ts","../../../projects/lib-m-features/core/src/pipes/fake-line.pipe.ts","../../../projects/lib-m-features/core/src/pipes/itinerary-route.pipe.ts","../../../projects/lib-m-features/core/src/pipes/pipe-transferer.pipe.ts","../../../projects/lib-m-features/core/src/pipes/search-filter.pipe.ts","../../../projects/lib-m-features/core/src/pipes/is-hour-display.pipe.ts","../../../projects/lib-m-features/core/src/directives/autofocus.directive.ts","../../../projects/lib-m-features/core/src/subtypes/voi.subtypes.ts","../../../projects/lib-m-features/core/src/core.module.ts","../../../projects/lib-m-features/core/src/geolocation/geolocation.watch.ts","../../../projects/lib-m-features/core/src/geolocation/geolocation.service.ts","../../../projects/lib-m-features/core/src/geolocation/geolocation.guard.ts","../../../projects/lib-m-features/core/src/helpers/array.helper.ts","../../../projects/lib-m-features/core/src/helpers/style.helper.ts","../../../projects/lib-m-features/core/src/helpers/date.helper.ts","../../../projects/lib-m-features/core/src/helpers/subtypes.helper.ts","../../../projects/lib-m-features/core/src/helpers/sort-lines.helper.ts","../../../projects/lib-m-features/core/src/helpers/distance.helper.ts","../../../projects/lib-m-features/core/src/interval/interval.class.ts","../../../projects/lib-m-features/core/src/visibility/app-visibility.service.ts","../../../projects/lib-m-features/core/src/interval/interval.service.ts","../../../projects/lib-m-features/core/src/clusters/clusters.service.ts","../../../projects/lib-m-features/core/src/clusters/clusters.resolver.ts","../../../projects/lib-m-features/core/src/maps/maps.service.ts","../../../projects/lib-m-features/core/src/maps/maps.resolver.ts","../../../projects/lib-m-features/core/src/user-settings/user-settings.model.ts","../../../projects/lib-m-features/core/src/user-settings/user-settings.service.ts","../../../projects/lib-m-features/core/src/status-bar/status-bar.service.ts","../../../projects/lib-m-features/core/src/flow/flow.model.ts","../../../projects/lib-m-features/core/src/flow/flow.ts","../../../projects/lib-m-features/core/src/flow/flow.token.ts","../../../projects/lib-m-features/core/src/flow/flow.builder.ts","../../../projects/lib-m-features/core/src/flow/flow.decorator.ts","../../../projects/lib-m-features/core/src/domain/domain.service.ts","../../../projects/lib-m-features/core/src/api/api.service.ts","../../../projects/lib-m-features/core/src/letaxi/letaxi.service.ts","../../../projects/lib-m-features/core/src/address/address.service.ts","../../../projects/lib-m-features/core/metromobilite-m-features-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { DeeplinkTagNPass, GeolocationConfig, IconsMapping, Subtypes, TypeLabels } from './core.model';\r\n\r\nexport const AVAILABLE_LINE_TYPES = new InjectionToken<string[]>('MF_AVAILABLE_LINE_TYPES');\r\n\r\nexport const VISIBILITY_BACKGROUND_TIMER = new InjectionToken<number>('MF_VISIBILITY_BACKGROUND_TIMER');\r\n\r\nexport const GEOLOCATION_CONFIG = new InjectionToken<GeolocationConfig>('MF_GEOLOCATION_CONFIG');\r\n\r\nexport const ICONS_MAPPING = new InjectionToken<IconsMapping>('MF_ICONS_MAPPING');\r\n\r\nexport const SUBTYPES = new InjectionToken<Subtypes>('MF_SUBTYPES');\r\n\r\nexport const TYPE_LABELS = new InjectionToken<TypeLabels>('MF_TYPE_LABELS');\r\n\r\n// Provided by PassmobiliteModule\r\nexport const IV_BASE_URL = new InjectionToken<string>('MFeaturesPassmobiliteIvBaseUrl');\r\n\r\nexport const ENABLE_PASSMOBILITE = new InjectionToken<boolean>('MF_ENABLE_PASSMOBILITE');\r\n\r\n","import { Inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { TypeLabels } from '../core.model';\r\nimport { TYPE_LABELS } from '../core.token';\r\n\r\n@Pipe({\r\n\tname: 'mfTypeLabel',\r\n})\r\nexport class MfTypeLabelPipe implements PipeTransform {\r\n\r\n\tconstructor(@Inject(TYPE_LABELS) private typeLabels: TypeLabels) { }\r\n\r\n\ttransform(value: string): string {\r\n\t\treturn this.typeLabels[value] || '';\r\n\t}\r\n\r\n}\r\n\r\n@Pipe({\r\n\tname: 'mfHasTypeLabel',\r\n})\r\nexport class MfHasTypeLabelPipe implements PipeTransform {\r\n\r\n\tconstructor(@Inject(TYPE_LABELS) private typeLabels: TypeLabels) { }\r\n\r\n\ttransform(value: string): boolean {\r\n\t\treturn this.typeLabels[value] !== undefined;\r\n\t}\r\n}\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'mf-type-label, [mfTypeLabel]',\r\n\ttemplateUrl: './type-label.component.html',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TypeLabelComponent {\r\n\r\n\tstatic showWarning = true;\r\n\r\n\t@Input() type: string;\r\n\r\n\tconstructor() {\r\n\t\tif (TypeLabelComponent.showWarning) {\r\n\t\t\tconsole.warn('This component is deprecated, use the mfTypeLabel and mfHasTypeLabel pipes instead.');\r\n\t\t\tTypeLabelComponent.showWarning = false;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","{{ type | mfTypeLabel }}\r\n","export enum FRONT_CONFIG {\r\n\tDATA_TYPES = 'datatypes',\r\n\tMAP_FILTERS = 'mapfilters_2',\r\n\tROUTES_TYPES = 'routestypes_2',\r\n\tPLANS_RESEAUX = 'plansreseaux',\r\n\tFILTER_INFORMATION = 'filterinformation',\r\n\tLEGAL_NOTICE = 'legalnotice',\r\n\tOTP = 'otp',\r\n\tPOC_TILES = 'pocTiles',\r\n\tPING_RESEAU_UPDATES = 'ping-reseau-updates',\r\n\tPING = 'ping',\r\n\tZONE = 'zone'\r\n}\r\n\r\nexport interface DataTypeCollection {\r\n\t[key: string]: DataType;\r\n}\r\n\r\nexport interface DataType {\r\n\tlibelle?: string;\r\n\tcommune?: string;\r\n\ticonMaxRes?: number;\r\n\ticonMinRes?: number;\r\n\ticon?: DataTypeIcon;\r\n\tmap?: boolean;\r\n\tselected?: DataTypeIcon;\r\n\tlinesNear?: boolean;\r\n\tisEvent?: boolean;\r\n\tidField?: string;\r\n\tversion?: string;\r\n\tstrategy?: Strategy;\r\n}\r\n\r\nexport interface Strategy {\r\n\tapi: string;\r\n\tfeatures: string;\r\n\tlon: string;\r\n\tlat: string;\r\n}\r\n\r\nexport interface DataTypeIcon {\r\n\tsrc: string;\r\n\tanchor: [number, number];\r\n\tscale?: number;\r\n}\r\n\r\nexport interface GeolocationConfig {\r\n\tenableHighAccuracy?: boolean;\r\n\tmaximumAge?: number;\r\n\ttimeout?: number;\r\n}\r\n\r\nexport interface IconsMapping {\r\n\t[key: string]: string;\r\n}\r\n\r\nexport interface MapFiltersResponse {\r\n\tfilters: MapFilter[];\r\n\tpreConfig: {\r\n\t\ttc: string[];\r\n\t\tbike: string[];\r\n\t\tcar: string[];\r\n\t\t[key: string]: string[];\r\n\t};\r\n}\r\n\r\nexport interface MapFilter {\r\n\tname: string;\r\n\tid: string;\r\n\ticon?: string;\r\n\tchildren?: MapFilter[];\r\n\tupdate?: boolean;\r\n\t[key: string]: any;\r\n}\r\n\r\nexport interface Subtypes {\r\n\ttype: string;\r\n\r\n\tget(featureOrObjectWithProperties: any): string;\r\n}\r\n\r\nexport interface TypeLabels {\r\n\t[key: string]: string;\r\n}\r\n\r\nexport interface Information {\r\n\tgroup: string;\r\n\tname: string;\r\n\tpicture?: string;\r\n\tdescription: InformationDescription[];\r\n}\r\n\r\nexport interface InformationDescription {\r\n\ttag: string;\r\n\tattributes?: { [key: string]: string };\r\n\tchildren: (string | InformationDescription)[];\r\n}\r\n\r\nexport interface DeeplinkTagNPass {\r\n\twebLink: string;\r\n}\r\n\r\nexport interface PlanReseau {\r\n\treseau: string;\r\n\tnom: string;\r\n\turl: string;\r\n}\r\n\r\n\r\nexport interface PingTile {\r\n    title: string;\r\n    subtitle?: string;\r\n\tlabelPanel?: string;\r\n    icon: string;\r\n    slug: string;\r\n    image?: string;\r\n    production?: boolean;\r\n    external?: boolean;\r\n\ttemporary?: boolean;\r\n\t[label: string]: any\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Helper pour la detection d'iPhone (désactivation caméras sur iOS... )\r\n */\r\n\r\nexport function is_iOS(): boolean {\r\n\treturn !!navigator.userAgent.match(/iPhone/i);\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PlatformHelper {\r\n\r\n\tisIOS = is_iOS();\r\n\r\n\tget iOS(): boolean {\r\n\t\treturn this.isIOS;\r\n\t}\r\n\r\n\tisMobile(): boolean {\r\n\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { FRONT_CONFIG, MapFilter, MapFiltersResponse } from '../core.model';\r\nimport { PlatformHelper } from '../helpers/platform.helper';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfigService {\r\n\r\n\tconfig: { [key: string]: any } = {};\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate platformHelper: PlatformHelper\r\n\t) { }\r\n\r\n\tgetData(name: string): Observable<any> {\r\n\t\tif (this.config[name] !== undefined) {\r\n\t\t\treturn of(this.config[name]);\r\n\t\t}\r\n\t\treturn this.http.get(`@domain/@api/front/config/${name}`).pipe(\r\n\t\t\tmap(response => {\r\n\t\t\t\tif (name === FRONT_CONFIG.MAP_FILTERS) {\r\n\t\t\t\t\tthis.transformMapFiltersResponse(response as MapFiltersResponse);\r\n\t\t\t\t}\r\n\t\t\t\tthis.config[name] = response;\r\n\t\t\t\treturn response;\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tprivate transformMapFiltersResponse(response: MapFiltersResponse) {\r\n\t\tif (this.platformHelper.iOS) {\r\n\t\t\t// Remove poi:cam in preConfig and filters objects.\r\n\t\t\tif (response.preConfig) {\r\n\t\t\t\tObject.values(response.preConfig).forEach((states: string[]) => {\r\n\t\t\t\t\tfor (let i = 0; i < states.length; i++) {\r\n\t\t\t\t\t\tif (states[i] === 'poi:cam') {\r\n\t\t\t\t\t\t\tstates.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (response.filters) {\r\n\t\t\t\tresponse.filters.forEach(root => {\r\n\t\t\t\t\tthis.mapFiltersRemoveState('poi:cam', root);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate mapFiltersRemoveState(state: string, filter: MapFilter): boolean {\r\n\t\tif (filter.id === state) {\r\n\t\t\treturn true;\r\n\t\t} else if (filter.children && filter.children.length > 0) {\r\n\t\t\tfor (let i = 0; i < filter.children.length; i++) {\r\n\t\t\t\tconst child = filter.children[i];\r\n\t\t\t\tif (this.mapFiltersRemoveState(state, child)) {\r\n\t\t\t\t\tfilter.children.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ConfigService } from '../config/config.service';\r\nimport { FRONT_CONFIG } from '../core.model';\r\n\r\n@Pipe({\r\n\tname: 'commune'\r\n})\r\nexport class CommunePipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate configService: ConfigService\r\n\t) { }\r\n\r\n\ttransform(value: any): string {\r\n\t\ttry {\r\n\t\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\t}\r\n\t\t\tconst field = this.configService.config[FRONT_CONFIG.DATA_TYPES][value.properties.type].commune;\r\n\t\t\treturn value.properties[field];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(`Unknown type: ${value.properties.type}`);\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'extractCity'\r\n})\r\nexport class ExtractCityPipe implements PipeTransform {\r\n\r\n\ttransform(value: string): string {\r\n\t\treturn value && value.includes(',') ? value.split(',')[0] : '';\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'extractLineId'\r\n})\r\nexport class ExtractLineIdPipe implements PipeTransform {\r\n\r\n\ttransform(value: string): string {\r\n\t\treturn value.split(':').slice(0, 2).join(':');\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ObjectHelper {\r\n\tgetPropertyFromPath(obj: any, path: string): any {\r\n\t\tconst properties = path.split('.');\r\n\t\tlet elt = obj;\r\n\t\tproperties.forEach((property: string) => {\r\n\t\t\tif (elt.hasOwnProperty(property)) {\r\n\t\t\t\telt = elt[property];\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (elt === obj) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn elt;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StringHelper {\r\n\r\n\tdata = {\r\n\t\t// tslint:disable\r\n\t\tlatin_map: { 'Á': \"A\", \"Ă\": \"A\", \"Ắ\": \"A\", \"Ặ\": \"A\", \"Ằ\": \"A\", \"Ẳ\": \"A\", \"Ẵ\": \"A\", \"Ǎ\": \"A\", \"Â\": \"A\", \"Ấ\": \"A\", \"Ậ\": \"A\", \"Ầ\": \"A\", \"Ẩ\": \"A\", \"Ẫ\": \"A\", \"Ä\": \"A\", \"Ǟ\": \"A\", \"Ȧ\": \"A\", \"Ǡ\": \"A\", \"Ạ\": \"A\", \"Ȁ\": \"A\", \"À\": \"A\", \"Ả\": \"A\", \"Ȃ\": \"A\", \"Ā\": \"A\", \"Ą\": \"A\", \"Å\": \"A\", \"Ǻ\": \"A\", \"Ḁ\": \"A\", \"Ⱥ\": \"A\", \"Ã\": \"A\", \"Ꜳ\": \"AA\", \"Æ\": \"AE\", \"Ǽ\": \"AE\", \"Ǣ\": \"AE\", \"Ꜵ\": \"AO\", \"Ꜷ\": \"AU\", \"Ꜹ\": \"AV\", \"Ꜻ\": \"AV\", \"Ꜽ\": \"AY\", \"Ḃ\": \"B\", \"Ḅ\": \"B\", \"Ɓ\": \"B\", \"Ḇ\": \"B\", \"Ƀ\": \"B\", \"Ƃ\": \"B\", \"Ć\": \"C\", \"Č\": \"C\", \"Ç\": \"C\", \"Ḉ\": \"C\", \"Ĉ\": \"C\", \"Ċ\": \"C\", \"Ƈ\": \"C\", \"Ȼ\": \"C\", \"Ď\": \"D\", \"Ḑ\": \"D\", \"Ḓ\": \"D\", \"Ḋ\": \"D\", \"Ḍ\": \"D\", \"Ɗ\": \"D\", \"Ḏ\": \"D\", \"ǲ\": \"D\", \"ǅ\": \"D\", \"Đ\": \"D\", \"Ƌ\": \"D\", \"Ǳ\": \"DZ\", \"Ǆ\": \"DZ\", \"É\": \"E\", \"Ĕ\": \"E\", \"Ě\": \"E\", \"Ȩ\": \"E\", \"Ḝ\": \"E\", \"Ê\": \"E\", \"Ế\": \"E\", \"Ệ\": \"E\", \"Ề\": \"E\", \"Ể\": \"E\", \"Ễ\": \"E\", \"Ḙ\": \"E\", \"Ë\": \"E\", \"Ė\": \"E\", \"Ẹ\": \"E\", \"Ȅ\": \"E\", \"È\": \"E\", \"Ẻ\": \"E\", \"Ȇ\": \"E\", \"Ē\": \"E\", \"Ḗ\": \"E\", \"Ḕ\": \"E\", \"Ę\": \"E\", \"Ɇ\": \"E\", \"Ẽ\": \"E\", \"Ḛ\": \"E\", \"Ꝫ\": \"ET\", \"Ḟ\": \"F\", \"Ƒ\": \"F\", \"Ǵ\": \"G\", \"Ğ\": \"G\", \"Ǧ\": \"G\", \"Ģ\": \"G\", \"Ĝ\": \"G\", \"Ġ\": \"G\", \"Ɠ\": \"G\", \"Ḡ\": \"G\", \"Ǥ\": \"G\", \"Ḫ\": \"H\", \"Ȟ\": \"H\", \"Ḩ\": \"H\", \"Ĥ\": \"H\", \"Ⱨ\": \"H\", \"Ḧ\": \"H\", \"Ḣ\": \"H\", \"Ḥ\": \"H\", \"Ħ\": \"H\", \"Í\": \"I\", \"Ĭ\": \"I\", \"Ǐ\": \"I\", \"Î\": \"I\", \"Ï\": \"I\", \"Ḯ\": \"I\", \"İ\": \"I\", \"Ị\": \"I\", \"Ȉ\": \"I\", \"Ì\": \"I\", \"Ỉ\": \"I\", \"Ȋ\": \"I\", \"Ī\": \"I\", \"Į\": \"I\", \"Ɨ\": \"I\", \"Ĩ\": \"I\", \"Ḭ\": \"I\", \"Ꝺ\": \"D\", \"Ꝼ\": \"F\", \"Ᵹ\": \"G\", \"Ꞃ\": \"R\", \"Ꞅ\": \"S\", \"Ꞇ\": \"T\", \"Ꝭ\": \"IS\", \"Ĵ\": \"J\", \"Ɉ\": \"J\", \"Ḱ\": \"K\", \"Ǩ\": \"K\", \"Ķ\": \"K\", \"Ⱪ\": \"K\", \"Ꝃ\": \"K\", \"Ḳ\": \"K\", \"Ƙ\": \"K\", \"Ḵ\": \"K\", \"Ꝁ\": \"K\", \"Ꝅ\": \"K\", \"Ĺ\": \"L\", \"Ƚ\": \"L\", \"Ľ\": \"L\", \"Ļ\": \"L\", \"Ḽ\": \"L\", \"Ḷ\": \"L\", \"Ḹ\": \"L\", \"Ⱡ\": \"L\", \"Ꝉ\": \"L\", \"Ḻ\": \"L\", \"Ŀ\": \"L\", \"Ɫ\": \"L\", \"ǈ\": \"L\", \"Ł\": \"L\", \"Ǉ\": \"LJ\", \"Ḿ\": \"M\", \"Ṁ\": \"M\", \"Ṃ\": \"M\", \"Ɱ\": \"M\", \"Ń\": \"N\", \"Ň\": \"N\", \"Ņ\": \"N\", \"Ṋ\": \"N\", \"Ṅ\": \"N\", \"Ṇ\": \"N\", \"Ǹ\": \"N\", \"Ɲ\": \"N\", \"Ṉ\": \"N\", \"Ƞ\": \"N\", \"ǋ\": \"N\", \"Ñ\": \"N\", \"Ǌ\": \"NJ\", \"Ó\": \"O\", \"Ŏ\": \"O\", \"Ǒ\": \"O\", \"Ô\": \"O\", \"Ố\": \"O\", \"Ộ\": \"O\", \"Ồ\": \"O\", \"Ổ\": \"O\", \"Ỗ\": \"O\", \"Ö\": \"O\", \"Ȫ\": \"O\", \"Ȯ\": \"O\", \"Ȱ\": \"O\", \"Ọ\": \"O\", \"Ő\": \"O\", \"Ȍ\": \"O\", \"Ò\": \"O\", \"Ỏ\": \"O\", \"Ơ\": \"O\", \"Ớ\": \"O\", \"Ợ\": \"O\", \"Ờ\": \"O\", \"Ở\": \"O\", \"Ỡ\": \"O\", \"Ȏ\": \"O\", \"Ꝋ\": \"O\", \"Ꝍ\": \"O\", \"Ō\": \"O\", \"Ṓ\": \"O\", \"Ṑ\": \"O\", \"Ɵ\": \"O\", \"Ǫ\": \"O\", \"Ǭ\": \"O\", \"Ø\": \"O\", \"Ǿ\": \"O\", \"Õ\": \"O\", \"Ṍ\": \"O\", \"Ṏ\": \"O\", \"Ȭ\": \"O\", \"Ƣ\": \"OI\", \"Ꝏ\": \"OO\", \"Ɛ\": \"E\", \"Ɔ\": \"O\", \"Ȣ\": \"OU\", \"Ṕ\": \"P\", \"Ṗ\": \"P\", \"Ꝓ\": \"P\", \"Ƥ\": \"P\", \"Ꝕ\": \"P\", \"Ᵽ\": \"P\", \"Ꝑ\": \"P\", \"Ꝙ\": \"Q\", \"Ꝗ\": \"Q\", \"Ŕ\": \"R\", \"Ř\": \"R\", \"Ŗ\": \"R\", \"Ṙ\": \"R\", \"Ṛ\": \"R\", \"Ṝ\": \"R\", \"Ȑ\": \"R\", \"Ȓ\": \"R\", \"Ṟ\": \"R\", \"Ɍ\": \"R\", \"Ɽ\": \"R\", \"Ꜿ\": \"C\", \"Ǝ\": \"E\", \"Ś\": \"S\", \"Ṥ\": \"S\", \"Š\": \"S\", \"Ṧ\": \"S\", \"Ş\": \"S\", \"Ŝ\": \"S\", \"Ș\": \"S\", \"Ṡ\": \"S\", \"Ṣ\": \"S\", \"Ṩ\": \"S\", \"Ť\": \"T\", \"Ţ\": \"T\", \"Ṱ\": \"T\", \"Ț\": \"T\", \"Ⱦ\": \"T\", \"Ṫ\": \"T\", \"Ṭ\": \"T\", \"Ƭ\": \"T\", \"Ṯ\": \"T\", \"Ʈ\": \"T\", \"Ŧ\": \"T\", \"Ɐ\": \"A\", \"Ꞁ\": \"L\", \"Ɯ\": \"M\", \"Ʌ\": \"V\", \"Ꜩ\": \"TZ\", \"Ú\": \"U\", \"Ŭ\": \"U\", \"Ǔ\": \"U\", \"Û\": \"U\", \"Ṷ\": \"U\", \"Ü\": \"U\", \"Ǘ\": \"U\", \"Ǚ\": \"U\", \"Ǜ\": \"U\", \"Ǖ\": \"U\", \"Ṳ\": \"U\", \"Ụ\": \"U\", \"Ű\": \"U\", \"Ȕ\": \"U\", \"Ù\": \"U\", \"Ủ\": \"U\", \"Ư\": \"U\", \"Ứ\": \"U\", \"Ự\": \"U\", \"Ừ\": \"U\", \"Ử\": \"U\", \"Ữ\": \"U\", \"Ȗ\": \"U\", \"Ū\": \"U\", \"Ṻ\": \"U\", \"Ų\": \"U\", \"Ů\": \"U\", \"Ũ\": \"U\", \"Ṹ\": \"U\", \"Ṵ\": \"U\", \"Ꝟ\": \"V\", \"Ṿ\": \"V\", \"Ʋ\": \"V\", \"Ṽ\": \"V\", \"Ꝡ\": \"VY\", \"Ẃ\": \"W\", \"Ŵ\": \"W\", \"Ẅ\": \"W\", \"Ẇ\": \"W\", \"Ẉ\": \"W\", \"Ẁ\": \"W\", \"Ⱳ\": \"W\", \"Ẍ\": \"X\", \"Ẋ\": \"X\", \"Ý\": \"Y\", \"Ŷ\": \"Y\", \"Ÿ\": \"Y\", \"Ẏ\": \"Y\", \"Ỵ\": \"Y\", \"Ỳ\": \"Y\", \"Ƴ\": \"Y\", \"Ỷ\": \"Y\", \"Ỿ\": \"Y\", \"Ȳ\": \"Y\", \"Ɏ\": \"Y\", \"Ỹ\": \"Y\", \"Ź\": \"Z\", \"Ž\": \"Z\", \"Ẑ\": \"Z\", \"Ⱬ\": \"Z\", \"Ż\": \"Z\", \"Ẓ\": \"Z\", \"Ȥ\": \"Z\", \"Ẕ\": \"Z\", \"Ƶ\": \"Z\", \"Ĳ\": \"IJ\", \"Œ\": \"OE\", \"ᴀ\": \"A\", \"ᴁ\": \"AE\", \"ʙ\": \"B\", \"ᴃ\": \"B\", \"ᴄ\": \"C\", \"ᴅ\": \"D\", \"ᴇ\": \"E\", \"ꜰ\": \"F\", \"ɢ\": \"G\", \"ʛ\": \"G\", \"ʜ\": \"H\", \"ɪ\": \"I\", \"ʁ\": \"R\", \"ᴊ\": \"J\", \"ᴋ\": \"K\", \"ʟ\": \"L\", \"ᴌ\": \"L\", \"ᴍ\": \"M\", \"ɴ\": \"N\", \"ᴏ\": \"O\", \"ɶ\": \"OE\", \"ᴐ\": \"O\", \"ᴕ\": \"OU\", \"ᴘ\": \"P\", \"ʀ\": \"R\", \"ᴎ\": \"N\", \"ᴙ\": \"R\", \"ꜱ\": \"S\", \"ᴛ\": \"T\", \"ⱻ\": \"E\", \"ᴚ\": \"R\", \"ᴜ\": \"U\", \"ᴠ\": \"V\", \"ᴡ\": \"W\", \"ʏ\": \"Y\", \"ᴢ\": \"Z\", \"á\": \"a\", \"ă\": \"a\", \"ắ\": \"a\", \"ặ\": \"a\", \"ằ\": \"a\", \"ẳ\": \"a\", \"ẵ\": \"a\", \"ǎ\": \"a\", \"â\": \"a\", \"ấ\": \"a\", \"ậ\": \"a\", \"ầ\": \"a\", \"ẩ\": \"a\", \"ẫ\": \"a\", \"ä\": \"a\", \"ǟ\": \"a\", \"ȧ\": \"a\", \"ǡ\": \"a\", \"ạ\": \"a\", \"ȁ\": \"a\", \"à\": \"a\", \"ả\": \"a\", \"ȃ\": \"a\", \"ā\": \"a\", \"ą\": \"a\", \"ᶏ\": \"a\", \"ẚ\": \"a\", \"å\": \"a\", \"ǻ\": \"a\", \"ḁ\": \"a\", \"ⱥ\": \"a\", \"ã\": \"a\", \"ꜳ\": \"aa\", \"æ\": \"ae\", \"ǽ\": \"ae\", \"ǣ\": \"ae\", \"ꜵ\": \"ao\", \"ꜷ\": \"au\", \"ꜹ\": \"av\", \"ꜻ\": \"av\", \"ꜽ\": \"ay\", \"ḃ\": \"b\", \"ḅ\": \"b\", \"ɓ\": \"b\", \"ḇ\": \"b\", \"ᵬ\": \"b\", \"ᶀ\": \"b\", \"ƀ\": \"b\", \"ƃ\": \"b\", \"ɵ\": \"o\", \"ć\": \"c\", \"č\": \"c\", \"ç\": \"c\", \"ḉ\": \"c\", \"ĉ\": \"c\", \"ɕ\": \"c\", \"ċ\": \"c\", \"ƈ\": \"c\", \"ȼ\": \"c\", \"ď\": \"d\", \"ḑ\": \"d\", \"ḓ\": \"d\", \"ȡ\": \"d\", \"ḋ\": \"d\", \"ḍ\": \"d\", \"ɗ\": \"d\", \"ᶑ\": \"d\", \"ḏ\": \"d\", \"ᵭ\": \"d\", \"ᶁ\": \"d\", \"đ\": \"d\", \"ɖ\": \"d\", \"ƌ\": \"d\", \"ı\": \"i\", \"ȷ\": \"j\", \"ɟ\": \"j\", \"ʄ\": \"j\", \"ǳ\": \"dz\", \"ǆ\": \"dz\", \"é\": \"e\", \"ĕ\": \"e\", \"ě\": \"e\", \"ȩ\": \"e\", \"ḝ\": \"e\", \"ê\": \"e\", \"ế\": \"e\", \"ệ\": \"e\", \"ề\": \"e\", \"ể\": \"e\", \"ễ\": \"e\", \"ḙ\": \"e\", \"ë\": \"e\", \"ė\": \"e\", \"ẹ\": \"e\", \"ȅ\": \"e\", \"è\": \"e\", \"ẻ\": \"e\", \"ȇ\": \"e\", \"ē\": \"e\", \"ḗ\": \"e\", \"ḕ\": \"e\", \"ⱸ\": \"e\", \"ę\": \"e\", \"ᶒ\": \"e\", \"ɇ\": \"e\", \"ẽ\": \"e\", \"ḛ\": \"e\", \"ꝫ\": \"et\", \"ḟ\": \"f\", \"ƒ\": \"f\", \"ᵮ\": \"f\", \"ᶂ\": \"f\", \"ǵ\": \"g\", \"ğ\": \"g\", \"ǧ\": \"g\", \"ģ\": \"g\", \"ĝ\": \"g\", \"ġ\": \"g\", \"ɠ\": \"g\", \"ḡ\": \"g\", \"ᶃ\": \"g\", \"ǥ\": \"g\", \"ḫ\": \"h\", \"ȟ\": \"h\", \"ḩ\": \"h\", \"ĥ\": \"h\", \"ⱨ\": \"h\", \"ḧ\": \"h\", \"ḣ\": \"h\", \"ḥ\": \"h\", \"ɦ\": \"h\", \"ẖ\": \"h\", \"ħ\": \"h\", \"ƕ\": \"hv\", \"í\": \"i\", \"ĭ\": \"i\", \"ǐ\": \"i\", \"î\": \"i\", \"ï\": \"i\", \"ḯ\": \"i\", \"ị\": \"i\", \"ȉ\": \"i\", \"ì\": \"i\", \"ỉ\": \"i\", \"ȋ\": \"i\", \"ī\": \"i\", \"į\": \"i\", \"ᶖ\": \"i\", \"ɨ\": \"i\", \"ĩ\": \"i\", \"ḭ\": \"i\", \"ꝺ\": \"d\", \"ꝼ\": \"f\", \"ᵹ\": \"g\", \"ꞃ\": \"r\", \"ꞅ\": \"s\", \"ꞇ\": \"t\", \"ꝭ\": \"is\", \"ǰ\": \"j\", \"ĵ\": \"j\", \"ʝ\": \"j\", \"ɉ\": \"j\", \"ḱ\": \"k\", \"ǩ\": \"k\", \"ķ\": \"k\", \"ⱪ\": \"k\", \"ꝃ\": \"k\", \"ḳ\": \"k\", \"ƙ\": \"k\", \"ḵ\": \"k\", \"ᶄ\": \"k\", \"ꝁ\": \"k\", \"ꝅ\": \"k\", \"ĺ\": \"l\", \"ƚ\": \"l\", \"ɬ\": \"l\", \"ľ\": \"l\", \"ļ\": \"l\", \"ḽ\": \"l\", \"ȴ\": \"l\", \"ḷ\": \"l\", \"ḹ\": \"l\", \"ⱡ\": \"l\", \"ꝉ\": \"l\", \"ḻ\": \"l\", \"ŀ\": \"l\", \"ɫ\": \"l\", \"ᶅ\": \"l\", \"ɭ\": \"l\", \"ł\": \"l\", \"ǉ\": \"lj\", \"ſ\": \"s\", \"ẜ\": \"s\", \"ẛ\": \"s\", \"ẝ\": \"s\", \"ḿ\": \"m\", \"ṁ\": \"m\", \"ṃ\": \"m\", \"ɱ\": \"m\", \"ᵯ\": \"m\", \"ᶆ\": \"m\", \"ń\": \"n\", \"ň\": \"n\", \"ņ\": \"n\", \"ṋ\": \"n\", \"ȵ\": \"n\", \"ṅ\": \"n\", \"ṇ\": \"n\", \"ǹ\": \"n\", \"ɲ\": \"n\", \"ṉ\": \"n\", \"ƞ\": \"n\", \"ᵰ\": \"n\", \"ᶇ\": \"n\", \"ɳ\": \"n\", \"ñ\": \"n\", \"ǌ\": \"nj\", \"ó\": \"o\", \"ŏ\": \"o\", \"ǒ\": \"o\", \"ô\": \"o\", \"ố\": \"o\", \"ộ\": \"o\", \"ồ\": \"o\", \"ổ\": \"o\", \"ỗ\": \"o\", \"ö\": \"o\", \"ȫ\": \"o\", \"ȯ\": \"o\", \"ȱ\": \"o\", \"ọ\": \"o\", \"ő\": \"o\", \"ȍ\": \"o\", \"ò\": \"o\", \"ỏ\": \"o\", \"ơ\": \"o\", \"ớ\": \"o\", \"ợ\": \"o\", \"ờ\": \"o\", \"ở\": \"o\", \"ỡ\": \"o\", \"ȏ\": \"o\", \"ꝋ\": \"o\", \"ꝍ\": \"o\", \"ⱺ\": \"o\", \"ō\": \"o\", \"ṓ\": \"o\", \"ṑ\": \"o\", \"ǫ\": \"o\", \"ǭ\": \"o\", \"ø\": \"o\", \"ǿ\": \"o\", \"õ\": \"o\", \"ṍ\": \"o\", \"ṏ\": \"o\", \"ȭ\": \"o\", \"ƣ\": \"oi\", \"ꝏ\": \"oo\", \"ɛ\": \"e\", \"ᶓ\": \"e\", \"ɔ\": \"o\", \"ᶗ\": \"o\", \"ȣ\": \"ou\", \"ṕ\": \"p\", \"ṗ\": \"p\", \"ꝓ\": \"p\", \"ƥ\": \"p\", \"ᵱ\": \"p\", \"ᶈ\": \"p\", \"ꝕ\": \"p\", \"ᵽ\": \"p\", \"ꝑ\": \"p\", \"ꝙ\": \"q\", \"ʠ\": \"q\", \"ɋ\": \"q\", \"ꝗ\": \"q\", \"ŕ\": \"r\", \"ř\": \"r\", \"ŗ\": \"r\", \"ṙ\": \"r\", \"ṛ\": \"r\", \"ṝ\": \"r\", \"ȑ\": \"r\", \"ɾ\": \"r\", \"ᵳ\": \"r\", \"ȓ\": \"r\", \"ṟ\": \"r\", \"ɼ\": \"r\", \"ᵲ\": \"r\", \"ᶉ\": \"r\", \"ɍ\": \"r\", \"ɽ\": \"r\", \"ↄ\": \"c\", \"ꜿ\": \"c\", \"ɘ\": \"e\", \"ɿ\": \"r\", \"ś\": \"s\", \"ṥ\": \"s\", \"š\": \"s\", \"ṧ\": \"s\", \"ş\": \"s\", \"ŝ\": \"s\", \"ș\": \"s\", \"ṡ\": \"s\", \"ṣ\": \"s\", \"ṩ\": \"s\", \"ʂ\": \"s\", \"ᵴ\": \"s\", \"ᶊ\": \"s\", \"ȿ\": \"s\", \"ɡ\": \"g\", \"ᴑ\": \"o\", \"ᴓ\": \"o\", \"ᴝ\": \"u\", \"ť\": \"t\", \"ţ\": \"t\", \"ṱ\": \"t\", \"ț\": \"t\", \"ȶ\": \"t\", \"ẗ\": \"t\", \"ⱦ\": \"t\", \"ṫ\": \"t\", \"ṭ\": \"t\", \"ƭ\": \"t\", \"ṯ\": \"t\", \"ᵵ\": \"t\", \"ƫ\": \"t\", \"ʈ\": \"t\", \"ŧ\": \"t\", \"ᵺ\": \"th\", \"ɐ\": \"a\", \"ᴂ\": \"ae\", \"ǝ\": \"e\", \"ᵷ\": \"g\", \"ɥ\": \"h\", \"ʮ\": \"h\", \"ʯ\": \"h\", \"ᴉ\": \"i\", \"ʞ\": \"k\", \"ꞁ\": \"l\", \"ɯ\": \"m\", \"ɰ\": \"m\", \"ᴔ\": \"oe\", \"ɹ\": \"r\", \"ɻ\": \"r\", \"ɺ\": \"r\", \"ⱹ\": \"r\", \"ʇ\": \"t\", \"ʌ\": \"v\", \"ʍ\": \"w\", \"ʎ\": \"y\", \"ꜩ\": \"tz\", \"ú\": \"u\", \"ŭ\": \"u\", \"ǔ\": \"u\", \"û\": \"u\", \"ṷ\": \"u\", \"ü\": \"u\", \"ǘ\": \"u\", \"ǚ\": \"u\", \"ǜ\": \"u\", \"ǖ\": \"u\", \"ṳ\": \"u\", \"ụ\": \"u\", \"ű\": \"u\", \"ȕ\": \"u\", \"ù\": \"u\", \"ủ\": \"u\", \"ư\": \"u\", \"ứ\": \"u\", \"ự\": \"u\", \"ừ\": \"u\", \"ử\": \"u\", \"ữ\": \"u\", \"ȗ\": \"u\", \"ū\": \"u\", \"ṻ\": \"u\", \"ų\": \"u\", \"ᶙ\": \"u\", \"ů\": \"u\", \"ũ\": \"u\", \"ṹ\": \"u\", \"ṵ\": \"u\", \"ᵫ\": \"ue\", \"ꝸ\": \"um\", \"ⱴ\": \"v\", \"ꝟ\": \"v\", \"ṿ\": \"v\", \"ʋ\": \"v\", \"ᶌ\": \"v\", \"ⱱ\": \"v\", \"ṽ\": \"v\", \"ꝡ\": \"vy\", \"ẃ\": \"w\", \"ŵ\": \"w\", \"ẅ\": \"w\", \"ẇ\": \"w\", \"ẉ\": \"w\", \"ẁ\": \"w\", \"ⱳ\": \"w\", \"ẘ\": \"w\", \"ẍ\": \"x\", \"ẋ\": \"x\", \"ᶍ\": \"x\", \"ý\": \"y\", \"ŷ\": \"y\", \"ÿ\": \"y\", \"ẏ\": \"y\", \"ỵ\": \"y\", \"ỳ\": \"y\", \"ƴ\": \"y\", \"ỷ\": \"y\", \"ỿ\": \"y\", \"ȳ\": \"y\", \"ẙ\": \"y\", \"ɏ\": \"y\", \"ỹ\": \"y\", \"ź\": \"z\", \"ž\": \"z\", \"ẑ\": \"z\", \"ʑ\": \"z\", \"ⱬ\": \"z\", \"ż\": \"z\", \"ẓ\": \"z\", \"ȥ\": \"z\", \"ẕ\": \"z\", \"ᵶ\": \"z\", \"ᶎ\": \"z\", \"ʐ\": \"z\", \"ƶ\": \"z\", \"ɀ\": \"z\", \"ﬀ\": \"ff\", \"ﬃ\": \"ffi\", \"ﬄ\": \"ffl\", \"ﬁ\": \"fi\", \"ﬂ\": \"fl\", \"ĳ\": \"ij\", \"œ\": \"oe\", \"ﬆ\": \"st\", \"ₐ\": \"a\", \"ₑ\": \"e\", \"ᵢ\": \"i\", \"ⱼ\": \"j\", \"ₒ\": \"o\", \"ᵣ\": \"r\", \"ᵤ\": \"u\", \"ᵥ\": \"v\", \"ₓ\": \"x\" }\r\n\t\t//tslint:enable;\r\n\t};\r\n\r\n\tlatinise(value: string) {\r\n\t\treturn value.replace(/[^A-Za-z0-9\\[\\] ]/g, (a) => {\r\n\t\t\treturn this.data.latin_map[a] || a;\r\n\t\t});\r\n\t};\r\n\r\n\tcleanString(value: string) {\r\n\t\treturn this.latinise(value.toLowerCase()).replace(/[-,']/g, ' ').replace(/ {1,}/g, ' ');\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ObjectHelper } from '../helpers/object.helper';\r\nimport { StringHelper } from '../helpers/string.helper';\r\n\r\n@Pipe({\r\n\tname: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate objectHelper: ObjectHelper,\r\n\t\tprivate stringHelper: StringHelper\r\n\t) { }\r\n\r\n\ttransform(list: any[], path: string, query?: string | string[]): any[] {\r\n\t\tif (!query) {\r\n\t\t\treturn list;\r\n\t\t}\r\n\t\treturn list.filter((item: any) => {\r\n\t\t\tconst field = this.stringHelper.cleanString(this.objectHelper.getPropertyFromPath(item, path));\r\n\t\t\tif (Array.isArray(query)) {\r\n\t\t\t\treturn (query as string[]).some((q: string) => field.includes(this.stringHelper.cleanString(q)));\r\n\t\t\t}\r\n\t\t\treturn field.includes(this.stringHelper.cleanString(query));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'groupBy' })\r\nexport class GroupByPipe implements PipeTransform {\r\n\ttransform(collection: Array<any>, property: string): Array<any> {\r\n\t\t// prevents the application from breaking if the array of objects doesn't exist yet\r\n\t\tif (!collection) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst groupedCollection = collection.reduce((previous, current) => {\r\n\t\t\tif (!previous[current[property]]) {\r\n\t\t\t\tprevious[current[property]] = [current];\r\n\t\t\t} else {\r\n\t\t\t\tprevious[current[property]].push(current);\r\n\t\t\t}\r\n\r\n\t\t\treturn previous;\r\n\t\t}, {});\r\n\r\n\t\t// this will return an array of objects, each object containing a group of objects\r\n\t\treturn Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] }));\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigService } from '../config/config.service';\r\nimport { FRONT_CONFIG } from '../core.model';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TypesHelper {\r\n\r\n\tconstructor(\r\n\t\tprivate configService: ConfigService\r\n\t) { }\r\n\r\n\tdisplayLinesNear(type: string): boolean {\r\n\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.configService.config[FRONT_CONFIG.DATA_TYPES][type] && this.configService.config[FRONT_CONFIG.DATA_TYPES][type].linesNear || false;\r\n\t}\r\n\r\n\tisEvent(type: string): boolean {\r\n\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.configService.config[FRONT_CONFIG.DATA_TYPES][type] && this.configService.config[FRONT_CONFIG.DATA_TYPES][type].isEvent || false;\r\n\t}\r\n\r\n\tidField(type: string): string {\r\n\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\treturn this.configService.config[FRONT_CONFIG.DATA_TYPES][type] && this.configService.config[FRONT_CONFIG.DATA_TYPES][type].idField || '';\r\n\t}\r\n\r\n\tisDisturbance(type: string): boolean{\r\n\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.configService.config[FRONT_CONFIG.DATA_TYPES][type] && this.configService.config[FRONT_CONFIG.DATA_TYPES][type].disturbance || false;\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TypesHelper } from '../helpers/types.helper';\r\n\r\n@Pipe({\r\n\tname: 'id'\r\n})\r\nexport class IdPipe implements PipeTransform {\r\n\r\n\tconstructor(private typesHelper: TypesHelper) { }\r\n\r\n\ttransform(value: any): unknown {\r\n\t\treturn value[this.typesHelper.idField(value.type)];\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ConfigService } from '../config/config.service';\r\nimport { FRONT_CONFIG } from '../core.model';\r\n\r\n@Pipe({\r\n\tname: 'libelle'\r\n})\r\nexport class LibellePipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate configService: ConfigService\r\n\t) { }\r\n\r\n\ttransform(value: any): string {\r\n\t\ttry {\r\n\t\t\tif (!this.configService.config[FRONT_CONFIG.DATA_TYPES]) {\r\n\t\t\t\tconsole.error(`data types missing, you should get the datatypes front configuration first.`);\r\n\t\t\t}\r\n\t\t\tconst field = this.configService.config[FRONT_CONFIG.DATA_TYPES][value.properties.type].libelle;\r\n\t\t\treturn value.properties[field];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(`Unknown type: ${value.properties.type}`);\r\n\t\t\treturn '';\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 { DataTypeCollection, FRONT_CONFIG } from '../core.model';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DataTypesResolver implements Resolve<DataTypeCollection> {\r\n\r\n\tconstructor(private configService: ConfigService) { }\r\n\r\n\tresolve(\r\n\t\troute: ActivatedRouteSnapshot, state: RouterStateSnapshot\r\n\t): DataTypeCollection | Observable<DataTypeCollection> | Promise<DataTypeCollection> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.DATA_TYPES).pipe(\r\n\t\t\tcatchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getDataTypes in DataTypesResolver: ', error);\r\n\t\t\t\treturn of({} as DataTypeCollection);\r\n\t\t\t})\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MapFiltersResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.MAP_FILTERS).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getMapFilters in MapFiltersResolver: ', error);\r\n\t\t\treturn of([] as any);\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class RoutesTypesResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.ROUTES_TYPES).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getRoutesTypes in RoutesTypesResolver: ', error);\r\n\t\t\treturn of([] as any);\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class PlansReseauxResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.PLANS_RESEAUX).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getPlansReseaux in PlansReseauxResolver: ', error);\r\n\t\t\treturn of([] as any);\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class PocTilesResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.POC_TILES).pipe(\r\n\t\t\tcatchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getPocTiles in PocTilesResolver: ', error);\r\n\t\t\t\treturn of([] as any);\r\n\t\t\t})\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 {DataTypeCollection, FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class FilterInformationResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(\r\n\t\troute: ActivatedRouteSnapshot,\r\n\t\tstate: RouterStateSnapshot): DataTypeCollection | Observable<DataTypeCollection> | Promise<DataTypeCollection>\r\n\t{\r\n\t\treturn this.configService.getData(FRONT_CONFIG.FILTER_INFORMATION).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getFilterInformation in FilterInformationResolver: ', error);\r\n\t\t\treturn of({} as DataTypeCollection);\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class LegalNoticeResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.LEGAL_NOTICE).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getLegalNotice in LegalNoticeResolver: ', error);\r\n\t\t\treturn of({} as any);\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 {DataTypeCollection, FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class OtpResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\t\tresolve(\r\n\t\troute: ActivatedRouteSnapshot,\r\n\t\tstate: RouterStateSnapshot): DataTypeCollection | Observable<DataTypeCollection> | Promise<DataTypeCollection>\r\n\t{\r\n\t\treturn this.configService.getData(FRONT_CONFIG.OTP).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getOtp in OtpResolver: ', error);\r\n\t\t\treturn of({} as DataTypeCollection);\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 { FRONT_CONFIG } from '../core.model';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PingReseauUpdateResolver implements Resolve<any> {\r\n\r\n\tconstructor (private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.PING_RESEAU_UPDATES).pipe(catchError((error) => {\r\n\t\t\treturn of([] as any);\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 {FRONT_CONFIG} from '../core.model';\r\nimport {ConfigService} from './config.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class PingResolver implements Resolve<any> {\r\n\r\n\tconstructor(private configService: ConfigService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any | Observable<any> | Promise<any> {\r\n\t\treturn this.configService.getData(FRONT_CONFIG.PING).pipe(catchError((error) => {\r\n\t\t\t// console.error('Error fetching getPing in PingResolver: ', error);\r\n\t\t\treturn of([] as any);\r\n\t\t}));\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\n\r\nexport class GlobalService {\r\n\tzone: any;\r\n\thasTopElement: boolean;\r\n\tisServiceState = false;\r\n\treadonly sessionStorageKey = 'itineraire';\r\n\r\n\tconstructor(public configService: ConfigService, private location: Location) {\r\n\t\tthis.zone = {\r\n\t\t\tdefault: {\r\n\t\t\t\tcenter: '45.189053,5.724681',\r\n\t\t\t\tzoom: 12,\r\n\t\t\t\troutesTypesOrder: ['SEM', 'C38', 'TPV', 'MCO'],\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n\r\n\tpublic initializeZoneConfig(): Promise<any> {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.configService.getData('zone').subscribe({\r\n\t\t\t\tnext: (data) => {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tthis.zone = data;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t},\r\n\t\t\t\terror: (error) => reject(error),\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tgoBack() {\r\n\t\tthis.location.back();\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\r\nimport { Line, RouteCalendar, RouteType } from './lines.model';\r\nimport { ConfigService } from '../config';\r\nimport { FRONT_CONFIG } from '../core.model';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class LinesService {\r\n\r\n\r\n\r\n\tconstructor(private http: HttpClient, private configService: ConfigService) {\r\n\t\tthis.configService.getData(FRONT_CONFIG.ROUTES_TYPES).subscribe();\r\n\t}\r\n\r\n\tprivate _lines: Line[];\r\n\tprivate _calendar: Map<string, RouteCalendar> = new Map<string, RouteCalendar>();\r\n\r\n\tget lines(): Line[] {\r\n\t\treturn this._lines;\r\n\t}\r\n\r\n\tset lines(values: Line[]) {\r\n\t\tthis._lines = values;\r\n\t\tthis._linesAsMap = values.reduce((map, line) => {\r\n\t\t\tmap[line.id] = line;\r\n\t\t\treturn map;\r\n\t\t}, {});\r\n\t\tthis._linesByType = values.reduce((map, line) => {\r\n\t\t\tif (!map[line.type]) {\r\n\t\t\t\tmap[line.type] = [];\r\n\t\t\t}\r\n\t\t\tmap[line.type].push(line);\r\n\t\t\treturn map;\r\n\t\t}, {});\r\n\t}\r\n\r\n\t/**\r\n\t * Get the calendar for a line\r\n\t */\r\n\tget lineCalendar(): Map<string, RouteCalendar> {\r\n\t\treturn this._calendar;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the calendar for a line in the Map\r\n\t * @param value - Map<string, RouteCalendar>: key: line code, value: RouteCalendar\r\n\t */\r\n\tset lineCalendar(value: Map<string, RouteCalendar>) {\r\n\t\tthis._calendar = value;\r\n\t}\r\n\r\n\t/**\r\n\t * @Interal to avoid find() on the _lines array.\r\n\t */\r\n\tprivate _linesAsMap: { [key: string]: Line } = {};\r\n\r\n\tget linesAsMap() {\r\n\t\treturn this._linesAsMap;\r\n\t}\r\n\r\n\tprivate _linesByType: { [key: string]: Line[] } = {};\r\n\r\n\tget linesByType() {\r\n\t\treturn this._linesByType;\r\n\t}\r\n\r\n\t/**\r\n\t* Get all lines\r\n\t* @param includeAllRoutes Optional parameter to include all routes in the query\r\n\t* @returns Observable<Line[]>\r\n\t*/\r\n\tgetLines(includeAllRoutes?: boolean): Observable<Line[]> {\r\n\t\t// Base URL for the request\r\n\t\tlet url = '@domain/@api/routers/default/index/routes';\r\n\r\n\t\tif (includeAllRoutes) {\r\n\t\t\turl += '?allRoutes=true';\r\n\t\t}\r\n\r\n\t\treturn this.http.get<Line[]>(url).pipe(map(\r\n\t\t\t(lines) => {\r\n\t\t\t\treturn this.enrichLines(lines)\r\n\t\t\t}\r\n\t\t),tap(lines => {\r\n\t\t\tthis.lines = lines;\r\n\t\t}));\r\n\t}\r\n\r\n\t/**\r\n\t * Get the calendar for a line\r\n\t * @param code - Line code\r\n\t * @returns Observable<RouteCalendar>\r\n\t */\r\n\tgetLinesCalendar(code: string): Observable<RouteCalendar> {\r\n\t\treturn this.http.get<any>(`@domain/@api/routers/default/index/routes/${code}/calendar`).pipe((tap((calendar: RouteCalendar) => {\r\n\t\t\tthis.lineCalendar = this.lineCalendar.set(code, calendar);\r\n\t\t})));\r\n\t}\r\n\r\n\t/**\r\n\t * Get lines near around a POI\r\n\t * @param coordinates - [x, y]\r\n\t * @param distance - distance in meters\r\n\t * @returns Observable<string[]>\r\n\t */\r\n\tgetLinesNear(coordinates: number[], distance: number): Observable<string[]> {\r\n\t\treturn this.http.get<string[]>(`@domain/@api/linesNear/json`, {\r\n\t\t\tparams: {\r\n\t\t\t\tx: coordinates[0].toString(), y: coordinates[1].toString(), dist: distance.toString(),\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tfind(id: string): Line {\r\n\t\treturn this._linesAsMap[id];\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * Enrichit une liste de lignes avec les infos provenant des RouteTypes :\r\n\t * - Ajout des shapes (logo_shapes > logo_shape)\r\n\t * - Ajout des tickets (ticket_list > ticket)\r\n\t * \r\n\t * @param lines - Lignes récupérées depuis l'API\r\n\t * @returns Line[] enrichies\r\n\t */\r\n\tenrichLines(lines: Line[]):Line[] {\r\n\r\n\t\treturn lines.map(line => {\r\n\t\t\t\tconst matchedRouteType = this.findRouteTypeInBlocs(this.configService.config[FRONT_CONFIG.ROUTES_TYPES], line.type, line.id.split(':')[0]);\r\n\t\r\n\t\t\t\tconst shape =\r\n\t\t\t\t\tline.shape ??\r\n\t\t\t\t\tmatchedRouteType?.logo_shapes?.[line.id] ??\r\n\t\t\t\t\tmatchedRouteType?.logo_shape;\r\n\t\r\n\t\t\t\tconst ticketFromList = matchedRouteType?.ticket_list?.[line.id];\r\n\t\t\t\tconst ticket =\r\n\t\t\t\t\tticketFromList?.ticket ??\r\n\t\t\t\t\tmatchedRouteType?.ticket?.ticket;\r\n\t\r\n\t\t\t\tconst ticketLink =\r\n\t\t\t\t\tticketFromList?.ticketLink ??\r\n\t\t\t\t\tmatchedRouteType?.ticket?.ticketLink;\r\n\t\r\n\t\t\t\tconst enriched: Line = { ...line };\r\n\t\t\t\tif (shape) enriched.shape = shape;\r\n\t\t\t\tif (ticket) enriched.ticket = ticket;\r\n\t\t\t\tif (ticketLink) enriched.ticketLink = ticketLink;\r\n\t\r\n\t\t\t\treturn enriched;\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Recherche récursive du RouteType correspondant à une ligne donnée\r\n\t * - On cherche dans les blocs par type et par réseau\r\n\t * - Si non trouvé → on descend récursivement dans les sous-blocs\r\n\t * \r\n\t * @param routeTypes - Liste des types de route\r\n\t * @param lineType - Type de la ligne (bus, tram, etc.)\r\n\t * @param ligne_reseau - Réseau de la ligne (ex: TAG, TouGo, etc.)\r\n\t * @returns Le RouteType trouvé ou undefined\r\n\t */\r\n\tprivate findRouteTypeInBlocs(routeTypes: RouteType[], lineType: string, ligne_reseau: string): RouteType | undefined {\r\n\t\tfor (const rt of routeTypes) {\r\n\t\t\tif (rt.linesbloc) {\r\n\t\t\t\tfor (const bloc of rt.linesbloc) {\r\n\t\t\t\t\tconst types = Array.isArray(bloc.type) ? bloc.type : [bloc.type];\r\n\t\t\t\t\tconst reseau = bloc.reseau;\r\n\t\t\t\t\tif (reseau) {\r\n\t\t\t\t\t\tif (types.includes(lineType) && reseau === ligne_reseau) {\r\n\t\t\t\t\t\t\treturn bloc;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (types.includes(lineType)) {\r\n\t\t\t\t\t\treturn bloc;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// recherche récursive\r\n\t\t\t\t\tconst found = this.findRouteTypeInBlocs([bloc], lineType, ligne_reseau);\r\n\t\t\t\t\tif (found) return found;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn undefined;\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LinesService } from '../lines/lines.service';\r\n\r\n@Pipe({\r\n\tname: 'lineColor'\r\n})\r\nexport class LineColorPipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate linesService: LinesService\r\n\t) { }\r\n\r\n\ttransform(line: string): string {\r\n\t\tconst lineObj = this.linesService.find(line);\r\n\t\treturn '#' + (lineObj && lineObj.color || '999999');\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LinesService } from '../lines/lines.service';\r\nimport { Line } from '../lines';\r\n\r\n\r\n@Pipe({\r\n\tname: 'line'\r\n})\r\nexport class LinePipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate linesService: LinesService\r\n\t) { }\r\n\r\n\ttransform(line: string): Line {\r\n\t\treturn this.linesService.find(line);\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LinesService } from '../lines/lines.service';\r\n\r\n@Pipe({\r\n\tname: 'mode'\r\n})\r\nexport class ModePipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate linesService: LinesService\r\n\t) { }\r\n\r\n\ttransform(line: string): string {\r\n\t\treturn this.linesService.find(line).mode;\r\n\t}\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\nexport function getTime(h: any, typeTime: string): { value: string; unit: string } {\r\n\tlet result = {\r\n\t\tvalue: '', unit: '',\r\n\t};\r\n\tif (h === '|' || h == null) return (result = {value: '-', unit: ''});\r\n\tconst dep = h[typeTime];\r\n\tif (!dep) return;\r\n\r\n\tconst currentTime = dep * 1000 + h.serviceDay * 1000;\r\n\tconst now = new Date().getTime();\r\n\tlet res = (currentTime - now) / 1000;\r\n\r\n\tif (res / 60 < 1) {\r\n\t\tresult.value = '<1';\r\n\t\tresult.unit = 'min';\r\n\t} else if (res / 60 >= 1 && res / 60 < 59) {\r\n\t\tres = Math.round(res / 60);\r\n\t\tresult.value = res.toString();\r\n\t\tresult.unit = 'min';\r\n\t} else {\r\n\t\tconst nextPassage = new Date(currentTime);\r\n\t\tconst hour = nextPassage.getHours().toString().padStart(2, '0');\r\n\t\tconst minutes = nextPassage.getMinutes().toString().padStart(2, '0');\r\n\t\tresult.value = `${hour}:${minutes}`;\r\n\t\tresult.unit = undefined;\r\n\t}\r\n\treturn result;\r\n}\r\n\r\nexport function getTimeSchedule(h: any): string {\r\n\tif (h === '|' || !h) return '-';\r\n\tconst date = new Date();\r\n\tdate.setHours(0, 0, 0, 0);\r\n\tconst horodate = date.getTime() + h * 1000;\r\n\tconst dateToDisplay = new Date(horodate);\r\n\t// Fix samsung browser locale issue (12h instead of 24h).\r\n\treturn [dateToDisplay.getHours(), `${dateToDisplay.getMinutes()}`.padStart(2, '0')].join(':');\r\n}\r\n\r\nexport function getTimeDelay(h: any): {data : string, class : string} {\r\n\tlet data : string;\r\n\tif(!h.realtime) return;\r\n\r\n\tdata = \"À l'heure\";\r\n\tif (h === '|' || h == null) return;\r\n\tconst arriveeEstimee = h.scheduledDeparture;\r\n\tif (!arriveeEstimee) return;\r\n\r\n\tconst arriveeReelle = h.realtimeDeparture;\r\n\tif (!arriveeReelle) return;\r\n\r\n\tlet res = arriveeReelle - arriveeEstimee;\r\n\tif(res <= 0) return {data, class: 'heure'};\r\n\r\n\r\n\tres = Math.round(res / 60);\r\n\tdata = 'Retard de ' + res.toString() + 'min';\r\n\r\n\treturn {data, class: 'retard'};\r\n}\r\n\r\n@Pipe({\r\n\tname: 'time',\r\n})\r\nexport class TimePipe implements PipeTransform {\r\n\ttransform(h: any, typeTime : string = 'realtimeArrival'): string {\r\n\t\treturn getTime(h, typeTime).value;\r\n\t}\r\n}\r\n\r\n@Pipe({\r\n\tname: 'timeUnit',\r\n})\r\nexport class TimeUnitPipe implements PipeTransform {\r\n\ttransform(h: any, typeTime : string = 'realtimeArrival'): string {\r\n\t\treturn getTime(h, typeTime).unit;\r\n\t}\r\n}\r\n\r\n@Pipe({\r\n\tname: 'timeSchedule',\r\n})\r\nexport class TimeSchedulePipe implements PipeTransform {\r\n\ttransform(h: any): string {\r\n\t\treturn getTimeSchedule(h);\r\n\t}\r\n}\r\n\r\n@Pipe({\r\n\tname: 'timeDelay',\r\n})\r\nexport class TimeDelayPipe implements PipeTransform {\r\n\ttransform(h: any): string {\r\n\t\treturn getTimeDelay(h)?.data;\r\n\t}\r\n}\r\n\r\n@Pipe({\r\n\tname: 'timeDelayClass',\r\n})\r\nexport class TimeDelayClassPipe implements PipeTransform {\r\n\ttransform(h: any): string {\r\n\t\treturn getTimeDelay(h)?.class;\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\r\nimport { of } from 'rxjs';\r\nimport { LinesService } from './lines.service';\r\nimport { Line } from './lines.model';\r\nimport { catchError } from 'rxjs/operators';\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\n\r\n\r\nexport class LinesResolver implements Resolve<Line[]> {\r\n  constructor(private linesService: LinesService) {}\r\n\r\n  \tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Line[] | Promise<Line[]> {\r\n\t\tif (this.linesService.lines && this.linesService.lines.length > 0) {\r\n      return this.linesService.lines}\r\n      ;\r\n\r\n\t\treturn new Promise<Line[]>((resolve) => {\r\n\t\t\tthis.linesService.getLines()\r\n\t\t\t\t.pipe(catchError((error) => {\r\n\t\t\t\t\treturn of([] as Line[]);\r\n\t\t\t\t}))\r\n\t\t\t\t.subscribe((lines: Line[]) => {\r\n\t\t\t\t\tresolve(lines);\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n}\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 {LinesService} from './lines.service';\r\nimport { Line } from './lines.model';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class AllRoutesResolver implements Resolve<Line[]> {\r\n\r\n\tconstructor(private linesService: LinesService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Line[] | Promise<Line[]> {\r\n\t\tif (this.linesService.lines) {\r\n\t\t\treturn this.linesService.lines;\r\n\t\t}\r\n\t\treturn new Promise<Line[]>((resolve) => {\r\n\t\t\tthis.linesService.getLines(true)\r\n\t\t\t.pipe(\r\n\t\t\t\tcatchError((error) => {\r\n\t\t\t\t\t// console.error('Error fetching getLines in LinesResolver: ', error);\r\n\t\t\t\t\treturn of([] as Line[]);\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.subscribe((lines: Line[]) => resolve(lines));\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 {RouteCalendar} from './lines.model';\r\nimport {LinesService} from './lines.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class LinesCalendarResolver implements Resolve<RouteCalendar> {\r\n\r\n\tconstructor(private linesService: LinesService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): RouteCalendar | Promise<RouteCalendar> {\r\n\t\tif (this.linesService.lineCalendar && this.linesService.lineCalendar.has(route.params.id)) {\r\n\t\t\treturn this.linesService.lineCalendar.get(route.params.id);\r\n\t\t}\r\n\t\treturn new Promise<RouteCalendar>((resolve) => {\r\n\t\t\tthis.linesService.getLinesCalendar(route.params.id)\r\n\t\t\t.pipe(\r\n\t\t\t\tcatchError((error) => {\r\n\t\t\t\t\treturn of(null);\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.subscribe((linesCalendar: RouteCalendar) => resolve(linesCalendar));\r\n\t\t});\r\n\r\n\t}\r\n\r\n}\r\n","export enum LineType {\r\n\tTRAM = 'TRAM',\r\n\tCHRONO = 'CHRONO',\r\n\tPROXIMO = 'PROXIMO',\r\n\tFLEXO = 'FLEXO',\r\n\tC38 = 'C38',\r\n\tSTRUCTURANTES = 'Structurantes',\r\n\tSECONDAIRES = 'Secondaires',\r\n\tURBAINES = 'Urbaines',\r\n\tINTERURBAINES = 'Interurbaines',\r\n\tSCOL = 'SCOL',\r\n\tSNC = 'SNC',\r\n\tTAD = 'TAD',\r\n\tMCO = 'MCO',\r\n}\r\n\r\nexport const defaultAvailableTypes = [\r\n\tLineType.TRAM,\r\n\tLineType.CHRONO,\r\n\tLineType.PROXIMO,\r\n\tLineType.FLEXO,\r\n\tLineType.C38,\r\n\tLineType.STRUCTURANTES,\r\n\tLineType.SECONDAIRES,\r\n\tLineType.URBAINES,\r\n\tLineType.INTERURBAINES,\r\n];\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Line, RouteType } from './lines.model';\r\nimport { API, DOMAIN } from '@metromobilite/m-features';\r\nimport { GlobalService } from '../config';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class RoutesTypeService {\r\n\r\n\tconfig: any;\r\n\r\n\tconstructor(@Inject(DOMAIN) private domain: string, @Inject(API) private api: string, private globalService: GlobalService) {\r\n\t}\r\n\r\n\r\n\tpublic getRouteTypesInOrder(config: any, lines: { [key: string]: Line[] }, zoneKey?: string): RouteType[] {\r\n\r\n\t\tconst currentZoneKey = zoneKey || sessionStorage.getItem('zone') || 'default';\r\n\r\n\t\tconst currentZone = this.globalService.zone[currentZoneKey];\r\n\t\tconst order = currentZone.routesTypesOrder || [];\r\n\r\n\t\tconst orderedRouteTypes = config\r\n\t\t\t.map((routeType: RouteType) => {\r\n\t\t\t\treturn this.linesImagesMapping(routeType, lines);\r\n\t\t\t})\r\n\t\t\t.sort((a, b) => {\r\n\t\t\t\t// Handle multiple routeTypes in a block, find the first match in order array\r\n\t\t\t\tconst aTypeOrder = this.getRouteTypeOrder(a.type, order);\r\n\t\t\t\tconst bTypeOrder = this.getRouteTypeOrder(b.type, order);\r\n\t\t\t\treturn aTypeOrder - bTypeOrder;\r\n\t\t\t});\r\n\r\n\t\treturn orderedRouteTypes;\r\n\t}\r\n\r\n\r\n\r\n\tlinesImagesMapping(routeType: any, lines: { [key: string]: Line[] }): RouteType {\r\n\t\tif (!Array.isArray(routeType.linesbloc)) {\r\n\t\t\trouteType.linesbloc = [];\r\n\t\t}\r\n\r\n\t\trouteType.linesbloc.forEach((bloc: any) => {\r\n\t\t\tif (routeType.image && !routeType.image.includes('https')) {\r\n\t\t\t\trouteType.image = `${this.domain}/${this.api}${this.api.includes('/') ? '' : '/'}${routeType.image}`;\r\n\t\t\t}\r\n\r\n\t\t\tlet blocTypes = Array.isArray(bloc.type) ? bloc.type : [bloc.type];\r\n\r\n\t\t\tif (!bloc.lines) {\r\n\t\t\t\tbloc.lines = [];\r\n\t\t\t} else {\r\n\t\t\t\tbloc.lines = [];\r\n\t\t\t}\r\n\r\n\t\t\tblocTypes.forEach(typeRoute => {\r\n\t\t\t\tlet tmpLines = lines[typeRoute]?.filter(line => routeType.type.includes(line.id.split(':')[0]));\r\n\t\t\t\t\r\n\t\t\t\tif (tmpLines) {\r\n\t\t\t\t\ttmpLines.forEach(line => {\r\n\t\t\t\t\t\tbloc.lines.push(line);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (bloc.image && !bloc.image.includes('https')) {\r\n\t\t\t\tbloc.image = `${this.domain}/${this.api}${this.api.includes('/') ? '' : '/'}${bloc.image}`;\r\n\t\t\t}\r\n\r\n\t\t\tif (bloc.linesbloc) {\r\n\t\t\t\tbloc.linesbloc.forEach((childBloc: RouteType) => {\r\n\t\t\t\t\tthis.linesImagesMapping(childBloc, lines);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn routeType;\r\n\t}\r\n\r\n\tprivate getRouteTypeOrder(type: string | string[], order: string[]): number {\r\n\t\tif (Array.isArray(type)) {\r\n\t\t\tfor (let t of type) {\r\n\t\t\t\tconst index = order.indexOf(t);\r\n\t\t\t\tif (index !== -1) return index;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst index = order.indexOf(type);\r\n\t\t\tif (index !== -1) return index;\r\n\t\t}\r\n\t\treturn Number.MAX_SAFE_INTEGER;\r\n\t}\r\n\r\n\r\n\r\n\tpublic sortPlansReseauxByZoneOrder(data: any[], zoneKey?: string): any[] {\r\n\t\tconst currentZoneKey = zoneKey || sessionStorage.getItem('zone') || 'default';\r\n\r\n\t\tconst currentZone = this.globalService.zone[currentZoneKey];\r\n\t\tconst order = currentZone.routesTypesOrder || [];\r\n\r\n\t\treturn data.sort((a, b) => {\r\n\t\t\tconst aTypeOrder = this.getRouteTypeOrder(a.reseau, order);\r\n\t\t\tconst bTypeOrder = this.getRouteTypeOrder(b.reseau, order);\r\n\t\t\treturn aTypeOrder - bTypeOrder;\r\n\t\t});\r\n\t}\r\n\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n\tHttpRequest,\r\n\tHttpHandler,\r\n\tHttpEvent,\r\n\tHttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { API } from '@metromobilite/m-features';\r\n\r\n@Injectable()\r\nexport class ApiInterceptor implements HttpInterceptor {\r\n\r\n\tconstructor(\r\n\t\t@Inject(API) private api: string\r\n\t) { }\r\n\r\n\tintercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (req.url.includes('@api')) {\r\n\t\t\treq = req.clone({ url: req.url.replace('@api/', this.api) });\r\n\t\t}\r\n\t\treturn next.handle(req);\r\n\t}\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n\tHttpRequest,\r\n\tHttpHandler,\r\n\tHttpEvent,\r\n\tHttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { DOMAIN } from '@metromobilite/m-features';\r\n\r\n@Injectable()\r\nexport class DomainInterceptor implements HttpInterceptor {\r\n\r\n\tconstructor(@Inject(DOMAIN) private domain: string) { }\r\n\r\n\tintercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (req.url.includes('@domain')) {\r\n\t\t\treq = req.clone({ url: req.url.replace('@domain', this.domain) });\r\n\t\t}\r\n\t\treturn next.handle(req);\r\n\t}\r\n\r\n}\r\n","export const c38Mapping = {\r\n\t'C38:EXP1': 'C38:X01',\r\n\t'C38:EXP2': 'C38:X02',\r\n\t'C38:EXP3': 'C38:X03',\r\n\t'C38:EXP4': 'C38:X04',\r\n\t'C38:EXP5': 'C38:X05',\r\n\t'C38:EXP6': 'C38:X06',\r\n\t'C38:EXP7': 'C38:X07',\r\n\t'C38:1000': 'C38:T10',\r\n\t'C38:1010': 'C38:T11',\r\n\t'C38:1020': 'C38:T12',\r\n\t'C38:1040': 'C38:T14',\r\n\t'C38:1050': 'C38:T15',\r\n\t'C38:1060': 'C38:T16',\r\n\t'C38:1130': 'C38:T30',\r\n\t'C38:1140': 'C38:T31',\r\n\t'C38:1150': 'C38:T23',\r\n\t'C38:1230': 'C38:T13',\r\n\t'C38:1380': 'C38:T43',\r\n\t'C38:1410': 'C38:T17',\r\n\t'C38:1450': 'C38:T18',\r\n\t'C38:1980': 'C38:T20',\r\n\t'C38:1981': 'C38:T21',\r\n\t'C38:1982': 'C38:T22',\r\n\t'C38:2070': 'C38:T32',\r\n\t'C38:2080': 'C38:T33',\r\n\t'C38:2090': 'C38:T34',\r\n\t'C38:2180': 'C38:T52',\r\n\t'C38:2610': 'C38:T53',\r\n\t'C38:2700': 'C38:T54',\r\n\t'C38:2900': 'C38:T35',\r\n\t'C38:2960': 'C38:T36',\r\n\t'C38:2990': 'C38:T37',\r\n\t'C38:3000': 'C38:T75',\r\n\t'C38:3010': 'C38:T71',\r\n\t'C38:3011': 'C38:T70',\r\n\t'C38:3020': 'C38:T76',\r\n\t'C38:3030': 'C38:T73',\r\n\t'C38:3040': 'C38:T77',\r\n\t'C38:4100': 'C38:T90',\r\n\t'C38:4101': 'C38:T91',\r\n\t'C38:4110': 'C38:T92',\r\n\t'C38:4310': 'C38:T93',\r\n\t'C38:4500': 'C38:T95',\r\n\t'C38:4600': 'C38:T94',\r\n\t'C38:5000': 'C38:T60',\r\n\t'C38:5020': 'C38:T61',\r\n\t'C38:5200': 'C38:T62',\r\n\t'C38:5250': 'C38:T63',\r\n\t'C38:5100': 'C38:T64',\r\n\t'C38:5110': 'C38:T65',\r\n\t'C38:5120': 'C38:T66',\r\n\t'C38:5130': 'C38:T67',\r\n\t'C38:6010': 'C38:T87',\r\n\t'C38:6020': 'C38:T80',\r\n\t'C38:6030': 'C38:T82',\r\n\t'C38:6051': 'C38:T88',\r\n\t'C38:6052': 'C38:T89',\r\n\t'C38:6060': 'C38:T83',\r\n\t'C38:6070': 'C38:T81',\r\n\t'C38:6080': 'C38:T84',\r\n\t'C38:6200': 'C38:T86',\r\n\t'C38:6550': 'C38:T85',\r\n\t'C38:7000': 'C38:T40',\r\n\t'C38:7010': 'C38:T41',\r\n\t'C38:7110': 'C38:T42',\r\n\t'C38:7300': 'C38:T50',\r\n\t'C38:7320': 'C38:X08',\r\n\t'C38:7330': 'C38:T51',\r\n\t'C38:7350': 'C38:T55',\r\n\t'C38:7360': 'C38:T56',\r\n\t'C38:7500': 'C38:T44',\r\n};\r\n\r\nexport const typeLabels = {\r\n\tclusters: 'Zone d\\'arrêt',\r\n\tPKG: 'Parking',\r\n\tagenceM: 'Point de vente',\r\n\tPAR: 'Parking relais',\r\n\trecharge: 'Station de recharge',\r\n\tdepositaire: 'Relais Vente',\r\n\tcitizyea: 'Véhicule en dépose libre',\r\n\tautostop: 'Arrêt autostop',\r\n\tMVA: 'Agence MVélo+',\r\n\tpointService: 'Agence cars Région',\r\n\tpointCov: 'Point de prise en charge',\r\n\tparkingCov: 'Parking covoiturage',\r\n\tgpl: 'GPL',\r\n\tgnv: 'GNV',\r\n\thydrogene: 'Hydrogène',\r\n\tirve: 'Station de recharge',\r\n\tponyVehicle: 'Vélos électriques Pony en libre-service',\r\n\ttierVehicle: 'Trottinettes électriques TIER en libre-service',\r\n\tcitiz: 'CITIZ',\r\n\tMVC: 'Consignes Mvélo+',\r\n\tveloservice: 'Station Chronovélo',\r\n\tstationstaxi: 'Station de taxi',\r\n\tvoi_scooter: `Trottinettes électriques Voi en libre-service`,\r\n\tvoi_bike: `Vélos électriques Voi en libre-service`,\r\n\tCABLE_CAR: `Bulles`,\r\n};\r\n\r\nexport const searchFilterTypes: string[] = ['clusters', 'pointCov', 'parking', 'rue', 'lieux', 'agenceM', 'recharge', 'depositaire', 'citizyea', 'autostop', 'MVA', 'pointService', 'parkingCov', 'gpl', 'gnv', 'hydrogene'];\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({name: 'duration'})\r\nexport class DurationPipe implements PipeTransform {\r\n\ttransform(duration: number) {\r\n\t\tlet hour: number;\r\n\t\tlet minute: number;\r\n\t\tlet seconds: number;\r\n\t\tseconds = duration;\r\n\t\tif (duration < 60) return seconds + ' s';\r\n\t\tminute = Math.floor(seconds / 60);\r\n\t\thour = Math.floor(minute / 60);\r\n\t\tminute = minute % 60;\r\n\t\thour = hour % 24;\r\n\t\t// Préparer les bonnes chaines (1h20min, 30min)\r\n\t\tif (hour === 0) return minute + ' min';\r\n\t\treturn hour + ' h ' + minute + ' min';\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'distance'\r\n})\r\nexport class DistancePipe implements PipeTransform {\r\n\r\n\ttransform(distance: number) {\r\n\t\treturn distance >= 1000 ? Math.round(distance / 1000) + ' km' : Math.round(distance) + ' mètres';\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subtypes } from '../core.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ParkingSubtypes implements Subtypes {\r\n\r\n\ttype = 'parking';\r\n\r\n\tget(featureOrObjectWithProperties: any): string {\r\n\t\tlet nbPr = 0;\r\n\t\tif ('get' in featureOrObjectWithProperties && typeof featureOrObjectWithProperties.get === 'function') {\r\n\t\t\tnbPr = featureOrObjectWithProperties.get('nb_pr') || 0;\r\n\t\t} else if ('properties' in featureOrObjectWithProperties) {\r\n\t\t\tnbPr = featureOrObjectWithProperties.properties.nb_pr || 0;\r\n\t\t}\r\n\t\treturn nbPr > 0 ? 'PAR' : 'PKG';\r\n\t}\r\n\r\n}\r\n","import { Directive, Input, HostListener, HostBinding, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mfImage], img[default]'\r\n})\r\nexport class MfImageDirective implements OnInit {\r\n\r\n\t@Input() src: string;\r\n\t@Input() default: string;\r\n\r\n\t@HostListener('error')\r\n\tonError() {\r\n\t\tif (this.default) {\r\n\t\t\tthis.src = this.default;\r\n\t\t}\r\n\t}\r\n\r\n\t@HostBinding('attr.src') get _src() {\r\n\t\treturn this.src;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (!this.src && this.default) {\r\n\t\t\tthis.src = this.default;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'mfJoin'\r\n})\r\nexport class JoinPipe implements PipeTransform {\r\n\r\n\ttransform(value: string[], glue = ','): string {\r\n\t\treturn value.join(glue);\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport function isTrue(value: boolean | string) {\r\n\treturn typeof value === 'boolean' && value || value === 'true';\r\n}\r\n\r\n@Pipe({\r\n\tname: 'mfTransportMode'\r\n})\r\nexport class TransportModePipe implements PipeTransform {\r\n\r\n\ttransform(value: { data: { [key: string]: any }, [key: string]: any }, ...args: any[]): string {\r\n\t\tconst transportModes: string[] = [];\r\n\t\tif (isTrue(value.data.pmr)) transportModes.push('Accès PMR');\r\n\t\tif (isTrue(value.data.tc)) transportModes.push('Tram / Bus');\r\n\t\tif (isTrue(value.data.voiture)) transportModes.push('Voiture');\r\n\t\tif (isTrue(value.data.velo)) transportModes.push('Vélo');\r\n\t\tif (isTrue(value.data.covoiturage)) transportModes.push('Covoiturage');\r\n\t\treturn transportModes.join(' - ');\r\n\t}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Information, InformationDescription} from '../core.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class JsonToHtmlHelper {\r\n\r\n\t// Map of HTML tags and their corresponding template generators\r\n\ttemplateTagMap = {\r\n\t\tdefault: this.defaultTemplate, br: this.lineBreakTemplate,\r\n\t};\r\n\r\n\t/**\r\n\t * @param informationConfig: json-based LML object that describes the template\r\n\t * @returns the described template in an html string\r\n\t */\r\n\tparseToHtml(informationConfig: Information): string {\r\n\t\tlet generatedTemplate = '';\r\n\t\tconst descriptionsNode = informationConfig.description;\r\n\t\tdescriptionsNode.forEach((descriptionNode: InformationDescription) => {\r\n\t\t\tgeneratedTemplate += this.buildNodes(descriptionNode);\r\n\t\t});\r\n\r\n\t\treturn generatedTemplate;\r\n\t}\r\n\r\n\t/**\r\n\t * @param node: any node of the template about to be generated\r\n\t * @returns the described template of a single element in an html string\r\n\t */\r\n\tprivate defaultTemplate(node: InformationDescription, childNodeTemplate: string) {\r\n\t\tlet attributesTemplate = '';\r\n\t\tlet template = '';\r\n\t\tif (node.attributes && Object.keys(node.attributes).length !== 0) {\r\n\t\t\tObject.keys(node.attributes).forEach((attribute) => {\r\n\t\t\t\tattributesTemplate += ` ${attribute}=\"${node.attributes[attribute]}\"`;\r\n\t\t\t});\r\n\t\t}\r\n\t\ttemplate += `<${node.tag}${attributesTemplate}>${childNodeTemplate}</${node.tag}>`;\r\n\t\treturn template;\r\n\t}\r\n\r\n\tprivate lineBreakTemplate() {\r\n\t\treturn `<br />`;\r\n\t}\r\n\r\n\t/**\r\n\t * @param node: any node of the template\r\n\t * @returns the described template of a single element in an html string\r\n\t */\r\n\tprivate generateTemplate(node: InformationDescription, childNodeTemplate: string) {\r\n\t\tlet templateGenerator = this.templateTagMap[node.tag];\r\n\t\tif (!templateGenerator) {\r\n\t\t\ttemplateGenerator = this.templateTagMap.default;\r\n\t\t}\r\n\t\treturn templateGenerator(node, childNodeTemplate);\r\n\t}\r\n\r\n\tprivate isString(node: string | InformationDescription): boolean {\r\n\t\treturn typeof node === 'string';\r\n\t}\r\n\r\n\t/**\r\n\t * @param node: parent node (represents the root element of the generated template or its children)\r\n\t * @returns the described template of a node and its children in an html string\r\n\t */\r\n\tprivate buildNodes(node: string | InformationDescription): string {\r\n\t\tif (this.isString(node)) {\r\n\t\t\treturn (node as string);\r\n\t\t} else {\r\n\t\t\tnode = (node as InformationDescription);\r\n\t\t\tconst htmlResult = node.children.reduce((html, next) => {\r\n\t\t\t\tconst value = this.buildNodes(next);\r\n\t\t\t\treturn `${html}${value}`;\r\n\t\t\t}, '');\r\n\t\t\tconst generatedTemplate = this.generateTemplate(node, (htmlResult as string));\r\n\t\t\treturn generatedTemplate;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Information } from '../core.model';\r\nimport { JsonToHtmlHelper } from '../helpers/json-to-html.helper';\r\n\r\n@Pipe({\r\n\tname: 'mfJsonToHTML'\r\n})\r\nexport class MfJsonToHTMLPipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate jsonToHTMLService: JsonToHtmlHelper\r\n\t) { }\r\n\r\n\ttransform(value: Information): string {\r\n\t\ttry {\r\n\t\t\treturn this.jsonToHTMLService.parseToHtml(value);\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(`Unable to parse to HTML. Make sur the given object is of type Information.`);\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { Directive, HostBinding, Input } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\n\r\n\r\n@Directive({\r\n\tselector: '[mfPmAbsoluteLink]'\r\n})\r\nexport class PmAbsoluteLinkDirective {\r\n\r\n\t@Input('mfPmAbsoluteLink') parts: string[];\r\n\r\n\t@Input() queryParams: Params | null;\r\n\r\n\tconstructor() { }\r\n\r\n\t@HostBinding('attr.href') get href(): string {\r\n\t\tlet url = this.parts.join('/');\r\n\t\tif (this.queryParams) {\r\n\t\t\tconst queryParams = new URLSearchParams(this.queryParams);\r\n\t\t\turl += `?${queryParams.toString()}`;\r\n\t\t}\r\n\t\treturn url;\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'pmFixCoordinates'\r\n})\r\nexport class PmFixCoordinatesPipe implements PipeTransform {\r\n\r\n\ttransform(data: any): string[] {\r\n\t\tconst geometry = data.geometry || data.properties.geometry;\r\n\t\t// If the geometry object have a flatCoordinates then we need to convert the coordinates to lonlat numbers.\r\n\t\tif (geometry.flatCoordinates) {\r\n\t\t\treturn this.toLonLat(...(geometry.flatCoordinates as [number, number]));\r\n\t\t}\r\n\t\treturn geometry.coordinates;\r\n\t}\r\n\r\n\t// Thx to https://gist.github.com/onderaltintas/6649521\r\n\t// We don't want to have Openlayers as dependency here so we use a custom transform.\r\n\ttoLonLat(x: number, y: number): string[] {\r\n\t\tconst lon = x * 180 / 20037508.34;\r\n\t\tconst lat = Math.atan(Math.exp(y * Math.PI / 20037508.34)) * 360 / Math.PI - 90;\r\n\t\treturn [lon.toString(), lat.toString()];\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TypesHelper } from '../helpers/types.helper';\r\n\r\n@Pipe({\r\n\tname: 'detailPoiRouterLink'\r\n})\r\nexport class DetailPoiRouterLinkPipe implements PipeTransform {\r\n\r\n\tconstructor(private typesHelper: TypesHelper) { }\r\n\r\n\ttransform(obj: any, baseUrl?: string): any[] {\r\n\t\tif (!baseUrl) baseUrl = '/';\r\n\t\treturn [baseUrl, 'detailpoi', obj.properties.type, obj.properties[this.typesHelper.idField(obj.properties.type)]];\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n\tname: 'safeUrl'\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n\r\n\tconstructor(private sanitizer: DomSanitizer) { }\r\n\r\n\ttransform(value: string): SafeUrl {\r\n\t\treturn this.sanitizer.bypassSecurityTrustUrl(value);\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TypesHelper } from '../helpers/types.helper';\r\n\r\n@Pipe({\r\n\tname: 'lineDetailRouterLink'\r\n})\r\nexport class LineDetailRouterLinkPipe implements PipeTransform {\r\n\r\n\tconstructor(private typesHelper: TypesHelper) { }\r\n\r\n\ttransform(obj: any, baseUrl?: string): any[] {\r\n\t\tif (!baseUrl) baseUrl = '/';\r\n\t\treturn [baseUrl, 'horaires','lignes','detailligne', obj.line];\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LinesService } from '../lines/lines.service';\r\n\r\n@Pipe({\r\n\tname: 'lineType'\r\n})\r\nexport class LineTypePipe implements PipeTransform {\r\n\r\n\tconstructor(\r\n\t\tprivate linesService: LinesService\r\n\t) { }\r\n\r\n\ttransform(line: string): string {\r\n\t\tconst lineObj = this.linesService.find(line);\r\n\t\treturn lineObj.type;\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'useCircle',\r\n})\r\nexport class LineUseCirclePipe implements PipeTransform  {\r\n\r\n\ttransform(type: string) {\r\n\t\treturn ['TRAM', 'CHRONO', 'CHRONO_PERI'].includes(type);\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'useRounded',\r\n})\r\nexport class LineUseRoundedPipe implements PipeTransform  {\r\n\r\n\ttransform(type: string) {\r\n\t\treturn !['TRAM', 'CHRONO'].includes(type);\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Line } from '../lines';\r\n\r\n\r\n@Pipe({\r\n\tname: 'mfFakeLine',\r\n})\r\nexport class FakeLinePipe implements PipeTransform {\r\n\ttransform(lineId: string): Line {\r\n\t\tconst [_, name] = lineId.split(':');\r\n\t\treturn {\r\n\t\t\ttype: '',\r\n\t\t\tshortName: name,\r\n\t\t\tlongName: name,\r\n\t\t\ttextColor: 'fff',\r\n\t\t\tcolor: '999999',\r\n\t\t} as Line;\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({\r\n\tname: 'itineraryRouterLink'\r\n})\r\nexport class ItineraryRouterLinkPipe implements PipeTransform {\r\n\r\n\tconstructor() { }\r\n\r\n\ttransform(baseUrl: string): any[] {\r\n\t\tif (!baseUrl) baseUrl = '/';\r\n\t\treturn [baseUrl, 'itineraire'];\r\n\t}\r\n\r\n}\r\n","import {Injector, Pipe, PipeTransform, ProviderToken} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'pipeTransferer',\r\n})\r\nexport class PipeTransfererPipe implements PipeTransform {\r\n\r\n\r\n\tpublic constructor(private injector: Injector) {\r\n\t}\r\n\r\n\ttransform(value: any, pipeToken: ProviderToken<PipeTransform>, pipeArgs: any[]): any {\r\n\t\tif (!pipeToken) {\r\n\t\t\treturn value;\r\n\t\t} else {\r\n\t\t\tconst pipe = this.injector.get(pipeToken);\r\n\t\t\treturn pipe.transform(value, ...pipeArgs);\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {searchFilterTypes} from '../core.constant';\r\nimport {StringHelper} from '../helpers/string.helper';\r\n\r\n@Pipe({\r\n\tname: 'searchFilter',\r\n})\r\nexport class SearchFilterPipe implements PipeTransform {\r\n\r\n\tconstructor(private stringHelper: StringHelper) {\r\n\t}\r\n\r\n\ttransform(list: any[], query?: string | string[]): any[] {\r\n\t\tif (!query || query.length === 0) {\r\n\t\t\tquery = [...searchFilterTypes];\r\n\t\t}\r\n\r\n\t\treturn list.filter((item: any) => {\r\n\t\t\tif (Array.isArray(query)) {\r\n\t\t\t\treturn (query as string[]).includes(item.properties.type);\r\n\t\t\t}\r\n\t\t\treturn item.properties.type.includes(this.stringHelper.cleanString(query));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'isHourDisplay',\r\n})\r\nexport class IsHourDisplayPipe implements PipeTransform {\r\n\tconstructor() {}\r\n\r\n\ttransform(h: string): boolean {\r\n\t\treturn h.includes(':');\r\n\t}\r\n}\r\n","import { AfterContentInit, Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[mfAutofocus]'\r\n})\r\nexport class AutofocusDirective implements AfterContentInit {\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n/* TODO : MEttre à jour cette directive le jour où Apple decide de modifier sa politique concernant l'affichage du keyboard. Actuellement une action utilisateur est\r\nnécessaire pour que le clavier apparaisse. \r\nun des liens interessant sur le sujet : https://stackoverflow.com/questions/54424729/ios-show-keyboard-on-input-focus?noredirect=1&lq=1 mais il en existe d'autres.\r\n*/\r\n\r\n  ngAfterContentInit(): void {\r\n    \r\n    setTimeout(() =>{ \r\n      this.el.nativeElement.focus();\r\n    });\r\n       \r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Subtypes} from '../core.model';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class VoiSubtypes implements Subtypes {\r\n\r\n\ttype = 'voi';\r\n\r\n\tget(featureOrObjectWithProperties: any): string {\r\n\t\tlet vehicleTypeId = 'voi_scooter';\r\n\t\tif ('get' in featureOrObjectWithProperties && typeof featureOrObjectWithProperties.get === 'function') {\r\n\t\t\tvehicleTypeId = featureOrObjectWithProperties.get('vehicle_type_id') || 'voi_scooter';\r\n\t\t} else if ('properties' in featureOrObjectWithProperties) {\r\n\t\t\tvehicleTypeId = featureOrObjectWithProperties.properties.vehicle_type_id || 'voi_scooter';\r\n\t\t}\r\n\t\treturn vehicleTypeId;\r\n\t}\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MIcons } from '@metromobilite/m-ui/lib/m-icons';\r\nimport { MLogoLines } from '@metromobilite/m-ui/lib/m-logo-lines';\r\nimport { TypeLabelComponent } from './components/type-label/type-label.component';\r\n\r\nimport { CommunePipe } from './pipes/commune.pipe';\r\nimport { ExtractCityPipe } from './pipes/extract-city.pipe';\r\nimport { ExtractLineIdPipe } from './pipes/extract-line-id.pipe';\r\nimport { FilterPipe } from './pipes/filter.pipe';\r\nimport { GroupByPipe } from './pipes/groupBy.pipe';\r\nimport { IdPipe } from './pipes/id.pipe';\r\nimport { LibellePipe } from './pipes/libelle.pipe';\r\nimport { LineColorPipe } from './pipes/line-color.pipe';\r\nimport { LinePipe } from './pipes/line.pipe';\r\nimport { ModePipe } from './pipes/mode.pipe';\r\nimport { TimePipe, TimeUnitPipe, TimeSchedulePipe, TimeDelayPipe, TimeDelayClassPipe } from './pipes/time.pipe';\r\nimport { defaultAvailableTypes } from './lines';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ApiInterceptor } from './interceptors/api.interceptor';\r\nimport { DomainInterceptor } from './interceptors/domain.interceptor';\r\nimport { AVAILABLE_LINE_TYPES, GEOLOCATION_CONFIG, SUBTYPES, TYPE_LABELS, VISIBILITY_BACKGROUND_TIMER } from './core.token';\r\nimport { typeLabels } from './core.constant';\r\nimport { DurationPipe } from './pipes/duration.pipe';\r\nimport { DistancePipe } from './pipes/distance.pipe';\r\nimport { ParkingSubtypes } from './subtypes/parking.subtypes';\r\nimport { MfImageDirective } from './directives/image.directive';\r\nimport { JoinPipe } from './pipes/join.pipe';\r\nimport { TransportModePipe } from './pipes/transport-mode.pipe';\r\nimport { MfHasTypeLabelPipe, MfTypeLabelPipe } from './pipes/type-label.pipe';\r\nimport { MfJsonToHTMLPipe } from './pipes/json-to-html.pipe';\r\nimport { PmAbsoluteLinkDirective } from './directives/pm-absolute-link.directive';\r\nimport { PmFixCoordinatesPipe } from './pipes/pm-fix-coordinates.pipe';\r\nimport { DetailPoiRouterLinkPipe } from './pipes/detail-poi-route.pipe';\r\nimport { SafeUrlPipe } from './pipes/safe-url.pipe';\r\nimport { LineDetailRouterLinkPipe } from './pipes/line-detail-route.pipe';\r\nimport { LineTypePipe } from './pipes/line-type.pipe';\r\nimport { LineUseCirclePipe } from './pipes/line-use-circle.pipe';\r\nimport { LineUseRoundedPipe } from './pipes/line-use-rounded.pipe';\r\nimport { FakeLinePipe } from './pipes/fake-line.pipe';\r\nimport { ItineraryRouterLinkPipe } from './pipes/itinerary-route.pipe';\r\nimport { PipeTransfererPipe } from './pipes/pipe-transferer.pipe';\r\nimport { SearchFilterPipe } from './pipes/search-filter.pipe';\r\nimport { IsHourDisplayPipe } from './pipes/is-hour-display.pipe';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { VoiSubtypes } from './subtypes/voi.subtypes';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tCommunePipe,\r\n\t\tExtractCityPipe,\r\n\t\tExtractLineIdPipe,\r\n\t\tFilterPipe,\r\n\t\tSearchFilterPipe,\r\n\t\tGroupByPipe,\r\n\t\tIdPipe,\r\n\t\tLibellePipe,\r\n\t\tLineColorPipe,\r\n\t\tLinePipe,\r\n\t\tModePipe,\r\n\t\tTimePipe,\r\n\t\tTimeUnitPipe,\r\n\t\tTimeSchedulePipe,\r\n\t\tTimeDelayPipe,\r\n\t\tTimeDelayClassPipe,\r\n\t\tDurationPipe,\r\n\t\tDistancePipe,\r\n\t\tMfImageDirective,\r\n\t\tTransportModePipe,\r\n\t\tJoinPipe,\r\n\t\tMfTypeLabelPipe,\r\n\t\tMfHasTypeLabelPipe,\r\n\t\tMfJsonToHTMLPipe,\r\n\t\tPmAbsoluteLinkDirective,\r\n\t\tPmFixCoordinatesPipe,\r\n\t\tDetailPoiRouterLinkPipe,\r\n\t\tSafeUrlPipe,\r\n\t\tLineDetailRouterLinkPipe,\r\n\t\tLineTypePipe,\r\n\t\tLineUseCirclePipe,\r\n\t\tLineUseRoundedPipe,\r\n\t\tFakeLinePipe,\r\n\t\tItineraryRouterLinkPipe,\r\n\t\tPipeTransfererPipe,\r\n\t\tIsHourDisplayPipe,\r\n  \t\tAutofocusDirective,\r\n\t\tTypeLabelComponent\r\n\t],\r\n    imports: [\r\n        CommonModule,\r\n        MatIconModule,\r\n        MatRippleModule,\r\n        MatButtonModule,\r\n        MatDialogModule,\r\n        MatListModule,\r\n        MIcons,\r\n        MLogoLines\r\n    ],\r\n\texports: [\r\n\t\tCommunePipe,\r\n\t\tExtractCityPipe,\r\n\t\tExtractLineIdPipe,\r\n\t\tFilterPipe,\r\n\t\tSearchFilterPipe,\r\n\t\tGroupByPipe,\r\n\t\tIdPipe,\r\n\t\tLibellePipe,\r\n\t\tLineColorPipe,\r\n\t\tLinePipe,\r\n\t\tModePipe,\r\n\t\tTimePipe,\r\n\t\tTimeUnitPipe,\r\n\t\tTimeSchedulePipe,\r\n\t\tTimeDelayPipe,\r\n\t\tTimeDelayClassPipe,\r\n\t\tDurationPipe,\r\n\t\tDistancePipe,\r\n\t\tMfImageDirective,\r\n\t\tTransportModePipe,\r\n\t\tJoinPipe,\r\n\t\tMfTypeLabelPipe,\r\n\t\tMfHasTypeLabelPipe,\r\n\t\tMfJsonToHTMLPipe,\r\n\t\tPmAbsoluteLinkDirective,\r\n\t\tPmFixCoordinatesPipe,\r\n\t\tDetailPoiRouterLinkPipe,\r\n\t\tSafeUrlPipe,\r\n\t\tLineDetailRouterLinkPipe,\r\n\t\tLineTypePipe,\r\n\t\tLineUseCirclePipe,\r\n\t\tLineUseRoundedPipe,\r\n\t\tFakeLinePipe,\r\n\t\tItineraryRouterLinkPipe,\r\n\t\tPipeTransfererPipe,\r\n\t\tIsHourDisplayPipe,\r\n\t\tAutofocusDirective,\r\n\t\tTypeLabelComponent\r\n\t],\r\n\tproviders: [\r\n\t\t{ provide: AVAILABLE_LINE_TYPES, useValue: defaultAvailableTypes },\r\n\t\t{ provide: VISIBILITY_BACKGROUND_TIMER, useValue: 900 },\r\n\t\t{ provide: HTTP_INTERCEPTORS, useClass: DomainInterceptor, multi: true },\r\n\t\t{ provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true },\r\n\t\t{\r\n\t\t\tprovide: GEOLOCATION_CONFIG, useValue: {\r\n\t\t\t\tenableHighAccuracy: false,\r\n\t\t\t\ttimeout: 5000,\r\n\t\t\t\tmaximumAge: Infinity\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ provide: SUBTYPES, useClass: ParkingSubtypes, multi: true },\r\n\t\t{ provide: SUBTYPES, useClass: VoiSubtypes, multi: true },\r\n\t\t{ provide: TYPE_LABELS, useValue: typeLabels },\r\n\t\tSearchFilterPipe\r\n\t]\r\n})\r\nexport class CoreModule { }\r\n","import { Observable, Subject } from 'rxjs';\r\nimport { GeolocationConfig } from '../core.model';\r\nimport { GeolocationService } from './geolocation.service';\r\n\r\nexport class GeolocationWatcher {\r\n\r\n\tprivate watcher: number;\r\n\tprivate changes: Subject<GeolocationPosition>;\r\n\r\n\tconstructor(private geolocationService: GeolocationService, private positionOptions: GeolocationConfig) {\r\n\t\tthis.changes = new Subject<GeolocationPosition>();\r\n\t\tthis.watcher = navigator.geolocation.watchPosition((position) => {\r\n\t\t\tthis.geolocationService.setPosition(position);\r\n\t\t\tthis.changes.next(position);\r\n\t\t}, (err) => {\r\n\t\t\tthis.geolocationService.setPosition(undefined);\r\n\t\t\tconsole.warn(`ERROR ${err.code}: ` + ` ${err.message}: ${err.POSITION_UNAVAILABLE}`);\r\n\t\t\tthis.changes.error(err);\r\n\t\t}, this.positionOptions);\r\n\t}\r\n\r\n\tget changes$(): Observable<GeolocationPosition> {\r\n\t\treturn this.changes.asObservable();\r\n\t}\r\n\r\n\tclearWatch() {\r\n\t\tthis.changes.complete();\r\n\t\tnavigator.geolocation.clearWatch(this.watcher);\r\n\t}\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { GeolocationConfig } from '../core.model';\r\nimport { GEOLOCATION_CONFIG } from '../core.token';\r\nimport { GeolocationWatcher } from './geolocation.watch';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GeolocationService {\r\n\r\n\tposition: GeolocationPosition;\r\n\trefused: boolean;\r\n\tavailable = 'geolocation' in navigator;\r\n\r\n\tconstructor(\r\n\t\t@Inject(GEOLOCATION_CONFIG) private positionOptions: GeolocationConfig\r\n\t) { }\r\n\r\n\tgetCurrentPosition(): Promise<GeolocationPosition> {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (this.available) {\r\n\t\t\t\tnavigator.geolocation.getCurrentPosition(position => {\r\n\t\t\t\t\tthis.position = position;\r\n\t\t\t\t\tresolve(position);\r\n\t\t\t\t\tthis.refused = false;\r\n\t\t\t\t}, error => {\r\n\t\t\t\t\treject(error);\r\n\t\t\t\t\tthis.refused = true;\r\n\t\t\t\t}, this.positionOptions);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * @internal\r\n\t */\r\n\tsetPosition(position: GeolocationPosition) {\r\n\t\tthis.position = position;\r\n\t\tif (!position) {\r\n\t\t\tthis.refused = true;\r\n\t\t}\r\n\t}\r\n\r\n\tget coords(): GeolocationCoordinates {\r\n\t\treturn this.position.coords;\r\n\t}\r\n\r\n\tget coordinates(): [number, number] {\r\n\t\treturn [this.position.coords.longitude, this.position.coords.latitude];\r\n\t}\r\n\r\n\twatch() {\r\n\t\treturn new GeolocationWatcher(this, this.positionOptions);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { GeolocationService } from './geolocation.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GeolocationGuard implements CanActivate {\r\n\r\n\tconstructor(private geolocationService: GeolocationService) { }\r\n\r\n\tcanActivate(\r\n\t\tnext: ActivatedRouteSnapshot,\r\n\t\tstate: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.geolocationService.getCurrentPosition().then(position => resolve(true)).catch(error => reject(error));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ObjectHelper } from './object.helper';\r\n\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ArrayHelper {\r\n\r\n\tconstructor(private objectHelper: ObjectHelper) { }\r\n\r\n\tsortByField(arr: any[], args: [string, 'asc' | 'desc']): any[] {\r\n\t\tif (!arr) return [];\r\n\t\t/* let sortField:string = fields[fields.length-1]; */\r\n\t\tconst order: string = args[1];\r\n\t\tarr.sort((a: any, b: any) => {\r\n\t\t\tif (!a || !b) return 1;\r\n\t\t\tconst keyA = this.objectHelper.getPropertyFromPath(a, args[0]);\r\n\t\t\tconst keyB = this.objectHelper.getPropertyFromPath(b, args[0]);\r\n\t\t\tif (order === 'asc') {\r\n\t\t\t\treturn (keyA > keyB) ? 1 : -1;  // A bigger than B, sorting ascending\r\n\t\t\t} else return (keyA > keyB) ? -1 : 1;  // B bigger than A, sorting descending\r\n\t\t});\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tgroupByField(arr: any[], path: string): any[] {\r\n\t\tif (!arr) return [];\r\n\t\tconst obj = {};\r\n\t\tarr.forEach((elt: any) => {\r\n\t\t\tconst key = this.objectHelper.getPropertyFromPath(elt, path);\r\n\t\t\tif (!obj[key]) obj[key] = [];\r\n\t\t\tobj[key].push(elt);\r\n\t\t});\r\n\t\tlet newArray = [];\r\n\t\t// tslint:disable\r\n\t\tfor (const key in obj) {\r\n\t\t\tnewArray = newArray.concat(obj[key]);\r\n\t\t}\r\n\t\t// tslint:enable\r\n\t\treturn newArray;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const cssDeclaration = window.getComputedStyle(document.documentElement);\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StyleHelper {\r\n\r\n\tgetProperty(name: string): string {\r\n\t\treturn cssDeclaration.getPropertyValue(name);\r\n\t}\r\n\r\n\tget spacing() {\r\n\t\treturn this.getProperty('--spacing');\r\n\t}\r\n\r\n\tget shapeRadius() {\r\n\t\treturn this.getProperty('--shape-radius');\r\n\t}\r\n\r\n\tget mfBreakpoint() {\r\n\t\treturn this.getProperty('--mf-breakpoint');\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class DateHelper {\r\n\r\n\tmakeDate(d: string): Date {\r\n\t\tconst [date, time] = d.split(' ');\r\n\t\tconst iso = `${date.split('/').reverse().join('-')}T${time}`;\r\n\t\treturn new Date(iso);\r\n\t}\r\n\r\n\tisAfter(date1: Date, date2: Date): boolean {\r\n\t\treturn date1 > date2;\r\n\t}\r\n\r\n\tisBefore(date1: Date, date2: Date): boolean {\r\n\t\treturn date1 < date2;\r\n\t}\r\n\r\n\taddDays(date: Date, days: number): Date {\r\n\t\tconst newDate = new Date(date.getTime());\r\n\t\tnewDate.setDate(date.getDate() + days);\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\tisAfterSameDay(date1: Date, date2: Date) {\r\n\t\tif (date1.getHours() > date2.getHours()) return true;\r\n\t\tif (date1.getHours() === date2.getHours()) {\r\n\t\t\tif (date1.getMinutes() > date2.getMinutes()) return true;\r\n\t\t\tif (date1.getMinutes() === date2.getMinutes()) {\r\n\t\t\t\tif (date1.getSeconds() > date2.getSeconds()) return true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Subtypes } from '../core.model';\r\nimport { SUBTYPES } from '../core.token';\r\n\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SubtypesHelper {\r\n\thandlers: { [key: string]: Subtypes; };\r\n\r\n\tconstructor(\r\n\t\t@Inject(SUBTYPES) handlers: Subtypes[]\r\n\t) {\r\n\t\tthis.handlers = handlers.reduce((acc, handler) => {\r\n\t\t\tacc[handler.type] = handler;\r\n\t\t\treturn acc;\r\n\t\t}, {} as { [key: string]: Subtypes });\r\n\t}\r\n\r\n\tget(featureOrObjectWithProperties: any): string {\r\n\t\tlet type: string;\r\n\t\tif ('get' in featureOrObjectWithProperties && typeof featureOrObjectWithProperties.get === 'function') {\r\n\t\t\ttype = featureOrObjectWithProperties.get('type');\r\n\t\t} else if ('properties' in featureOrObjectWithProperties) {\r\n\t\t\ttype = featureOrObjectWithProperties.properties.type;\r\n\t\t}\r\n\t\tif (type && this.handlers[type]) {\r\n\t\t\treturn this.handlers[type].get(featureOrObjectWithProperties);\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SortLinesHelper {\r\n\r\n\tregexps = {\r\n\t\tC38_MAIN: new RegExp(/^(EXP|X)/),\r\n\t\tC38_SECOND: new RegExp(/^T[0-9]{,2}|[0-9]{,4}/),\r\n\t\tSEM_MAIN: new RegExp(/^(A|B|C|D|E)$/),\r\n\t\tSEM_CHRONO: new RegExp(/^C[0-9]*/),\r\n\t\tSEM_SECOND: new RegExp(/^[0-9]{,2}/),\r\n\t};\r\n\r\n\t/**\r\n\t * An algorithm to sort lines.\r\n\t * @param an The EPCI (SEM|C38|GSV|TPV)\r\n\t * @param al The line id\r\n\t * @param bn The EPCI (SEM|C38|GSV|TPV)\r\n\t * @param bl The line id\r\n\t */\r\n\tsort(an: string, al: string, bn: string, bl: string): number {\r\n\t\tif (an === bn) {\r\n\t\t\tconst n = an;\r\n\t\t\tif (n === 'C38') {\r\n\t\t\t\tif (this.regexps.C38_MAIN.test(al) && !this.regexps.C38_MAIN.test(bl)) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t} else if (this.regexps.C38_MAIN.test(bl) && !this.regexps.C38_MAIN.test(al)) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.regexps.C38_MAIN.test(al) && this.regexps.C38_MAIN.test(bl)) {\r\n\t\t\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t\t\t} else if (this.regexps.C38_SECOND.test(al) && !this.regexps.C38_SECOND.test(bl)) {\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t} else if (this.regexps.C38_SECOND.test(bl) && !this.regexps.C38_SECOND.test(al)) {\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (n === 'SEM') {\r\n\t\t\t\tif (this.regexps.SEM_MAIN.test(al) && !this.regexps.SEM_MAIN.test(bl)) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t} else if (this.regexps.SEM_MAIN.test(bl) && !this.regexps.SEM_MAIN.test(al)) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.regexps.SEM_MAIN.test(al) && this.regexps.SEM_MAIN.test(bl)) {\r\n\t\t\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t\t\t} else if (this.regexps.SEM_CHRONO.test(al) && !this.regexps.SEM_CHRONO.test(bl)) {\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t} else if (this.regexps.SEM_CHRONO.test(bl) && !this.regexps.SEM_CHRONO.test(al)) {\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t} else if (this.regexps.SEM_SECOND.test(al) && !this.regexps.SEM_SECOND.test(bl)) {\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t} else if (this.regexps.SEM_SECOND.test(bl) && !this.regexps.SEM_SECOND.test(al)) {\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isNaN(+al) && !isNaN(+bl)) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t} else if (isNaN(+bl) && !isNaN(+al)) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t} else if (al.length === 1 && bl.length > 1) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t} else if (bl.length === 1 && al.length > 1) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn al > bl ? 1 : al < bl ? -1 : 0;\r\n\t\t\t\t}\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}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DistanceHelper {\r\n\r\n\tstatic readonly R = 6378137;\r\n\r\n\tcalculate(a: [number, number], b: [number, number]): number {\r\n\t\tconst aLat = this.toRad(a[1]);\r\n\t\tconst bLat = this.toRad(b[1]);\r\n\t\tconst aLon = this.toRad(a[0]);\r\n\t\tconst bLon = this.toRad(b[0]);\r\n\t\tconst ht = this.haversine(bLat - aLat) + Math.cos(aLat) * Math.cos(bLat) * this.haversine(bLon - aLon);\r\n\t\treturn 2 * DistanceHelper.R * Math.asin(Math.sqrt(ht));\r\n\t}\r\n\r\n\tprivate toRad(x: number) {\r\n\t\treturn x * Math.PI / 180.0;\r\n\t}\r\n\r\n\tprivate squared(x: number) {\r\n\t\treturn x * x;\r\n\t}\r\n\r\n\tprivate haversine(x: number) {\r\n\t\treturn this.squared(Math.sin(x / 2));\r\n\t}\r\n\r\n}\r\n","import { BehaviorSubject, interval, NEVER, Observable, Subject, timer } from 'rxjs';\r\nimport { dematerialize, materialize, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { AppVisibilityService } from '../visibility/app-visibility.service';\r\n\r\nexport class Interval {\r\n\r\n\tpublic unsubscriber = new Subject();\r\n\tprivate pause$: Subject<boolean>;\r\n\tprivate _paused = false;\r\n\tprivate onTick = new Subject<void>();\r\n\r\n\tconstructor(public period: number, private appVisibility: AppVisibilityService) {\r\n\t\t// Equivalent du setInterval avec rxjs.\r\n\t\tconst source = timer(0, this.period).pipe(takeUntil(this.unsubscriber));\r\n\t\t// Utilisation d'un subject pour mettre en pause ou non l'interval.\r\n\t\tthis.pause$ = new BehaviorSubject<boolean>(false);\r\n\t\tthis.pause$.pipe(\r\n\t\t\tswitchMap(paused => paused ? NEVER : source.pipe(materialize())),\r\n\t\t\tdematerialize(),\r\n\t\t\ttakeUntil(this.unsubscriber)\r\n\t\t).subscribe(() => {\r\n\t\t\tthis.onTick.next();\r\n\t\t});\r\n\t\t// On met en pause l'interval lorsque l'application est en arrière plan.\r\n\t\tthis.appVisibility.visibility$.pipe(takeUntil(this.unsubscriber)).subscribe((visible) => {\r\n\t\t\tthis.pause$.next(!visible);\r\n\t\t\tif (visible && !this.paused) {\r\n\t\t\t\tthis.onTick.next();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tget onTick$(): Observable<void> {\r\n\t\treturn this.onTick.asObservable();\r\n\t}\r\n\r\n\ton<T>(obs: Observable<T>): Observable<T> {\r\n\t\treturn this.onTick.asObservable().pipe(switchMap(() => obs), takeUntil(this.unsubscriber));\r\n\t}\r\n\r\n\tpause() {\r\n\t\tthis._paused = true;\r\n\t\tthis.pause$.next(true);\r\n\t}\r\n\r\n\tresume() {\r\n\t\tthis._paused = false;\r\n\t\tthis.pause$.next(false);\r\n\t}\r\n\r\n\tget paused() {\r\n\t\treturn this._paused;\r\n\t}\r\n\r\n\tdestroy() {\r\n\t\tthis.unsubscriber.next();\r\n\t\tthis.unsubscriber.complete();\r\n\t\tthis.onTick.complete();\r\n\t}\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { fromEvent, Observable, Subject } from 'rxjs';\r\nimport { VISIBILITY_BACKGROUND_TIMER } from '../core.token';\r\n\r\n/**\r\n * The visibilitychange event may not be trigger after a long period in background.\r\n * A setTimeout system is used in background to ensure the visibility event.\r\n */\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AppVisibilityService {\r\n\tprivate visibility: Subject<boolean>;\r\n\tprivate backgroundTimeout: any;\r\n\tprivate _hidden: boolean;\r\n\r\n\tget visible(): boolean {\r\n\t\treturn !document.hidden;\r\n\t}\r\n\r\n\tconstructor(@Inject(VISIBILITY_BACKGROUND_TIMER) private timer: number) {\r\n\t\tthis.visibility = new Subject();\r\n\t\tfromEvent(document, 'visibilitychange').subscribe(() => {\r\n\t\t\tthis.visibility.next(this.visible);\r\n\t\t\tif (this.visible) {\r\n\t\t\t\tthis.clearBackgroundTimeout();\r\n\t\t\t} else {\r\n\t\t\t\tthis.startBackgroundTimeout();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tget visibility$(): Observable<boolean> {\r\n\t\treturn this.visibility.asObservable();\r\n\t}\r\n\r\n\tprivate startBackgroundTimeout() {\r\n\t\tthis.clearBackgroundTimeout();\r\n\t\tthis.backgroundTimeout = setTimeout(() => {\r\n\t\t\tif (document.hidden !== this._hidden) {\r\n\t\t\t\tthis._hidden = document.hidden;\r\n\t\t\t}\r\n\t\t\tif (!this._hidden) {\r\n\t\t\t\tthis.visibility.next(!this._hidden);\r\n\t\t\t\tthis.clearBackgroundTimeout();\r\n\t\t\t} else {\r\n\t\t\t\tthis.startBackgroundTimeout();\r\n\t\t\t}\r\n\t\t}, this.timer);\r\n\t}\r\n\r\n\tprivate clearBackgroundTimeout() {\r\n\t\tif (this.backgroundTimeout) {\r\n\t\t\tclearTimeout(this.backgroundTimeout);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppVisibilityService } from '../visibility/app-visibility.service';\r\nimport { Interval } from './interval.class';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class IntervalBuilderService {\r\n\r\n\tconstructor(private appVisibility: AppVisibilityService) { }\r\n\r\n\tbuild(period: number): Interval {\r\n\t\treturn new Interval(period, this.appVisibility);\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Cluster } from './clusters.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ClustersService {\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t) { }\r\n\r\n\tgetClusters(lineId: string): Observable<Cluster[]> {\r\n\t\treturn this.http.get<Cluster[]>(`@domain/@api/routers/default/index/routes/${lineId}/clusters`);\r\n\t}\r\n\r\n\tsplitLongName(longName: string): string[] {\r\n\t\tlet splitLongName = [];\r\n\t\tif (longName.includes(' / ')) {\r\n\t\t\tsplitLongName = longName.split(' / ');\r\n\t\t} else if (longName.includes(' - ')) {\r\n\t\t\tsplitLongName = longName.split(' - ');\r\n\t\t} else {\r\n\t\t\tsplitLongName = [longName];\r\n\t\t}\r\n\t\treturn splitLongName.map((name) => name.trim()).reverse();\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 {LinesResolver} from '../lines';\r\nimport {Cluster} from './clusters.model';\r\nimport {ClustersService} from './clusters.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class ClustersResolver implements Resolve<Cluster[]> {\r\n\r\n\tconstructor(private lineService: ClustersService, private linesResolver: LinesResolver) {\r\n\t}\r\n\r\n\tasync resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<Cluster[]> {\r\n\t\tawait this.linesResolver.resolve(route, state);\r\n\t\treturn new Promise<Cluster[]>((resolve) => {\r\n\t\t\tthis.lineService.getClusters(route.params.id)\r\n\t\t\t.pipe(catchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getClusters in ClustersResolver: ', error);\r\n\t\t\t\treturn of([] as Cluster[]);\r\n\t\t\t}))\r\n\t\t\t.subscribe((clusters: Cluster[]) => resolve(clusters));\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MapData } from './maps.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MapsService {\r\n\r\n\tmaps: MapData[];\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient\r\n\t) { }\r\n\r\n\tgetMaps(): Observable<MapData[]> {\r\n\t\treturn this.http.get<MapData[]>(`@domain/@api/plansreseaux/json`);\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 {MapData} from './maps.model';\r\nimport {MapsService} from './maps.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class MapsResolver implements Resolve<any> {\r\n\r\n\tconstructor(private mapsService: MapsService) {\r\n\t}\r\n\r\n\tresolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\tif (this.mapsService.maps) {\r\n\t\t\treturn this.mapsService.maps;\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.mapsService.getMaps()\r\n\t\t\t.pipe(catchError((error) => {\r\n\t\t\t\t// console.error('Error fetching getMaps in MapsResolver: ', error);\r\n\t\t\t\treturn of([] as any[] | MapData[]);\r\n\t\t\t}))\r\n\t\t\t.subscribe((maps) => {\r\n\t\t\t\tthis.mapsService.maps = maps;\r\n\t\t\t\tresolve(maps);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n}\r\n","export enum THEMES {\r\n\tDARK = 'dark-theme',\r\n\tLIGHT = 'light-theme'\r\n}\r\n","import {Injectable, Renderer2, RendererFactory2} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\n\r\nimport {THEMES} from './user-settings.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class UserSettingsService {\r\n\r\n\tstatic readonly THEME_KEY = 'm-features:theme';\r\n\tinitialTheme: THEMES | false;\r\n\tpreferedColorScheme: THEMES;\r\n\tprivate renderer: Renderer2;\r\n\r\n\tconstructor(rendererFactory: RendererFactory2) {\r\n\t\tthis.renderer = rendererFactory.createRenderer(null, null);\r\n\t\tconst bodyClassList = document.body.classList;\r\n\r\n\t\t// This allows us to get the user's prefered color scheme to accordingly activate light or dark mode.\r\n\t\tconst darkModeOn = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n\t\tthis.preferedColorScheme = darkModeOn ? THEMES.DARK : THEMES.LIGHT;\r\n\r\n\t\t// Retrieve last set theme by the user himself.\r\n\t\tthis.initialTheme = bodyClassList.contains(THEMES.DARK) ? THEMES.DARK : bodyClassList.contains(THEMES.LIGHT) ? THEMES.LIGHT : false;\r\n\r\n\t\tthis.theme = localStorage.getItem(UserSettingsService.THEME_KEY) as THEMES || this.preferedColorScheme || this.initialTheme || THEMES.LIGHT;\r\n\t}\r\n\r\n\tprivate _theme$ = new Subject<THEMES>();\r\n\r\n\tget theme$(): Observable<THEMES> {\r\n\t\treturn this._theme$.asObservable();\r\n\t}\r\n\r\n\tprivate _theme: THEMES;\r\n\r\n\tget theme(): THEMES {\r\n\t\treturn this._theme;\r\n\t}\r\n\r\n\tset theme(value: THEMES) {\r\n\t\tthis.renderer.removeClass(document.body, this._theme || this.initialTheme || THEMES.LIGHT);\r\n\t\tthis._theme = value;\r\n\t\tthis.renderer.addClass(document.body, value);\r\n\t\tlocalStorage.setItem(UserSettingsService.THEME_KEY, value);\r\n\t\tthis._theme$.next(value);\r\n\t}\r\n\r\n\ttoggle(): void {\r\n\t\tthis.theme = this.theme === THEMES.DARK ? THEMES.LIGHT : THEMES.DARK;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class StatusBarService {\r\n\r\n\tconstructor() { }\r\n\r\n\tupdateStatusBar(color = '#39353c') {\r\n\t\ttry {\r\n\t\t\tconst metaThemeColor = document.querySelector('meta[name=\"theme-color\"]');\r\n\t\t\tmetaThemeColor.setAttribute('content', color);\r\n\t\t} catch {\r\n\t\t\t// Do nothing.\r\n\t\t}\r\n\t}\r\n\r\n\tgetCurrentMetaThemeColor(): string {\r\n\t\tlet themeColor: string;\r\n\t\ttry {\r\n\t\t\tthemeColor = document.querySelector('meta[name=\"theme-color\"]').getAttribute('content');\r\n\t\t} catch {\r\n\t\t\t// Do nothing.\r\n\t\t}\r\n\t\treturn themeColor;\r\n\t}\r\n}\r\n","import { OperatorFunction } from 'rxjs';\r\n\r\nexport abstract class Action {\r\n\tabstract name: string;\r\n}\r\n\r\nexport abstract class FlowStart extends Action { }\r\n\r\nexport abstract class FlowEnd extends Action { }\r\n\r\nexport interface Transition<T extends Action> {\r\n\t/**\r\n\t * Should be in the set of action names.\r\n\t */\r\n\tinputs?: string[];\r\n\r\n\tpipe: OperatorFunction<T, Action>;\r\n}\r\n","import { EMPTY, merge, Observable, of, PartialObserver, Subscribable, Unsubscribable } from 'rxjs';\r\nimport { expand, filter } from 'rxjs/operators';\r\nimport { Action, FlowEnd, FlowStart, Transition } from './flow.model';\r\n\r\nexport class Flow<E extends Action> implements Subscribable<Action> {\r\n\r\n\tprivate flow$: Observable<E>;\r\n\r\n\tconstructor(flowStart: FlowStart, private transitions: Transition<any>[]) {\r\n\t\tthis.flow$ = of(flowStart).pipe(\r\n\t\t\texpand(action => {\r\n\t\t\t\tconst ts = this.transitions.filter(t => t.inputs.includes(action.name));\r\n\t\t\t\tif (ts.length === 0) {\r\n\t\t\t\t\treturn EMPTY;\r\n\t\t\t\t}\r\n\t\t\t\tif (ts.length === 1) {\r\n\t\t\t\t\treturn of(action).pipe(ts[0].pipe);\r\n\t\t\t\t}\r\n\t\t\t\treturn merge(...ts.map(t => of(action).pipe(t.pipe)));\r\n\t\t\t}),\r\n\t\t\tfilter<E>(a => a instanceof FlowEnd)\r\n\t\t);\r\n\t}\r\n\r\n\tsubscribe(observer?: PartialObserver<E>): Unsubscribable;\r\n\tsubscribe(next: null, error: null, complete: () => void): Unsubscribable;\r\n\tsubscribe(next: null, error: (error: any) => void, complete?: () => void): Unsubscribable;\r\n\t// tslint:disable-next-line:unified-signatures\r\n\tsubscribe(next: (value: E) => void, error: null, complete: () => void): Unsubscribable;\r\n\tsubscribe(next?: (value: E) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;\r\n\tsubscribe(observerOrNext?: any, error?: any, complete?: any): Unsubscribable {\r\n\t\tlet observer: PartialObserver<E>;\r\n\t\tif (observerOrNext.next !== undefined || observerOrNext.complete !== undefined || observerOrNext.error !== undefined) {\r\n\t\t\tobserver = observerOrNext;\r\n\t\t} else {\r\n\t\t\tobserver = { next: observerOrNext, complete, error };\r\n\t\t}\r\n\t\treturn this.flow$.subscribe(observer);\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const FLOW_TRANSITIONS = new InjectionToken('MF_FLOW_TRANSITIONS');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Flow } from './flow';\r\nimport { Action, FlowStart, Transition } from './flow.model';\r\nimport { FLOW_TRANSITIONS } from './flow.token';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FlowBuilder {\r\n\ttransitions: Transition<any>[];\r\n\r\n\tconstructor(@Inject(FLOW_TRANSITIONS) transitionServices: any[]) {\r\n\t\tthis.transitions = transitionServices.reduce((acc, service) => {\r\n\t\t\tacc.push(...(service._flow_transitions || []));\r\n\t\t\treturn acc;\r\n\t\t}, []);\r\n\t}\r\n\r\n\tbuild<E extends Action>(action: FlowStart): Flow<E> {\r\n\t\treturn new Flow<E>(action, this.transitions);\r\n\t}\r\n\r\n}\r\n","\r\nexport function DefineTransition(...inputs: string[]) {\r\n\treturn (target: any, propertyKey: string): any => {\r\n\t\tif (target._flow_transitions === undefined) {\r\n\t\t\ttarget._flow_transitions = [];\r\n\t\t}\r\n\t\tlet transition: any;\r\n\t\tObject.defineProperty(target, propertyKey, {\r\n\t\t\tget: () => {\r\n\t\t\t\treturn transition;\r\n\t\t\t},\r\n\t\t\tset: (value: any) => {\r\n\t\t\t\ttransition = { ...value, inputs };\r\n\t\t\t\ttarget._flow_transitions.push(transition);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {DOMAIN} from '@metromobilite/m-features';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class DomainService {\r\n\r\n\tconstructor(@Inject(DOMAIN) private domain: string) {\r\n\t}\r\n\r\n\tgetDomain(): string {\r\n\t\treturn this.domain;\r\n\t}\r\n\r\n\tsetDomain(value: string) {\r\n\t\tthis.domain = value;\r\n\t}\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {API} from '@metromobilite/m-features';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class ApiService {\r\n\r\n\tconstructor(@Inject(API) private api: string) {\r\n\t}\r\n\r\n\tgetApi(): string {\r\n\t\treturn this.api;\r\n\t}\r\n\r\n\tsetApi(value: string) {\r\n\t\tthis.api = value;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CreateHail, Hail, LeTaxiModels, SetHail } from './letaxi.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LetaxiService {\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\t/**\r\n\t * Get taxi data around a location (customers)\r\n\t * @param lonlat latitude, longitude Exemple: [2.3522219000000177, 48.85661400000001]\r\n\t * @returns Position of taxis around customers (500m)\r\n\t */\r\n\tgetData(lonlat: number[]): Observable<LeTaxiModels> {\r\n\t\treturn this.http.get<LeTaxiModels>(\r\n\t\t\t`@domain/@api/dyn/letaxi/json?lonlat=${lonlat}`\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Get information about a hail selected by id\r\n\t * @param hailId Hail id\r\n\t * @returns Hail data\r\n\t */\r\n\tgetHail(hailId: string): Observable<Hail[]> {\r\n\t\treturn this.http.get<Hail[]>(`@domain/@api/letaxi/hails/${hailId}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Should be created hail request\r\n\t * @param data Data to create hail request\r\n\t * @example\r\n\t * \"customer_lon\": \"5.713001598265449\",\r\n\t * \"customer_lat\": \"45.18004155494677\",\r\n\t * \"customer_address\": \"\",\r\n\t * \"customer_phone_number\": \"0678901234\",\r\n\t * \"taxi_id\": \"DhHf7HS\",\r\n\t * \"operateur\": \"neotaxi\"\r\n\t */\r\n\tcreateHails(data: CreateHail): Observable<Hail[]> {\r\n\t\treturn this.http.post<Hail[]>(`@domain/@api/letaxi/hails/`, data);\r\n\t}\r\n\r\n\t/**\r\n\t * Should be set hail details for a customer\r\n\t * @param hailId Hail id\r\n\t * @param data Data to set hail detailspw\r\n\t * @example\r\n\t * status: enum -> m-common;\r\n\t * customer_lon: number;\r\n\t * customer_lat: number;\r\n\t * customer_phone_number: number;,\r\n\t * customer_address: string;\r\n\t * incident_customer_reason: string;\r\n\t */\r\n\tsetHail(hailId: string, data: SetHail): Observable<Hail[]> {\r\n\t\treturn this.http.put<Hail[]>(\r\n\t\t\t`@domain/@api/letaxi/hails/${hailId}`,\r\n\t\t\tdata\r\n\t\t);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { FeatureCollection } from 'geojson';\r\nimport { Observable } from 'rxjs';\r\nimport { TYPES } from './address.model';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class AddressService {\r\n\t// API documentation: https://adresse.data.gouv.fr/api-doc/adresse\r\n\tprivate api = 'https://api-adresse.data.gouv.fr';\r\n\r\n\tconstructor(private http: HttpClient) {}\r\n\r\n\t/**\r\n\t * Should be use to get address from coordinates (reverse geocoding)\r\n\t * @param lat latitude\r\n\t * @param lon longitude\r\n\t * @param type houseNumber, street, locality, municipality\r\n\t * @return FeatureCollection[]\r\n\t */\r\n\tpublic reverseGeocoding(\r\n\t\tlon: number,\r\n\t\tlat: number,\r\n\t\ttype?: TYPES\r\n\t): Observable<FeatureCollection[]> {\r\n\t\treturn this.http.get<FeatureCollection[]>(\r\n\t\t\t`${this.api}/reverse/?lon=${lon}&lat=${lat}${\r\n\t\t\t\ttype ? '&type=' + type : ''\r\n\t\t\t}`\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Should be use to get address from coordinates (reverse geocoding)\r\n\t * @param search string\r\n\t * @param type houseNumber, street, locality, municipality\r\n\t * @param postalCode postalCode, use for restrict search\r\n\t * @param lon longitude, use for give priority to a location\r\n\t * @param lat latitude, use for give priority to a location\r\n\t * @return FeatureCollection[]\r\n\t */\r\n\tpublic searchGeocoding(\r\n\t\tsearch: string,\r\n\t\ttype?: TYPES,\r\n\t\tpostalCode?: string,\r\n\t\tlon?: number,\r\n\t\tlat?: number\r\n\t): Observable<FeatureCollection[]> {\r\n\t\tlet request = `${this.api}/search/?q=${search}`;\r\n\r\n\t\tif (type) request += `&type=${type}`;\r\n\t\tif (postalCode) request += `&postcode=${postalCode}`;\r\n\t\tif (lon && lat) request += `&lon=${lon}&lat=${lat}`;\r\n\r\n\t\treturn this.http.get<FeatureCollection[]>(request);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MfTypeLabelPipe","i2.PlatformHelper","i1.ConfigService","i1.ObjectHelper","i2.StringHelper","i1.TypesHelper","i2.ConfigService","i1.LinesService","i1.GlobalService","i1.JsonToHtmlHelper","i1","i1.StringHelper","i1.GeolocationService","i1.AppVisibilityService","i1.ClustersService","i2.LinesResolver","i1.MapsService"],"mappings":"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EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,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"}