{"version":3,"file":"metromobilite-m-features-search.mjs","sources":["../../../projects/lib-m-features/search/src/search.model.ts","../../../projects/lib-m-features/search/src/search-input-template.directive.ts","../../../projects/lib-m-features/search/src/search-input/search-input.component.ts","../../../projects/lib-m-features/search/src/search-input/search-input.component.html","../../../projects/lib-m-features/search/src/search-item.directive.ts","../../../projects/lib-m-features/search/src/search.service.ts","../../../projects/lib-m-features/search/src/search-list/search-list.component.ts","../../../projects/lib-m-features/search/src/search-list/search-list.component.html","../../../projects/lib-m-features/search/src/lists/search-list-latest-list/search-list-latest-list.component.ts","../../../projects/lib-m-features/search/src/lists/search-list-latest-list/search-list-latest-list.component.html","../../../projects/lib-m-features/search/src/search-dialog/search-dialog.component.ts","../../../projects/lib-m-features/search/src/search-dialog/search-dialog.component.html","../../../projects/lib-m-features/search/src/search-favorite-item.directive.ts","../../../projects/lib-m-features/search/src/search-dialog.directive.ts","../../../projects/lib-m-features/search/src/search-input-label-template.directive.ts","../../../projects/lib-m-features/search/src/lists/search-list-favorite-list/search-list-favorite-list.component.ts","../../../projects/lib-m-features/search/src/lists/search-list-favorite-list/search-list-favorite-list.component.html","../../../projects/lib-m-features/search/src/search-result-dialog/search-result-dialog.component.ts","../../../projects/lib-m-features/search/src/search-result-dialog/search-result-dialog.component.html","../../../projects/lib-m-features/search/src/search.module.ts","../../../projects/lib-m-features/search/metromobilite-m-features-search.ts"],"sourcesContent":["export interface SearchResponse {\r\n\ttype: string;\r\n\tfeatures: SearchFeature[];\r\n}\r\n\r\nexport interface SearchFeature {\r\n\ttype: string;\r\n\tproperties: SearchProperties;\r\n\tgeometry: SearchGeometry;\r\n}\r\n\r\nexport interface SearchGeometry {\r\n\ttype: string;\r\n\tcoordinates: number[];\r\n}\r\n\r\nexport interface SearchProperties {\r\n\tLIBELLE: string;\r\n\true: string;\r\n\tCOMMUNE: string;\r\n\tid: string;\r\n\timportance: number;\r\n\tnumero: { [key: number]: { lat: number, lon: number } };\r\n\ttype: string;\r\n\tsubtype?: string;\r\n\tLaMetro: boolean;\r\n\tLeGresivaudan: boolean;\r\n\tPaysVoironnais: boolean;\r\n\tdist: string;\r\n\tnumeroRue: string;\r\n}\r\n\r\nexport class SearchEvent {\r\n\tconstructor(public type: 'search' | 'clear' | 'invalid', public data: SearchFeature[]) { }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mfSearchInputTemplate]'\r\n})\r\nexport class SearchInputTemplateDirective {\r\n\r\n\tconstructor() { }\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ContentChild, TemplateRef, ViewChild, HostBinding } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { debounceTime, tap, switchMap, map } from 'rxjs/operators';\r\nimport { SearchService } from '../search.service';\r\nimport { SearchEvent, SearchResponse } from '../search.model';\r\nimport { trigger, transition, style, animate } from '@angular/animations';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SearchInputTemplateDirective } from '../search-input-template.directive';\r\nimport { SubtypesHelper } from '@metromobilite/m-features/core';\r\n\r\n@Component({\r\n\tselector: 'mf-search-input',\r\n\ttemplateUrl: './search-input.component.html',\r\n\tstyleUrls: ['./search-input.component.scss'],\r\n\texportAs: 'searchInput',\r\n\tanimations: [\r\n\t\ttrigger('fade', [\r\n\t\t\ttransition(':enter', [\r\n\t\t\t\tstyle({ opacity: 0 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 1 }))\r\n\t\t\t]),\r\n\t\t\ttransition(':leave', [\r\n\t\t\t\tstyle({ opacity: 1 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 0 }))\r\n\t\t\t]),\r\n\t\t])\r\n\t]\r\n})\r\nexport class SearchInputComponent implements OnInit {\r\n\r\n\t@Input() source: (value: string) => Observable<any>;\r\n\t@Input() types: string;\r\n\t@Input() label: string;\r\n\r\n\t@Input() set required(value: boolean) {\r\n\t\tthis._required = value !== undefined;\r\n\t}\r\n\tget required(): boolean {\r\n\t\treturn this._required;\r\n\t}\r\n\r\n\t@ViewChild('default', { static: true, read: TemplateRef }) defaultInputTemplate: TemplateRef<any>;\r\n\t@ContentChild(SearchInputTemplateDirective, { static: true, read: TemplateRef }) searchInputTemplate: TemplateRef<any>;\r\n\r\n\t@HostBinding('class.search-input') searchInputClass = true;\r\n\r\n\t@Output() search = new EventEmitter<SearchEvent>();\r\n\r\n\tsearchControl = new FormControl();\r\n\tdisplayLoader: boolean;\r\n\r\n\tprivate _required: boolean;\r\n\r\n\tconstructor() { }\r\n\r\n\tngOnInit(): void {\r\n\t\tif (!this.searchInputTemplate) {\r\n\t\t\tthis.searchInputTemplate = this.defaultInputTemplate;\r\n\t\t}\r\n\t\tthis.searchControl.valueChanges\r\n\t\t\t.pipe(\r\n\t\t\t\tdebounceTime(500),\r\n\t\t\t\ttap(() => this.displayLoader = true),\r\n\t\t\t\tswitchMap((value: string) => {\r\n\t\t\t\t\tif (value.length >= 3) {\r\n\t\t\t\t\t\treturn this.source(value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn of({ features: [] });\r\n\t\t\t\t\t}\r\n\t\t\t\t}),\r\n\t\t\t).subscribe((data: any) => {\r\n\t\t\t\tconst type = this.searchControl.value.length >= 3 ? 'search' : 'invalid';\r\n\t\t\t\tthis.search.emit(new SearchEvent(type, data));\r\n\t\t\t\tthis.displayLoader = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tclear() {\r\n\t\tthis.searchControl.reset('', { emitEvent: false });\r\n\t\tthis.search.emit(new SearchEvent('clear', []));\r\n\t}\r\n\r\n}\r\n","<ng-template #default>\r\n\t<mat-form-field>\r\n\t\t<mat-label>\"{{ label }}\"</mat-label>\r\n\t\t<input class=\"search-bar-input\" type=\"text\"  #input matInput [formControl]=\"searchControl\" autocomplete=\"off\" cdkFocusInitial [required]=\"required\"/>\r\n\t\t<m-icons class=\"fixed\" matSuffix @fade *ngIf=\"input.value === ''\">search</m-icons>\r\n\t\t<div matSuffix @fade *ngIf=\"displayLoader\" class=\"fixed\">\r\n\t\t\t<mat-spinner mode=\"indeterminate\" diameter=\"24\"></mat-spinner>\r\n\t\t</div>\r\n\t\t<button matSuffix @fade class=\"fixed clear-button\" *ngIf=\"input.value!=''\" mat-icon-button aria-label=\"Vider\" (click)=\"clear()\">\r\n\t\t\t<m-icons>close</m-icons>\r\n\t\t</button>\r\n\t</mat-form-field>\r\n</ng-template>\r\n<ng-container *ngTemplateOutlet=\"searchInputTemplate; context:{$implicit: searchControl, types: types, label: label, loader: displayLoader, clear: clear.bind(this)}\">\r\n</ng-container>\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mfSearchItem], [searchItem], [search-item]'\r\n})\r\nexport class SearchItemDirective {\r\n\r\n\tconstructor(public elementRef: ElementRef) { }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { SearchResponse, SearchFeature } from './search.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { SubtypesHelper } from '@metromobilite/m-features/core';\r\n\r\nconst LOCAL_LATEST_KEY = 'recherches_recentes';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SearchService {\r\n\r\n\tprivate limit = 3;\r\n\tprivate _latestSearches: SearchFeature[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate subtypesHelper: SubtypesHelper\r\n\t) {\r\n\t\tthis.load();\r\n\t}\r\n\r\n\tsearch(query: string, types: string): Observable<SearchResponse> {\r\n\t\tlet params = new HttpParams({ fromObject: { query } });\r\n\t\tif (types) {\r\n\t\t\tparams = params.set('types', types);\r\n\t\t}\r\n\t\tparams = params.set('epci', 'All');\r\n\t\treturn this.http.get<SearchResponse>(`@domain/@api/find/json`, { params });\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t */\r\n\tfind(type: string, code: string) {\r\n\t\treturn this.http.get<any>(`@domain/@api/findType/json`, {\r\n\t\t\tparams: new HttpParams({\r\n\t\t\t\tfromObject: {\r\n\t\t\t\t\ttypes: type,\r\n\t\t\t\t\tcodes: code\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\tget latestSearches(): SearchFeature[] {\r\n\t\treturn this._latestSearches;\r\n\t}\r\n\r\n\tsave(searches: SearchFeature[]) {\r\n\t\tlocalStorage.setItem(LOCAL_LATEST_KEY, JSON.stringify(searches));\r\n\t}\r\n\r\n\taddToLatestSearches(obj: SearchFeature) {\r\n\t\tconst alreadySearched = !!this._latestSearches.find(ls => ls.properties.id === obj.properties.id);\r\n\t\tif (alreadySearched) {\r\n\t\t\tthis._latestSearches = this._latestSearches.filter(ls => ls.properties.id !== obj.properties.id);\r\n\t\t}\r\n\t\tthis._latestSearches.unshift(obj);\r\n\t\tthis._latestSearches.splice(this.limit);\r\n\t\tthis.save(this._latestSearches);\r\n\t}\r\n\r\n\tgetSearchSource(types: string): (value: string) => Observable<SearchFeature[]> {\r\n\t\treturn (value) => {\r\n\t\t\treturn this.search(value, types).pipe(\r\n\t\t\t\tmap((data: SearchResponse) => {\r\n\t\t\t\t\tif (data && Array.isArray(data.features)) {\r\n\t\t\t\t\t\tdata.features.sort((a: any, b: any) => {\r\n\t\t\t\t\t\t\tif (parseInt(a.properties.dist, 10) < parseInt(b.properties.dist, 10)) {\r\n\t\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t\t} // tri decroissant on inverse\r\n\t\t\t\t\t\t\tif (parseInt(a.properties.dist, 10) > parseInt(b.properties.dist, 10)) {\r\n\t\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// a doit être égal à b\r\n\t\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdata.features = data.features.slice(0, 30);\r\n\t\t\t\t\t\tdata.features.forEach(feature => {\r\n\t\t\t\t\t\t\tfeature.properties.subtype = this.subtypesHelper.get(feature);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\treturn data.features;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn [];\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\tprivate load() {\r\n\t\tthis._latestSearches = JSON.parse(localStorage.getItem(LOCAL_LATEST_KEY)) || [];\r\n\t}\r\n}\r\n","import {Component, ContentChild, Input, OnInit, TemplateRef} from '@angular/core';\r\nimport {SearchFilterPipe} from '@metromobilite/m-features/core';\r\nimport {SearchItemDirective} from '../search-item.directive';\r\nimport {SearchEvent, SearchFeature} from '../search.model';\r\nimport {SearchService} from '../search.service';\r\n\r\n@Component({\r\n\tselector: 'mf-search-list', templateUrl: './search-list.component.html', exportAs: 'searchList',\r\n})\r\nexport class SearchListComponent implements OnInit {\r\n\r\n\t@Input() disableRipple = false;\r\n\t@Input() pipeToken: any;\r\n\t@Input() pipeArgs: any[];\r\n\thadPipeToken = true;\r\n\r\n\tsearchItems = [];\r\n\tnoSearches = true;\r\n\r\n\t@ContentChild(SearchItemDirective, {read: TemplateRef}) searchItemTemplate: TemplateRef<any>;\r\n\tfilters: string[] = [];\r\n\tdisplayedItems: any[];\r\n\r\n\tconstructor(private searchService: SearchService) {\r\n\t\tif (!this.pipeToken) {\r\n\t\t\tthis.pipeToken = SearchFilterPipe;\r\n\t\t\tthis.pipeArgs = [this.filters];\r\n\t\t\tthis.hadPipeToken = false;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t}\r\n\r\n\tudpate(event: SearchEvent) {\r\n\t\tif (event.type === 'search') {\r\n\t\t\tthis.searchItems = event.data || [];\r\n\t\t\tthis.noSearches = false;\r\n\t\t} else {\r\n\t\t\tthis.searchItems = [];\r\n\t\t\tthis.noSearches = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonSelectSearchItem(item: SearchFeature, addToLatestSearches = false) {\r\n\t\tif (addToLatestSearches) {\r\n\t\t\tthis.searchService.addToLatestSearches(item);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateFilters(filters: string[]) {\r\n\t\tthis.filters = filters;\r\n\t\tif (!this.hadPipeToken) {\r\n\t\t\tthis.pipeArgs = [this.filters];\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","<m-list-wrapper *ngIf=\"searchItems.length\" [seeMoreEnable]=\"searchItems.length > 3\" #searchList=\"MListWrapper\">\r\n\t<mat-action-list class=\"flat squared\" [disableRipple]=\"disableRipple\">\r\n\t\t<!--If no pipeToken is given, we use the searchFilter:filters pipe-->\r\n\t\t<ng-container *ngFor=\"let option of searchItems | pipeTransferer:pipeToken:pipeArgs | slice:0:searchList.seeMore ? searchItems.length : 3 \">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"searchItemTemplate; context:{$implicit: option, addToLatestSearches: true}\"></ng-container>\r\n\t\t</ng-container>\r\n\t</mat-action-list>\r\n</m-list-wrapper>\r\n<p *ngIf=\"searchItems.length === 0 && (!noSearches)\">Pas de résultat</p>\r\n<ng-container *ngIf=\"noSearches\">\r\n\t<ng-content></ng-content>\r\n</ng-container>\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { SearchItemDirective } from '../../search-item.directive';\r\nimport { SearchFeature } from '../../search.model';\r\nimport { SearchService } from '../../search.service';\r\n\r\n@Component({\r\n\tselector: 'mf-search-list-latest-list',\r\n\ttemplateUrl: './search-list-latest-list.component.html',\r\n\tstyleUrls: ['./search-list-latest-list.component.scss']\r\n})\r\nexport class SearchListLatestListComponent implements OnInit {\r\n\r\n\t@ContentChild(SearchItemDirective, { read: TemplateRef }) searchItemTemplate: TemplateRef<any>;\r\n\r\n\t@Input() disableRipple = false;\r\n\r\n\tlatestSearches: SearchFeature[];\r\n\r\n\tconstructor(\r\n\t\tprivate searchService: SearchService,\r\n\t) { }\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.latestSearches = this.searchService.latestSearches;\r\n\t}\r\n\r\n}\r\n","<mat-nav-list *ngIf=\"latestSearches.length > 0\" class=\"flat squared\" [disableRipple]=\"disableRipple\">\r\n\t<span matSubheader>\r\n\t\tRecherches récentes\r\n\t</span>\r\n\t<ng-container *ngFor=\"let option of latestSearches\">\r\n\t\t<ng-container *ngTemplateOutlet=\"searchItemTemplate; context:{$implicit: option, addToLatestSearches: false}\"></ng-container>\r\n\t</ng-container>\r\n</mat-nav-list>\r\n","import { Component, Inject } from '@angular/core';\r\nimport { trigger, transition, style, animate, useAnimation } from '@angular/animations';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { favoriteInAnimation, favoriteOutAnimation } from '@metromobilite/m-features/favorites';\r\n\r\n@Component({\r\n\ttemplateUrl: './search-dialog.component.html',\r\n\tstyleUrls: ['./search-dialog.component.scss'],\r\n\tanimations: [\r\n\t\ttrigger('fade', [\r\n\t\t\ttransition(':enter', [\r\n\t\t\t\tstyle({ opacity: 0 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 1 }))\r\n\t\t\t]),\r\n\t\t\ttransition(':leave', [\r\n\t\t\t\tstyle({ opacity: 1 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 0 }))\r\n\t\t\t]),\r\n\t\t]),\r\n\t\ttrigger('favoriteAnimation', [\r\n\t\t\ttransition('false => true', [\r\n\t\t\t\tuseAnimation(favoriteInAnimation, { params: { time: '220ms' } })\r\n\t\t\t]),\r\n\t\t\ttransition('true => false', [\r\n\t\t\t\tuseAnimation(favoriteOutAnimation, { params: { time: '220ms' } })\r\n\t\t\t]),\r\n\t\t])\r\n\t]\r\n})\r\nexport class SearchDialogComponent {\r\n\r\n\tconstructor(\r\n\t\tprivate dialogRef: MatDialogRef<any>,\r\n\t\t@Inject(MAT_DIALOG_DATA) public data: any\r\n\t) { }\r\n\r\n\tclose(data: any) {\r\n\t\tthis.dialogRef.close(data);\r\n\t}\r\n}\r\n","<div class=\"m-toolbar main-toolbar search-bar transparent\">\r\n    <button mat-icon-button aria-label=\"Retour\" mat-dialog-close>\r\n        <m-icons>arrow_back</m-icons>\r\n    </button>\r\n    <mf-search-input  [source]=\"data.source\" (search)=\"searchList.udpate($event)\" label=\"Chercher un lieu, un arrêt...\">\r\n        <div *mfSearchInputTemplate=\"let formControl; let displayLoader = loader; let clearFn = clear\">\r\n            <input #input [formControl]=\"formControl\" autocomplete=\"off\" required\r\n                class=\"search-bar-input\" placeholder=\"Chercher un lieu, un arrêt...\">\r\n            <div @fade *ngIf=\"displayLoader\" class=\"fixed right\">\r\n                <mat-spinner mode=\"indeterminate\" diameter=\"32\"></mat-spinner>\r\n            </div>\r\n            <div class=\"fixed right\">\r\n                <button @fade class=\"clear-button\" *ngIf=\"input.value!=''\" mat-icon-button\r\n\t\t\t\t\t\taria-label=\"Vider\" (click)=\"clearFn()\">\r\n                    <m-icons>close</m-icons>\r\n                </button>\r\n            </div>\r\n        </div>\r\n    </mf-search-input>\r\n</div>\r\n<mat-dialog-content class=\"content\">\r\n    <mf-search-list #searchList=\"searchList\" [disableRipple]=\"true\">\r\n        <mf-search-list-latest-list>\r\n            <mat-list-item *searchItem=\"let item; let add = addToLatestSearches;\"\r\n                class=\"no-padding double-action m-2-line dark-overlay-8 light-overlay no-margin\">\r\n                <button mat-ripple mat-line [mfFavorite]=\"item\" #fav=\"favorite\"\r\n                (click)=\"searchList.onSelectSearchItem(item, add);close(item)\">\r\n\t\t\t\t\t<m-icons [type]=\"item.properties.subtype || item.properties.type\" class=\"m-icon icon-left-large big\"></m-icons>\r\n\t\t\t\t\t<span class=\"ellipsis\">\r\n\t\t\t\t\t\t<span class=\"ellipsis\">{{ item | libelle }}</span>\r\n\t\t\t\t\t\t<span class=\"ellipsis sub-line\">\r\n\t\t\t\t\t\t\t<span class=\"texteCommune\">{{ item | commune }}</span>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</button>\r\n                <button *ngIf=\"item.properties.type | favoriteAllowed\" mat-icon-button [mfFavorite]=\"item\"\r\n                    #fav=\"favorite\" (click)=\"searchList.onSelectSearchItem(item, add);close(item)\">\r\n                    <!-- [@favoriteAnimation]=\"fav.changes$ | async\"> -->\r\n                    <m-icons>{{fav.isFavorite ? 'favorite': 'favorite_border'}}</m-icons>\r\n                </button>\r\n            </mat-list-item>\r\n        </mf-search-list-latest-list>\r\n        <mat-list-item *searchItem=\"let item; let add = addToLatestSearches;\"\r\n            class=\"no-padding double-action dark-overlay-8 light-overlay-inner m-2-line\">\r\n            <a matListItemLine [mfFavorite]=\"item\" #fav=\"favorite\" mat-ripple (click)=\"searchList.onSelectSearchItem(item, add);close(item)\">\r\n                <m-icons matListItemIcon [type]=\"item.properties.subtype || item.properties.type\"\r\n                    class=\"m-icon icon-left-large big\">\r\n                </m-icons>\r\n                <span class=\"ellipsis\">{{ item | libelle }}</span>\r\n                <span class=\"ellipsis sub-line\">{{ item | commune }}</span>\r\n            </a>\r\n\r\n            <button matListItemMeta *ngIf=\"item.properties.type | favoriteAllowed\" mat-icon-button [mfFavorite]=\"item\" #fav=\"favorite\">\r\n                <!-- [@favoriteAnimation]=\"fav.changes$ | async\"> -->\r\n                <m-icons color=\"primary\">\r\n                    {{fav.isFavorite ? 'favorite': 'favorite_border'}}\r\n                </m-icons>\r\n            </button>\r\n        </mat-list-item>\r\n    </mf-search-list>\r\n\r\n</mat-dialog-content>\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mfSearchFavoriteItem], [searchFavoriteItem], [search-favorite-item]'\r\n})\r\nexport class SearchFavoriteItemDirective {\r\n\r\n\tconstructor(public elementRef: ElementRef) { }\r\n\r\n}\r\n","import { Directive, Input, HostListener, Output, EventEmitter } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { SearchDialogComponent } from './search-dialog/search-dialog.component';\r\nimport { Observable } from 'rxjs';\r\nimport { SearchService } from './search.service';\r\n\r\n@Directive({\r\n\tselector: '[mfSearchDialog]'\r\n})\r\nexport class SearchDialogDirective {\r\n\r\n\t/**\r\n\t * A comma separated list of POI type.\r\n\t */\r\n\t@Input('mfSearchDialog') types: string;\r\n\t@Input() private component: ComponentType<unknown> = SearchDialogComponent;\r\n\t@Input() private source: (value: string) => Observable<any>;\r\n\r\n\t@Output() closed = new EventEmitter<any>();\r\n\r\n\tconstructor(\r\n\t\tprivate dialog: MatDialog,\r\n\t\tprivate searchService: SearchService\r\n\t) { }\r\n\r\n\t@HostListener('click') onClick() {\r\n\t\tthis.dialog.open(this.component, {\r\n\t\t\tpanelClass: ['m-theme', 'search-point'],\r\n\t\t\tposition: {\r\n\t\t\t\tleft: '0',\r\n\t\t\t},\r\n\t\t\tdata: { types: this.types, source: this.source || this.searchService.getSearchSource(this.types) }\r\n\t\t}).afterClosed().subscribe(result => this.closed.emit(result));\r\n\t}\r\n\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mfSearchInputLabelTemplate]'\r\n})\r\nexport class SearchInputLabelTemplateDirective {\r\n\r\n\tconstructor() { }\r\n\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { SubtypesHelper } from '@metromobilite/m-features/core';\r\nimport { Favorite, FavoritesService } from '@metromobilite/m-features/favorites';\r\nimport { SearchFavoriteItemDirective } from '../../search-favorite-item.directive';\r\n\r\n@Component({\r\n\tselector: 'mf-search-list-favorite-list',\r\n\ttemplateUrl: './search-list-favorite-list.component.html',\r\n\tstyleUrls: ['./search-list-favorite-list.component.scss']\r\n})\r\nexport class SearchListFavoriteListComponent implements OnInit {\r\n\r\n\t@ContentChild(SearchFavoriteItemDirective, { read: TemplateRef }) favoriteItemTemplate: TemplateRef<any>;\r\n\r\n\t@Input() disableRipple = false;\r\n\t@Input() types: string;\r\n\r\n\tfavorites: Favorite[];\r\n\r\n\tconstructor(\r\n\t\tprivate favoritesService: FavoritesService,\r\n\t\tprivate subtypesHelper: SubtypesHelper\r\n\t) { }\r\n\r\n\tngOnInit(): void {\r\n\t\tconst types = this.types && this.types.split(',') || [];\r\n\r\n\t\t// TODO: Filter non-existant items\r\n\t\tthis.favorites = this.favoritesService.getFavorites()\r\n\t\t\t.filter(fav => types.length > 0 ? types.includes(fav.type) : fav.data.properties && fav.data.properties.id)\r\n\t\t\t.map(fav => fav.data)\r\n\t\t\t.reduce((acc, item) => {\r\n\t\t\t\t// Remove duplicates (clusters).\r\n\t\t\t\tif (!acc.find((fav: any) => fav.properties.id === item.properties.id)) {\r\n\t\t\t\t\titem.properties.subtype = this.subtypesHelper.get(item);\r\n\t\t\t\t\tacc.push(item);\r\n\t\t\t\t}\r\n\t\t\t\treturn acc;\r\n\t\t\t}, []) as Favorite[];\r\n\r\n\t\t// LIFO\r\n\t\tthis.favorites.reverse();\r\n\t}\r\n\r\n}\r\n","<m-list-wrapper *ngIf=\"favorites && favorites.length > 0\" [seeMoreEnable]=\"favorites.length > 3\" #favoritesList=\"MListWrapper\">\r\n\t<mat-action-list class=\"flat squared\" [disableRipple]=\"disableRipple\">\r\n\t\t<span matSubheader>\r\n\t\t\tFavoris\r\n\t\t</span>\r\n\t\t<ng-container *ngFor=\"let option of favorites | slice:0:favoritesList.seeMore ? favorites.length : 3\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"favoriteItemTemplate; context:{$implicit: option}\"></ng-container>\r\n\t\t</ng-container>\r\n\t</mat-action-list>\r\n</m-list-wrapper>\r\n","import { trigger, transition, style, animate, useAnimation } from '@angular/animations';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { favoriteInAnimation, favoriteOutAnimation } from '@metromobilite/m-features/favorites';\r\n\r\n@Component({\r\n\ttemplateUrl: './search-result-dialog.component.html',\r\n\tanimations: [\r\n\t\ttrigger('fade', [\r\n\t\t\ttransition(':enter', [\r\n\t\t\t\tstyle({ opacity: 0 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 1 }))\r\n\t\t\t]),\r\n\t\t\ttransition(':leave', [\r\n\t\t\t\tstyle({ opacity: 1 }),\r\n\t\t\t\tanimate('250ms', style({ opacity: 0 }))\r\n\t\t\t]),\r\n\t\t]),\r\n\t\ttrigger('favoriteAnimation', [\r\n\t\t\ttransition('false => true', [\r\n\t\t\t\tuseAnimation(favoriteInAnimation, { params: { time: '220ms' } })\r\n\t\t\t]),\r\n\t\t\ttransition('true => false', [\r\n\t\t\t\tuseAnimation(favoriteOutAnimation, { params: { time: '220ms' } })\r\n\t\t\t]),\r\n\t\t])\r\n\t]\r\n})\r\nexport class SearchResultDialogComponent {\r\n\r\n\tconstructor(\r\n\t\tprivate dialogRef: MatDialogRef<any>,\r\n\t\t@Inject(MAT_DIALOG_DATA) public data: any\r\n\t) { }\r\n\r\n\tclose(data: any) {\r\n\t\tthis.dialogRef.close(data);\r\n\t}\r\n\r\n}\r\n","<div class=\"m-toolbar main-toolbar search-bar transparent\">\r\n\t<button mat-icon-button aria-label=\"Retour\" mat-dialog-close>\r\n\t\t<m-icons>arrow_back</m-icons>\r\n\t</button>\r\n\t<mf-search-input [source]=\"data.source\" (search)=\"searchList.udpate($event)\" label=\"Rechercher un arrêt\">\r\n\t\t<div *mfSearchInputTemplate=\"let formControl; let displayLoader = loader; let clearFn = clear\">\r\n\t\t\t<input #input [formControl]=\"formControl\" autocomplete=\"off\" cdkFocusInitial required\r\n\t\t\t\tclass=\"search-bar-input\" placeholder=\"Rechercher un arrêt\">\r\n\t\t\t<div @fade *ngIf=\"displayLoader\" class=\"fixed right\">\r\n\t\t\t\t<mat-spinner mode=\"indeterminate\" diameter=\"32\"></mat-spinner>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"fixed right\">\r\n\t\t\t\t<button @fade class=\"clear-button\" *ngIf=\"input.value!=''\" mat-icon-button\r\n\t\t\t\t\t\taria-label=\"Vider\" (click)=\"clearFn()\">\r\n\t\t\t\t\t<m-icons>close</m-icons>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</mf-search-input>\r\n</div>\r\n<div class=\"content\">\r\n\t<mf-search-list #searchList=\"searchList\" [disableRipple]=\"true\">\r\n\t\t<mf-search-list-favorite-list [types]=\"data.types\">\r\n\t\t\t<mat-list-item *searchFavoriteItem=\"let item;\" class=\"no-padding double-action dark-overlay-8 light-overlay-inner m-2-line\">\r\n\t\t\t\t<button mat-ripple mat-line (click)=\"searchList.onSelectSearchItem(item, false);close(item)\">\r\n\t\t\t\t\t<m-icons [type]=\"item.properties.subtype || item.properties.type\" class=\"m-icon icon-left-large big\"></m-icons>\r\n\t\t\t\t\t<span class=\"ellipsis\">\r\n\t\t\t\t\t\t<span class=\"ellipsis\">{{ item | libelle }}</span>\r\n\t\t\t\t\t\t<span class=\"ellipsis sub-line\">\r\n\t\t\t\t\t\t\t<span class=\"texteCommune\">{{ item | commune }}</span>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</button>\r\n\t\t\t</mat-list-item>\r\n\t\t</mf-search-list-favorite-list>\r\n\t\t<mat-list-item *searchItem=\"let item; let add = addToLatestSearches;\"\r\n\t\t\tclass=\"no-padding double-action m-2-line dark-overlay-8 light-overlay\">\r\n\t\t\t<button mat-line mat-ripple (click)=\"searchList.onSelectSearchItem(item, false);close(item)\">\r\n\t\t\t\t<m-icons matListItemIcon [type]=\"item.properties.subtype || item.properties.type\"></m-icons>\r\n\t\t\t\t<span class=\"ellipsis\">\r\n\t\t\t\t\t<span class=\"ellipsis\">{{ item | libelle }}</span>\r\n\t\t\t\t\t<span class=\"ellipsis sub-line\">{{ item | commune }}</span>\r\n\t\t\t\t</span>\r\n\t\t\t</button>\r\n\t\t\t<button mat-icon-button [mfFavorite]=\"item\" #fav=\"favorite\" [@favoriteAnimation]=\"fav.changes$ | async\"\r\n\t\t\t\t(click)=\"searchList.onSelectSearchItem(item, add);close(item)\">\r\n\t\t\t\t<m-icons *ngIf=\"fav.isFavorite\" color=\"primary\">favorite</m-icons>\r\n\t\t\t\t<m-icons *ngIf=\"!fav.isFavorite\">favorite_border</m-icons>\r\n\t\t\t</button>\r\n\t\t</mat-list-item>\r\n\r\n\t\t<mf-search-list-latest-list>\r\n\t\t\t<mat-list-item *searchItem=\"let item; let add = addToLatestSearches;\"\r\n\t\t\t\tclass=\"no-padding double-action m-2-line dark-overlay-8 light-overlay\">\r\n\t\t\t\t<button mat-line mat-ripple (click)=\"searchList.onSelectSearchItem(item, false);close(item)\">\r\n\t\t\t\t\t<m-icons id='icon-perturb' matListItemIcon [type]=\"item.properties.subtype || item.properties.type\"></m-icons>\r\n\t\t\t\t\t<span class=\"ellipsis\">\r\n\t\t\t\t\t\t<span class=\"ellipsis\">{{ item | libelle }}</span>\r\n\t\t\t\t\t\t<span class=\"ellipsis sub-line\">{{ item | commune }}</span>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</button>\r\n\t\t\t\t<button mat-icon-button [mfFavorite]=\"item\" #fav=\"favorite\" [@favoriteAnimation]=\"fav.changes$ | async\"\r\n\t\t\t\t\t(click)=\"searchList.onSelectSearchItem(item, add);close(item)\">\r\n\t\t\t\t\t<m-icons *ngIf=\"fav.isFavorite\" color=\"primary\">favorite</m-icons>\r\n\t\t\t\t\t<m-icons *ngIf=\"!fav.isFavorite\">favorite_border</m-icons>\r\n\t\t\t\t</button>\r\n\t\t\t</mat-list-item>\r\n\t\t</mf-search-list-latest-list>\r\n\r\n\t</mf-search-list>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatLineModule, MatRippleModule } from '@angular/material/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MIcons, MListWrapper } from '@metromobilite/m-ui';\r\n\r\nimport { SearchDialogComponent } from './search-dialog/search-dialog.component';\r\nimport { SearchInputComponent } from './search-input/search-input.component';\r\nimport { SearchListComponent } from './search-list/search-list.component';\r\nimport { SearchItemDirective } from './search-item.directive';\r\nimport { SearchFavoriteItemDirective } from './search-favorite-item.directive';\r\nimport { SearchDialogDirective } from './search-dialog.directive';\r\nimport { SearchInputTemplateDirective } from './search-input-template.directive';\r\nimport { SearchInputLabelTemplateDirective } from './search-input-label-template.directive';\r\nimport { CoreModule } from '@metromobilite/m-features/core';\r\nimport { FavoritesModule } from '@metromobilite/m-features/favorites';\r\nimport { ReferenceModule } from '@metromobilite/m-features/reference';\r\nimport { SearchResultDialogComponent } from './search-result-dialog/search-result-dialog.component';\r\nimport { SearchListFavoriteListComponent } from './lists/search-list-favorite-list/search-list-favorite-list.component';\r\nimport { SearchListLatestListComponent } from './lists/search-list-latest-list/search-list-latest-list.component';\r\n\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tSearchDialogComponent,\r\n\t\tSearchInputComponent,\r\n\t\tSearchListComponent,\r\n\t\tSearchItemDirective,\r\n\t\tSearchDialogDirective,\r\n\t\tSearchInputTemplateDirective,\r\n\t\tSearchInputLabelTemplateDirective,\r\n\t\tSearchFavoriteItemDirective,\r\n\t\tSearchResultDialogComponent,\r\n\t\tSearchListFavoriteListComponent,\r\n\t\tSearchListLatestListComponent\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tRouterModule,\r\n\t\tReactiveFormsModule,\r\n\t\tA11yModule,\r\n\t\tMatIconModule,\r\n\t\tMatProgressSpinnerModule,\r\n\t\tMatListModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatButtonModule,\r\n\t\tMatDialogModule,\r\n\t\tCoreModule,\r\n\t\tFavoritesModule,\r\n\t\tReferenceModule,\r\n\t\tMIcons,\r\n\t\tMatRippleModule,\r\n\t\tMatLineModule,\r\n\t\tMListWrapper\r\n\t],\r\n\texports: [\r\n\t\tSearchDialogComponent,\r\n\t\tSearchInputComponent,\r\n\t\tSearchListComponent,\r\n\t\tSearchItemDirective,\r\n\t\tSearchDialogDirective,\r\n\t\tSearchInputTemplateDirective,\r\n\t\tSearchInputLabelTemplateDirective,\r\n\t\tSearchFavoriteItemDirective,\r\n\t\tSearchResultDialogComponent,\r\n\t\tSearchListFavoriteListComponent,\r\n\t\tSearchListLatestListComponent,\r\n\t],\r\n})\r\nexport class SearchModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i7","i1.SearchService","i5","i10.SearchInputComponent","i11.SearchListComponent","i12.SearchItemDirective","i13.SearchInputTemplateDirective","i14.SearchListLatestListComponent","i15","i2.SearchService","i14.SearchFavoriteItemDirective","i15.SearchListFavoriteListComponent","i16.SearchListLatestListComponent","i17"],"mappings":"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"}