{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/L.Mappy.Map.js","src/L.Mappy.Route.js","src/L.Mappy.Services.js","src/L.Mappy.js","src/namespace.js","src/tools/Attribution.js","src/tools/Control.js","src/tools/Geolocation.js","src/tools/Layers.js","src/tools/Legend.js","src/tools/Logo.js","src/tools/TileLayer.js","src/tools/TrafficLegend.js","src/tools/Util.js","src/tools/Zoom.js"],"sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 6) ? options.tileLayerOptions.minZoom : 6\n }\n this.overlays = {\n 'public_transport': new TileLayer('public_transport', 2, L.extend({}, options.tileLayerOptions, publicTransportLayerOptions)),\n 'traffic': new TileLayer('traffic', 2, options.tileLayerOptions),\n 'hybrid': new TileLayer('hybrid', 2, options.tileLayerOptions),\n 'bicycle': new TileLayer('bicycle', 2, options.tileLayerOptions)\n }\n\n L.Map.prototype.initialize.call(this, element, options)\n\n this.attributionControl = new Attribution(attributionControlOptions).addTo(this)\n\n if (options.logoControl !== false) {\n this.logoControl = new Logo(options.logoControl || {}).addTo(this)\n }\n\n this.setViewmode(options.viewmode)\n\n if (zoomControlOptions !== false) {\n this.zoomControl = L.control.zoom(zoomControlOptions || {}).addTo(this)\n }\n\n if (options.layersControl === undefined || options.layersControl) {\n this.layersControl = L.control.layers(this.baseLayers, this.overlays, options.layersControl || {}).addTo(this)\n }\n\n if (options.geolocationControl && ('geolocation' in navigator)) {\n this.geolocationControl = new Geolocation(options.geolocationControl).addTo(this)\n }\n\n if (options.legendControl) {\n this.legendControl = new Legend(options.legendControl).addTo(this)\n }\n },\n\n /**\n * Sets the background map layer (viewmode). Available viewmodes : standard, photo & hybrid.\n *\n * @param {string} name\n */\n setViewmode: function (name) {\n if (name === 'hybrid') {\n this.setOverlay(name)\n }\n\n name = name === 'hybrid' ? 'photo' : (name || 'standard')\n\n this._setTileLayer(this.baseLayers, name)\n if (this.baseLayers[name]) {\n this.fire('viewmode-' + name, this.baseLayers[name])\n }\n },\n\n /**\n * Sets the overlay map layer. Available overlays : traffic & public_transport.\n * If nothing is specified, remove the current overlay.\n *\n * @param name\n */\n setOverlay: function (name) {\n this._setTileLayer(this.overlays, name)\n this.fire('overlay-' + (name || 'disabled'), (this.overlays[name] ? this.overlays[name] : null))\n },\n\n /**\n * Sets the overlay map layer. Available overlays : traffic & public_transport.\n * If nothing is specified, remove the current overlay.\n *\n * @param name\n */\n removeOverlay: function (name) {\n this.removeLayer(this.overlays[name])\n this.fire('overlay-disabled', (this.overlays[name] ? this.overlays[name] : null))\n },\n\n /**\n * Disable user interactions\n */\n disableInteractions: function () {\n var actions = ['dragging', 'touchZoom', 'scrollWheelZoom', 'doubleClickZoom', 'boxZoom', 'keyboard']\n this.disabledActions = []\n\n for (var i = 0; i < actions.length; i++) {\n if (this[actions[i]] && this[actions[i]].enabled()) {\n this.disabledActions.push(actions[i])\n this[actions[i]].disable()\n }\n }\n },\n\n /**\n * Enable previously disabled interactions\n */\n enableInteractions: function () {\n for (var i = 0; i < this.disabledActions.length; i++) {\n this[this.disabledActions[i]].enable()\n }\n },\n\n /**\n * Returns the active Tilelayer of specified type\n *\n * @param type\n */\n getTilelayer: function (type) {\n var layers = type === 'overlay' ? this.overlays : this.baseLayers\n for (var layerName in layers) {\n if (layers.hasOwnProperty(layerName) && this.hasLayer(layers[layerName])) {\n return layers[layerName]\n }\n }\n return null\n },\n\n /**\n * Sets a map layer (overlay/viewmode) on map\n *\n * @param layers type of layer to create (viewmode, overlay)\n * @param name name of the viewmode\n **/\n _setTileLayer: function (layers, name) {\n if (name === 'hybrid') {\n this.addLayer(layers[name])\n } else {\n // remove all layers except for hybrid (but remove hybrid if name is undefined)\n for (var layerName in layers) {\n if (layers.hasOwnProperty(layerName) && this.hasLayer(layers[layerName]) && (layerName !== 'hybrid' || !name)) {\n this.removeLayer(layers[layerName])\n }\n }\n if (layers[name]) {\n this.addLayer(layers[name])\n }\n }\n return this\n },\n\n addLegendControl: function (options) {\n options = options || this.options.legendControl || {}\n\n if (this.legendControl) return\n\n this.legendControl = new Legend(options.legendControl).addTo(this)\n },\n\n removeLegendControl: function () {\n if (this.legendControl) {\n this.legendControl.remove()\n this.legendControl = null\n }\n }\n\n})\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\n\nfunction first (a) {\n return a[0]\n}\n\nfunction last (a) {\n return a.slice(-1)[0]\n}\n\nfunction wrap (obj) {\n return {\n start: function (path) {\n return wrap(first(obj[path]))\n },\n end: function (path) {\n return wrap(last(obj[path]))\n },\n get: function () {\n return [obj[1], obj[0]]\n },\n wrap: function (path) {\n return wrap(obj[path])\n }\n }\n}\n\nfunction latLng (section, op) {\n return wrap(section)[op]('features').wrap('geometry')[op]('coordinates').get()\n}\n\nfunction marker (section, type) {\n var src = L.Mappy.getImgPath() + 'roadbook-step-' + type + '.png'\n return L.marker(latLng(section, type), {\n icon: new L.DivIcon({\n className: 'iti-marker mappy-route-' + type,\n html: '',\n iconSize: [40, 50],\n iconAnchor: [20, 50]\n })\n })\n}\n\nmodule.exports.route = function (routes) {\n var section = routes[0].sections[0]\n var geoJSON = L.geoJSON(section)\n return L.featureGroup([geoJSON, marker(section, 'start'), marker(section, 'end')])\n}\n","\"use strict\"\n\nvar Mappy = require(\"./L.Mappy\")\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar suggestTimeout\n\nfunction check(obj, attr, message) {\n if (!obj.hasOwnProperty(attr)) {\n throw new Error(message)\n }\n}\n\nfunction requestGeocode(options) {\n Mappy._checkApikey()\n return Mappy.cors(options).then(function (response) {\n if (response && response.code) throw new Error(response)\n if (\n !response ||\n !response.addresses ||\n !response.addresses.features ||\n response.addresses.features.length === 0\n )\n throw new Error(\"no_result\")\n return response.addresses.features\n })\n}\n\nfunction requestTransports(options) {\n options = options || {}\n var version = options.version\n var domain = options.domain\n delete options.version\n delete options.domain\n var data = L.extend(\n options,\n {\n lang: Mappy.getLocale(),\n },\n {\n from: coords(options.from),\n to: coords(options.to),\n },\n options\n )\n\n return Mappy.cors({\n url: \"https://api-iti.\" + (domain || Mappy._getDomain()) + \"/multipath/\" + (version || Mappy._getRouteAPIVersion()) + \"/transports\",\n checkForAPIDepreciation: true,\n data,\n })\n}\n\nfunction requestRoute(options) {\n var data = L.extend(\n options || {},\n {\n lang: Mappy.getLocale(),\n },\n {\n from: coords(options.from),\n to: coords(options.to),\n providers: options.providers,\n },\n options\n )\n\n return Mappy.cors({\n url: \"https://api-iti.\" + Mappy._getDomain() + \"/multipath/\" + Mappy._getRouteAPIVersion() + \"/routes\",\n checkForAPIDepreciation: true,\n data,\n }).then((response) => {\n if (!response || !response.routes || response.routes.length === 0) {\n throw new Error(\"no_result\")\n }\n return response\n })\n}\n\nfunction coords(point) {\n function toArray() {\n if (point instanceof L.LatLng) {\n return [point.lng, point.lat]\n }\n return point.split(\",\").map(parseFloat)\n }\n\n return toArray(point)\n .map(function (n) {\n return n.toFixed(6)\n })\n .join(\",\")\n}\n\nmodule.exports = {\n localeParameters: {\n fr_FR: {\n favoriteCountry: 250,\n language: \"fre\",\n },\n en_GB: {\n favoriteCountry: 826,\n language: \"eng\",\n },\n fr_BE: {\n favoriteCountry: 56,\n language: \"fre\",\n },\n nl_BE: {\n favoriteCountry: 56,\n language: \"dut\",\n },\n },\n\n geocodeReverse: function (latLng, successCallback, failureCallback) {\n if (latLng instanceof Array) {\n latLng = L.latLng(latLng[0], latLng[1])\n }\n\n return requestGeocode({\n url: Mappy._getGeocodeReverse(),\n checkForAPIDepreciation: true,\n data: {\n x: latLng.lng,\n y: latLng.lat,\n },\n })\n .then((json) => {\n return successCallback ? successCallback(json) : json\n })\n .catch((error) => {\n if (failureCallback) return failureCallback(error)\n else throw error\n })\n },\n\n geocodeForward: function (query, successCallback, failureCallback) {\n return requestGeocode({\n url: Mappy._getGeocodeForward(),\n checkForAPIDepreciation: true,\n data: {\n limit: 10,\n q: query,\n },\n })\n .then((json) => {\n return successCallback ? successCallback(json) : json\n })\n .catch((error) => {\n if (failureCallback) return failureCallback(error)\n else throw error\n })\n },\n\n suggest: function (options, successCallback, failureCallback) {\n Mappy._checkApikey()\n return new Promise((resolve, reject) => {\n clearTimeout(suggestTimeout)\n var FranceBbox = \"41.33367,-5.141593,51.088771,9.559831\"\n var queryBbox = FranceBbox\n if (options && options.bbox instanceof L.LatLngBounds) {\n var sw = options.bbox.getSouthWest()\n var ne = options.bbox.getNorthEast()\n queryBbox = [sw.lat, sw.lng, ne.lat, ne.lng].join(\",\")\n }\n suggestTimeout = setTimeout(\n function requestSuggest() {\n Mappy.cors({\n url: Mappy._getSuggest(),\n checkForAPIDepreciation: true,\n data: {\n q: options && options.query,\n focus_bbox: queryBbox,\n filter: \"geocoding\",\n },\n })\n .then(function (json) {\n if (!json || !json.suggests) throw new Error(\"no_result\")\n successCallback\n ? successCallback(json.suggests)\n : resolve(json.suggests)\n })\n .catch(function (error) {\n if (failureCallback) return failureCallback(error)\n else reject(error)\n })\n }.bind(this),\n 250\n )\n })\n },\n\n route: function (options, successCallback, failureCallback) {\n Mappy._checkApikey()\n check(\n options,\n \"from\",\n \"1st argument should contains from as string (lon,lat)\"\n )\n check(options, \"to\", \"1st argument should to as string (lon,lat)\")\n check(\n options,\n \"providers\",\n \"1st argument should contains providers as string\"\n )\n\n return requestTransports(options)\n .then((response) => {\n return requestRoute(\n L.extend(options, {\n qid: response.qid,\n })\n )\n })\n .then((response) => {\n return successCallback ? successCallback(response) : response\n })\n .catch((error) => {\n if (failureCallback) return failureCallback(error)\n else throw error\n })\n },\n\n roadbook: function (options, successCallback, failureCallback) {\n return requestRoute(options)\n .then((response) => {\n if (!response || !response.routes || response.routes.length === 0) {\n throw new Error(\"no_result\")\n }\n return Mappy.cors({\n url: \"https://api-iti.\" + Mappy._getDomain() + \"/multipath/\" + Mappy._getRouteAPIVersion() + response.routes[0].roadbook_link,\n })\n })\n .then((response) => {\n return successCallback ? successCallback(response) : response\n })\n .catch((error) => {\n if (failureCallback) return failureCallback(error)\n else throw error\n })\n },\n}\n","\"use strict\"\n\nfunction objectToUri(obj) {\n var data, key, value\n data = []\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n value = obj[key]\n data.push(\n window.encodeURIComponent(key) + \"=\" + window.encodeURIComponent(value)\n )\n }\n }\n return data.join(\"&\")\n}\n\nvar translations = {\n fr: {\n \"layers.traffic\": \"Trafic\",\n \"layers.transport\": \"Transports en commun\",\n \"layers.photo\": \"Vue aérienne\",\n \"layers.hybrid\": \"Afficher le nom des lieux\",\n \"layers.bicycle\": \"Pistes cyclables\",\n \"trafficLegend.trafficAt\": \"Trafic à {hours}:{minutes}\",\n \"trafficLegend.slow\": \"ralenti\",\n \"trafficLegend.blocked\": \"fermé\",\n\n \"vehicle.car\": \"Voiture\",\n \"vehicle.walk\": \"Piéton\",\n \"vehicle.bike\": \"Vélo\",\n \"bikelegend.title\": \"Pistes cyclables\",\n },\n en: {\n \"layers.traffic\": \"Traffic\",\n \"layers.transport\": \"Public transports\",\n \"layers.photo\": \"Satellite photos\",\n \"layers.hybrid\": \"Display locations names\",\n \"layers.bicycle\": \"Bike lanes\",\n \"trafficLegend.trafficAt\": \"Traffic at {hours}:{minutes}\",\n \"trafficLegend.slow\": \"slow\",\n \"trafficLegend.blocked\": \"congested\",\n\n \"vehicle.car\": \"Car\",\n \"vehicle.walk\": \"Pedestrian\",\n \"vehicle.bike\": \"Bicycle\",\n \"bikelegend.title\": \"Bicycle paths\",\n },\n nl: {\n \"layers.traffic\": \"Verkeer\",\n \"layers.transport\": \"Openbaar vervoer\",\n \"layers.photo\": \"Luchtfoto's\",\n \"layers.hybrid\": \"Locaties weergeven namen\",\n \"layers.bicycle\": \"Fietspaden\",\n \"trafficLegend.trafficAt\": \"Verkeer op {hours}:{minutes}\",\n \"trafficLegend.slow\": \"langzaam\",\n \"trafficLegend.blocked\": \"vastgelopen\",\n\n \"vehicle.car\": \"Auto\",\n \"vehicle.midcar\": \"Middelgrote auto\",\n \"vehicle.walk\": \"Voetganger\",\n \"vehicle.bike\": \"Fiets\",\n \"bikelegend.title\": \"Fietspaden\",\n },\n}\n\n\nmodule.exports = {\n version: \"@@version\",\n _domain: \"mappy.net\",\n _apikey: null,\n _locale: \"fr_FR\",\n _imgPath: \"images/\",\n _logs: true,\n _defaultRouteAPIVersion: \"7.0\",\n _tooltip: true,\n _logFn: undefined,\n _refreshTraffic: 120000,\n\n getText: function (key) {\n return translations[this._locale.substr(0, 2)][key] || \"\"\n },\n\n setLocale: function (locale) {\n if (\n locale !== \"fr_FR\" &&\n locale !== \"en_GB\" &&\n locale !== \"fr_BE\" &&\n locale !== \"nl_BE\"\n ) {\n throw new Error(\"This locale is not available\")\n }\n\n this._locale = locale\n return this\n },\n\n setImgPath: function (path) {\n this._imgPath = path\n return this\n },\n\n getImgPath: function () {\n return this._imgPath\n },\n\n getLocale: function () {\n return this._locale\n },\n\n enableLogs: function () {\n this._logs = true\n return this\n },\n\n disableLogs: function () {\n this._logs = false\n return this\n },\n\n isLogsEnabled: function () {\n return this._logs\n },\n\n enableTooltip: function () {\n this._tooltip = true\n return this\n },\n\n disableTooltip: function () {\n this._tooltip = false\n return this\n },\n\n isTooltipEnabled: function () {\n return this._tooltip\n },\n\n setApikey: function (apikey) {\n this._apikey = apikey\n\n if (this._apikey) {\n // Ping mothership with API version and apikey\n var pingUrl = \"https://log.\" + this._getDomain() + \"/log/1.0/ping/api-leaflet/\" + this._apikey + \"/\" + this.version\n setTimeout(function () {\n new Image().src = pingUrl\n }, 1000)\n }\n },\n\n _getApikey: function () {\n return this._apikey\n },\n\n enableHttps: function () {\n return this\n },\n\n disableHttps: function () {\n throw new Error('Mappy API is now only usable via HTTPS')\n },\n\n _getDomain: function () {\n return this._domain\n },\n\n _setDomain: function (domain) {\n this._domain = domain\n return this\n },\n\n _setLogFn: function (fn) {\n this._logFn = fn\n return this\n },\n\n _getLogFn: function () {\n if (this._logFn) {\n return this._logFn\n } else if (typeof console.warn === \"function\") {\n return console.warn\n }\n return () => { }\n },\n\n _getGeocodeForward: function () {\n return (\"https://api-geocode.\" + this._getDomain() + \"/forward/1.0/find\")\n },\n\n _getGeocodeReverse: function () {\n return (\"https://api-geocode.\" + this._getDomain() + \"/reverse/1.0/find\")\n },\n\n _getSuggest: function () {\n return (\"https://api-suggest.\" + this._getDomain() + \"/suggest/1.3/suggest\")\n },\n\n _checkApikey: function () {\n if (!this._getApikey()) {\n throw new Error(\"apikey is mandatory (refer to documentation).\")\n }\n },\n\n _setRouteAPIVersion: function (routeAPIVersion) {\n this._routeAPIVersion = routeAPIVersion\n return this\n },\n\n _getRouteAPIVersion: function () {\n return this._routeAPIVersion || this._defaultRouteAPIVersion\n },\n\n _resetRouteAPIToDefaultVersion: function () {\n this._routeAPIVersion = this._defaultRouteAPIVersion\n return this\n },\n\n cors: function (options) {\n const url =\n options.url + (options.data ? \"?\" + objectToUri(options.data) : \"\")\n\n return fetch(url, {\n headers: {\n apikey: this._apikey,\n },\n })\n .then((response) => {\n if (!response.ok) {\n return response.text().then((err) => {\n throw new Error(err)\n })\n } else {\n return response.json()\n }\n })\n .then((json) => {\n if (options.checkForAPIDepreciation)\n this._checkForAPIDepreciation(json)\n return json\n })\n .catch((error) => {\n if (this._getLogFn) this._getLogFn()(error)\n if (response.status >= 400 && response.status < 500) {\n if (response.headers.get(\"content-type\").indexOf(\"json\") !== -1)\n throw new Error(JSON.parse(req.responseText))\n else throw new Error(\"no_result\")\n }\n throw new Error(\"server_error\")\n })\n },\n\n _checkForAPIDepreciation: function (json) {\n const OK_DEPRECATION_STATUS = \"ok\"\n\n var deprecationStatus =\n json && json.deprecation_status ? json.deprecation_status : {}\n\n if (\n this.isLogsEnabled() &&\n deprecationStatus.status &&\n deprecationStatus.status !== OK_DEPRECATION_STATUS\n ) {\n this._getLogFn()(deprecationStatus)\n }\n },\n}\n","\"use strict\";\n// override native leaflet stuff\nrequire(\"./tools/Layers\");\nrequire(\"./tools/Zoom\");\n\n// new type of control\nrequire(\"./tools/TrafficLegend\");\n\n// Mappy definitions\nvar Mappy = require(\"./L.Mappy\");\n\nMappy.Map = require(\"./L.Mappy.Map\");\nMappy.Services = require(\"./L.Mappy.Services\");\nMappy.Route = require(\"./L.Mappy.Route\");\nMappy.Control = require(\"./tools/Control\");\nMappy.TileLayer = require(\"./tools/TileLayer\"); //\n\nMappy.route = Mappy.Route.route;\nMappy.Vehicles = [\"car\", \"bike\", \"walk\"];\n\nmodule.exports = Mappy;\n\nwindow.L.Mappy = Mappy;\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar TileLayer = require('./TileLayer')\n\nmodule.exports = L.Control.Attribution.extend({\n options: {\n scale: true,\n position: 'bottomleft',\n 'prefix': '© Mappy '\n },\n\n _layers: [],\n\n onAdd: function (map) {\n map.on('layeradd', function (evt) {\n if (evt.layer instanceof TileLayer) {\n this._layers.push(evt.layer)\n evt.layer.on('attributionsrefresh', this._refreshAttributions, this)\n }\n }, this)\n map.on('layerremove', function (evt) {\n for (var i = this._layers.length - 1; i >= 0; i--) {\n if (this._layers[i] === evt.layer) {\n this._layers.splice(i, 1)\n evt.layer.off('attributionsrefresh', this._refreshAttributions, this)\n this._refreshAttributions()\n }\n }\n }, this)\n\n var container = L.Control.Attribution.prototype.onAdd.call(this, map)\n\n if (this.options.scale) {\n L.control.scale({imperial: false, position: this.options.position}).addTo(map)\n }\n\n return container\n },\n\n addTo: function (map) {\n this._map = map\n\n var container = this._container = this.onAdd(map)\n var pos = this.getPosition()\n var corner = map._controlCorners[pos]\n\n L.DomUtil.addClass(container, 'leaflet-control')\n\n corner.appendChild(container)\n\n return this\n },\n\n /* Remove the option of removing the attributions */\n removeFrom: L.Util.falseFn, // 0.7\n remove: L.Util.falseFn, // 0.8\n\n clearAttributions: function () {\n this._attributions = {}\n this._update()\n },\n\n /**\n * add on map attributions of all layers (overlay/viewmode)\n **/\n _refreshAttributions: function () {\n this.clearAttributions()\n var attribs = []\n for (var i = this._layers.length - 1; i >= 0; i--) {\n attribs = attribs.concat(this._layers[i].getAttributions())\n }\n\n for (var j = 0; j < attribs.length; j++) {\n this.addAttribution(attribs[j])\n }\n }\n})\n","\"use strict\";\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null);\nvar Mappy = require(\"../L.Mappy\");\n\nmodule.exports = L.Control.extend({\n options: {\n position: \"topright\",\n singleToolBox: false,\n },\n\n _buttons: {},\n _tooltips: {},\n\n addTo: function (map) {\n this._buttons = {};\n this._tooltips = {};\n L.Control.prototype.addTo.call(this, map);\n L.DomUtil.addClass(this._container, \"mappy-control\");\n return this;\n },\n\n removeFrom: function (map) {\n var pos = this.getPosition();\n var corner = map._controlCorners[pos];\n\n if (!this.options.singleToolBox || this.options.singleToolBox) {\n corner.removeChild(this._container);\n this._container = null;\n }\n this._map = null;\n\n if (this.onRemove) {\n this.onRemove(map);\n }\n\n return this;\n },\n\n _createContainer: function (className) {\n this._container = L.DomUtil.create(\"div\", \"mappy-control-\" + className);\n return this._container;\n },\n\n _getContainer: function (name) {\n if (!this.options.singleToolBox) {\n return L.DomUtil.create(\"div\", \"mappy-control-\" + name);\n }\n return L.DomUtil.create(\"div\", \"mappy-control-main\");\n },\n\n _createBasicButton: function (html, className) {\n var btn = L.DomUtil.create(\n \"a\",\n \"mappy-button mappy-button-\" + className,\n this._container\n );\n btn.innerHTML = html || \"\";\n btn.href = \"#\";\n\n L.DomEvent.on(btn, \"mousedown\", L.DomEvent.stop)\n .on(btn, \"dblclick\", L.DomEvent.stop)\n .on(btn, \"click\", L.DomEvent.stop);\n\n return btn;\n },\n\n _createButton: function (html, title, className, fn) {\n var btn = this._createBasicButton(html, className);\n this._initTooltip(title, className, btn);\n\n L.DomEvent.on(btn, \"click\", fn, this).on(\n btn,\n \"click\",\n this._refocusOnMap,\n this\n );\n\n return btn;\n },\n\n _addToolsBackgroundImage: function (el) {\n el.children[0].style.backgroundImage =\n \"url('\" + L.Mappy.getImgPath() + \"tools-2x.png')\";\n el.children[0].style.backgroundSize = \"175px 72px\";\n },\n\n _createSwitch: function (html, title, title2, className, fn, fn2, delay) {\n var btn = this._createBasicButton(html, className);\n this._initTooltip(title, className, btn, delay);\n\n L.DomEvent.on(\n btn,\n \"click\",\n function (evt) {\n if (!L.DomUtil.hasClass(btn, \"mappy-button-active\")) {\n this.activateButton(btn);\n this._updateTooltipContent(title2, className);\n fn.call(this, evt);\n } else {\n this.deactivateButton(btn);\n this._updateTooltipContent(title, className);\n fn2.call(this, evt);\n }\n this._refocusOnMap();\n },\n this\n );\n\n return btn;\n },\n\n _initTooltip: function (title, className, btn, delay) {\n if (!title) {\n return;\n }\n\n if (!Mappy.isTooltipEnabled()) {\n return;\n }\n\n L.DomEvent.on(\n btn,\n \"mouseenter\",\n function () {\n this._closeTooltips();\n this._createTooltip(title, className, btn);\n },\n this\n ).on(\n btn,\n \"mouseleave\",\n function () {\n this._closeTooltip(className, delay);\n },\n this\n );\n },\n\n _createTooltip: function (title, id, btn) {\n if (!this._tooltips[id]) {\n var tooltip = L.DomUtil.create(\n \"div\",\n \"mappy-tooltip mappy-tooltip-\" + id,\n this._container\n );\n if (typeof title === \"string\") {\n tooltip.innerHTML = title;\n } else {\n tooltip.appendChild(title);\n }\n\n this._tooltips[id] = tooltip;\n } else {\n this._container.appendChild(this._tooltips[id]);\n }\n\n this._tooltips[id].style.top =\n btn.offsetTop +\n (btn.offsetHeight - this._tooltips[id].offsetHeight) / 2 +\n \"px\";\n },\n\n _updateTooltipContent: function (title, id) {\n if (this._tooltips[id] && title) {\n if (typeof title === \"string\") {\n this._tooltips[id].innerHTML = title;\n } else {\n this._tooltips[id].appendChild(title);\n }\n }\n },\n\n _closeTooltip: function (id, delay) {\n this._removing = setTimeout(\n L.bind(function () {\n if (this._tooltips[id].parentNode) {\n this._container.removeChild(this._tooltips[id]);\n }\n }, this),\n delay || 0\n );\n },\n\n _closeTooltips: function () {\n clearTimeout(this._removing);\n for (var tooltip in this._tooltips) {\n if (this._tooltips[tooltip].parentNode) {\n this._tooltips[tooltip].parentNode.removeChild(this._tooltips[tooltip]);\n }\n }\n },\n\n activateButton: function (button) {\n L.DomUtil.addClass(button, \"mappy-button-active\");\n button.setAttribute(\"data-active\", 1);\n },\n\n deactivateButton: function (button) {\n L.DomUtil.removeClass(button, \"mappy-button-active\");\n button.setAttribute(\"data-active\", 0);\n },\n});\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Mappy = require('../L.Mappy')\nvar Control = require('./Control')\n\nmodule.exports = Control.extend({\n options: {\n geolocationMarker: false,\n locateOptions: {}\n },\n\n _defaultLocateOptions: {\n setView: true,\n maxZoom: 15,\n timeout: 5 * 1000,\n maximumAge: 30 * 1000,\n enableHighAccuracy: true\n },\n\n onAdd: function (map) {\n var tooltipOptions = this.options.tooltipOptions || {}\n this._isLocated = true\n this.options.locateOptions = L.extend(this._defaultLocateOptions, this.options.locateOptions)\n this._container = L.DomUtil.create('div', 'mappy-control-geolocation')\n this._geolocButton = this._createButton('?', tooltipOptions.location, 'geolocation', this.activateGeolocation)\n this._addToolsBackgroundImage(this._geolocButton)\n map.on('locationfound', this.onGeolocationSuccess, this)\n map.on('locationerror', this.onGeolocationError, this)\n this.previousCompass = NaN\n\n return this._container\n },\n\n activateGeolocation: function () {\n if (!this._isLocated) {\n return\n }\n this._isLocated = false\n this._map.off('moveend zoomend', this.deactivate, this)\n L.DomUtil.removeClass(this._geolocButton, 'geolocation-error')\n L.DomUtil.addClass(this._geolocButton, 'searching')\n this._map.fire('locationsearch')\n this._map.locate(this.options.locateOptions)\n },\n\n onRemove: function (map) {\n map.off('locationfound', this.onGeolocationSuccess, this)\n window.removeEventListener('deviceorientation', this.headingChangeFn)\n },\n\n onHeadingChange: function (event) {\n var rawValue = (event.webkitCompassHeading ? event.webkitCompassHeading : (360 - event.alpha))\n var screenOrientationCompensation = (screen.orientation ? screen.orientation.angle : window.orientation)\n var compass = rawValue + screenOrientationCompensation\n\n if (this.previousCompass !== compass) {\n this.geolocationMarker._icon.firstChild.style.transform = 'rotateZ(' + compass + 'deg)'\n this.previousCompass = compass\n }\n },\n\n onGeolocationSuccess: function (location) {\n this._isLocated = true\n L.DomUtil.removeClass(this._geolocButton, 'searching')\n this.activateButton(this._geolocButton)\n\n // Add a little delay to wait before map has moved\n // I can’t use moveend / zoomend event because the map could NOT have moved (if you click button twice for example)...\n setTimeout(function () {\n this._map.once('moveend zoomend', this.deactivate, this)\n }.bind(this), 500)\n\n if (!this.options.geolocationMarker) {\n return\n }\n\n if (!this.geolocationMarker) {\n var iconImg = 'marker_geolocation_x2.png'\n var icon = new L.DivIcon({\n className: 'geolocationMarker',\n iconSize: [30, 30],\n iconAnchor: [15, 15],\n html: ''\n })\n\n this.geolocationMarker = L.marker(location.latlng, {\n icon: icon\n }).addTo(this._map)\n } else {\n this.geolocationMarker.setLatLng(location.latlng)\n }\n\n window.removeEventListener('deviceorientation', this.headingChangeFn)\n this.headingChangeFn = this.onHeadingChange.bind(this)\n window.addEventListener('deviceorientation', this.headingChangeFn)\n },\n\n onGeolocationError: function (locationEvent) {\n this._isLocated = true\n L.DomUtil.removeClass(this._geolocButton, 'searching')\n L.DomUtil.addClass(this._geolocButton, 'geolocation-error')\n this._map.once('moveend zoomend', L.bind(function () {\n L.DomUtil.removeClass(this._geolocButton, 'geolocation-error')\n }, this))\n },\n\n deactivate: function () {\n this.deactivateButton(this._geolocButton)\n }\n})\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Mappy = require('../L.Mappy')\n\nL.Control.Layers = module.exports = require('./Control').extend({\n options: {\n autoZIndex: true,\n traffic: true,\n trafficTooltip: true,\n publicTransport: true,\n publicTransportTooltip: true,\n viewMode: true,\n viewModeTooltip: true,\n bicycle: true,\n bicycleTooltip: true,\n trafficLegend: true\n },\n\n initialize: function (baseLayers, overlays, options) {\n L.setOptions(this, options)\n\n this._buttons = {}\n this.trafficLegend = null\n this._layers = {}\n this._lastZIndex = 0\n\n for (var i in baseLayers) {\n if (baseLayers.hasOwnProperty(i)) {\n this._addLayer(baseLayers[i], i)\n }\n }\n\n for (i in overlays) {\n if (overlays.hasOwnProperty(i)) {\n this._addLayer(overlays[i], i, true)\n }\n }\n },\n\n _addLayer: function (layer, name, overlay) {\n var id = L.stamp(layer)\n\n this._layers[id] = {\n layer: layer,\n name: name,\n overlay: overlay\n }\n\n if (this.options.autoZIndex && layer.setZIndex) {\n this._lastZIndex++\n layer.setZIndex(this._lastZIndex)\n }\n },\n\n onAdd: function (map) {\n this._container = this._getContainer('layers')\n\n this._initLayout()\n this._initActiveButton()\n\n map\n .on('layeradd', this._onLayerChange, this)\n .on('layerremove', this._onLayerChange, this)\n\n return this._container\n },\n\n onRemove: function (map) {\n map\n .off('layeradd', this._onLayerChange, this)\n .off('layerremove', this._onLayerChange, this)\n if (this.options.trafficLegend) {\n this.trafficLegend.hide()\n }\n },\n\n _initLayout: function () {\n if (this.options.traffic !== false) {\n this._buttons.traffic = this._createSwitch('T', this.options.trafficTooltip && Mappy.getText('layers.traffic'), null, 'traffic', this.activateTraffic, this.deactivateTraffic)\n this._addToolsBackgroundImage(this._buttons.traffic)\n }\n\n if (this.options.publicTransport !== false) {\n this._buttons.publicTransport = this._createSwitch('TC', this.options.publicTransportTooltip && Mappy.getText('layers.transport'), null, 'transport', this.activatePublicTransport, this.deactivatePublicTransport)\n this._addToolsBackgroundImage(this._buttons.publicTransport)\n }\n\n if (this.options.trafficLegend) {\n this.trafficLegend = L.control.TrafficLegend()\n }\n\n if (this.options.viewMode !== false) {\n var tooltip = L.DomUtil.create('div')\n var span = L.DomUtil.create('span', null, tooltip)\n var checkbox = this._createCheckbox(tooltip)\n var label = L.DomUtil.create('label', null, tooltip)\n this._buttons.hybrid = checkbox\n\n span.innerHTML = Mappy.getText('layers.photo')\n label.innerHTML = Mappy.getText('layers.hybrid')\n label.setAttribute('for', 'mappy-hybrid')\n\n this._buttons.aerial = this._createSwitch('A', this.options.viewModeTooltip && tooltip, null, 'aerial', function () {\n this._map.setViewmode('photo')\n }, function () {\n this._map.setViewmode('standard')\n this._map.removeOverlay('hybrid')\n }, 500)\n this._addToolsBackgroundImage(this._buttons.aerial)\n\n L.DomEvent\n .on(tooltip, 'mouseenter', this._onAerialTooltipMouseEnter, this)\n .on(tooltip, 'mouseleave', this._onAerialTooltipMouseLeave, this)\n .on(checkbox, 'click', this._onAerialLabelClick, this)\n }\n\n if (this.options.bicycle !== false) {\n this._buttons.bicycle = this._createSwitch('B', this.options.bicycleTooltip && Mappy.getText('layers.bicycle'), null, 'bicycle', this.activateBicycle, this.deactivateBicycle)\n this._addToolsBackgroundImage(this._buttons.bicycle)\n }\n },\n\n _initActiveButton: function () {\n var overlay = this._map.getTilelayer('overlay')\n if (overlay) {\n this._addOverlay(overlay.options.name)\n }\n this._updateViewMode(this._map.getTilelayer().options.name)\n },\n\n _onLayerChange: function (e) {\n var obj = this._layers[L.stamp(e.layer)]\n\n if (!obj) {\n return\n }\n\n var type = obj.overlay\n ? (e.type === 'layeradd' ? 'overlayadd' : 'overlayremove')\n : (e.type === 'layeradd' ? 'baselayerchange' : null)\n\n if (obj.overlay) {\n if (type === 'overlayremove') {\n this._removeOverlay(obj.name)\n } else {\n this._addOverlay(obj.name)\n }\n } else {\n this._updateViewMode(obj.name)\n }\n\n if (type) {\n this._map.fire(type, obj)\n }\n },\n\n _removeOverlay: function (name) {\n if (name === 'traffic') {\n if (this._buttons.traffic) {\n this.deactivateButton(this._buttons.traffic)\n }\n if (this.trafficLegend) {\n this.trafficLegend.hide()\n }\n } else if (name === 'public_transport' && this._buttons.publicTransport) {\n this.deactivateButton(this._buttons.publicTransport)\n } else if (name === 'bicycle' && this._buttons.bicycle) {\n this.deactivateButton(this._buttons.bicycle)\n } else if (name === 'hybrid' && this._buttons.hybrid) {\n this._buttons.hybrid.checked = false\n }\n },\n\n _addOverlay: function (name) {\n if (name === 'traffic') {\n if (this._buttons.traffic) {\n this.activateButton(this._buttons.traffic)\n }\n if (this.trafficLegend) {\n this.trafficLegend.show(this._map)\n }\n } else if (name === 'public_transport' && this._buttons.publicTransport) {\n this.activateButton(this._buttons.publicTransport)\n } else if (name === 'bicycle' && this._buttons.bicycle) {\n this.activateButton(this._buttons.bicycle)\n }\n\n if (this._buttons.hybrid && name === 'hybrid') {\n this._buttons.hybrid.checked = true\n }\n },\n\n _updateViewMode: function (name) {\n if (!this._buttons.aerial) {\n return\n }\n\n if (name === 'standard') {\n this.deactivateButton(this._buttons.aerial)\n } else {\n this.activateButton(this._buttons.aerial)\n }\n },\n\n activateTraffic: function (event) {\n this._map.setOverlay('traffic')\n if (this.trafficLegend) {\n this.trafficLegend.show(this._map)\n }\n },\n\n deactivateTraffic: function () {\n this._map.removeOverlay('traffic')\n if (this.trafficLegend) {\n this.trafficLegend.hide()\n }\n },\n\n activatePublicTransport: function () {\n this._map.setOverlay('public_transport')\n },\n\n deactivatePublicTransport: function () {\n this._map.removeOverlay('public_transport')\n },\n\n activateBicycle: function () {\n this._map.setOverlay('bicycle')\n },\n\n deactivateBicycle: function () {\n this._map.removeOverlay('bicycle')\n },\n\n // IE7 bugs out if you create a checkbox dynamically, so you have to do it this hacky way\n _createCheckbox: function (parent) {\n var html = ''\n\n var htmlFragment = document.createElement('div')\n htmlFragment.innerHTML = html\n\n return parent.appendChild(htmlFragment.firstChild)\n },\n\n _onAerialTooltipMouseEnter: function (event) {\n clearTimeout(this._removing)\n },\n\n _onAerialTooltipMouseLeave: function (event) {\n this._closeTooltip('aerial', 500)\n },\n\n _onAerialLabelClick: function (event) {\n if (this._buttons.hybrid && this._buttons.hybrid.checked) {\n if (this._map.getTilelayer().options.name !== 'photo') {\n this._map.setViewmode('photo')\n }\n this._map.setOverlay('hybrid')\n } else {\n this._map.removeOverlay('hybrid')\n }\n },\n\n getTrafficLegend: function () {\n return this.trafficLegend\n }\n})\n\nL.control.layers= function (baseLayers, overlays, options) {\n\treturn new L.Control.Layers(baseLayers, overlays, options);\n}\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Mappy = require('../L.Mappy')\n\nmodule.exports = L.Control.extend({\n options: {\n position: 'bottomright'\n },\n\n initialize: function (options) {\n this.options = L.extend({}, this.options, options)\n },\n\n onAdd: function () {\n this._container = L.DomUtil.create('div', 'mappy-bike-legend')\n\n var left = L.DomUtil.create('div', 'mappy-bike-legend-col mappy-bike-legend-left', this._container)\n L.DomUtil.create('span', 'mappy-bike-legend-bicyclepath-box', left)\n\n var right = L.DomUtil.create('div', 'mappy-bike-legend-col mappy-bike-legend-right', this._container)\n var title = L.DomUtil.create('p', 'mappy-bike-legend-title', right)\n\n title.innerHTML = Mappy.getText('bikelegend.title')\n\n return this._container\n }\n})\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Mappy = require('../L.Mappy')\n\nmodule.exports = L.Control.extend({\n options: {\n position: 'topleft'\n },\n\n onAdd: function () {\n this._container = L.DomUtil.create('div', 'mappy-control-logo')\n var _imgContainer = L.DomUtil.create('div', 'mappy-control-logo-img', this._container)\n var url = Mappy.getImgPath() + 'api-logo-2x.png'\n _imgContainer.style.backgroundImage = 'url(\"' + url + '\")'\n\n return this._container\n },\n\n /* Remove the option of removing the logo */\n removeFrom: L.Util.falseFn, // 0.7\n remove: L.Util.falseFn // 0.8\n})\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Mappy = require('../L.Mappy')\nvar debounce = require('./Util')\n\nvar mapSessionId = String(Math.random()).substring(2, 14)\n\nmodule.exports = L.TileLayer.extend({\n options: {\n minZoom: 0,\n maxZoom: 19,\n tileSize: 256,\n },\n\n tileUrl: \"https://api-map.{domain}/map/1.0/slab/{m}/256/{z}/{x}/{y}?apikey={apikey}&sessionId={sessionId}\",\n\n descrUrl: \"https://api-map.{domain}/map/1.0/multi-descr/{m}/256/{z}/{t}?apikey={apikey}\",\n\n descrInfos: {},\n\n attributions: [],\n layerItems: [],\n\n initialize: function (name, zIndex, options) {\n options = L.setOptions(this, L.extend({\n m: name,\n name: name,\n zIndex: zIndex,\n domain: Mappy._getDomain(),\n apikey: Mappy._getApikey(),\n sessionId: mapSessionId\n }, options))\n\n if (name !== 'photo' && options.detectRetina && L.Browser.retina) {\n this.options.m += '_hd'\n }\n\n L.TileLayer.prototype.initialize.call(this, this.tileUrl, options)\n },\n\n onAdd: function (map) {\n L.TileLayer.prototype.onAdd.call(this, map)\n this.on('load', this._onLoad)\n\n if (this.options.name === 'traffic') {\n this.interval = window.setInterval(L.bind(this.redraw, this), Mappy._refreshTraffic)\n }\n },\n\n onRemove: function (map) {\n L.TileLayer.prototype.onRemove.call(this, map)\n this.off('load', this._onLoad)\n\n if (this.options.name === 'traffic') {\n window.clearInterval(this.interval)\n }\n },\n\n getAttributions: function () {\n return this.attributions\n },\n\n _onLoad: debounce(function () {\n var bounds = this._map.getPixelBounds()\n var min = bounds.min.clone()\n var max = bounds.max.clone()\n\n // Retrieve tile x & y values.\n min = min.divideBy(this.options.tileSize)._floor()\n max = max.divideBy(this.options.tileSize)._floor()\n var tilesCoords = []\n\n // We got it !\n for (var x = min.x; x <= max.x; x++) {\n for (var y = min.y; y <= max.y; y++) {\n tilesCoords.push(x + ',' + y)\n }\n }\n\n if (tilesCoords.length > 0) {\n this._requestDescr(tilesCoords)\n }\n }, 500),\n\n _refreshAttributions: function (tiles) {\n if (!this._map) {\n return\n }\n this.attributions = []\n this.layerItems = []\n for (var i = 0; i < tiles.length; i++) {\n var key = this.options.m + '/' + this._getZoomForUrl() + '/' + tiles[i].replace(',', '/')\n if (this.descrInfos[key]) {\n for (var j = 0; j < this.descrInfos[key].copyrights.length; j++) {\n this.attributions.push(this.descrInfos[key].copyrights[j].name)\n }\n this.layerItems = this.layerItems.concat(this.descrInfos[key].items)\n }\n }\n this.fire('attributionsrefresh')\n },\n\n _requestDescr: function (tiles) {\n var zoomLevel = this._getZoomForUrl()\n\n // Define tiles to request\n var reqTiles = []\n for (var i = 0; i < tiles.length; i++) {\n var key = this.options.m + '/' + zoomLevel + '/' + tiles[i].replace(',', '/')\n if (!this.descrInfos[key]) {\n reqTiles.push(tiles[i])\n }\n }\n\n if (reqTiles.length > 0) {\n var requestUrl = L.Util.template(this.descrUrl, L.extend({\n z: zoomLevel,\n t: reqTiles.join(';')\n }, this.options))\n\n // Request multi-descr\n Mappy.cors({\n url: requestUrl\n }).then((response) => {\n for (var i = 0; i < response.length; i++) {\n this.descrInfos[this.options.m + '/' + response[i].sid] = response[i]\n }\n this._refreshAttributions(tiles)\n })\n }\n }\n})\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\n\nvar Mappy = require('../L.Mappy')\nvar Control = require('./Control')\n\nL.Control.TrafficLegend = module.exports = Control.extend({\n options: {\n position: 'bottomright'\n },\n\n _initLayout: function () {\n this._container = L.DomUtil.create('div', 'mappy-traffic-legend clearfix')\n\n L.DomUtil.create('p', 'mappy-traffic-legend-title', this._container)\n\n var table = L.DomUtil.create('table', '', this._container)\n var tr = L.DomUtil.create('tr', '', table)\n L.DomUtil.create('td', 'yellow', tr)\n L.DomUtil.create('td', 'orange', tr)\n L.DomUtil.create('td', 'red', tr)\n L.DomUtil.create('td', 'darkred', tr)\n L.DomUtil.create('td', 'black', tr)\n\n L.DomUtil.create('p', 'left', this._container).innerHTML = Mappy.getText('trafficLegend.slow')\n\n L.DomUtil.create('p', 'right', this._container).innerHTML = Mappy.getText('trafficLegend.blocked')\n\n return this._container\n },\n\n show: function (map) {\n if (this._map) {\n this.refresh()\n\n if (this._container) {\n L.DomUtil.addClass(this._container.parentElement, 'leaflet-control-with-traffic')\n }\n return\n }\n\n this.addTo(map)\n if (this._container) {\n L.DomUtil.addClass(this._container.parentElement, 'leaflet-control-with-traffic')\n }\n },\n\n hide: function () {\n if (this._container) {\n L.DomUtil.removeClass(this._container.parentElement, 'leaflet-control-with-traffic')\n }\n\n if (this._map) {\n this.removeFrom(this._map)\n this._map = null\n }\n },\n\n onAdd: function () {\n if (!this._container) {\n this._initLayout()\n }\n this.refresh()\n this.interval = window.setInterval(L.bind(this.refresh, this), Mappy._refreshTraffic)\n\n return this._container\n },\n\n onRemove: function () {\n window.clearInterval(this.interval)\n },\n\n refresh: function () {\n var now = new Date()\n this._container.querySelector('p.mappy-traffic-legend-title').innerHTML = L.Util.template(Mappy.getText('trafficLegend.trafficAt'), {\n hours: now.getHours(),\n minutes: (now.getMinutes() < 10 ? '0' : '') + now.getMinutes()\n })\n }\n})\n\nL.control.TrafficLegend = function (options) {\n return new L.Control.TrafficLegend(options)\n}\n","'use strict'\n\nmodule.exports = function (func, timeout) {\n var timeoutID\n timeout = timeout || 300\n return function () {\n var scope = this\n var args = arguments\n clearTimeout(timeoutID)\n timeoutID = setTimeout(function () {\n func.apply(scope, Array.prototype.slice.call(args))\n }, timeout)\n }\n}\n","'use strict'\n\nvar L = (typeof window !== \"undefined\" ? window['L'] : typeof global !== \"undefined\" ? global['L'] : null)\nvar Control = require('./Control')\n\nL.Control.Zoom = module.exports = Control.extend({\n options: {\n zoomSlider: false,\n tooltipOptions: null /* tooltipOptions : { zoomIn: String, zoomOut: String} */\n },\n\n onAdd: function (map) {\n this._container = this._getContainer('zoom')\n this._initLayout()\n\n return this._container\n },\n\n onRemove: function (map) {\n map\n .off('zoomlevelschange', this._updateSize, this)\n .off('zoomend zoomlevelschange', this._updateKnobValue, this)\n },\n\n _initLayout: function () {\n var additionalClass = (this.options.zoomSlider) ? ' mappy-button-zoom-full' : ''\n var tooltipOptions = this.options.tooltipOptions || {}\n this._buttons.zoomIn = this._createButton('+', tooltipOptions.zoomIn, 'zoom-in' + additionalClass, function (e) {\n this._map.zoomIn(e.shiftKey ? 3 : 1)\n })\n this._addToolsBackgroundImage(this._buttons.zoomIn)\n\n if (this.options.zoomSlider) {\n this._buttons.slider = this._createSlider()\n this._buttons.knob = new Knob(this._buttons.slider.knob, 8, 8)\n\n this._map.whenReady(this._initKnob, this)\n .whenReady(this._initEvents, this)\n .whenReady(this._updateSize, this)\n .whenReady(this._updateKnobValue, this)\n }\n\n this._buttons.zoomOut = this._createButton('-', tooltipOptions.zoomOut, 'zoom-out' + additionalClass, function (e) {\n this._map.zoomOut(e.shiftKey ? 3 : 1)\n })\n this._addToolsBackgroundImage(this._buttons.zoomOut)\n },\n\n _createSlider: function () {\n var ui = {}\n\n ui.bar = L.DomUtil.create('div', 'mappy-slider', this._container)\n ui.wrap = L.DomUtil.create('div', 'mappy-slider-wrap', ui.bar)\n ui.body = L.DomUtil.create('div', 'mappy-slider-body', ui.wrap)\n ui.knob = L.DomUtil.create('div', 'mappy-slider-knob')\n\n L.DomEvent.disableClickPropagation(ui.bar)\n L.DomEvent.disableClickPropagation(ui.knob)\n\n return ui\n },\n\n _initKnob: function () {\n this._buttons.knob.enable()\n this._buttons.slider.body.appendChild(this._buttons.slider.knob)\n },\n\n _initEvents: function () {\n this._map\n .on('zoomlevelschange', this._updateSize, this)\n .on('zoomend zoomlevelschange', this._updateKnobValue, this)\n\n L.DomEvent.on(this._buttons.slider.body, 'click', this._onSliderClick, this)\n\n this._buttons.knob.on('dragend', this._updateMapZoom, this)\n },\n\n _onSliderClick: function (e) {\n var first = (e.touches && e.touches.length === 1 ? e.touches[0] : e)\n var y = L.DomEvent.getMousePosition(first, this._buttons.slider.body).y\n\n this._buttons.knob.setPosition(y)\n this._updateMapZoom()\n },\n\n _zoomLevels: function () {\n var zoomLevels = this._map.getMaxZoom() - this._map.getMinZoom() + 1\n return zoomLevels < Infinity ? zoomLevels : 0\n },\n\n _toZoomLevel: function (value) {\n return value + this._map.getMinZoom()\n },\n\n _toValue: function (zoomLevel) {\n return zoomLevel - this._map.getMinZoom()\n },\n\n _updateSize: function () {\n var steps = this._zoomLevels()\n\n this._buttons.slider.body.style.height = 8 * steps + 'px'\n this._buttons.knob.setSteps(steps)\n },\n\n _updateMapZoom: function () {\n this._map.setZoom(this._toZoomLevel(this._buttons.knob.getValue()))\n },\n\n _updateKnobValue: function () {\n this._buttons.knob.setValue(this._toValue(this._map.getZoom()))\n }\n\n})\n\nvar Knob = L.Draggable.extend({\n initialize: function (element, stepHeight, knobHeight) {\n L.Draggable.prototype.initialize.call(this, element, element)\n this._element = element\n\n this._stepHeight = stepHeight\n this._knobHeight = knobHeight\n\n this.on('predrag', function () {\n this._newPos.x = 0\n this._newPos.y = this._adjust(this._newPos.y)\n }, this)\n },\n\n _adjust: function (y) {\n var value = Math.round(this._toValue(y))\n value = Math.max(0, Math.min(this._maxValue, value))\n return this._toY(value)\n },\n\n// y = k*v + m\n _toY: function (value) {\n return this._k * value + this._m\n },\n\n// v = (y - m) / k\n _toValue: function (y) {\n return (y - this._m) / this._k\n },\n\n setSteps: function (steps) {\n var sliderHeight = steps * this._stepHeight\n this._maxValue = steps - 1\n\n// conversion parameters\n// the conversion is just a common linear function.\n this._k = -this._stepHeight\n this._m = sliderHeight - (this._stepHeight + this._knobHeight) / 2\n },\n\n setPosition: function (y) {\n L.DomUtil.setPosition(this._element, L.point(0, this._adjust(y)))\n },\n\n setValue: function (v) {\n this.setPosition(this._toY(v))\n },\n\n getValue: function () {\n return this._toValue(L.DomUtil.getPosition(this._element).y)\n }\n})\n\nL.control.zoom = function (options) {\n\treturn new L.Control.Zoom(options);\n}\n"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","L","window","global","Attribution","Logo","Geolocation","Legend","TileLayer","Mappy","Map","extend","_tileLayers","disabledActions","initialize","element","options","apikey","setApikey","_checkApikey","zoomControlOptions","zoomControl","undefined","attributionControlOptions","attributionControl","maxBounds","latLngBounds","latLng","worldCopyJump","zoomAnimationThreshold","this","baseLayers","standard","tileLayerOptions","photo","publicTransportLayerOptions","minZoom","overlays","public_transport","traffic","hybrid","bicycle","prototype","addTo","logoControl","setViewmode","viewmode","control","zoom","layersControl","layers","geolocationControl","navigator","legendControl","name","setOverlay","_setTileLayer","fire","removeOverlay","removeLayer","disableInteractions","actions","enabled","push","disable","enableInteractions","enable","getTilelayer","type","layerName","hasOwnProperty","hasLayer","addLayer","addLegendControl","removeLegendControl","remove","first","last","slice","wrap","obj","start","path","end","get","section","op","marker","src","getImgPath","icon","DivIcon","className","html","iconSize","iconAnchor","route","routes","sections","geoJSON","featureGroup","suggestTimeout","check","attr","message","requestGeocode","cors","then","response","addresses","features","requestTransports","version","domain","data","lang","getLocale","from","coords","to","url","_getDomain","_getRouteAPIVersion","checkForAPIDepreciation","requestRoute","providers","point","toArray","LatLng","lng","lat","split","map","parseFloat","toFixed","join","localeParameters","fr_FR","favoriteCountry","language","en_GB","fr_BE","nl_BE","geocodeReverse","successCallback","failureCallback","Array","_getGeocodeReverse","x","y","json","catch","error","geocodeForward","query","_getGeocodeForward","limit","q","suggest","Promise","resolve","reject","clearTimeout","FranceBbox","queryBbox","bbox","LatLngBounds","sw","getSouthWest","ne","getNorthEast","setTimeout","requestSuggest","_getSuggest","focus_bbox","filter","suggests","bind","qid","roadbook","roadbook_link","objectToUri","key","value","encodeURIComponent","translations","fr","layers.traffic","layers.transport","layers.photo","layers.hybrid","layers.bicycle","trafficLegend.trafficAt","trafficLegend.slow","trafficLegend.blocked","vehicle.car","vehicle.walk","vehicle.bike","bikelegend.title","en","nl","vehicle.midcar","_domain","_apikey","_locale","_imgPath","_logs","_defaultRouteAPIVersion","_tooltip","_logFn","_refreshTraffic","getText","substr","setLocale","locale","setImgPath","enableLogs","disableLogs","isLogsEnabled","enableTooltip","disableTooltip","isTooltipEnabled","pingUrl","Image","_getApikey","enableHttps","disableHttps","_setDomain","_setLogFn","fn","_getLogFn","console","warn","_setRouteAPIVersion","routeAPIVersion","_routeAPIVersion","_resetRouteAPIToDefaultVersion","fetch","headers","ok","text","err","_checkForAPIDepreciation","status","indexOf","JSON","parse","req","responseText","OK_DEPRECATION_STATUS","deprecationStatus","deprecation_status","Services","Route","Control","Vehicles","scale","position","prefix","_layers","onAdd","on","evt","layer","_refreshAttributions","splice","off","container","imperial","_map","_container","pos","getPosition","corner","_controlCorners","DomUtil","addClass","appendChild","removeFrom","Util","falseFn","clearAttributions","_attributions","_update","attribs","concat","getAttributions","j","addAttribution","singleToolBox","_buttons","_tooltips","removeChild","onRemove","_createContainer","create","_getContainer","_createBasicButton","btn","innerHTML","href","DomEvent","stop","_createButton","title","_initTooltip","_refocusOnMap","_addToolsBackgroundImage","el","children","style","backgroundImage","backgroundSize","_createSwitch","title2","fn2","delay","hasClass","activateButton","_updateTooltipContent","deactivateButton","_closeTooltips","_createTooltip","_closeTooltip","id","tooltip","top","offsetTop","offsetHeight","_removing","parentNode","button","setAttribute","removeClass","geolocationMarker","locateOptions","_defaultLocateOptions","setView","maxZoom","timeout","maximumAge","enableHighAccuracy","tooltipOptions","_isLocated","_geolocButton","location","activateGeolocation","onGeolocationSuccess","onGeolocationError","previousCompass","NaN","deactivate","locate","removeEventListener","headingChangeFn","onHeadingChange","event","rawValue","webkitCompassHeading","alpha","screenOrientationCompensation","screen","orientation","angle","compass","_icon","firstChild","transform","once","iconImg","latlng","setLatLng","addEventListener","locationEvent","Layers","autoZIndex","trafficTooltip","publicTransport","publicTransportTooltip","viewMode","viewModeTooltip","bicycleTooltip","trafficLegend","setOptions","_lastZIndex","_addLayer","overlay","stamp","setZIndex","_initLayout","_initActiveButton","_onLayerChange","hide","activateTraffic","deactivateTraffic","activatePublicTransport","deactivatePublicTransport","TrafficLegend","span","checkbox","_createCheckbox","label","aerial","_onAerialTooltipMouseEnter","_onAerialTooltipMouseLeave","_onAerialLabelClick","activateBicycle","deactivateBicycle","_addOverlay","_updateViewMode","_removeOverlay","checked","show","parent","htmlFragment","document","createElement","getTrafficLegend","left","right","_imgContainer","debounce","mapSessionId","String","Math","random","substring","tileSize","tileUrl","descrUrl","descrInfos","attributions","layerItems","zIndex","m","sessionId","detectRetina","Browser","retina","_onLoad","interval","setInterval","redraw","clearInterval","bounds","getPixelBounds","min","clone","max","divideBy","_floor","tilesCoords","_requestDescr","tiles","_getZoomForUrl","replace","copyrights","items","zoomLevel","reqTiles","requestUrl","template","z","sid","table","tr","refresh","parentElement","now","Date","querySelector","hours","getHours","minutes","getMinutes","func","timeoutID","scope","args","arguments","apply","Zoom","zoomSlider","_updateSize","_updateKnobValue","additionalClass","zoomIn","shiftKey","slider","_createSlider","knob","Knob","whenReady","_initKnob","_initEvents","zoomOut","ui","bar","body","disableClickPropagation","_onSliderClick","_updateMapZoom","touches","getMousePosition","setPosition","_zoomLevels","zoomLevels","getMaxZoom","getMinZoom","Infinity","_toZoomLevel","_toValue","steps","height","setSteps","setZoom","getValue","setValue","getZoom","Draggable","stepHeight","knobHeight","_element","_stepHeight","_knobHeight","_newPos","_adjust","round","_maxValue","_toY","_k","_m","sliderHeight","v"],"mappings":"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"}