{"version":3,"sources":["webpack:///./src/client/default/js/components/WoosmapMultiSearchComponent.js","webpack:///./src/client/default/js/base/baseComponent.js","webpack:///./src/client/default/js/libs/Axios.js","webpack:///./src/client/default/js/utilities/woosmapUtils.js"],"names":["WoosmapMultiSearchComponent","elm","parentNode","$el","clearPositionSelector","querySelector","searchContainerSelector","storeCity","$options","initWoosmapMultiSearchScript","document","body","addEventListener","woosmapLoaded","bind","customEventBus","on","triggerAutocomplete","$on","debounce","autocomplete","inputKeyboardInteraction","autocompleteBlur","clearPosition","this","wmkey","previousSearch","pacContainer","createElement","classList","add","typing","value","autocompleteInstance","autocompleteMulti","then","results","renderPredictions","catch","console","error","autocompleteMultisearch","WOOSMAP_KEY","e","preventDefault","remove","CLASSES","clearList","currentTarget","inputValue","trim","place","PAC_CONTAINER","appendChild","length","keyCode","PREVIOUS_SEARCH","keyMap","Enter","ArrowDown","ArrowUp","actionMap","index","numberSelected","selectAddress","arrowSelect","activeKey","code","Object","keys","find","key","address","a","id","api","detailsMulti","i","input","selectedAddress","dataset","getAutocompleteDetails","details","blur","description","emit","presel","parentElement","n","options","querySelectorAll","num","fromTrigger","forEach","result","itemList","setAttribute","innerHTML","highlight","className","firstChild","click","el","BaseComponent","element","_componentElement","_checkMessages","compOptions","filter","entry","includes","optionValue","cleanEntry","cleanOptionKey","JSON","parse","replace","convertType","deepFreeze","getAttribute","events","cb","elements","Bean","stopPropagation","one","off","fire","container","message","_loading","EMIT","CUSTOM_MESSAGES","LOADER_EVENTS","show","icon","setTimeout","hide","option","optionReturn","str","charAt","toLocaleLowerCase","slice","BaseGiaComponent","axios","Axios","create","transformRequest","data","headers","skiptransform","entries","formData","FormData","append","recaptchaToken","googleRecaptchaAction","googleRecaptchaClientSide","Promise","resolve","reject","window","grecaptcha","ready","execute","action","token","defaults","common","interceptors","request","use","config","googleRecaptchaToken","response","commonInterface","CommonInterface","pushState","replaceState","history","redirectUrl","location","href","hrefUrl","paybackParam","isPaybackPopupActive","indexOf","trialParam","subscriptionTrialModalNotEligibleAfterLogin","fromEntries","res","notificationPush","showNotification","pushPromoPre","orderedPush","sort","promoA","promoB","rank","notifications","pushPromoPost","CancelToken","get","post","all","spread","initWoosmapScript","woosmapKey","script","src","defer","initMap","event","Event","dispatchEvent","head","onload","geolocation","success","ipCoord","latitude","longitude","distanceMatrix","origin","destinations","url","lat","lng","map","destination","rows","autocompleteLocalties","searchInputId","autocompleteOptions","woosmap","localities","Autocomplete","multisearch","apiOrder","fallbackBreakpoint","params","components","country","language","types","places","getKmFromDistanceText","distanceText","distancePart","split","distanceValue","cm","m","km","toLowerCase","reverseGeocoding","getPositionObject","position","renderRouteResult","legs","routes","end_address","start_location","end_location","distance","text","duration","steps","step","instructions","summary","renderTransitRouteResult","route","seconds","hours","Math","floor","remainingSeconds","minutes","leg","type","travel_mode","name","transport","mode","short_name","long_name"],"mappings":"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","file":"js/component-WoosmapMultiSearchComponent-js.chunks.js","sourcesContent":["import { debounce } from 'underscore';\nimport BaseComponent from '../base/baseComponent';\nimport customEventBus from '../libs/Eventbus';\nimport { autocompleteMultisearch, initWoosmapMultiSearchScript } from '../utilities/woosmapUtils';\n\nexport default class WoosmapMultiSearchComponent extends BaseComponent {\n get WOOSMAP_KEY() {\n return this.$options.wmkey;\n }\n\n get PREVIOUS_SEARCH() {\n if (!this.previousSearch) {\n this.previousSearch = '';\n }\n return this.previousSearch;\n }\n\n get PAC_CONTAINER() {\n if (!this.pacContainer) {\n this.pacContainer = document.createElement('div');\n this.pacContainer.classList.add('pac-container');\n this.pacContainer.classList.add('maps');\n }\n return this.pacContainer;\n }\n\n get CLASSES() {\n return {\n typing: 'typing'\n };\n }\n\n constructor(elm) {\n super(elm);\n\n const { parentNode } = this.$el;\n\n this.clearPositionSelector = parentNode.querySelector('.clear-position');\n this.searchContainerSelector = parentNode;\n this.storeCity = this.$options.storeCity;\n\n initWoosmapMultiSearchScript();\n\n // events\n document.body.addEventListener('woosmap:multisearch:loaded', this.woosmapLoaded.bind(this));\n\n customEventBus.on('woosmap:multisearch:autocomplete', this.triggerAutocomplete.bind(this));\n\n this.$on('input', debounce(this.autocomplete.bind(this), 400), this.$el);\n this.$on('keydown', this.inputKeyboardInteraction.bind(this), this.$el);\n this.$on('blur', this.autocompleteBlur.bind(this), this.$el);\n this.$on('click', this.clearPosition.bind(this), this.clearPositionSelector);\n }\n\n triggerAutocomplete({ value }) {\n this.$el.value = value;\n this.autocompleteInstance\n .autocompleteMulti(value)\n .then((results) => this.renderPredictions(results, this.$el, true))\n .catch(console.error);\n }\n\n woosmapLoaded() {\n this.autocompleteInstance = autocompleteMultisearch(this.WOOSMAP_KEY);\n }\n\n clearPosition(e) {\n e.preventDefault();\n this.$el.value = '';\n this.searchContainerSelector.classList.remove(this.CLASSES.typing);\n this.clearList();\n }\n\n autocomplete(e) {\n const { currentTarget } = e;\n const inputValue = currentTarget.value.trim();\n const place = this.PAC_CONTAINER;\n\n const parentNode = currentTarget.parentNode;\n parentNode.appendChild(place);\n\n if (inputValue.length === 0 && e.keyCode === 8) {\n parentNode.classList.remove(this.CLASSES.typing);\n this.clearList();\n } else {\n parentNode.classList.add(this.CLASSES.typing);\n }\n\n if (inputValue !== this.PREVIOUS_SEARCH) {\n this.previousSearch = inputValue;\n\n if (inputValue.length > 0) {\n this.autocompleteInstance\n .autocompleteMulti(inputValue)\n .then((results) => this.renderPredictions(results, currentTarget))\n .catch(console.error);\n }\n }\n\n if (place) {\n if (inputValue.length > 1 && e.keyCode !== 13) {\n place.classList.add('not-found');\n } else {\n place.classList.remove('not-found');\n }\n }\n }\n\n inputKeyboardInteraction(e) {\n const keyMap = {\n Enter: 13,\n ArrowDown: 40,\n ArrowUp: 38\n };\n\n const actionMap = {\n Enter: () => {\n e.preventDefault();\n const index = this.numberSelected > 0 ? this.numberSelected - 1 : 0;\n this.selectAddress(index, e.currentTarget);\n },\n ArrowDown: () => this.arrowSelect(1),\n ArrowUp: () => this.arrowSelect(-1)\n };\n\n const activeKey = e.code || Object.keys(keyMap).find((key) => keyMap[key] === e.keyCode);\n\n if (activeKey && actionMap[activeKey]) {\n actionMap[activeKey]();\n }\n }\n\n async getAutocompleteDetails(address) {\n const { id, api } = address;\n return await this.autocompleteInstance.detailsMulti({ id, api });\n }\n\n async selectAddress(i, input) {\n if (!this.selectedAddress) {\n return;\n }\n\n const { autocomplete } = input.dataset;\n\n let index = i || 0;\n let address = this.selectedAddress[index];\n let details = await this.getAutocompleteDetails(address);\n\n this.PAC_CONTAINER.classList.add('d-none');\n input.blur();\n input.value = address.description;\n customEventBus.emit('woosmap:select', { autocomplete, details });\n }\n\n autocompleteBlur(e) {\n this.numberSelected = 0;\n let presel = this.$el.parentElement.querySelector('.pac-item-selected');\n if (presel) {\n presel.classList.remove('pac-item-selected');\n }\n let place = this.PAC_CONTAINER;\n if (place) {\n place.classList.remove('not-found');\n }\n }\n\n arrowSelect(n) {\n let options = this.$el.parentNode.querySelectorAll('.pac-item');\n let presel = this.$el.parentNode.querySelector('.pac-item-selected');\n if (presel) {\n presel.classList.remove('pac-item-selected');\n }\n\n let num = this.numberSelected + n;\n if (num > options.length) {\n num = 1;\n } else if (num < 1) {\n num = options.length;\n }\n this.numberSelected = num;\n options[num - 1].classList.add('pac-item-selected');\n }\n\n renderPredictions(results, input, fromTrigger) {\n this.clearList();\n this.numberSelected = 0;\n\n if (!results || results.length === 0) {\n this.selectedAddress = null;\n return;\n }\n\n this.selectedAddress = results;\n\n results.forEach((result, i) => {\n let itemList = document.createElement('p');\n itemList.setAttribute('class', 'pac-item');\n itemList.setAttribute('placeid', result.id);\n itemList.setAttribute('api', result.api);\n itemList.innerHTML = result.highlight;\n\n this.$on('click', this.selectAddress.bind(this, i, input), itemList);\n this.PAC_CONTAINER.appendChild(itemList);\n });\n\n if (results.length > 0) {\n this.PAC_CONTAINER.className = 'pac-container predictions maps ' + results[0].api;\n }\n\n customEventBus.emit('woosmap:predictions', results);\n\n if (fromTrigger && this.storeCity) {\n this.PAC_CONTAINER.firstChild.click();\n }\n }\n\n clearList() {\n this.$el.parentNode.querySelectorAll('.pac-item').forEach((el) => el.remove());\n customEventBus.emit('woosmap:clear');\n }\n}\n","/* eslint-disable new-cap */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-underscore-dangle */\n\nimport Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport BaseGiaComponent from './baseGiaComponent';\n\nexport default class BaseComponent extends BaseGiaComponent {\n /**\n * @returns {HTMLElement}\n */\n get $el() {\n return /** @type {HTMLElement} */ (this._componentElement);\n }\n\n get $options() {\n const compOptions = {};\n const options = { ...this.$el.dataset };\n const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n optionsEntires.forEach((entry) => {\n const cleanEntry = BaseComponent.cleanOptionKey(entry);\n let optionValue;\n if (options[entry].includes('{') && options[entry].includes('}')) {\n optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n } else {\n optionValue = BaseComponent.convertType(options[entry]);\n }\n compOptions[cleanEntry] = optionValue;\n });\n return deepFreeze(compOptions);\n }\n\n get COMPONENT_NAME() {\n return this.$el.getAttribute('data-component');\n }\n\n /**\n *\n * constructor\n *\n * @param {Element} element\n */\n constructor(element) {\n super(element);\n this._componentElement = element;\n this._componentElement.setAttribute('data-component-init', 'true');\n this._checkMessages();\n }\n\n static convertType(option) {\n let optionReturn;\n switch (option) {\n case 'false':\n optionReturn = false;\n break;\n case 'true':\n optionReturn = true;\n break;\n case 'null':\n optionReturn = null;\n break;\n default:\n optionReturn = option;\n break;\n }\n\n return optionReturn;\n }\n\n static cleanOptionKey(key) {\n const str = key.replace('option', '');\n return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n }\n\n /**\n *\n * $on\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n * @param {Array|String|Element} [elements = null]\n */\n $on(events, cb, element = this.$el, elements = null) {\n if (!element || !events || !cb) return;\n if (!elements) {\n Bean.on(element, events, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n } else {\n Bean.on(element, events, elements, (e) => {\n if (e) e.stopPropagation();\n cb(e);\n });\n }\n }\n\n /**\n *\n * $one\n *\n * @param {String} events\n * @param {Function} cb\n * @param {Element} [element = this.$el]\n */\n $one(events, cb, element = this.$el) {\n Bean.one(element, events, cb);\n }\n\n /**\n *\n * $off\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $off(events, element = this.$el) {\n Bean.off(element, events);\n }\n\n /**\n *\n * $fire\n *\n * @param {String} events\n * @param {Element} [element = this.$el]\n */\n $fire(events, element = this.$el) {\n Bean.fire(element, events);\n }\n\n /**\n *\n * Activate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n */\n loading(container, message) {\n this._loading = true;\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.show, {\n container: container || document.body,\n message: message ?? null\n });\n }\n\n /**\n *\n * Deactivate loader\n *\n * @param {HTMLElement} [container]\n * @param {String} [message]\n * @param {Boolean} [error=false]\n * @param {String} [icon]\n */\n endLoading(container, message, error = false, icon) {\n this._loading = false;\n setTimeout(() => {\n if (!this._loading) {\n this.EMIT(this.CUSTOM_MESSAGES.LOADER_EVENTS.hide, {\n container: container || document.body,\n message,\n error,\n icon\n });\n }\n }, 400);\n }\n}\n","import Axios from 'axios';\nimport CommonInterface from '../base/commonInterface';\nimport CustomMessages from '../constants/customMessages';\n\n\nconst axios = Axios.create({\n transformRequest: [function (data, headers) {\n if (headers && headers.skiptransform) {\n delete headers.skiptransform;\n return data;\n }\n if (data && Object.entries(data)) {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n formData.append(key, value);\n }\n return formData;\n }\n }],\n});\n\nconst recaptchaToken = async ({ googleRecaptchaAction, googleRecaptchaClientSide }) => new Promise((resolve, reject) => {\n window.grecaptcha.ready(() => {\n window.grecaptcha.execute(googleRecaptchaClientSide, { action: googleRecaptchaAction }).then((token) => {\n resolve(token);\n });\n });\n});\n\naxios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n// Add a request interceptor\naxios.interceptors.request.use(async (config) => {\n // Do something before request is sent\n if (config.data && config.data.googleRecaptchaAction && config.data.googleRecaptchaClientSide && window.grecaptcha) {\n const token = await recaptchaToken(config.data);\n config.data.googleRecaptchaToken = token;\n return config;\n }\n return config;\n}, function (error) {\n // Do something with request error\n return Promise.reject(error);\n});\n\n// Add a response interceptor\naxios.interceptors.response.use(function (response) {\n let commonInterface = new CommonInterface();\n if (response.data && response.data.pushState || response.data.replaceState) {\n response.data.pushState && history.pushState({}, '', response.data.pushState);\n response.data.replaceState && history.replaceState({}, '', response.data.replaceState);\n if (response.data.redirectUrl) {\n setTimeout(() => {\n location.href = response.data.redirectUrl;\n }, 500);\n }\n }\n else if (response.data && response.data.redirectUrl) {\n let hrefUrl=response.data.redirectUrl;\n let paybackParam = '';\n if (response.data.isPaybackPopupActive) {\n paybackParam = hrefUrl.indexOf('?') > -1 ? '&isPaybackPopupActive=true' : '?isPaybackPopupActive=true';\n }\n hrefUrl =hrefUrl+paybackParam;\n let trialParam = '';\n if (response.data.subscriptionTrialModalNotEligibleAfterLogin) {\n trialParam = hrefUrl.indexOf('?') > -1 ? '&subscriptionTrialModalNotEligibleAfterLogin=true' : '?subscriptionTrialModalNotEligibleAfterLogin=true';\n } \n location.href = hrefUrl+trialParam;\n }\n if (response.data && response.data.error) {\n if(response.config.data instanceof FormData) {\n response.config.data = Object.fromEntries(response.config.data);\n response.config.headers['Content-Type'] = \"application/json\"\n }\n commonInterface.EMIT(`error.${response.data.error}`, {res: response});\n }\n\n if (response.data && response.data.notificationPush && response.data.notificationPush.showNotification) {\n commonInterface.EMIT(`notification:push`, response.data.notificationPush);\n }\n\n if (response.data && response.data.pushPromoPre && response.data.pushPromoPre.length > 0) {\n const orderedPush = response.data.pushPromoPre.sort(function(promoA, promoB) {\n return promoA.rank > promoB.rank ? -1 : promoB.rank > promoA.rank ? 1 : 0;\n });\n commonInterface.EMIT(`notification:pushFirstAvailable`, { notifications: orderedPush });\n }\n \n if (response.data && response.data.pushPromoPost) {\n commonInterface.EMIT(`notification:pushall`, response.data.pushPromoPost);\n }\n\n\n // Any status code that lie within the range of 2xx cause this function to trigger\n // Do something with response data\n return response;\n}, function (error) {\n if (error.response?.data && error.response?.data?.redirectUrl) {\n location.href = error.response.data.redirectUrl;\n }\n\n // Any status codes that falls outside the range of 2xx cause this function to trigger\n // Do something with response error\n return Promise.reject(error);\n});\n\nexport const { CancelToken } = Axios;\n\nexport const {\n get, post, all, spread, request\n} = axios;\n","'use strict';\n\n/// <reference types=\"woosmap\" />\n/* global woosmap */\n\nimport { get } from '../libs/Axios';\n\nexport async function initWoosmapScript(woosmapKey) {\n // Create the script tag, set the appropriate attributes\n const script = document.createElement('script');\n script.src = `https://sdk.woosmap.com/map/map.js?key=${woosmapKey}&callback=initMap`;\n script.defer = true;\n\n // The callback function\n window.initMap = function() {\n // JS API is loaded and available\n const event = new Event('woosmap:loaded');\n document.body.dispatchEvent(event);\n };\n\n // Append the 'script' element to 'head'\n document.head.appendChild(script);\n}\n\nexport async function initWoosmapMultiSearchScript() {\n // Create the script tag, set the appropriate attributes\n const event = new Event('woosmap:multisearch:loaded');\n const script = document.createElement('script');\n script.src = `https://sdk.woosmap.com/multisearch/multisearch.js`;\n script.defer = true;\n\n script.onload = () => document.body.dispatchEvent(event);\n\n // Append the 'script' element to 'head'\n document.body.appendChild(script);\n}\n/**\n * @returns {Promise<woosmap.geolocationResponse>}\n */\nexport async function geolocation(key) {\n let result = { success: false };\n try {\n let ipCoord = await get(`https://api.woosmap.com/geolocation/position/?key=${key}`);\n result = { success: true, latitude: ipCoord.data.latitude, longitude: ipCoord.data.longitude };\n } catch (e) {\n console.error(e);\n }\n return result;\n}\n\n/**\n * @typedef {Object} positionLiteral\n * @property {number} lat\n * @property {number} lng\n */\n/**\n * @param {positionLiteral} origin\n * @param {positionLiteral[]} destinations\n */\nexport async function distanceMatrix(origin, destinations, key) {\n let result = { success: false };\n if (destinations.length === 0) return result;\n let url = `https://api.woosmap.com/distance/distancematrix/json?origins=${origin.lat},${origin.lng}&destinations=${destinations[0].lat},${destinations[0].lng}`;\n destinations.slice(1, 200).map((destination) => (url += `|${destination.lat},${destination.lng}`));\n url += `&elements=duration_distance&key=${key}`;\n try {\n const { data } = await get(url);\n result = { ...result, success: true, rows: data.rows };\n } catch (e) {\n console.error(e);\n }\n return result;\n}\n\nexport async function autocompleteLocalties(searchInputId, autocompleteOptions) {\n // eslint-disable-next-line no-undef\n return new woosmap.localities.Autocomplete(searchInputId, autocompleteOptions);\n}\n\nexport function autocompleteMultisearch(woosmapKey) {\n return new woosmap.multisearch({\n apiOrder: ['localities', 'address', 'places'],\n localities: {\n key: woosmapKey,\n fallbackBreakpoint: 0.4,\n params: {\n components: {\n country: ['it']\n },\n language: 'it',\n types: []\n }\n },\n address: {\n key: woosmapKey,\n fallbackBreakpoint: 0.4,\n params: {\n components: {\n country: ['it']\n },\n language: 'it',\n types: []\n }\n },\n places: {\n key: woosmapKey,\n params: {\n components: {\n country: ['it']\n },\n language: 'it',\n types: []\n }\n }\n });\n}\n\nexport function getKmFromDistanceText(distanceText) {\n const unitConversion = {\n cm: 0.00001,\n m: 0.001,\n km: 1\n };\n\n let distancePart = distanceText.split(' ');\n let distanceValue = +distancePart[0];\n let distanceUnit = distancePart[1];\n return unitConversion[distanceUnit.toLowerCase()] * distanceValue;\n}\n\nexport async function reverseGeocoding(key, lat, lng) {\n try {\n const { data } = await get(`https://api.woosmap.com/localities/geocode?key=${key}&latlng=${lat},${lng}`);\n return data;\n } catch (e) {\n console.error(e);\n }\n}\n\nexport function loadWoosmapCSS() {\n var file = document.createElement('link');\n file.setAttribute('rel', 'stylesheet');\n file.setAttribute('href', 'https://sdk.woosmap.com/localities/style.2.0.css');\n document.head.appendChild(file);\n}\n\n/**\n *\n * @param {woosmap.map.LatLng} position\n * @returns { {lat: number, lng: number} }\n */\nexport function getPositionObject(position) {\n return { lat: position.lat(), lng: position.lng() };\n}\n\n/**\n *\n * @param { {status: String, result: Array<any>} } result\n * @returns { Object }\n */\nexport function renderRouteResult(result) {\n const legs = result.routes[0]?.legs[0];\n return {\n end_address: legs?.end_address,\n start_location: legs?.start_location,\n end_location: legs?.end_location,\n distance: legs?.distance.text,\n duration: legs?.duration.text,\n steps: legs?.steps.map((step) => {\n let { instructions, distance, duration } = step;\n let { summary } = instructions;\n return {\n summary,\n distance,\n duration\n };\n })\n };\n}\n\n/**\n *\n * @param {Number} seconds\n * @returns {String}\n */\nfunction formatDuration(seconds) {\n const hours = Math.floor(seconds / 3600);\n const remainingSeconds = seconds % 3600;\n const minutes = Math.floor(remainingSeconds / 60);\n return `${hours} ore ${minutes} minuti`;\n}\n\n// @TODO i seguenti testi sono da spostare sulle traduzioni... (prima o poi)\n/**\n *\n * @param {*} result\n * @returns { Array<any> }\n */\nexport function renderTransitRouteResult(result) {\n return {\n start_location: result.routes[0]?.legs[0]?.start_location?.location,\n routes: result.routes.map((route) => ({\n duration: formatDuration(route.duration),\n legs: route.legs.map((leg) => {\n if (leg.end_location.type === 'place') {\n return 'Sei arrivato a destinazione';\n }\n\n if (leg.travel_mode === 'pedestrian') {\n return `Procedi a piedi verso ${leg.end_location.name}`;\n }\n\n if (leg.travel_mode === 'transit') {\n const { mode, short_name, long_name } = leg.transport;\n\n if (mode === 'bus' || mode === 'lightRail' || mode === 'subway') {\n const transportType = mode === 'bus' ? 'il bus' : mode === 'subway' ? 'la metro' : 'il tram';\n return `Prendi ${transportType} ${short_name || ''} e scendi alla fermata ${leg.end_location.name}`;\n }\n\n if (['highSpeedTrain', 'intercityTrain', 'interRegionalTrain', 'regionalTrain', 'cityTrain'].includes(mode)) {\n return `Prendi il treno ${long_name || ''} e scendi alla fermata ${leg.end_location.name}`;\n }\n\n if (mode === 'ferry') {\n return `Prendi il traghetto da ${leg.start_location.name} verso ${leg.end_location.name}`;\n }\n\n return `Prendi ${mode} e scendi alla fermata ${leg.end_location.name}`;\n }\n\n return 'Percorso non definito';\n })\n }))\n };\n}\n"],"sourceRoot":""}