{"version":3,"file":"google-maps-JG_8MUUQ.js","sources":["../../../app/frontend/entrypoints/admin/modules/google-maps.js"],"sourcesContent":["export function searchPlaces(query, radius, location) {\n  return new Promise((resolve, reject) => {\n    // Ensure that the map object is available or create a dummy one\n    const map = new google.maps.Map(document.createElement('div'));\n    const service = new google.maps.places.PlacesService(map);\n    const latlng = new google.maps.LatLng(location.latitude, location.longitude)\n\n    service.textSearch({\n      query: query,\n      type: 'gas_station',\n      locationRestriction: {\n        circle: {\n          center: latlng,\n          radius: radius\n        }\n      }\n    }, (results, status) => {\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        const places = results.map((result) => {\n          return placeToJson(result)\n        })\n        resolve(places);\n      } else {\n        reject(new Error(`Place text search request failed. Status: ${status}`));\n      }\n    });\n  });\n}\n\nexport function fetchPlace(placeId) {\n  return new Promise((resolve, reject) => {\n    // Ensure that the map object is available or create a dummy one\n    const map = new google.maps.Map(document.createElement('div'));\n    const service = new google.maps.places.PlacesService(map);\n\n    const request = {\n      placeId: placeId,\n      fields: ['name', 'address_components', 'adr_address',\n        'business_status', 'formatted_address', 'icon', 'icon_mask_base_uri',\n        'icon_background_color', 'photo', 'place_id', 'type', 'url', 'vicinity', 'website', 'formatted_phone_number',\n        'current_opening_hours', 'opening_hours', 'rating', 'geometry']\n    };\n\n    service.getDetails(request, (place, status) => {\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        resolve(placeToJson(place));\n      } else {\n        reject(new Error(`Place details request failed. Status: ${status}`));\n      }\n    });\n  });\n}\n\n\nfunction placeToJson(place) {\n  // Helper function to handle LatLng objects\n  const latLngToJson = (latLng) => latLng ? { lat: latLng.lat(), lng: latLng.lng() } : null;\n\n  // Helper function to handle nested objects\n  const objectToJson = (obj) => {\n    if (!obj) return null;\n    return Object.keys(obj).reduce((acc, key) => {\n      acc[key] = convertToJson(obj[key]);\n      return acc;\n    }, {});\n  };\n\n  // Main conversion function\n  const convertToJson = (value) => {\n    if (value instanceof google.maps.LatLng) {\n      return latLngToJson(value);\n    } else if (value instanceof google.maps.LatLngBounds) {\n      return {\n        northeast: latLngToJson(value.getNorthEast()),\n        southwest: latLngToJson(value.getSouthWest())\n      };\n    } else if (Array.isArray(value)) {\n      return value.map(convertToJson);\n    } else if (typeof value === 'object' && value !== null) {\n      return objectToJson(value);\n    }\n    return value;\n  };\n\n  // Convert the entire place object\n  return convertToJson(place);\n}"],"names":["searchPlaces","query","radius","location","resolve","reject","map","service","latlng","results","status","places","result","placeToJson","fetchPlace","placeId","request","place","latLngToJson","latLng","objectToJson","obj","acc","key","convertToJson","value"],"mappings":"AAAO,SAASA,EAAaC,EAAOC,EAAQC,EAAU,CACpD,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CAEtC,MAAMC,EAAM,IAAI,OAAO,KAAK,IAAI,SAAS,cAAc,KAAK,CAAC,EACvDC,EAAU,IAAI,OAAO,KAAK,OAAO,cAAcD,CAAG,EAClDE,EAAS,IAAI,OAAO,KAAK,OAAOL,EAAS,SAAUA,EAAS,SAAS,EAE3EI,EAAQ,WAAW,CACjB,MAAON,EACP,KAAM,cACN,oBAAqB,CACnB,OAAQ,CACN,OAAQO,EACR,OAAQN,CACT,CACF,CACP,EAAO,CAACO,EAASC,IAAW,CACtB,GAAIA,IAAW,OAAO,KAAK,OAAO,oBAAoB,GAAI,CACxD,MAAMC,EAASF,EAAQ,IAAKG,GACnBC,EAAYD,CAAM,CAC1B,EACDR,EAAQO,CAAM,CACtB,MACQN,EAAO,IAAI,MAAM,6CAA6CK,CAAM,EAAE,CAAC,CAE/E,CAAK,CACL,CAAG,CACH,CAEO,SAASI,EAAWC,EAAS,CAClC,OAAO,IAAI,QAAQ,CAACX,EAASC,IAAW,CAEtC,MAAMC,EAAM,IAAI,OAAO,KAAK,IAAI,SAAS,cAAc,KAAK,CAAC,EACvDC,EAAU,IAAI,OAAO,KAAK,OAAO,cAAcD,CAAG,EAElDU,EAAU,CACd,QAASD,EACT,OAAQ,CAAC,OAAQ,qBAAsB,cACrC,kBAAmB,oBAAqB,OAAQ,qBAChD,wBAAyB,QAAS,WAAY,OAAQ,MAAO,WAAY,UAAW,yBACpF,wBAAyB,gBAAiB,SAAU,UAAU,CACtE,EAEIR,EAAQ,WAAWS,EAAS,CAACC,EAAOP,IAAW,CACzCA,IAAW,OAAO,KAAK,OAAO,oBAAoB,GACpDN,EAAQS,EAAYI,CAAK,CAAC,EAE1BZ,EAAO,IAAI,MAAM,yCAAyCK,CAAM,EAAE,CAAC,CAE3E,CAAK,CACL,CAAG,CACH,CAGA,SAASG,EAAYI,EAAO,CAE1B,MAAMC,EAAgBC,GAAWA,EAAS,CAAE,IAAKA,EAAO,IAAG,EAAI,IAAKA,EAAO,IAAK,CAAA,EAAK,KAG/EC,EAAgBC,GACfA,EACE,OAAO,KAAKA,CAAG,EAAE,OAAO,CAACC,EAAKC,KACnCD,EAAIC,CAAG,EAAIC,EAAcH,EAAIE,CAAG,CAAC,EAC1BD,GACN,CAAE,CAAA,EAJY,KAQbE,EAAiBC,GACjBA,aAAiB,OAAO,KAAK,OACxBP,EAAaO,CAAK,EAChBA,aAAiB,OAAO,KAAK,aAC/B,CACL,UAAWP,EAAaO,EAAM,cAAc,EAC5C,UAAWP,EAAaO,EAAM,cAAc,CACpD,EACe,MAAM,QAAQA,CAAK,EACrBA,EAAM,IAAID,CAAa,EACrB,OAAOC,GAAU,UAAYA,IAAU,KACzCL,EAAaK,CAAK,EAEpBA,EAIT,OAAOD,EAAcP,CAAK,CAC5B"}