{"version":3,"sources":["app.ts"],"names":[],"mappings":"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","file":"app.js","sourcesContent":["///\r\n///\r\n///\r\n\r\ndeclare var map: any;\r\ndeclare var appOptions: any;\r\ndeclare var mobile: boolean;\r\ndeclare function showList(param1: boolean);\r\n\r\n/*GLOBAL VARS*/\r\nvar map, data, boundData, autocomplete, language;\r\nvar Global: any = {};\r\nGlobal.infobublle = null;\r\nGlobal.storesDict = {}; // dict agency_url <-> store\r\nGlobal.currentPositionMarker = null; // Marker sur la pos actuelle\r\nGlobal.storesMarkers = []; // Tous les markers des agences\r\nGlobal.storesWithinBounds = []; // Marker dans la bounding box\r\nGlobal.networkFilter = []; // Filtres sélectionnés pour 'Réseau'\r\nGlobal.servicesExpertiseFilter = []; // Filtres sélectionnés pour 'Services' et 'Expertises'\r\nGlobal.geoloc = false;\r\n\r\n/*Initialisation de la carte*/\r\nfunction initMap() {\r\n const center = new google.maps.LatLng(46.52863469527167, 2.43896484375);\r\n const mapOptions = { zoom: 6, center: center, icon: \"/img/Agency/map-marker.png\" };\r\n const mapDom = document.getElementById(\"map-canvas\");\r\n map = new google.maps.Map(mapDom, mapOptions);\r\n\r\n var searchStoresWithinBoundsCallback = debounce(searchStoresWithinBounds, 500);\r\n\r\n map.addListener(\"dragend\", searchStoresWithinBoundsCallback);\r\n map.addListener(\"zoom_changed\", searchStoresWithinBoundsCallback);\r\n google.maps.event.addDomListenerOnce(map, \"tilesloaded\", () => {\r\n addStores();\r\n });\r\n /* On ne peut pas utiliser idle car il se déclenche\r\n si on clic sur un résultat qui centre la carte sur le marker\r\n correspondant au résultat. Si idle se déclenche, le bandeau est rafraichi,\r\n donc on perd l'agence sur laquelle on avait clické */\r\n}\r\n\r\n/*Ajout des markers pour les agences et infobulles*/\r\nfunction addStores() {\r\n var pos, marker, store;\r\n\r\n $(\"#loading-spinner\").show();\r\n\r\n // Chargement du fichier json\r\n $.getJSON(appOptions.datasource, allStores => {\r\n window[\"gm\"] = allStores;\r\n for (let i = 0; i < allStores.features.length; i++) {\r\n let coords = allStores.features[i].geometry.coordinates;\r\n pos = new google.maps.LatLng(coords[1], coords[0]);\r\n store = new Store(allStores.features[i]);\r\n Global.storesDict[store.agency_url] = store; // Création du dictionnaire agency_url <-> store\r\n\r\n marker = new google.maps.Marker({ // Création du marker\r\n icon: \"/img/Agency/map-marker.png\",\r\n position: pos,\r\n map: map\r\n });\r\n // Ajout du marker dans l'attribut de l'objet store\r\n store.marker = marker;\r\n // Ajout du site en propriété du marker\r\n marker.set(\"site\", store);\r\n // Gestion de l'événement click\r\n marker.addListener(\"click\", manageInfobubbleEvent);\r\n Global.storesMarkers.push(marker);\r\n }\r\n window[\"gm\"] = allStores;\r\n generateServicesTable();\r\n generateExpertisesTable();\r\n });\r\n}\r\n\r\n/**\r\n * @description Sauvegarder les stores visibles sur la carte lorsque l'on zoome et afficher le résultat dans le bandeau\r\n */\r\nfunction searchStoresWithinBounds() {\r\n var defer = $.Deferred();\r\n Global.storesWithinBounds = [];\r\n var bounds = map.getBounds(),\r\n markers = [],\r\n storesInBound: any[] = [];\r\n let i = 0, nbStoresInBound = 0;\r\n\r\n for (let marker in Global.storesMarkers) {\r\n if (Global.storesMarkers[marker].getVisible() && bounds && bounds.contains(Global.storesMarkers[marker].position)) {\r\n // Calculer le nombre de points affichés\r\n nbStoresInBound++;\r\n storesInBound.push(Global.storesMarkers[marker]);\r\n }\r\n }\r\n\r\n if (storesInBound.length !== 0) {\r\n // Pour tous les markers de la bounding box\r\n for (let marker in storesInBound) {\r\n +function (marker, next) {\r\n storesInBound[marker].site.calculDistance(function (response, status) {\r\n i++;\r\n // Calculer la distance par rapport à la localisation actuelle\r\n var f = callback_calculDistance.bind(storesInBound[marker].site);\r\n f(response, status);\r\n // Sauvegarde des sites affichés sur la carte\r\n Global.storesWithinBounds.push(storesInBound[marker].site);\r\n next(i);\r\n });\r\n }(marker, function (index) {\r\n if (index === nbStoresInBound) {\r\n // Relancer les filtres\r\n manageNetworkFilter();\r\n manageServicesExpertiseFilter();\r\n defer.resolve();\r\n }\r\n });\r\n }\r\n } else {\r\n // Si la carte est déplacée à un endroit où il n'y a pas de markers\r\n if (map.getZoom() > 5) {\r\n if (map.getZoom() == 5) { // Au zoom minimum, on recentre la carte sur la France\r\n map.setCenter(new google.maps.LatLng(46.52863469527167, 2.43896484375));\r\n }\r\n\r\n // Zoom out\r\n map.setZoom(map.getZoom() - 1);\r\n\r\n // Restore search\r\n searchStoresWithinBounds();\r\n } else {\r\n $(\"#result-box\").html(\"

Aucun résultat correspondant à vos critères

\"); // Vider les anciens résultats\r\n // Comme storesWithinBounds est vide, il faut à nouveau le remplir avec tous les markers\r\n for (var q = 0; q < (Global.storesMarkers ? Global.storesMarkers.length : 0); q++) {\r\n Global.storesWithinBounds.push(Global.storesMarkers[q].site);\r\n }\r\n }\r\n defer.resolve();\r\n }\r\n //defer.resolve();\r\n return defer.promise();\r\n}\r\n\r\n/**\r\n * @description Boucler sur tous les stores pour récupérer la liste de tous les services\r\n */\r\nfunction collectServices() {\r\n var services = {};\r\n for (var q = 0; q < Global.storesMarkers.length; q++) {\r\n var site = Global.storesMarkers[q] && Global.storesMarkers[q].site;\r\n for (var service in site.services) {\r\n if (!(service in services)) {\r\n services[service] = site.services[service];\r\n }\r\n }\r\n }\r\n return services;\r\n}\r\n\r\n/**\r\n * @description Boucler sur tous les stores pour récupérer la liste de toutes les expertises\r\n */\r\nfunction collectExpertises() {\r\n var expertises = {};\r\n for (var q = 0; q < Global.storesMarkers.length; q++) {\r\n for (var expertise in Global.storesMarkers[q].site.expertise) {\r\n if (!(expertise in expertises)) {\r\n expertises[expertise] = Global.storesMarkers[q].site.expertise[expertise];\r\n }\r\n }\r\n }\r\n return expertises;\r\n}\r\n\r\n/**\r\n * @description Generate filters on services for branch\r\n */\r\nfunction generateServicesTable() {\r\n var allServices = collectServices();\r\n generateCheckboxTable(allServices, \"services-table\");\r\n}\r\n\r\n/**\r\n * @description Générer le tableau des filtres sur les expertises en Agence\r\n */\r\nfunction generateExpertisesTable() {\r\n let allExpertises = collectExpertises();\r\n generateCheckboxTable(allExpertises, \"expertise-table\");\r\n}\r\n\r\nfunction generateCheckboxTable(data: object, id: string) {\r\n var table = \"\";\r\n\r\n var sdata: any[] = [];\r\n\r\n for (let s in data) {\r\n if (!data.hasOwnProperty(s) && s) {\r\n continue;\r\n }\r\n sdata.push(s);\r\n }\r\n\r\n sdata.sort();\r\n\r\n for (let i = 0; i < sdata.length; i++) {\r\n let s = sdata[i];\r\n const slug = slugify(s);\r\n\r\n s = s.charAt(0).toUpperCase() + s.substr(1);\r\n\r\n let row = `
\r\n \r\n \r\n
`;\r\n\r\n table += row;\r\n }\r\n\r\n // Ajouter les services\r\n $(\"#\" + id).html(table);\r\n}\r\n\r\n/**\r\n * @description Retourner les agences visibles ou non contenues dans la boundbox\r\n */\r\nfunction getStoresInBounds() {\r\n var storesInBounds: any[] = [], bounds = map.getBounds();\r\n for (let marker in Global.storesMarkers) {\r\n if (Global.storesMarkers[marker] && bounds && bounds.contains(Global.storesMarkers[marker].position)) {\r\n storesInBounds.push(Global.storesMarkers[marker].site);\r\n }\r\n }\r\n return storesInBounds;\r\n}\r\n\r\n/**\r\n * @description Afficher les résultats des agences les plus proches dans le bandeau\r\n * @returns {void} \r\n */\r\nfunction printResults() {\r\n var visibleStoresDic = {}; // Stocker uniquement les stores visibles (filtrés)\r\n\r\n for (var q = 0; q < Global.storesWithinBounds.length; q++) {\r\n if (Global.storesWithinBounds[q].marker.getVisible()) {\r\n visibleStoresDic[Global.storesWithinBounds[q].agency_url] = Global.storesWithinBounds[q];\r\n }\r\n }\r\n\r\n var visibleStores: any = $.map(visibleStoresDic, val => val);\r\n\r\n // Classer par ordre croissant de distance\r\n var limit = 25, idx = 0;\r\n visibleStores.sort((a, b) => parseFloat(a.distanceToLocation) - parseFloat(b.distanceToLocation));\r\n\r\n // Vider les anciens résultats\r\n $(\"#result-box\").html(\"\");\r\n\r\n // Pousser les résultats dans le bandeau\r\n for (let marker in visibleStores) {\r\n if (idx < limit) {\r\n $(\"#result-box\").append(visibleStores[marker].getAgencyResult()); // Ajouter les résultats dans le bandeau\r\n visibleStores[marker].marker.addListener(\"mouseover\", highlightResult); // Surligner l'agence dans le bandeau\r\n visibleStores[marker].marker.addListener(\"mouseout\", restoreResult);\r\n idx++;\r\n }\r\n }\r\n\r\n if (idx === 0 && map.getZoom() >= 5) {\r\n // Click sur un item du filtre, sans résultats -> on simule un 'dragend' sur la carte pour lancer le zoom arrière\r\n google.maps.event.trigger(map, \"dragend\");\r\n }\r\n if (!mobile) {\r\n // Si user appuie sur entrée, on déclenche manuellement l'affichage de la liste\r\n showList(true);\r\n }\r\n\r\n //Refresh translation\r\n refreshBinding();\r\n}\r\n\r\n/**\r\n * @description Mettre le résultat en surbrillance dans le bandeau\r\n */\r\nfunction highlightResult() {\r\n var element = getHTMLResult(this.site);\r\n if (element) {\r\n element.style.background = \"#D8E0E3\";\r\n }\r\n}\r\n\r\n/**\r\n * @description Enlever la surbrillance du résultat dans le bandeau\r\n */\r\nfunction restoreResult() {\r\n var element = getHTMLResult(this.site);\r\n if (element) {\r\n element.style.background = \"#FFFFFF\";\r\n }\r\n}\r\n\r\n/**\r\n * @description Scroller sur l'agence dans le bandeau\r\n */\r\nfunction scrollToResult(aid) {\r\n $(\".scrollable\").scrollTo(aid, { duration: 200 });\r\n}\r\n\r\n/**\r\n * @description Retourner le bon element html à partir d'un marker\r\n */\r\nfunction getHTMLResult(marker): HTMLElement | any {\r\n var elem = document.querySelector(`[data-marker='${marker.agency_url}']`);\r\n return (elem) as HTMLElement;\r\n}\r\n\r\n/**\r\n * @description Return the marker of the matching html element\r\n * @param {any} dataVal\r\n */\r\nfunction getMarkerFromHTMLResult(dataVal: string): Store {\r\n return Global.storesDict[dataVal];\r\n}\r\n\r\n// Start map loading\r\ngoogle.maps.event.addDomListener(window, \"load\", initMap);\r\n// Init autocomplete\r\ngoogle.maps.event.addDomListener(window, \"load\", initAutocomplete);"]}