From d000e782df3540e119f08aad45897897d5a9f4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=BDdila?= Date: Fri, 3 Mar 2023 11:54:39 +0100 Subject: [PATCH] updated geocoding API --- dist/maptiler-client.cjs | 87 ++++--- dist/maptiler-client.cjs.map | 2 +- dist/maptiler-client.d.ts | 81 ++++--- dist/maptiler-client.min.mjs | 2 +- dist/maptiler-client.mjs | 87 ++++--- dist/maptiler-client.mjs.map | 2 +- dist/maptiler-client.umd.js | 87 ++++--- dist/maptiler-client.umd.js.map | 2 +- dist/maptiler-client.umd.min.js | 2 +- docs/assets/search.js | 2 +- docs/classes/config.ClientConfig.html | 18 +- .../services_ServiceError.ServiceError.html | 14 +- .../language.getAutoLanguageGeocoding.html | 10 +- docs/functions/services_simplify.default.html | 10 +- docs/index.html | 8 +- docs/modules.html | 8 +- docs/modules/config.html | 10 +- docs/modules/language.html | 10 +- docs/modules/services_ServiceError.html | 10 +- docs/modules/services_coordinates.html | 10 +- docs/modules/services_data.html | 10 +- docs/modules/services_geocoding.html | 18 +- docs/modules/services_geolocation.html | 10 +- docs/modules/services_simplify.html | 10 +- docs/modules/services_staticMaps.html | 10 +- docs/types/config.FetchFunction.html | 10 +- .../language.LanguageGeocodingString.html | 10 +- ...services_coordinates.CoordinateExport.html | 10 +- .../services_coordinates.CoordinateGrid.html | 10 +- .../services_coordinates.CoordinateId.html | 10 +- ...services_coordinates.CoordinateSearch.html | 10 +- ...es_coordinates.CoordinateSearchResult.html | 10 +- ...coordinates.CoordinateTransformResult.html | 10 +- ..._coordinates.CoordinateTransformation.html | 10 +- ..._coordinates.CoordinatesSearchOptions.html | 12 +- ...ordinates.CoordinatesTransformOptions.html | 12 +- docs/types/services_coordinates.XYZ.html | 10 +- docs/types/services_data.GetDataOptions.html | 12 +- ...rvices_geocoding.ByIdGeocodingOptions.html | 63 ++++++ ...mmonForwardAndReverseGeocodingOptions.html | 63 ++++++ .../types/services_geocoding.Coordinates.html | 15 +- .../services_geocoding.FeatureHierarchy.html | 15 +- .../services_geocoding.GeocodingFeature.html | 15 +- .../services_geocoding.GeocodingOptions.html | 36 +-- ...vices_geocoding.GeocodingSearchResult.html | 15 +- ...es_geocoding.LanguageGeocodingOptions.html | 70 ++++++ ...ces_geocoding.ReverseGeocodingOptions.html | 28 +-- ...es_geolocation.GeolocationInfoOptions.html | 12 +- ...ervices_geolocation.GeolocationResult.html | 10 +- ..._staticMaps.AutomaticStaticMapOptions.html | 10 +- ...es_staticMaps.BoundedStaticMapOptions.html | 10 +- ...s_staticMaps.CenteredStaticMapOptions.html | 10 +- ...vices_staticMaps.StaticMapBaseOptions.html | 12 +- .../services_staticMaps.StaticMapMarker.html | 10 +- docs/variables/config.config.html | 10 +- .../variables/language.LanguageGeocoding.html | 10 +- .../services_coordinates.coordinates.html | 10 +- docs/variables/services_data.data.html | 10 +- .../services_geocoding.geocoding.html | 48 +++- .../services_geolocation.geolocation.html | 10 +- .../services_staticMaps.staticMaps.html | 10 +- docsmd/README.md | 141 ++++++------ docsmd/classes/ClientConfig.md | 10 +- docsmd/classes/MapStyleVariant.md | 26 +-- docsmd/classes/ReferenceMapStyle.md | 18 +- docsmd/classes/ServiceError.md | 6 +- package-lock.json | 4 +- package.json | 2 +- src/index.ts | 4 + src/services/coordinates.ts | 4 +- src/services/data.ts | 2 +- src/services/geocoding.ts | 213 +++++++++++++----- src/services/geolocation.ts | 2 +- src/services/staticMaps.ts | 2 +- 74 files changed, 1004 insertions(+), 588 deletions(-) create mode 100644 docs/types/services_geocoding.ByIdGeocodingOptions.html create mode 100644 docs/types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html create mode 100644 docs/types/services_geocoding.LanguageGeocodingOptions.html diff --git a/dist/maptiler-client.cjs b/dist/maptiler-client.cjs index 2f19ffe..2f2f45e 100644 --- a/dist/maptiler-client.cjs +++ b/dist/maptiler-client.cjs @@ -193,6 +193,30 @@ const customMessages$3 = { 400: "Query too long / Invalid parameters", 403: "Key is missing, invalid or restricted" }; +function addLanguageGeocodingOptions(searchParams, options) { + if (options.language == void 0) { + return; + } + const languages = Array.from( + new Set( + (Array.isArray(options.language) ? options.language : [options.language]).map( + (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang + ) + ) + ).join(","); + searchParams.set("language", languages); +} +function addCommonForwardAndReverseGeocodingOptions(searchParams, options) { + var _a; + searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); + if (options.limit != void 0) { + searchParams.set("limit", String(options.limit)); + } + if (options.types != void 0) { + searchParams.set("types", options.types.join(",")); + } + addLanguageGeocodingOptions(searchParams, options); +} function forward(_0) { return __async$3(this, arguments, function* (query, options = {}) { var _a; @@ -203,30 +227,27 @@ function forward(_0) { `geocoding/${encodeURIComponent(query)}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("bbox" in options) { - endpoint.searchParams.set("bbox", options.bbox.join(",")); + const { searchParams } = endpoint; + addCommonForwardAndReverseGeocodingOptions(searchParams, options); + if (options.bbox != void 0) { + searchParams.set("bbox", options.bbox.join(",")); } - if ("proximity" in options) { - endpoint.searchParams.set("proximity", options.proximity.join(",")); + if (options.proximity != void 0) { + searchParams.set("proximity", options.proximity.join(",")); } - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + if (options.country != void 0) { + searchParams.set("country", options.country.join(",")); + } + if (options.fuzzyMatch != void 0) { + searchParams.set("fuzzyMatch", options.fuzzyMatch ? "true" : "false"); + } + if (options.autocomplete != void 0) { + searchParams.set("autocomplete", options.autocomplete ? "true" : "false"); } const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -242,24 +263,25 @@ function reverse(_0) { `geocoding/${position[0]},${position[1]}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options); + const urlWithParams = endpoint.toString(); + const res = yield callFetch(urlWithParams); + if (!res.ok) { + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } + const obj = yield res.json(); + return obj; + }); +} +function byId(_0) { + return __async$3(this, arguments, function* (id, options = {}) { + var _a; + const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL); + addLanguageGeocodingOptions(endpoint.searchParams, options); const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -268,6 +290,7 @@ function reverse(_0) { const geocoding = { forward, reverse, + byId, language: LanguageGeocoding }; diff --git a/dist/maptiler-client.cjs.map b/dist/maptiler-client.cjs.map index df1548d..27a4c72 100644 --- a/dist/maptiler-client.cjs.map +++ b/dist/maptiler-client.cjs.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.cjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type GeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"bbox\" in options) {\n endpoint.searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (\"proximity\" in options) {\n endpoint.searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\nexport type ReverseGeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information abou this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maptiler-client.cjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":";;;;AAEA,SAAS,eAAkB,GAAA;AAEzB,EAAI,IAAA,OAAO,SAAS,WAAa,EAAA;AAC/B,IAAO,OAAA,KAAA,CAAM,KAAK,IAAI,CAAA,CAAA;AAAA,GACxB;AAEA,EAAA,IAAI,OAAO,MAAA,KAAW,WAAe,IAAA,MAAA,CAAO,KAAO,EAAA;AACjD,IAAA,OAAO,MAAO,CAAA,KAAA,CAAA;AAAA,GAChB;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAKA,MAAM,YAAa,CAAA;AAAA,EAAnB,WAAA,GAAA;AAIE;AAAA;AAAA;AAAA,IAAA,IAAA,CAAQ,OAAU,GAAA,EAAA,CAAA;AAMlB;AAAA;AAAA;AAAA;AAAA,IAAA,IAAA,CAAQ,SAA+B,eAAgB,EAAA,CAAA;AAAA,GAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,IAAI,OAAO,CAAW,EAAA;AACpB,IAAA,IAAA,CAAK,OAAU,GAAA,CAAA,CAAA;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAiB,GAAA;AACnB,IAAA,OAAO,IAAK,CAAA,OAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAM,CAAkB,EAAA;AAC1B,IAAA,IAAA,CAAK,MAAS,GAAA,CAAA,CAAA;AAAA,GAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,KAA8B,GAAA;AAChC,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;AAAA,GACd;AACF,CAAA;AAKM,MAAA,MAAA,GAAS,IAAI,YAAa;;AC3DhC,MAAM,iBAAoB,GAAA;AAAA,EACxB,IAAM,EAAA,MAAA;AAAA,EACN,QAAU,EAAA,IAAA;AAAA,EACV,MAAQ,EAAA,IAAA;AAAA,EACR,QAAU,EAAA,IAAA;AAAA,EACV,WAAa,EAAA,IAAA;AAAA,EACb,WAAa,EAAA,IAAA;AAAA,EACb,OAAS,EAAA,IAAA;AAAA,EACT,MAAQ,EAAA,IAAA;AAAA,EACR,SAAW,EAAA,IAAA;AAAA,EACX,OAAS,EAAA,IAAA;AAAA,EACT,OAAS,EAAA,IAAA;AAAA,EACT,QAAU,EAAA,IAAA;AAAA,EACV,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,KAAO,EAAA,IAAA;AAAA,EACP,OAAS,EAAA,IAAA;AAAA,EACT,SAAW,EAAA,IAAA;AAAA,EACX,QAAU,EAAA,IAAA;AAAA,EACV,OAAS,EAAA,IAAA;AAAA,EACT,MAAQ,EAAA,IAAA;AAAA,EACR,OAAS,EAAA,IAAA;AAAA,EACT,QAAU,EAAA,IAAA;AAAA,EACV,MAAQ,EAAA,IAAA;AAAA,EACR,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,SAAW,EAAA,IAAA;AAAA,EACX,SAAW,EAAA,IAAA;AAAA,EACX,KAAO,EAAA,IAAA;AAAA,EACP,OAAS,EAAA,IAAA;AAAA,EACT,QAAU,EAAA,IAAA;AAAA,EACV,OAAS,EAAA,IAAA;AAAA,EACT,MAAQ,EAAA,IAAA;AAAA,EACR,MAAQ,EAAA,IAAA;AAAA,EACR,WAAa,EAAA,IAAA;AAAA,EACb,OAAS,EAAA,IAAA;AAAA,EACT,UAAY,EAAA,IAAA;AAAA,EACZ,aAAe,EAAA,IAAA;AAAA,EACf,UAAY,EAAA,IAAA;AAAA,EACZ,OAAS,EAAA,IAAA;AAAA,EACT,SAAW,EAAA,IAAA;AAAA,EACX,MAAQ,EAAA,IAAA;AAAA,EACR,UAAY,EAAA,IAAA;AAAA,EACZ,QAAU,EAAA,IAAA;AAAA,EACV,OAAS,EAAA,IAAA;AAAA,EACT,OAAS,EAAA,IAAA;AAAA,EACT,eAAiB,EAAA,IAAA;AAAA,EACjB,gBAAkB,EAAA,IAAA;AAAA,EAClB,MAAQ,EAAA,IAAA;AAAA,EACR,OAAS,EAAA,IAAA;AAAA,EACT,OAAS,EAAA,IAAA;AAAA,EACT,OAAS,EAAA,IAAA;AAAA,EACT,IAAM,EAAA,IAAA;AAAA,EACN,OAAS,EAAA,IAAA;AAAA,EACT,SAAW,EAAA,IAAA;AAAA,EACX,KAAO,EAAA,IAAA;AACT,EAAA;AAEA,MAAM,kBAAkB,IAAI,GAAA,CAAI,MAAO,CAAA,MAAA,CAAO,iBAAiB,CAAC,CAAA,CAAA;AAShE,SAAS,wBAAoD,GAAA;AAC3D,EAAI,IAAA,OAAO,cAAc,WAAa,EAAA;AACpC,IAAO,OAAA,IAAA,CAAK,gBACT,CAAA,eAAA,GACA,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,GACxB;AAEA,EAAA,MAAM,iBAAiB,KAAM,CAAA,IAAA;AAAA,IAC3B,IAAI,GAAA,CAAI,SAAU,CAAA,SAAA,CAAU,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA,IACvD,MAAO,CAAA,CAAC,MAAM,eAAgB,CAAA,GAAA,CAAI,CAA4B,CAAC,CAAA,CAAA;AAEjE,EAAA,OAAO,cAAe,CAAA,MAAA,GACjB,cAAe,CAAA,CAAC,IACjB,iBAAkB,CAAA,OAAA,CAAA;AACxB;;;;;;;;;;;;;;;;;;;;;;AClFA,SAAsB,UAAU,EAAwB,EAAA;AAAA,EAAxB,OAAAA,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,QAAA,EAAU,OAAU,GAAA,EAAI,EAAA;AACtD,IAAI,IAAA,MAAA,CAAO,UAAU,IAAM,EAAA;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,yGAAA;AAAA,OACF,CAAA;AAAA,KACF;AAGA,IAAI,IAAA,IAAI,GAAI,CAAA,QAAQ,CAAE,CAAA,YAAA,CAAa,IAAI,KAAK,CAAA,CAAE,IAAK,EAAA,KAAM,EAAI,EAAA;AAC3D,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,8GAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAO,OAAA,MAAA,CAAO,KAAM,CAAA,QAAA,EAAU,OAAO,CAAA,CAAA;AAAA,GACvC,CAAA,CAAA;AAAA;;ACdA,MAAM,QAAW,GAAA;AAAA,EACf,cAAgB,EAAA,2BAAA;AAAA,EAChB,QAAU,EAAA,YAAA;AACZ,CAAA,CAAA;AAEA,MAAA,CAAO,OAAO,QAAQ,CAAA;;ACLf,MAAM,qBAAqB,KAAM,CAAA;AAAA,EACtC,WAAA,CAAmB,GAAe,EAAA,aAAA,GAAgB,EAAI,EAAA;AACpD,IAAA,KAAA;AAAA,MACE,CAAmB,gBAAA,EAAA,GAAA,CAAI,GAAmC,CAAA,6BAAA,EAAA,GAAA,CAAI,MAAW,CAAA,EAAA,EAAA,aAAA,CAAA,CAAA;AAAA,KAC3E,CAAA;AAHiB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA,CAAA;AAAA,GAInB;AACF;;;;;;;;;;;;;;;;;;;;;;ACGA,MAAMC,gBAAiB,GAAA;AAAA,EACrB,GAAK,EAAA,qCAAA;AAAA,EACL,GAAK,EAAA,uCAAA;AACP,CAAA,CAAA;AA0IA,SAAS,2BAAA,CACP,cACA,OACA,EAAA;AACA,EAAI,IAAA,OAAA,CAAQ,YAAY,KAAW,CAAA,EAAA;AACjC,IAAA,OAAA;AAAA,GACF;AAEA,EAAA,MAAM,YAAY,KAAM,CAAA,IAAA;AAAA,IACtB,IAAI,GAAA;AAAA,MACD,CAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,QAAQ,CAAA,GAC3B,QAAQ,QACR,GAAA,CAAC,OAAQ,CAAA,QAAQ,CACnB,EAAA,GAAA;AAAA,QAAI,CAAC,IACL,KAAA,IAAA,KAAS,iBAAkB,CAAA,IAAA,GAAO,0BAA6B,GAAA,IAAA;AAAA,OACjE;AAAA,KACF;AAAA,GACF,CAAE,KAAK,GAAG,CAAA,CAAA;AAEV,EAAa,YAAA,CAAA,GAAA,CAAI,YAAY,SAAS,CAAA,CAAA;AACxC,CAAA;AAEA,SAAS,0CAAA,CACP,cACA,OACA,EAAA;AAlLF,EAAA,IAAA,EAAA,CAAA;AAmLE,EAAA,YAAA,CAAa,IAAI,KAAO,EAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEvD,EAAI,IAAA,OAAA,CAAQ,SAAS,KAAW,CAAA,EAAA;AAC9B,IAAA,YAAA,CAAa,GAAI,CAAA,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,GACjD;AAEA,EAAI,IAAA,OAAA,CAAQ,SAAS,KAAW,CAAA,EAAA;AAC9B,IAAA,YAAA,CAAa,IAAI,OAAS,EAAA,OAAA,CAAQ,KAAM,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,GACnD;AAEA,EAAA,2BAAA,CAA4B,cAAc,OAAO,CAAA,CAAA;AACnD,CAAA;AAWA,SAAe,QACb,EAEgC,EAAA;AAAA,EAFhC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,KAAA,EACA,OAA4B,GAAA,EACI,EAAA;AA5MlC,IAAA,IAAA,EAAA,CAAA;AA6ME,IAAA,IAAI,OAAO,KAAU,KAAA,QAAA,IAAY,MAAM,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;AAC1D,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA,CAAA;AAAA,KACxD;AAEA,IAAA,MAAM,WAAW,IAAI,GAAA;AAAA,MACnB,CAAA,UAAA,EAAa,mBAAmB,KAAK,CAAA,CAAA,KAAA,CAAA;AAAA,MACrC,QAAS,CAAA,cAAA;AAAA,KACX,CAAA;AAEA,IAAM,MAAA,EAAE,cAAiB,GAAA,QAAA,CAAA;AAEzB,IAAA,0CAAA,CAA2C,cAAc,OAAO,CAAA,CAAA;AAEhE,IAAI,IAAA,OAAA,CAAQ,QAAQ,KAAW,CAAA,EAAA;AAC7B,MAAA,YAAA,CAAa,IAAI,MAAQ,EAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,KACjD;AAEA,IAAI,IAAA,OAAA,CAAQ,aAAa,KAAW,CAAA,EAAA;AAClC,MAAA,YAAA,CAAa,IAAI,WAAa,EAAA,OAAA,CAAQ,SAAU,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,KAC3D;AAEA,IAAI,IAAA,OAAA,CAAQ,WAAW,KAAW,CAAA,EAAA;AAChC,MAAA,YAAA,CAAa,IAAI,SAAW,EAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,KACvD;AAEA,IAAI,IAAA,OAAA,CAAQ,cAAc,KAAW,CAAA,EAAA;AACnC,MAAA,YAAA,CAAa,GAAI,CAAA,YAAA,EAAc,OAAQ,CAAA,UAAA,GAAa,SAAS,OAAO,CAAA,CAAA;AAAA,KACtE;AAEA,IAAI,IAAA,OAAA,CAAQ,gBAAgB,KAAW,CAAA,EAAA;AACrC,MAAA,YAAA,CAAa,GAAI,CAAA,cAAA,EAAgB,OAAQ,CAAA,YAAA,GAAe,SAAS,OAAO,CAAA,CAAA;AAAA,KAC1E;AAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAM,MAAA,IAAI,aAAa,GAAK,EAAA,CAAA,EAAA,GAAAC,gBAAA,CAAe,IAAI,MAAM,CAAA,KAAzB,YAA8B,EAAE,CAAA,CAAA;AAAA,KAC9D;AAEA,IAAM,MAAA,GAAA,GAA6B,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAElD,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAUA,SAAe,QACb,EAEgC,EAAA;AAAA,EAFhC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,QAAA,EACA,OAAmC,GAAA,EACH,EAAA;AAtQlC,IAAA,IAAA,EAAA,CAAA;AAuQE,IAAA,IAAI,CAAC,KAAM,CAAA,OAAA,CAAQ,QAAQ,CAAK,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACnD,MAAM,MAAA,IAAI,MAAM,mDAAmD,CAAA,CAAA;AAAA,KACrE;AAEA,IAAA,MAAM,WAAW,IAAI,GAAA;AAAA,MACnB,CAAa,UAAA,EAAA,QAAA,CAAS,CAAC,CAAA,CAAA,CAAA,EAAK,SAAS,CAAC,CAAA,CAAA,KAAA,CAAA;AAAA,MACtC,QAAS,CAAA,cAAA;AAAA,KACX,CAAA;AAEA,IAA2C,0CAAA,CAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAEzE,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAM,MAAA,IAAI,aAAa,GAAK,EAAA,CAAA,EAAA,GAAAC,gBAAA,CAAe,IAAI,MAAM,CAAA,KAAzB,YAA8B,EAAE,CAAA,CAAA;AAAA,KAC9D;AAEA,IAAM,MAAA,GAAA,GAA6B,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAElD,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAWA,SAAe,KACb,EAEgC,EAAA;AAAA,EAFhC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EACA,OAAgC,GAAA,EACA,EAAA;AA3SlC,IAAA,IAAA,EAAA,CAAA;AA4SE,IAAA,MAAM,WAAW,IAAI,GAAA,CAAI,CAAa,UAAA,EAAA,EAAA,CAAA,KAAA,CAAA,EAAW,SAAS,cAAc,CAAA,CAAA;AAExE,IAA4B,2BAAA,CAAA,QAAA,CAAS,cAAc,OAAO,CAAA,CAAA;AAE1D,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAM,MAAA,IAAI,aAAa,GAAK,EAAA,CAAA,EAAA,GAAAC,gBAAA,CAAe,IAAI,MAAM,CAAA,KAAzB,YAA8B,EAAE,CAAA,CAAA;AAAA,KAC9D;AAEA,IAAM,MAAA,GAAA,GAA6B,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAElD,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAOA,MAAM,SAAY,GAAA;AAAA,EAChB,OAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAU,EAAA,iBAAA;AACZ;;;;;;;;;;;;;;;;;;;;;;ACjUA,MAAMA,gBAAiB,GAAA;AAAA,EACrB,GAAK,EAAA,uCAAA;AACP,CAAA,CAAA;AAsGA,SAAe,IAEe,GAAA;AAAA,EAD5B,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,OAAA,GAAkC,EACN,EAAA;AAhH9B,IAAA,IAAA,EAAA,CAAA;AAiHE,IAAA,MAAM,QAAW,GAAA,IAAI,GAAI,CAAA,CAAA,mBAAA,CAAA,EAAuB,SAAS,cAAc,CAAA,CAAA;AACvE,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAChE,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAA,MAAM,IAAI,YAAA;AAAA,QACR,GAAA;AAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;AAAA,OAC9D,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAC3B,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAMA,MAAM,WAAc,GAAA;AAAA,EAClB,IAAA;AACF;;;;;;;;;;;;;;;;;;;;;;AClIA,MAAMA,gBAAiB,GAAA;AAAA,EACrB,GAAK,EAAA,uCAAA;AACP,CAAA,CAAA;AAqGA,SAAe,OACb,EAEiC,EAAA;AAAA,EAFjC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,KAAA,EACA,OAAoC,GAAA,EACH,EAAA;AAhHnC,IAAA,IAAA,EAAA,CAAA;AAiHE,IAAA,IAAI,OAAO,KAAU,KAAA,QAAA,IAAY,MAAM,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;AAC1D,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA,CAAA;AAAA,KACxD;AAEA,IAAA,MAAM,WAAW,IAAI,GAAA;AAAA,MACnB,CAAsB,mBAAA,EAAA,KAAA,CAAA,KAAA,CAAA;AAAA,MACtB,QAAS,CAAA,cAAA;AAAA,KACX,CAAA;AACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEhE,IAAA,IAAI,WAAW,OAAS,EAAA;AACtB,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAAA,KAC7D;AAEA,IAAA,IAAI,qBAAqB,OAAS,EAAA;AAChC,MAAA,QAAA,CAAS,YAAa,CAAA,GAAA;AAAA,QACpB,iBAAA;AAAA,QACA,OAAA,CAAQ,gBAAgB,QAAS,EAAA;AAAA,OACnC,CAAA;AAAA,KACF;AAEA,IAAA,IAAI,aAAa,OAAS,EAAA;AACxB,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;AAAA,KACjE;AAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAA,MAAM,IAAI,YAAA;AAAA,QACR,GAAA;AAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;AAAA,OAC9D,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAC3B,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAoDA,SAAe,UACb,EAEoC,EAAA;AAAA,EAFpC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,SAAA,EACA,OAAuC,GAAA,EACH,EAAA;AA7MtC,IAAA,IAAA,EAAA,CAAA;AA8ME,IAAM,MAAA,cAAA,GAAA,CAAkB,MAAM,OAAQ,CAAA,SAAA,CAAU,CAAC,CAAC,CAAA,GAAI,SAAY,GAAA,CAAC,SAAS,CAAA,EACzE,IAAI,CAAC,KAAA,KAAU,CAAG,EAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA,EAAK,MAAM,CAAC,CAAA,CAAA,CAAG,CACxC,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAEX,IAAA,MAAM,WAAW,IAAI,GAAA;AAAA,MACnB,CAAyB,sBAAA,EAAA,cAAA,CAAA,KAAA,CAAA;AAAA,MACzB,QAAS,CAAA,cAAA;AAAA,KACX,CAAA;AACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEhE,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;AAAA,KACjE;AAEA,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;AAAA,KACjE;AAEA,IAAA,IAAI,gBAAgB,OAAS,EAAA;AAC3B,MAAA,QAAA,CAAS,YAAa,CAAA,GAAA;AAAA,QACpB,KAAA;AAAA,QAAA,CACC,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,UAAU,CAC7B,GAAA,OAAA,CAAQ,UACR,GAAA,CAAC,OAAQ,CAAA,UAAU,CACrB,EAAA,IAAA,CAAK,GAAG,CAAA;AAAA,OACZ,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAA,MAAM,IAAI,YAAA;AAAA,QACR,GAAA;AAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;AAAA,OAC9D,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAC3B,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAMA,MAAM,WAAc,GAAA;AAAA,EAClB,MAAA;AAAA,EACA,SAAA;AACF;;;;;;;;;;;;;;;;;;;;;;ACzPA,MAAM,cAAiB,GAAA;AAAA,EACrB,GAAK,EAAA,uCAAA;AACP,CAAA,CAAA;AAkBA,SAAe,IACb,EAE4B,EAAA;AAAA,EAF5B,OAAA,OAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,MAAA,EACA,OAA0B,GAAA,EACE,EAAA;AA7B9B,IAAA,IAAA,EAAA,CAAA;AA8BE,IAAA,IAAI,OAAO,MAAW,KAAA,QAAA,IAAY,OAAO,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;AAC5D,MAAM,MAAA,IAAI,MAAM,wCAAwC,CAAA,CAAA;AAAA,KAC1D;AAEA,IAAA,MAAM,WAAW,IAAI,GAAA;AAAA,MACnB,CAAA,KAAA,EAAQ,mBAAmB,MAAM,CAAA,CAAA,cAAA,CAAA;AAAA,MACjC,QAAS,CAAA,cAAA;AAAA,KACX,CAAA;AACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAChE,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;AAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;AAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;AACX,MAAA,MAAM,IAAI,YAAA;AAAA,QACR,GAAA;AAAA,QACA,IAAI,MAAU,IAAA,cAAA,GAAiB,cAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;AAAA,OAC9D,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;AAC3B,IAAO,OAAA,GAAA,CAAA;AAAA,GACT,CAAA,CAAA;AAAA,CAAA;AAMA,MAAM,IAAO,GAAA;AAAA,EACX,GAAA;AACF;;ACvDO,SAAS,eAAe,KAAe,EAAA;AAE5C,EAAA,MAAM,mBAAsB,GAAA,oBAAA,CAAA;AAC5B,EAAI,IAAA,KAAA,CAAA;AACJ,EAAM,MAAA,OAAA,GAAU,MAAM,IAAK,EAAA,CAAA;AAC3B,EAAI,IAAA,aAAA,CAAA;AAGJ,EAAA,IAAI,QAAQ,UAAW,CAAA,SAAS,KAAK,OAAQ,CAAA,UAAA,CAAW,UAAU,CAAG,EAAA;AACnE,IAAgB,aAAA,GAAA,OAAA,CAAA;AAAA,cACN,KAAQ,GAAA,mBAAA,CAAoB,IAAK,CAAA,OAAO,OAAO,IAAM,EAAA;AAC/D,IAAgB,aAAA,GAAA,CAAA,8BAAA,EAAiC,MAAM,CAAC,CAAA,CAAA,WAAA,CAAA,CAAA;AAAA,GACnD,MAAA;AAEL,IAAA,aAAA,GAAgB,CAAiC,8BAAA,EAAA,OAAA,CAAA,WAAA,CAAA,CAAA;AAAA,GACnD;AAEA,EAAO,OAAA,aAAA,CAAA;AACT,CAAA;AAqBO,MAAM,eAAgB,CAAA;AAAA,EAC3B,YAIU,IAKA,EAAA,WAAA,EAKA,EAKA,EAAA,cAAA,EAKA,aAKA,QACR,EAAA;AA1BQ,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA;AAKA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA,CAAA;AAKA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA,CAAA;AAKA,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA,CAAA;AAKA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA,CAAA;AAKA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA,CAAA;AAAA,GACP;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,OAAkB,GAAA;AAChB,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,GACd;AAAA,EAEA,WAAsB,GAAA;AACpB,IAAA,OAAO,CAAG,EAAA,IAAA,CAAK,cAAe,CAAA,OAAA,MAAa,IAAK,CAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAkB,GAAA;AAChB,IAAA,OAAO,IAAK,CAAA,WAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAgB,GAAA;AACd,IAAA,OAAO,IAAK,CAAA,EAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA,EAKA,cAAyB,GAAA;AACvB,IAAA,OAAO,IAAK,CAAA,WAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAuC,GAAA;AACrC,IAAA,OAAO,IAAK,CAAA,cAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WAAW,WAA8B,EAAA;AACvC,IAAO,OAAA,IAAA,CAAK,cAAe,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAAA,GACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WAAW,WAAsC,EAAA;AAC/C,IAAO,OAAA,IAAA,CAAK,cAAe,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;AAAA,GACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAsC,GAAA;AACpC,IAAO,OAAA,IAAA,CAAK,eAAe,WAAY,EAAA,CAAE,OAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA,CAAA;AAAA,GACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAsB,GAAA;AACpB,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,mBAA8B,GAAA;AAC5B,IAAO,OAAA,cAAA,CAAe,IAAK,CAAA,KAAA,EAAO,CAAA,CAAA;AAAA,GACpC;AACF,CAAA;AAKO,MAAM,iBAAkB,CAAA;AAAA,EAW7B,WAAA,CAIU,MAKA,EACR,EAAA;AANQ,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA;AAKA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA,CAAA;AAhBV;AAAA;AAAA;AAAA,IAAA,IAAA,CAAQ,WAA+C,EAAC,CAAA;AAKxD;AAAA;AAAA;AAAA,IAAA,IAAA,CAAQ,kBAA0C,EAAC,CAAA;AAAA,GAYhD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,OAAkB,GAAA;AAChB,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAgB,GAAA;AACd,IAAA,OAAO,IAAK,CAAA,EAAA,CAAA;AAAA,GACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,CAAoB,EAAA;AAC7B,IAAA,IAAA,CAAK,QAAS,CAAA,CAAA,CAAE,OAAQ,EAAC,CAAI,GAAA,CAAA,CAAA;AAC7B,IAAK,IAAA,CAAA,eAAA,CAAgB,KAAK,CAAC,CAAA,CAAA;AAAA,GAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,WAA8B,EAAA;AACvC,IAAA,OAAO,eAAe,IAAK,CAAA,QAAA,CAAA;AAAA,GAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,WAAW,WAAsC,EAAA;AAC/C,IAAO,OAAA,WAAA,IAAe,KAAK,QACvB,GAAA,IAAA,CAAK,SAAS,WAAW,CAAA,GACzB,IAAK,CAAA,eAAA,CAAgB,CAAC,CAAA,CAAA;AAAA,GAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAsC,GAAA;AACpC,IAAO,OAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,GACpC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAqC,GAAA;AACnC,IAAO,OAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;AAAA,GAC/B;AACF,CAAA;AAqNO,MAAM,kBAA4C,GAAA;AAAA,EACvD;AAAA,IACE,gBAAkB,EAAA,SAAA;AAAA,IAClB,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,YAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,iBAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,kBAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,mBAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,QAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,SAAA;AAAA,IAClB,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,YAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,QAAA;AAAA,IAClB,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,WAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,WAAA;AAAA,IAClB,IAAM,EAAA,WAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,WAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,QAAA;AAAA,IAClB,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,QAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,OAAA;AAAA,IAClB,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,UAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,eAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,gBAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,QAAA;AAAA,IAClB,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,WAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,gBAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,iBAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,kBAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,QAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,eAAA;AAAA,IAClB,IAAM,EAAA,eAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,eAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,MAAA;AAAA,IAClB,IAAM,EAAA,MAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,SAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,eAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,gBAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,WAAa,EAAA,QAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,uBAAA;AAAA,QACJ,IAAM,EAAA,eAAA;AAAA,QACN,WAAa,EAAA,eAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,SAAA;AAAA,IAClB,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,YAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,uBAAA;AAAA,QACJ,IAAM,EAAA,YAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,qBAAA;AAAA,QACJ,IAAM,EAAA,UAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,oBAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,OAAA;AAAA,IAClB,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,UAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,qBAAA;AAAA,QACJ,IAAM,EAAA,YAAA;AAAA,QACN,WAAa,EAAA,YAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,eAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,gBAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,SAAA;AAAA,IAClB,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,SAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,cAAA;AAAA,QACJ,IAAM,EAAA,MAAA;AAAA,QACN,WAAa,EAAA,MAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,MACA;AAAA,QACE,EAAI,EAAA,eAAA;AAAA,QACJ,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AAAA,EAEA;AAAA,IACE,gBAAkB,EAAA,OAAA;AAAA,IAClB,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,EAAA;AAAA,IACb,QAAU,EAAA;AAAA,MACR;AAAA,QACE,EAAI,EAAA,OAAA;AAAA,QACJ,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,SAAA;AAAA,QACb,WAAa,EAAA,EAAA;AAAA,QACb,QAAU,EAAA,EAAA;AAAA,OACZ;AAAA,KACF;AAAA,GACF;AACF,EAAA;AAEA,SAAS,wBAAwB,cAAmC,EAAA;AAClE,EAAO,OAAA,IAAI,MAAM,cAAgB,EAAA;AAAA,IAC/B,GAAA,CAAI,MAAQ,EAAA,IAAA,EAAM,QAAU,EAAA;AAC1B,MAAI,IAAA,MAAA,CAAO,UAAW,CAAA,IAAc,CAAG,EAAA;AACrC,QAAO,OAAA,MAAA,CAAO,WAAW,IAAc,CAAA,CAAA;AAAA,OACzC;AAKA,MAAA,IAAI,IAAK,CAAA,QAAA,EAAW,CAAA,WAAA,OAAmB,IAAiB,EAAA;AACtD,QAAA,OAAO,eAAe,iBAAkB,EAAA,CAAA;AAAA,OAC1C;AAEA,MAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,MAAQ,EAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;AAAA,KAC3C;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAEA,SAAS,cAA+B,GAAA;AACtC,EAAA,MAAM,WAAW,EAAC,CAAA;AAElB,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,kBAAmB,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;AACrD,IAAM,MAAA,YAAA,GAAe,mBAAmB,CAAC,CAAA,CAAA;AAEzC,IAAA,MAAM,QAAW,GAAA,uBAAA;AAAA,MACf,IAAI,iBAAA,CAAkB,YAAa,CAAA,IAAA,EAAM,aAAa,gBAAgB,CAAA;AAAA,KACxE,CAAA;AAEA,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,aAAa,QAAS,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;AACxD,MAAM,MAAA,WAAA,GAAc,YAAa,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAC3C,MAAA,MAAM,UAAU,IAAI,eAAA;AAAA,QAClB,WAAY,CAAA,IAAA;AAAA;AAAA,QACZ,WAAY,CAAA,WAAA;AAAA;AAAA,QACZ,WAAY,CAAA,EAAA;AAAA;AAAA,QACZ,QAAA;AAAA;AAAA,QACA,WAAY,CAAA,WAAA;AAAA,QACZ,WAAY,CAAA,QAAA;AAAA;AAAA,OACd,CAAA;AAEA,MAAA,QAAA,CAAS,WAAW,OAAO,CAAA,CAAA;AAAA,KAC7B;AACA,IAAS,QAAA,CAAA,YAAA,CAAa,gBAAgB,CAAI,GAAA,QAAA,CAAA;AAAA,GAC5C;AACA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEO,SAAS,aACd,KACQ,EAAA;AACR,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAO,OAAA,QAAA,CAAS,mBAAmB,CAAC,CAAA,CAAE,gBAAgB,CACnD,CAAA,iBAAA,GACA,KAAM,EAAA,CAAA;AAAA,GACX;AAGA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,KAAA,YAAiB,MAAQ,EAAA;AACxD,IAAO,OAAA,KAAA,CAAM,IAAK,EAAA,CAAE,WAAY,EAAA,CAAA;AAAA,GAClC;AAEA,EAAA,IAAI,iBAAiB,eAAiB,EAAA;AACpC,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;AAAA,GACrB;AAEA,EAAA,IAAI,iBAAiB,iBAAmB,EAAA;AACtC,IAAO,OAAA,KAAA,CAAM,iBAAkB,EAAA,CAAE,KAAM,EAAA,CAAA;AAAA,GACzC;AACF,CAAA;AAUO,MAAM,WAAyB,cAAe;;ACl2BrD,SAAS,YAAA,CAAa,CAAa,EAAA,EAAA,EAAc,EAAsB,EAAA;AACrE,EAAA,IAAI,IAAI,EAAG,CAAA,CAAC,CACV,EAAA,CAAA,GAAI,GAAG,CAAC,CAAA,EACR,EAAK,GAAA,EAAA,CAAG,CAAC,CAAI,GAAA,CAAA,EACb,EAAK,GAAA,EAAA,CAAG,CAAC,CAAI,GAAA,CAAA,CAAA;AAEf,EAAI,IAAA,EAAA,KAAO,CAAK,IAAA,EAAA,KAAO,CAAG,EAAA;AACxB,IAAA,MAAM,CAAM,GAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAK,IAAA,EAAA,GAAA,CAAM,CAAE,CAAA,CAAC,CAAI,GAAA,CAAA,IAAK,EAAO,KAAA,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,CAAA,CAAA;AAEhE,IAAA,IAAI,IAAI,CAAG,EAAA;AACT,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;AACR,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;AAAA,KACV,MAAA,IAAW,IAAI,CAAG,EAAA;AAChB,MAAA,CAAA,IAAK,EAAK,GAAA,CAAA,CAAA;AACV,MAAA,CAAA,IAAK,EAAK,GAAA,CAAA,CAAA;AAAA,KACZ;AAAA,GACF;AAEA,EAAK,EAAA,GAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;AACZ,EAAK,EAAA,GAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;AAEZ,EAAO,OAAA,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,CAAA;AACxB,CAAA;AAEA,SAAS,cACP,CAAA,MAAA,EACA,KACA,EAAA,IAAA,EACA,aACA,UACA,EAAA;AACA,EAAA,IAAI,YAAY,WACd,EAAA,KAAA,CAAA;AAEF,EAAA,KAAA,IAAS,CAAI,GAAA,KAAA,GAAQ,CAAG,EAAA,CAAA,GAAI,MAAM,CAAK,EAAA,EAAA;AACrC,IAAM,MAAA,MAAA,GAAS,YAAa,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,OAAO,KAAK,CAAA,EAAG,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;AAElE,IAAA,IAAI,SAAS,SAAW,EAAA;AACtB,MAAQ,KAAA,GAAA,CAAA,CAAA;AACR,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAA,IAAI,YAAY,WAAa,EAAA;AAC3B,IAAI,IAAA,KAAA,GAAQ,QAAQ,CAAG,EAAA;AACrB,MAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,EAAO,KAAO,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AAAA,KAC9D;AACA,IAAW,UAAA,CAAA,IAAA,CAAK,MAAO,CAAA,KAAK,CAAC,CAAA,CAAA;AAE7B,IAAI,IAAA,IAAA,GAAO,QAAQ,CAAG,EAAA;AACpB,MAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,EAAO,IAAM,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AAAA,KAC7D;AAAA,GACF;AACF,CAAA;AAGA,SAAS,sBAAA,CACP,QACA,WACiB,EAAA;AACjB,EAAM,MAAA,IAAA,GAAO,OAAO,MAAS,GAAA,CAAA,CAAA;AAC7B,EAAA,MAAM,UAAa,GAAA,CAAC,MAAO,CAAA,CAAC,CAAC,CAAA,CAAA;AAC7B,EAAA,cAAA,CAAe,MAAQ,EAAA,CAAA,EAAG,IAAM,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;AACvD,EAAW,UAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;AAC5B,EAAO,OAAA,UAAA,CAAA;AACT,CAAA;AAGwB,SAAA,QAAA,CACtB,QACA,SACiB,EAAA;AACjB,EAAI,IAAA,MAAA,CAAO,UAAU,CAAG,EAAA;AACtB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,WAAc,GAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,SAAY,GAAA,CAAA,CAAA;AACtE,EAAM,MAAA,YAAA,GAAe,sBAAuB,CAAA,MAAA,EAAQ,WAAW,CAAA,CAAA;AAC/D,EAAO,OAAA,YAAA,CAAA;AACT;;AC0EA,SAAS,uBAAA,CACP,MACA,EAAA,YAAA,GAAe,IACP,EAAA;AACR,EAAA,IAAI,MAAM,CAAG,EAAA,MAAA,CAAO,CAAC,CAAA,CAAA,CAAA,EAAK,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA;AAElC,EAAI,IAAA,MAAA,CAAO,MAAW,KAAA,CAAA,IAAK,YAAc,EAAA;AACvC,IAAO,GAAA,IAAA,CAAA,CAAA,EAAI,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA;AAAA,GACrB;AAEA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAEA,SAAS,oBAAA,CAAqB,IAAuB,EAAA,SAAA,GAAY,GAAc,EAAA;AAC7E,EAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,KAAM,CAAA,IAAA,CAAK,GAAG,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACvD,EAAA,IAAI,SAAY,GAAA,IAAA,CAAA;AAChB,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAA;AAEtB,EAAO,OAAA,GAAA,CAAI,SAAS,SAAW,EAAA;AAC7B,IAAM,MAAA,WAAA,GAAc,QAAS,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;AAE5C,IAAA,GAAA,GAAM,WAAY,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,CAAG,EAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA,EAAK,KAAM,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AACpE,IAAa,SAAA,IAAA,aAAA,CAAA;AAAA,GACf;AAEA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;AAYA,SAAS,QACP,CAAA,MAAA,EACA,IACA,EAAA,OAAA,GAAoC,EAC5B,EAAA;AA1MV,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA2ME,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;AACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;AACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;AACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,MAAM,WAAW,IAAI,GAAA;AAAA,IACnB,CAAQ,KAAA,EAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA,QAAA,EAAY,MAAO,CAAA,CAAC,CAClD,CAAA,CAAA,EAAA,MAAA,CAAO,CAAC,CAAA,CAAA,CAAA,EACN,IAAQ,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,SAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AAAA,IACvC,QAAS,CAAA,cAAA;AAAA,GACX,CAAA;AAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;AAAA,GACzE;AAEA,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;AAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;AAEhC,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;AACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACjC;AAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;AAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KACf;AAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;AACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;AAAA,GAChD;AAEA,EAAA,IAAI,UAAU,OAAS,EAAA;AACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;AAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;AAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;AAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACzC;AAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;AAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,GAC3C;AAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;AAC3B,CAAA;AAWA,SAAS,OACP,CAAA,WAAA,EACA,OAAmC,GAAA,EAC3B,EAAA;AA9RV,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+RE,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;AACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;AACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;AACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,MAAM,WAAW,IAAI,GAAA;AAAA,IACnB,QAAQ,kBAAmB,CAAA,KAAK,YAAY,WAAY,CAAA,CAAC,KACvD,WAAY,CAAA,CAAC,CACX,CAAA,CAAA,EAAA,WAAA,CAAY,CAAC,CAAK,CAAA,CAAA,EAAA,WAAA,CAAY,CAAC,CAAK,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,SAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AAAA,IACnE,QAAS,CAAA,cAAA;AAAA,GACX,CAAA;AAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;AAAA,GACzE;AAEA,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;AAAA,GACjE;AAEA,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;AAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;AAEhC,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;AACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACjC;AAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;AAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KACf;AAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;AACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;AAAA,GAChD;AAEA,EAAA,IAAI,UAAU,OAAS,EAAA;AACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;AAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;AAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;AAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACzC;AAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;AAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,GAC3C;AAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;AAC3B,CAAA;AAUA,SAAS,SAAA,CAAU,OAAqC,GAAA,EAAY,EAAA;AAlXpE,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAmXE,EAAA,IAAI,EAAE,SAAA,IAAa,OAAY,CAAA,IAAA,EAAE,UAAU,OAAU,CAAA,EAAA;AACnD,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,kEAAA;AAAA,KACF,CAAA;AAAA,GACF;AAEA,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;AACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;AACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;AAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;AACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AAEA,EAAA,MAAM,WAAW,IAAI,GAAA;AAAA,IACnB,CAAQ,KAAA,EAAA,kBAAA;AAAA,MACN,KAAA;AAAA,KACF,CAAA,aAAA,EAAiB,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,EAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AAAA,IAC5C,QAAS,CAAA,cAAA;AAAA,GACX,CAAA;AAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;AAAA,GACzE;AAEA,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;AAAA,GACjE;AAEA,EAAA,IAAI,aAAa,OAAS,EAAA;AACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;AAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;AAEhC,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;AACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACjC;AAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;AAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KACf;AAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;AACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;AAAA,GAChD;AAEA,EAAA,IAAI,UAAU,OAAS,EAAA;AACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;AAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;AAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAC/B;AAEA,IAAA,IAAI,eAAe,OAAS,EAAA;AAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;AAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACzC;AAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;AAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,GAC3C;AAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;AAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;AAC3B,CAAA;AAMA,MAAM,UAAa,GAAA;AAAA,EACjB,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AACF;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/maptiler-client.d.ts b/dist/maptiler-client.d.ts index 7d72fbe..92e1b6e 100644 --- a/dist/maptiler-client.d.ts +++ b/dist/maptiler-client.d.ts @@ -103,11 +103,27 @@ type Values = T[keyof T]; */ type LanguageGeocodingString = Values; -type GeocodingOptions = { +type LanguageGeocodingOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Prefer results in specific language. It’s possible to specify multiple values. + */ + language?: LanguageGeocodingString | Array; +}; +type CommonForwardAndReverseGeocodingOptions = LanguageGeocodingOptions & { + /** + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; + /** + * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding. + */ + limit?: number; + /** + * Filter of feature types to return. If not specified, all available feature types are returned. + */ + types?: ("country" | "region" | "subregion" | "county" | "joint_municipality" | "joint_submunicipality" | "municipality" | "municipal_district" | "locality" | "neighbourhood" | "place" | "postal_code" | "address")[]; +}; +type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & { /** * Only search for results in the specified area. */ @@ -117,10 +133,21 @@ type GeocodingOptions = { */ proximity?: Position; /** - * Prefer results in specific language. It’s possible to specify multiple values. + * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes. */ - language?: LanguageGeocodingString | Array; + country?: string[]; + /** + * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`. + */ + fuzzyMatch?: boolean; + /** + * Set to `true` to use autocomplete, `false` to disable it. + * Default (`undefined`) is to combine autocomplete with non-autocomplete results. + */ + autocomplete?: boolean; }; +type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions; +type ByIdGeocodingOptions = LanguageGeocodingOptions; type Coordinates = Position; type FeatureHierarchy = { /** @@ -183,25 +210,25 @@ type GeocodingSearchResult = { * @returns */ declare function forward(query: string, options?: GeocodingOptions): Promise; -type ReverseGeocodingOptions = { - /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` - */ - apiKey?: string; - /** - * Prefer results in specific language. It’s possible to specify multiple values. - */ - language?: LanguageGeocodingString | Array; -}; /** * Perform a reverse geocoding query to MapTiler API. - * Providing a longitude and latitude, this function returns a set of human readable information abou this place (country, city, street, etc.) + * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.) * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse * @param position * @param options * @returns */ declare function reverse(position: Position, options?: ReverseGeocodingOptions): Promise; +/** + * Perform a geocoding query to MapTiler API to obtain fature by its ID. + * Providing a feature ID, this function returns a feature which includes its full geometry. + * Note that the feature ID is not stable and it changes when the database is re-indexed. + * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id + * @param id + * @param options + * @returns + */ +declare function byId(id: string, options?: ByIdGeocodingOptions): Promise; /** * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/). * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding) @@ -210,6 +237,7 @@ declare function reverse(position: Position, options?: ReverseGeocodingOptions): declare const geocoding: { forward: typeof forward; reverse: typeof reverse; + byId: typeof byId; language: { AUTO: string; ALBANIAN: string; @@ -229,18 +257,13 @@ declare const geocoding: { ENGLISH: string; ESPERANTO: string; ESTONIAN: string; - /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` - */ FINNISH: string; FRENCH: string; FRISIAN: string; GEORGIAN: string; GERMAN: string; GREEK: string; - HEBREW: string; /** - * Only search for results in the specified area. - */ + HEBREW: string; HUNGARIAN: string; ICELANDIC: string; IRISH: string; @@ -255,7 +278,9 @@ declare const geocoding: { LUXEMBOURGISH: string; MACEDONIAN: string; MALTESE: string; - NORWEGIAN: string; + NORWEGIAN: string; /** + * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding. + */ POLISH: string; PORTUGUESE: string; ROMANIAN: string; @@ -279,7 +304,7 @@ declare const geocoding: { */ type GeolocationInfoOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; }; @@ -370,7 +395,7 @@ declare const geolocation: { type CoordinatesSearchOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; /** @@ -467,7 +492,7 @@ type CoordinateTransformResult = { */ type CoordinatesTransformOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; /** @@ -505,7 +530,7 @@ declare const coordinates: { */ type GetDataOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; }; @@ -932,7 +957,7 @@ declare const MapStyle: MapStyleType; */ type StaticMapBaseOptions = { /** - * Custom mapTiler Cloud API key to use instead of the one in global `config` + * Custom MapTiler Cloud API key to use instead of the one in global `config` */ apiKey?: string; /** @@ -1102,4 +1127,4 @@ declare class ServiceError extends Error { constructor(res: Response, customMessage?: string); } -export { AutomaticStaticMapOptions, BoundedStaticMapOptions, CenteredStaticMapOptions, ClientConfig, CoordinateExport, CoordinateGrid, CoordinateId, CoordinateSearch, CoordinateSearchResult, CoordinateTransformResult, CoordinateTransformation, Coordinates, CoordinatesSearchOptions, CoordinatesTransformOptions, FeatureHierarchy, FetchFunction, GeocodingFeature, GeocodingOptions, GeocodingSearchResult, GeolocationInfoOptions, GeolocationResult, GetDataOptions, LanguageGeocoding, LanguageGeocodingString, MapStyle, MapStylePreset, MapStyleType, MapStyleVariant, ReferenceMapStyle, ReverseGeocodingOptions, ServiceError, StaticMapBaseOptions, StaticMapMarker, XYZ, config, coordinates, data, expandMapStyle, geocoding, geolocation, mapStylePresetList, staticMaps }; +export { AutomaticStaticMapOptions, BoundedStaticMapOptions, CenteredStaticMapOptions, ClientConfig, CommonForwardAndReverseGeocodingOptions, CoordinateExport, CoordinateGrid, CoordinateId, CoordinateSearch, CoordinateSearchResult, CoordinateTransformResult, CoordinateTransformation, Coordinates, CoordinatesSearchOptions, CoordinatesTransformOptions, FeatureHierarchy, FetchFunction, GeocodingFeature, GeocodingOptions, GeocodingSearchResult, GeolocationInfoOptions, GeolocationResult, GetDataOptions, LanguageGeocoding, LanguageGeocodingOptions, LanguageGeocodingString, MapStyle, MapStylePreset, MapStyleType, MapStyleVariant, ReferenceMapStyle, ReverseGeocodingOptions, ServiceError, StaticMapBaseOptions, StaticMapMarker, XYZ, config, coordinates, data, expandMapStyle, geocoding, geolocation, mapStylePresetList, staticMaps }; diff --git a/dist/maptiler-client.min.mjs b/dist/maptiler-client.min.mjs index 067fdee..dc49c5c 100644 --- a/dist/maptiler-client.min.mjs +++ b/dist/maptiler-client.min.mjs @@ -1 +1 @@ -function V(){return typeof self<"u"?fetch.bind(self):typeof global<"u"&&global.fetch?global.fetch:null}class w{constructor(){this._apiKey="",this._fetch=V()}set apiKey(t){this._apiKey=t}get apiKey(){return this._apiKey}set fetch(t){this._fetch=t}get fetch(){return this._fetch}}const g=new w,A={AUTO:"auto",ALBANIAN:"sq",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HUNGARIAN:"hu",ICELANDIC:"is",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALTESE:"mt",NORWEGIAN:"no",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},G=new Set(Object.values(A));function N(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const r=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>G.has(t));return r.length?r[0]:A.ENGLISH}var F=(r,t,e)=>new Promise((a,n)=>{var s=o=>{try{c(e.next(o))}catch(l){n(l)}},i=o=>{try{c(e.throw(o))}catch(l){n(l)}},c=o=>o.done?a(o.value):Promise.resolve(o.value).then(s,i);c((e=e.apply(r,t)).next())});function I(r){return F(this,arguments,function*(t,e={}){if(g.fetch===null)throw new Error("The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch");if(new URL(t).searchParams.get("key").trim()==="")throw new Error("The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com");return g.fetch(t,e)})}const y={maptilerApiURL:"https://api.maptiler.com/",mapStyle:"streets-v2"};Object.freeze(y);class v extends Error{constructor(t,e=""){super(`Call to enpoint ${t.url} failed with the status code ${t.status}. ${e}`),this.res=t}}var b=(r,t,e)=>new Promise((a,n)=>{var s=o=>{try{c(e.next(o))}catch(l){n(l)}},i=o=>{try{c(e.throw(o))}catch(l){n(l)}},c=o=>o.done?a(o.value):Promise.resolve(o.value).then(s,i);c((e=e.apply(r,t)).next())});const S={400:"Query too long / Invalid parameters",403:"Key is missing, invalid or restricted"};function B(r){return b(this,arguments,function*(t,e={}){var a;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const n=new URL(`geocoding/${encodeURIComponent(t)}.json`,y.maptilerApiURL);if(n.searchParams.set("key",(a=e.apiKey)!=null?a:g.apiKey),"bbox"in e&&n.searchParams.set("bbox",e.bbox.join(",")),"proximity"in e&&n.searchParams.set("proximity",e.proximity.join(",")),"language"in e){const c=Array.from(new Set((Array.isArray(e.language)?e.language:[e.language]).map(o=>o===A.AUTO?N():o))).join(",");n.searchParams.set("language",c)}const s=n.toString(),i=yield I(s);if(!i.ok)throw new v(i,i.status in S?S[i.status]:"");return yield i.json()})}function M(r){return b(this,arguments,function*(t,e={}){var a;if(!Array.isArray(t)||t.length<2)throw new Error("The position must be an array of form [lng, lat].");const n=new URL(`geocoding/${t[0]},${t[1]}.json`,y.maptilerApiURL);if(n.searchParams.set("key",(a=e.apiKey)!=null?a:g.apiKey),"language"in e){const c=Array.from(new Set((Array.isArray(e.language)?e.language:[e.language]).map(o=>o===A.AUTO?N():o))).join(",");n.searchParams.set("language",c)}const s=n.toString(),i=yield I(s);if(!i.ok)throw new v(i,i.status in S?S[i.status]:"");return yield i.json()})}const W={forward:B,reverse:M,language:A};var _=(r,t,e)=>new Promise((a,n)=>{var s=o=>{try{c(e.next(o))}catch(l){n(l)}},i=o=>{try{c(e.throw(o))}catch(l){n(l)}},c=o=>o.done?a(o.value):Promise.resolve(o.value).then(s,i);c((e=e.apply(r,t)).next())});const C={403:"Key is missing, invalid or restricted"};function z(){return _(this,arguments,function*(r={}){var t;const e=new URL("geolocation/ip.json",y.maptilerApiURL);e.searchParams.set("key",(t=r.apiKey)!=null?t:g.apiKey);const a=e.toString(),n=yield I(a);if(!n.ok)throw new v(n,n.status in C?C[n.status]:"");return yield n.json()})}const q={info:z};var K=(r,t,e)=>new Promise((a,n)=>{var s=o=>{try{c(e.next(o))}catch(l){n(l)}},i=o=>{try{c(e.throw(o))}catch(l){n(l)}},c=o=>o.done?a(o.value):Promise.resolve(o.value).then(s,i);c((e=e.apply(r,t)).next())});const L={403:"Key is missing, invalid or restricted"};function Y(r){return K(this,arguments,function*(t,e={}){var a;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const n=new URL(`coordinates/search/${t}.json`,y.maptilerApiURL);n.searchParams.set("key",(a=e.apiKey)!=null?a:g.apiKey),"limit"in e&&n.searchParams.set("limit",e.limit.toString()),"transformations"in e&&n.searchParams.set("transformations",e.transformations.toString()),"exports"in e&&n.searchParams.set("exports",e.exports.toString());const s=n.toString(),i=yield I(s);if(!i.ok)throw new v(i,i.status in L?L[i.status]:"");return yield i.json()})}function Z(r){return K(this,arguments,function*(t,e={}){var a;const n=(Array.isArray(t[0])?t:[t]).map(o=>`${o[0]},${o[1]}`).join(";"),s=new URL(`coordinates/transform/${n}.json`,y.maptilerApiURL);s.searchParams.set("key",(a=e.apiKey)!=null?a:g.apiKey),"sourceCrs"in e&&s.searchParams.set("s_srs",e.sourceCrs.toString()),"targetCrs"in e&&s.searchParams.set("t_srs",e.targetCrs.toString()),"operations"in e&&s.searchParams.set("ops",(Array.isArray(e.operations)?e.operations:[e.operations]).join("|"));const i=s.toString(),c=yield I(i);if(!c.ok)throw new v(c,c.status in L?L[c.status]:"");return yield c.json()})}const J={search:Y,transform:Z};var Q=(r,t,e)=>new Promise((a,n)=>{var s=o=>{try{c(e.next(o))}catch(l){n(l)}},i=o=>{try{c(e.throw(o))}catch(l){n(l)}},c=o=>o.done?a(o.value):Promise.resolve(o.value).then(s,i);c((e=e.apply(r,t)).next())});const O={403:"Key is missing, invalid or restricted"};function X(r){return Q(this,arguments,function*(t,e={}){var a;if(typeof t!="string"||t.trim().length===0)throw new Error("The data ID must be a non-empty string");const n=new URL(`data/${encodeURIComponent(t)}/features.json`,y.maptilerApiURL);n.searchParams.set("key",(a=e.apiKey)!=null?a:g.apiKey);const s=n.toString(),i=yield I(s);if(!i.ok)throw new v(i,i.status in O?O[i.status]:"");return yield i.json()})}const ee={get:X};function x(r){const t=/^maptiler:\/\/(.*)/;let e;const a=r.trim();let n;return a.startsWith("http://")||a.startsWith("https://")?n=a:(e=t.exec(a))!==null?n=`https://api.maptiler.com/maps/${e[1]}/style.json`:n=`https://api.maptiler.com/maps/${a}/style.json`,n}class U{constructor(t,e,a,n,s,i){this.name=t,this.variantType=e,this.id=a,this.referenceStyle=n,this.description=s,this.imageURL=i}getName(){return this.name}getFullName(){return`${this.referenceStyle.getName()} ${this.name}`}getType(){return this.variantType}getId(){return this.id}getDescription(){return this.description}getReferenceStyle(){return this.referenceStyle}hasVariant(t){return this.referenceStyle.hasVariant(t)}getVariant(t){return this.referenceStyle.getVariant(t)}getVariants(){return this.referenceStyle.getVariants().filter(t=>t!==this)}getImageURL(){return this.imageURL}getExpandedStyleURL(){return x(this.getId())}}class D{constructor(t,e){this.name=t,this.id=e,this.variants={},this.orderedVariants=[]}getName(){return this.name}getId(){return this.id}addVariant(t){this.variants[t.getType()]=t,this.orderedVariants.push(t)}hasVariant(t){return t in this.variants}getVariant(t){return t in this.variants?this.variants[t]:this.orderedVariants[0]}getVariants(){return Object.values(this.variants)}getDefaultVariant(){return this.orderedVariants[0]}}const R=[{referenceStyleID:"STREETS",name:"Streets",description:"",variants:[{id:"streets-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"streets-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"streets-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"streets-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OUTDOOR",name:"Outdoor",description:"",variants:[{id:"outdoor-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"WINTER",name:"Winter",description:"",variants:[{id:"winter-v2",name:"Winter",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"SATELLITE",name:"Satellite",description:"",variants:[{id:"satellite",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"HYBRID",name:"Hybrid",description:"",variants:[{id:"hybrid",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"BASIC",name:"Basic",description:"",variants:[{id:"basic-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"basic-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"basic-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"BRIGHT",name:"Bright",description:"",variants:[{id:"bright-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"bright-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"bright-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"bright-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OPENSTREETMAP",name:"OpenStreetMap",description:"",variants:[{id:"openstreetmap",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"TOPO",name:"Topo",description:"",variants:[{id:"topo-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"topo-v2-shiny",name:"Shiny",variantType:"SHINY",description:"",imageURL:""},{id:"topo-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""},{id:"topo-v2-topographique",name:"Topographique",variantType:"TOPOGRAPHIQUE",description:"",imageURL:""}]},{referenceStyleID:"VOYAGER",name:"Voyager",description:"",variants:[{id:"voyager-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"voyager-v2-darkmatter",name:"Darkmatter",variantType:"DARK",description:"",imageURL:""},{id:"voyager-v2-positron",name:"Positron",variantType:"LIGHT",description:"",imageURL:""},{id:"voyager-v2-vintage",name:"Vintage",variantType:"VINTAGE",description:"",imageURL:""}]},{referenceStyleID:"TONER",name:"Toner",description:"",variants:[{id:"toner-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"toner-v2-background",name:"Background",variantType:"BACKGROUND",description:"",imageURL:""},{id:"toner-v2-lite",name:"Lite",variantType:"LITE",description:"",imageURL:""},{id:"toner-v2-lines",name:"Lines",variantType:"LINES",description:"",imageURL:""}]},{referenceStyleID:"DATAVIZ",name:"Dataviz",description:"",variants:[{id:"dataviz",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"dataviz-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"dataviz-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"OCEAN",name:"Ocean",description:"",variants:[{id:"ocean",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]}];function te(r){return new Proxy(r,{get(t,e,a){return t.hasVariant(e)?t.getVariant(e):e.toString().toUpperCase()===e?r.getDefaultVariant():Reflect.get(t,e,a)}})}function re(){const r={};for(let t=0;t1?(a=e[0],n=e[1]):c>0&&(a+=s*c,n+=i*c)}return s=r[0]-a,i=r[1]-n,s*s+i*i}function E(r,t,e,a,n){let s=a,i;for(let c=t+1;cs&&(i=c,s=o)}s>a&&(i-t>1&&E(r,t,i,a,n),n.push(r[i]),e-i>1&&E(r,i,e,a,n))}function ae(r,t){const e=r.length-1,a=[r[0]];return E(r,0,e,t,a),a.push(r[e]),a}function ie(r,t){if(r.length<=2)return r;const e=t!==void 0?t*t:1;return ae(r,e)}function P(r,t=!0){let e=`${r[0]},${r[1]}`;return r.length===3&&t&&(e+=`,${r[2]}`),e}function $(r,t=3e3){let e=r.map(s=>s.join(",")).join("|"),a=5e-6;const n=1e-5;for(;e.length>t;)e=ie(r,a).map(s=>`${s[0]},${s[1]}`).join("|"),a+=n;return e}function se(r,t,e={}){var a,n,s,i,c;const o=k(e.style),l=e.hiDPI?"@2x":"",f=(a=e.format)!=null?a:"png";let u=~~((n=e.width)!=null?n:1024),m=~~((s=e.height)!=null?s:1024);e.hiDPI&&(u=~~(u/2),m=~~(m/2));const p=new URL(`maps/${encodeURIComponent(o)}/static/${r[0]},${r[1]},${t}/${u}x${m}${l}.${f}`,y.maptilerApiURL);if("attribution"in e&&p.searchParams.set("attribution",e.attribution.toString()),"markers"in e){let h="";const d="markerIcon"in e;d&&(h+=`icon:${e.markerIcon}|`),d&&"markerAnchor"in e&&(h+=`anchor:${e.markerAnchor}|`),d&&e.hiDPI&&(h+="scale:2|");const T=Array.isArray(e.markers[0])?e.markers:[e.markers];h+=T.map(j=>P(j,!d)).join("|"),p.searchParams.set("markers",h)}if("path"in e){let h="";if(h+=`fill:${(i=e.pathFillColor)!=null?i:"none"}|`,"pathStrokeColor"in e&&(h+=`stroke:${e.pathStrokeColor}|`),"pathWidth"in e){const d=e.pathWidth/(e.hiDPI?2:1);h+=`width:${d.toString()}|`}h+=$(e.path),p.searchParams.set("path",h)}return p.searchParams.set("key",(c=e.apiKey)!=null?c:g.apiKey),p.toString()}function oe(r,t={}){var e,a,n,s,i;const c=k(t.style),o=t.hiDPI?"@2x":"",l=(e=t.format)!=null?e:"png";let f=~~((a=t.width)!=null?a:1024),u=~~((n=t.height)!=null?n:1024);t.hiDPI&&(f=~~(f/2),u=~~(u/2));const m=new URL(`maps/${encodeURIComponent(c)}/static/${r[0]},${r[1]},${r[2]},${r[3]}/${f}x${u}${o}.${l}`,y.maptilerApiURL);if("attribution"in t&&m.searchParams.set("attribution",t.attribution.toString()),"padding"in t&&m.searchParams.set("padding",t.padding.toString()),"markers"in t){let p="";const h="markerIcon"in t;h&&(p+=`icon:${t.markerIcon}|`),h&&"markerAnchor"in t&&(p+=`anchor:${t.markerAnchor}|`),h&&t.hiDPI&&(p+="scale:2|");const d=Array.isArray(t.markers[0])?t.markers:[t.markers];p+=d.map(T=>P(T,!h)).join("|"),m.searchParams.set("markers",p)}if("path"in t){let p="";if(p+=`fill:${(s=t.pathFillColor)!=null?s:"none"}|`,"pathStrokeColor"in t&&(p+=`stroke:${t.pathStrokeColor}|`),"pathWidth"in t){const h=t.pathWidth/(t.hiDPI?2:1);p+=`width:${h.toString()}|`}p+=$(t.path),m.searchParams.set("path",p)}return m.searchParams.set("key",(i=t.apiKey)!=null?i:g.apiKey),m.toString()}function ce(r={}){var t,e,a,n,s;if(!("markers"in r)&&!("path"in r))throw new Error("Automatic static maps require markers and/or path to be created.");const i=k(r.style),c=r.hiDPI?"@2x":"",o=(t=r.format)!=null?t:"png";let l=~~((e=r.width)!=null?e:1024),f=~~((a=r.height)!=null?a:1024);r.hiDPI&&(l=~~(l/2),f=~~(f/2));const u=new URL(`maps/${encodeURIComponent(i)}/static/auto/${l}x${f}${c}.${o}`,y.maptilerApiURL);if("attribution"in r&&u.searchParams.set("attribution",r.attribution.toString()),"padding"in r&&u.searchParams.set("padding",r.padding.toString()),"markers"in r){let m="";const p="markerIcon"in r;p&&(m+=`icon:${r.markerIcon}|`),p&&"markerAnchor"in r&&(m+=`anchor:${r.markerAnchor}|`),p&&r.hiDPI&&(m+="scale:2|");const h=Array.isArray(r.markers[0])?r.markers:[r.markers];m+=h.map(d=>P(d,!p)).join("|"),u.searchParams.set("markers",m)}if("path"in r){let m="";if(m+=`fill:${(n=r.pathFillColor)!=null?n:"none"}|`,"pathStrokeColor"in r&&(m+=`stroke:${r.pathStrokeColor}|`),"pathWidth"in r){const p=r.pathWidth/(r.hiDPI?2:1);m+=`width:${p.toString()}|`}m+=$(r.path),u.searchParams.set("path",m)}return u.searchParams.set("key",(s=r.apiKey)!=null?s:g.apiKey),u.toString()}const le={centered:se,bounded:oe,automatic:ce};export{w as ClientConfig,A as LanguageGeocoding,H as MapStyle,U as MapStyleVariant,D as ReferenceMapStyle,v as ServiceError,g as config,J as coordinates,ee as data,x as expandMapStyle,W as geocoding,q as geolocation,R as mapStylePresetList,le as staticMaps}; +function G(){return typeof self<"u"?fetch.bind(self):typeof global<"u"&&global.fetch?global.fetch:null}class N{constructor(){this._apiKey="",this._fetch=G()}set apiKey(t){this._apiKey=t}get apiKey(){return this._apiKey}set fetch(t){this._fetch=t}get fetch(){return this._fetch}}const d=new N,I={AUTO:"auto",ALBANIAN:"sq",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HUNGARIAN:"hu",ICELANDIC:"is",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALTESE:"mt",NORWEGIAN:"no",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},F=new Set(Object.values(I));function M(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const n=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>F.has(t));return n.length?n[0]:I.ENGLISH}var B=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});function A(n){return B(this,arguments,function*(t,e={}){if(d.fetch===null)throw new Error("The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch");if(new URL(t).searchParams.get("key").trim()==="")throw new Error("The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com");return d.fetch(t,e)})}const g={maptilerApiURL:"https://api.maptiler.com/",mapStyle:"streets-v2"};Object.freeze(g);class v extends Error{constructor(t,e=""){super(`Call to enpoint ${t.url} failed with the status code ${t.status}. ${e}`),this.res=t}}var T=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const U={400:"Query too long / Invalid parameters",403:"Key is missing, invalid or restricted"};function b(n,t){if(t.language==null)return;const e=Array.from(new Set((Array.isArray(t.language)?t.language:[t.language]).map(r=>r===I.AUTO?M():r))).join(",");n.set("language",e)}function C(n,t){var e;n.set("key",(e=t.apiKey)!=null?e:d.apiKey),t.limit!=null&&n.set("limit",String(t.limit)),t.types!=null&&n.set("types",t.types.join(",")),b(n,t)}function W(n){return T(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const i=new URL(`geocoding/${encodeURIComponent(t)}.json`,g.maptilerApiURL),{searchParams:a}=i;C(a,e),e.bbox!=null&&a.set("bbox",e.bbox.join(",")),e.proximity!=null&&a.set("proximity",e.proximity.join(",")),e.country!=null&&a.set("country",e.country.join(",")),e.fuzzyMatch!=null&&a.set("fuzzyMatch",e.fuzzyMatch?"true":"false"),e.autocomplete!=null&&a.set("autocomplete",e.autocomplete?"true":"false");const s=i.toString(),c=yield A(s);if(!c.ok)throw new v(c,(r=U[c.status])!=null?r:"");return yield c.json()})}function z(n){return T(this,arguments,function*(t,e={}){var r;if(!Array.isArray(t)||t.length<2)throw new Error("The position must be an array of form [lng, lat].");const i=new URL(`geocoding/${t[0]},${t[1]}.json`,g.maptilerApiURL);C(i.searchParams,e);const a=i.toString(),s=yield A(a);if(!s.ok)throw new v(s,(r=U[s.status])!=null?r:"");return yield s.json()})}function _(n){return T(this,arguments,function*(t,e={}){var r;const i=new URL(`geocoding/${t}.json`,g.maptilerApiURL);b(i.searchParams,e);const a=i.toString(),s=yield A(a);if(!s.ok)throw new v(s,(r=U[s.status])!=null?r:"");return yield s.json()})}const q={forward:W,reverse:z,byId:_,language:I};var Y=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const K={403:"Key is missing, invalid or restricted"};function Z(){return Y(this,arguments,function*(n={}){var t;const e=new URL("geolocation/ip.json",g.maptilerApiURL);e.searchParams.set("key",(t=n.apiKey)!=null?t:d.apiKey);const r=e.toString(),i=yield A(r);if(!i.ok)throw new v(i,i.status in K?K[i.status]:"");return yield i.json()})}const J={info:Z};var O=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const S={403:"Key is missing, invalid or restricted"};function Q(n){return O(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const i=new URL(`coordinates/search/${t}.json`,g.maptilerApiURL);i.searchParams.set("key",(r=e.apiKey)!=null?r:d.apiKey),"limit"in e&&i.searchParams.set("limit",e.limit.toString()),"transformations"in e&&i.searchParams.set("transformations",e.transformations.toString()),"exports"in e&&i.searchParams.set("exports",e.exports.toString());const a=i.toString(),s=yield A(a);if(!s.ok)throw new v(s,s.status in S?S[s.status]:"");return yield s.json()})}function X(n){return O(this,arguments,function*(t,e={}){var r;const i=(Array.isArray(t[0])?t:[t]).map(o=>`${o[0]},${o[1]}`).join(";"),a=new URL(`coordinates/transform/${i}.json`,g.maptilerApiURL);a.searchParams.set("key",(r=e.apiKey)!=null?r:d.apiKey),"sourceCrs"in e&&a.searchParams.set("s_srs",e.sourceCrs.toString()),"targetCrs"in e&&a.searchParams.set("t_srs",e.targetCrs.toString()),"operations"in e&&a.searchParams.set("ops",(Array.isArray(e.operations)?e.operations:[e.operations]).join("|"));const s=a.toString(),c=yield A(s);if(!c.ok)throw new v(c,c.status in S?S[c.status]:"");return yield c.json()})}const ee={search:Q,transform:X};var te=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const j={403:"Key is missing, invalid or restricted"};function ne(n){return te(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The data ID must be a non-empty string");const i=new URL(`data/${encodeURIComponent(t)}/features.json`,g.maptilerApiURL);i.searchParams.set("key",(r=e.apiKey)!=null?r:d.apiKey);const a=i.toString(),s=yield A(a);if(!s.ok)throw new v(s,s.status in j?j[s.status]:"");return yield s.json()})}const re={get:ne};function x(n){const t=/^maptiler:\/\/(.*)/;let e;const r=n.trim();let i;return r.startsWith("http://")||r.startsWith("https://")?i=r:(e=t.exec(r))!==null?i=`https://api.maptiler.com/maps/${e[1]}/style.json`:i=`https://api.maptiler.com/maps/${r}/style.json`,i}class D{constructor(t,e,r,i,a,s){this.name=t,this.variantType=e,this.id=r,this.referenceStyle=i,this.description=a,this.imageURL=s}getName(){return this.name}getFullName(){return`${this.referenceStyle.getName()} ${this.name}`}getType(){return this.variantType}getId(){return this.id}getDescription(){return this.description}getReferenceStyle(){return this.referenceStyle}hasVariant(t){return this.referenceStyle.hasVariant(t)}getVariant(t){return this.referenceStyle.getVariant(t)}getVariants(){return this.referenceStyle.getVariants().filter(t=>t!==this)}getImageURL(){return this.imageURL}getExpandedStyleURL(){return x(this.getId())}}class k{constructor(t,e){this.name=t,this.id=e,this.variants={},this.orderedVariants=[]}getName(){return this.name}getId(){return this.id}addVariant(t){this.variants[t.getType()]=t,this.orderedVariants.push(t)}hasVariant(t){return t in this.variants}getVariant(t){return t in this.variants?this.variants[t]:this.orderedVariants[0]}getVariants(){return Object.values(this.variants)}getDefaultVariant(){return this.orderedVariants[0]}}const L=[{referenceStyleID:"STREETS",name:"Streets",description:"",variants:[{id:"streets-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"streets-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"streets-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"streets-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OUTDOOR",name:"Outdoor",description:"",variants:[{id:"outdoor-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"WINTER",name:"Winter",description:"",variants:[{id:"winter-v2",name:"Winter",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"SATELLITE",name:"Satellite",description:"",variants:[{id:"satellite",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"HYBRID",name:"Hybrid",description:"",variants:[{id:"hybrid",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"BASIC",name:"Basic",description:"",variants:[{id:"basic-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"basic-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"basic-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"BRIGHT",name:"Bright",description:"",variants:[{id:"bright-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"bright-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"bright-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"bright-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OPENSTREETMAP",name:"OpenStreetMap",description:"",variants:[{id:"openstreetmap",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"TOPO",name:"Topo",description:"",variants:[{id:"topo-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"topo-v2-shiny",name:"Shiny",variantType:"SHINY",description:"",imageURL:""},{id:"topo-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""},{id:"topo-v2-topographique",name:"Topographique",variantType:"TOPOGRAPHIQUE",description:"",imageURL:""}]},{referenceStyleID:"VOYAGER",name:"Voyager",description:"",variants:[{id:"voyager-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"voyager-v2-darkmatter",name:"Darkmatter",variantType:"DARK",description:"",imageURL:""},{id:"voyager-v2-positron",name:"Positron",variantType:"LIGHT",description:"",imageURL:""},{id:"voyager-v2-vintage",name:"Vintage",variantType:"VINTAGE",description:"",imageURL:""}]},{referenceStyleID:"TONER",name:"Toner",description:"",variants:[{id:"toner-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"toner-v2-background",name:"Background",variantType:"BACKGROUND",description:"",imageURL:""},{id:"toner-v2-lite",name:"Lite",variantType:"LITE",description:"",imageURL:""},{id:"toner-v2-lines",name:"Lines",variantType:"LINES",description:"",imageURL:""}]},{referenceStyleID:"DATAVIZ",name:"Dataviz",description:"",variants:[{id:"dataviz",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"dataviz-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"dataviz-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"OCEAN",name:"Ocean",description:"",variants:[{id:"ocean",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]}];function ie(n){return new Proxy(n,{get(t,e,r){return t.hasVariant(e)?t.getVariant(e):e.toString().toUpperCase()===e?n.getDefaultVariant():Reflect.get(t,e,r)}})}function ae(){const n={};for(let t=0;t1?(r=e[0],i=e[1]):c>0&&(r+=a*c,i+=s*c)}return a=n[0]-r,s=n[1]-i,a*a+s*s}function $(n,t,e,r,i){let a=r,s;for(let c=t+1;ca&&(s=c,a=o)}a>r&&(s-t>1&&$(n,t,s,r,i),i.push(n[s]),e-s>1&&$(n,s,e,r,i))}function oe(n,t){const e=n.length-1,r=[n[0]];return $(n,0,e,t,r),r.push(n[e]),r}function ce(n,t){if(n.length<=2)return n;const e=t!==void 0?t*t:1;return oe(n,e)}function P(n,t=!0){let e=`${n[0]},${n[1]}`;return n.length===3&&t&&(e+=`,${n[2]}`),e}function w(n,t=3e3){let e=n.map(a=>a.join(",")).join("|"),r=5e-6;const i=1e-5;for(;e.length>t;)e=ce(n,r).map(a=>`${a[0]},${a[1]}`).join("|"),r+=i;return e}function le(n,t,e={}){var r,i,a,s,c;const o=E(e.style),l=e.hiDPI?"@2x":"",f=(r=e.format)!=null?r:"png";let u=~~((i=e.width)!=null?i:1024),m=~~((a=e.height)!=null?a:1024);e.hiDPI&&(u=~~(u/2),m=~~(m/2));const p=new URL(`maps/${encodeURIComponent(o)}/static/${n[0]},${n[1]},${t}/${u}x${m}${l}.${f}`,g.maptilerApiURL);if("attribution"in e&&p.searchParams.set("attribution",e.attribution.toString()),"markers"in e){let h="";const y="markerIcon"in e;y&&(h+=`icon:${e.markerIcon}|`),y&&"markerAnchor"in e&&(h+=`anchor:${e.markerAnchor}|`),y&&e.hiDPI&&(h+="scale:2|");const R=Array.isArray(e.markers[0])?e.markers:[e.markers];h+=R.map(V=>P(V,!y)).join("|"),p.searchParams.set("markers",h)}if("path"in e){let h="";if(h+=`fill:${(s=e.pathFillColor)!=null?s:"none"}|`,"pathStrokeColor"in e&&(h+=`stroke:${e.pathStrokeColor}|`),"pathWidth"in e){const y=e.pathWidth/(e.hiDPI?2:1);h+=`width:${y.toString()}|`}h+=w(e.path),p.searchParams.set("path",h)}return p.searchParams.set("key",(c=e.apiKey)!=null?c:d.apiKey),p.toString()}function pe(n,t={}){var e,r,i,a,s;const c=E(t.style),o=t.hiDPI?"@2x":"",l=(e=t.format)!=null?e:"png";let f=~~((r=t.width)!=null?r:1024),u=~~((i=t.height)!=null?i:1024);t.hiDPI&&(f=~~(f/2),u=~~(u/2));const m=new URL(`maps/${encodeURIComponent(c)}/static/${n[0]},${n[1]},${n[2]},${n[3]}/${f}x${u}${o}.${l}`,g.maptilerApiURL);if("attribution"in t&&m.searchParams.set("attribution",t.attribution.toString()),"padding"in t&&m.searchParams.set("padding",t.padding.toString()),"markers"in t){let p="";const h="markerIcon"in t;h&&(p+=`icon:${t.markerIcon}|`),h&&"markerAnchor"in t&&(p+=`anchor:${t.markerAnchor}|`),h&&t.hiDPI&&(p+="scale:2|");const y=Array.isArray(t.markers[0])?t.markers:[t.markers];p+=y.map(R=>P(R,!h)).join("|"),m.searchParams.set("markers",p)}if("path"in t){let p="";if(p+=`fill:${(a=t.pathFillColor)!=null?a:"none"}|`,"pathStrokeColor"in t&&(p+=`stroke:${t.pathStrokeColor}|`),"pathWidth"in t){const h=t.pathWidth/(t.hiDPI?2:1);p+=`width:${h.toString()}|`}p+=w(t.path),m.searchParams.set("path",p)}return m.searchParams.set("key",(s=t.apiKey)!=null?s:d.apiKey),m.toString()}function me(n={}){var t,e,r,i,a;if(!("markers"in n)&&!("path"in n))throw new Error("Automatic static maps require markers and/or path to be created.");const s=E(n.style),c=n.hiDPI?"@2x":"",o=(t=n.format)!=null?t:"png";let l=~~((e=n.width)!=null?e:1024),f=~~((r=n.height)!=null?r:1024);n.hiDPI&&(l=~~(l/2),f=~~(f/2));const u=new URL(`maps/${encodeURIComponent(s)}/static/auto/${l}x${f}${c}.${o}`,g.maptilerApiURL);if("attribution"in n&&u.searchParams.set("attribution",n.attribution.toString()),"padding"in n&&u.searchParams.set("padding",n.padding.toString()),"markers"in n){let m="";const p="markerIcon"in n;p&&(m+=`icon:${n.markerIcon}|`),p&&"markerAnchor"in n&&(m+=`anchor:${n.markerAnchor}|`),p&&n.hiDPI&&(m+="scale:2|");const h=Array.isArray(n.markers[0])?n.markers:[n.markers];m+=h.map(y=>P(y,!p)).join("|"),u.searchParams.set("markers",m)}if("path"in n){let m="";if(m+=`fill:${(i=n.pathFillColor)!=null?i:"none"}|`,"pathStrokeColor"in n&&(m+=`stroke:${n.pathStrokeColor}|`),"pathWidth"in n){const p=n.pathWidth/(n.hiDPI?2:1);m+=`width:${p.toString()}|`}m+=w(n.path),u.searchParams.set("path",m)}return u.searchParams.set("key",(a=n.apiKey)!=null?a:d.apiKey),u.toString()}const he={centered:le,bounded:pe,automatic:me};export{N as ClientConfig,I as LanguageGeocoding,H as MapStyle,D as MapStyleVariant,k as ReferenceMapStyle,v as ServiceError,d as config,ee as coordinates,re as data,x as expandMapStyle,q as geocoding,J as geolocation,L as mapStylePresetList,he as staticMaps}; diff --git a/dist/maptiler-client.mjs b/dist/maptiler-client.mjs index bf4ebc3..24dc765 100644 --- a/dist/maptiler-client.mjs +++ b/dist/maptiler-client.mjs @@ -189,6 +189,30 @@ const customMessages$3 = { 400: "Query too long / Invalid parameters", 403: "Key is missing, invalid or restricted" }; +function addLanguageGeocodingOptions(searchParams, options) { + if (options.language == void 0) { + return; + } + const languages = Array.from( + new Set( + (Array.isArray(options.language) ? options.language : [options.language]).map( + (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang + ) + ) + ).join(","); + searchParams.set("language", languages); +} +function addCommonForwardAndReverseGeocodingOptions(searchParams, options) { + var _a; + searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); + if (options.limit != void 0) { + searchParams.set("limit", String(options.limit)); + } + if (options.types != void 0) { + searchParams.set("types", options.types.join(",")); + } + addLanguageGeocodingOptions(searchParams, options); +} function forward(_0) { return __async$3(this, arguments, function* (query, options = {}) { var _a; @@ -199,30 +223,27 @@ function forward(_0) { `geocoding/${encodeURIComponent(query)}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("bbox" in options) { - endpoint.searchParams.set("bbox", options.bbox.join(",")); + const { searchParams } = endpoint; + addCommonForwardAndReverseGeocodingOptions(searchParams, options); + if (options.bbox != void 0) { + searchParams.set("bbox", options.bbox.join(",")); } - if ("proximity" in options) { - endpoint.searchParams.set("proximity", options.proximity.join(",")); + if (options.proximity != void 0) { + searchParams.set("proximity", options.proximity.join(",")); } - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + if (options.country != void 0) { + searchParams.set("country", options.country.join(",")); + } + if (options.fuzzyMatch != void 0) { + searchParams.set("fuzzyMatch", options.fuzzyMatch ? "true" : "false"); + } + if (options.autocomplete != void 0) { + searchParams.set("autocomplete", options.autocomplete ? "true" : "false"); } const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -238,24 +259,25 @@ function reverse(_0) { `geocoding/${position[0]},${position[1]}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options); + const urlWithParams = endpoint.toString(); + const res = yield callFetch(urlWithParams); + if (!res.ok) { + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } + const obj = yield res.json(); + return obj; + }); +} +function byId(_0) { + return __async$3(this, arguments, function* (id, options = {}) { + var _a; + const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL); + addLanguageGeocodingOptions(endpoint.searchParams, options); const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -264,6 +286,7 @@ function reverse(_0) { const geocoding = { forward, reverse, + byId, language: LanguageGeocoding }; diff --git a/dist/maptiler-client.mjs.map b/dist/maptiler-client.mjs.map index d7391b9..3f25c06 100644 --- a/dist/maptiler-client.mjs.map +++ b/dist/maptiler-client.mjs.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.mjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type GeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"bbox\" in options) {\n endpoint.searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (\"proximity\" in options) {\n endpoint.searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\nexport type ReverseGeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information abou this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"maptiler-client.mjs","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file diff --git a/dist/maptiler-client.umd.js b/dist/maptiler-client.umd.js index 444430f..7165dab 100644 --- a/dist/maptiler-client.umd.js +++ b/dist/maptiler-client.umd.js @@ -195,6 +195,30 @@ 400: "Query too long / Invalid parameters", 403: "Key is missing, invalid or restricted" }; + function addLanguageGeocodingOptions(searchParams, options) { + if (options.language == void 0) { + return; + } + const languages = Array.from( + new Set( + (Array.isArray(options.language) ? options.language : [options.language]).map( + (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang + ) + ) + ).join(","); + searchParams.set("language", languages); + } + function addCommonForwardAndReverseGeocodingOptions(searchParams, options) { + var _a; + searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); + if (options.limit != void 0) { + searchParams.set("limit", String(options.limit)); + } + if (options.types != void 0) { + searchParams.set("types", options.types.join(",")); + } + addLanguageGeocodingOptions(searchParams, options); + } function forward(_0) { return __async$3(this, arguments, function* (query, options = {}) { var _a; @@ -205,30 +229,27 @@ `geocoding/${encodeURIComponent(query)}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("bbox" in options) { - endpoint.searchParams.set("bbox", options.bbox.join(",")); + const { searchParams } = endpoint; + addCommonForwardAndReverseGeocodingOptions(searchParams, options); + if (options.bbox != void 0) { + searchParams.set("bbox", options.bbox.join(",")); } - if ("proximity" in options) { - endpoint.searchParams.set("proximity", options.proximity.join(",")); + if (options.proximity != void 0) { + searchParams.set("proximity", options.proximity.join(",")); } - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + if (options.country != void 0) { + searchParams.set("country", options.country.join(",")); + } + if (options.fuzzyMatch != void 0) { + searchParams.set("fuzzyMatch", options.fuzzyMatch ? "true" : "false"); + } + if (options.autocomplete != void 0) { + searchParams.set("autocomplete", options.autocomplete ? "true" : "false"); } const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -244,24 +265,25 @@ `geocoding/${position[0]},${position[1]}.json`, defaults.maptilerApiURL ); - endpoint.searchParams.set("key", (_a = options.apiKey) != null ? _a : config.apiKey); - if ("language" in options) { - const languages = Array.from( - new Set( - (Array.isArray(options.language) ? options.language : [options.language]).map( - (lang) => lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang - ) - ) - ).join(","); - endpoint.searchParams.set("language", languages); + addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options); + const urlWithParams = endpoint.toString(); + const res = yield callFetch(urlWithParams); + if (!res.ok) { + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } + const obj = yield res.json(); + return obj; + }); + } + function byId(_0) { + return __async$3(this, arguments, function* (id, options = {}) { + var _a; + const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL); + addLanguageGeocodingOptions(endpoint.searchParams, options); const urlWithParams = endpoint.toString(); const res = yield callFetch(urlWithParams); if (!res.ok) { - throw new ServiceError( - res, - res.status in customMessages$3 ? customMessages$3[res.status] : "" - ); + throw new ServiceError(res, (_a = customMessages$3[res.status]) != null ? _a : ""); } const obj = yield res.json(); return obj; @@ -270,6 +292,7 @@ const geocoding = { forward, reverse, + byId, language: LanguageGeocoding }; diff --git a/dist/maptiler-client.umd.js.map b/dist/maptiler-client.umd.js.map index ac595d1..09beca4 100644 --- a/dist/maptiler-client.umd.js.map +++ b/dist/maptiler-client.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"maptiler-client.umd.js","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type GeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"bbox\" in options) {\n endpoint.searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (\"proximity\" in options) {\n endpoint.searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\nexport type ReverseGeocodingOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information abou this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"language\" in options) {\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n endpoint.searchParams.set(\"language\", languages);\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeocodingSearchResult;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom mapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":";;;;;;EAEA,SAAS,eAAkB,GAAA;EAEzB,EAAI,IAAA,OAAO,SAAS,WAAa,EAAA;EAC/B,IAAO,OAAA,KAAA,CAAM,KAAK,IAAI,CAAA,CAAA;EAAA,GACxB;EAEA,EAAA,IAAI,OAAO,MAAA,KAAW,WAAe,IAAA,MAAA,CAAO,KAAO,EAAA;EACjD,IAAA,OAAO,MAAO,CAAA,KAAA,CAAA;EAAA,GAChB;EAEA,EAAO,OAAA,IAAA,CAAA;EACT,CAAA;EAKA,MAAM,YAAa,CAAA;EAAA,EAAnB,WAAA,GAAA;EAIE;EAAA;EAAA;EAAA,IAAA,IAAA,CAAQ,OAAU,GAAA,EAAA,CAAA;EAMlB;EAAA;EAAA;EAAA;EAAA,IAAA,IAAA,CAAQ,SAA+B,eAAgB,EAAA,CAAA;EAAA,GAAA;EAAA;EAAA;EAAA;EAAA,EAKvD,IAAI,OAAO,CAAW,EAAA;EACpB,IAAA,IAAA,CAAK,OAAU,GAAA,CAAA,CAAA;EAAA,GACjB;EAAA;EAAA;EAAA;EAAA,EAKA,IAAI,MAAiB,GAAA;EACnB,IAAA,OAAO,IAAK,CAAA,OAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA,EAKA,IAAI,MAAM,CAAkB,EAAA;EAC1B,IAAA,IAAA,CAAK,MAAS,GAAA,CAAA,CAAA;EAAA,GAChB;EAAA;EAAA;EAAA;EAAA,EAKA,IAAI,KAA8B,GAAA;EAChC,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;EAAA,GACd;EACF,CAAA;AAKM,QAAA,MAAA,GAAS,IAAI,YAAa;;AC3DhC,QAAM,iBAAoB,GAAA;EAAA,EACxB,IAAM,EAAA,MAAA;EAAA,EACN,QAAU,EAAA,IAAA;EAAA,EACV,MAAQ,EAAA,IAAA;EAAA,EACR,QAAU,EAAA,IAAA;EAAA,EACV,WAAa,EAAA,IAAA;EAAA,EACb,WAAa,EAAA,IAAA;EAAA,EACb,OAAS,EAAA,IAAA;EAAA,EACT,MAAQ,EAAA,IAAA;EAAA,EACR,SAAW,EAAA,IAAA;EAAA,EACX,OAAS,EAAA,IAAA;EAAA,EACT,OAAS,EAAA,IAAA;EAAA,EACT,QAAU,EAAA,IAAA;EAAA,EACV,KAAO,EAAA,IAAA;EAAA,EACP,MAAQ,EAAA,IAAA;EAAA,EACR,KAAO,EAAA,IAAA;EAAA,EACP,OAAS,EAAA,IAAA;EAAA,EACT,SAAW,EAAA,IAAA;EAAA,EACX,QAAU,EAAA,IAAA;EAAA,EACV,OAAS,EAAA,IAAA;EAAA,EACT,MAAQ,EAAA,IAAA;EAAA,EACR,OAAS,EAAA,IAAA;EAAA,EACT,QAAU,EAAA,IAAA;EAAA,EACV,MAAQ,EAAA,IAAA;EAAA,EACR,KAAO,EAAA,IAAA;EAAA,EACP,MAAQ,EAAA,IAAA;EAAA,EACR,SAAW,EAAA,IAAA;EAAA,EACX,SAAW,EAAA,IAAA;EAAA,EACX,KAAO,EAAA,IAAA;EAAA,EACP,OAAS,EAAA,IAAA;EAAA,EACT,QAAU,EAAA,IAAA;EAAA,EACV,OAAS,EAAA,IAAA;EAAA,EACT,MAAQ,EAAA,IAAA;EAAA,EACR,MAAQ,EAAA,IAAA;EAAA,EACR,WAAa,EAAA,IAAA;EAAA,EACb,OAAS,EAAA,IAAA;EAAA,EACT,UAAY,EAAA,IAAA;EAAA,EACZ,aAAe,EAAA,IAAA;EAAA,EACf,UAAY,EAAA,IAAA;EAAA,EACZ,OAAS,EAAA,IAAA;EAAA,EACT,SAAW,EAAA,IAAA;EAAA,EACX,MAAQ,EAAA,IAAA;EAAA,EACR,UAAY,EAAA,IAAA;EAAA,EACZ,QAAU,EAAA,IAAA;EAAA,EACV,OAAS,EAAA,IAAA;EAAA,EACT,OAAS,EAAA,IAAA;EAAA,EACT,eAAiB,EAAA,IAAA;EAAA,EACjB,gBAAkB,EAAA,IAAA;EAAA,EAClB,MAAQ,EAAA,IAAA;EAAA,EACR,OAAS,EAAA,IAAA;EAAA,EACT,OAAS,EAAA,IAAA;EAAA,EACT,OAAS,EAAA,IAAA;EAAA,EACT,IAAM,EAAA,IAAA;EAAA,EACN,OAAS,EAAA,IAAA;EAAA,EACT,SAAW,EAAA,IAAA;EAAA,EACX,KAAO,EAAA,IAAA;EACT,EAAA;EAEA,MAAM,kBAAkB,IAAI,GAAA,CAAI,MAAO,CAAA,MAAA,CAAO,iBAAiB,CAAC,CAAA,CAAA;EAShE,SAAS,wBAAoD,GAAA;EAC3D,EAAI,IAAA,OAAO,cAAc,WAAa,EAAA;EACpC,IAAO,OAAA,IAAA,CAAK,gBACT,CAAA,eAAA,GACA,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,CAAA;EAAA,GACxB;EAEA,EAAA,MAAM,iBAAiB,KAAM,CAAA,IAAA;EAAA,IAC3B,IAAI,GAAA,CAAI,SAAU,CAAA,SAAA,CAAU,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,KAAM,CAAA,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;EAAA,IACvD,MAAO,CAAA,CAAC,MAAM,eAAgB,CAAA,GAAA,CAAI,CAA4B,CAAC,CAAA,CAAA;EAEjE,EAAA,OAAO,cAAe,CAAA,MAAA,GACjB,cAAe,CAAA,CAAC,IACjB,iBAAkB,CAAA,OAAA,CAAA;EACxB;;;;;;;;;;;;;;;;;;;;;;EClFA,SAAsB,UAAU,EAAwB,EAAA;EAAA,EAAxB,OAAAA,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,QAAA,EAAU,OAAU,GAAA,EAAI,EAAA;EACtD,IAAI,IAAA,MAAA,CAAO,UAAU,IAAM,EAAA;EACzB,MAAA,MAAM,IAAI,KAAA;EAAA,QACR,yGAAA;EAAA,OACF,CAAA;EAAA,KACF;EAGA,IAAI,IAAA,IAAI,GAAI,CAAA,QAAQ,CAAE,CAAA,YAAA,CAAa,IAAI,KAAK,CAAA,CAAE,IAAK,EAAA,KAAM,EAAI,EAAA;EAC3D,MAAA,MAAM,IAAI,KAAA;EAAA,QACR,8GAAA;EAAA,OACF,CAAA;EAAA,KACF;EAEA,IAAO,OAAA,MAAA,CAAO,KAAM,CAAA,QAAA,EAAU,OAAO,CAAA,CAAA;EAAA,GACvC,CAAA,CAAA;EAAA;;ECdA,MAAM,QAAW,GAAA;EAAA,EACf,cAAgB,EAAA,2BAAA;EAAA,EAChB,QAAU,EAAA,YAAA;EACZ,CAAA,CAAA;EAEA,MAAA,CAAO,OAAO,QAAQ,CAAA;;ECLf,MAAM,qBAAqB,KAAM,CAAA;EAAA,EACtC,WAAA,CAAmB,GAAe,EAAA,aAAA,GAAgB,EAAI,EAAA;EACpD,IAAA,KAAA;EAAA,MACE,CAAmB,gBAAA,EAAA,GAAA,CAAI,GAAmC,CAAA,6BAAA,EAAA,GAAA,CAAI,MAAW,CAAA,EAAA,EAAA,aAAA,CAAA,CAAA;EAAA,KAC3E,CAAA;EAHiB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA,CAAA;EAAA,GAInB;EACF;;;;;;;;;;;;;;;;;;;;;;ECGA,MAAMC,gBAAiB,GAAA;EAAA,EACrB,GAAK,EAAA,qCAAA;EAAA,EACL,GAAK,EAAA,uCAAA;EACP,CAAA,CAAA;EAkGA,SAAe,QACb,EAEgC,EAAA;EAAA,EAFhC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,KAAA,EACA,OAA4B,GAAA,EACI,EAAA;EApHlC,IAAA,IAAA,EAAA,CAAA;EAqHE,IAAA,IAAI,OAAO,KAAU,KAAA,QAAA,IAAY,MAAM,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;EAC1D,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA,CAAA;EAAA,KACxD;EAEA,IAAA,MAAM,WAAW,IAAI,GAAA;EAAA,MACnB,CAAA,UAAA,EAAa,mBAAmB,KAAK,CAAA,CAAA,KAAA,CAAA;EAAA,MACrC,QAAS,CAAA,cAAA;EAAA,KACX,CAAA;EACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,IAAA,IAAI,UAAU,OAAS,EAAA;EACrB,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,MAAA,EAAQ,QAAQ,IAAK,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;EAAA,KAC1D;EAEA,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,WAAA,EAAa,QAAQ,SAAU,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;EAAA,KACpE;EAEA,IAAA,IAAI,cAAc,OAAS,EAAA;EACzB,MAAA,MAAM,YAAY,KAAM,CAAA,IAAA;EAAA,QACtB,IAAI,GAAA;EAAA,UACD,CAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,QAAQ,CAAA,GAC3B,QAAQ,QACR,GAAA,CAAC,OAAQ,CAAA,QAAQ,CACnB,EAAA,GAAA;EAAA,YAAI,CAAC,IACL,KAAA,IAAA,KAAS,iBAAkB,CAAA,IAAA,GAAO,0BAA6B,GAAA,IAAA;EAAA,WACjE;EAAA,SACF;EAAA,OACF,CAAE,KAAK,GAAG,CAAA,CAAA;EAEV,MAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAAA,KACjD;EAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;EAsBA,SAAe,QACb,EAEgC,EAAA;EAAA,EAFhC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,QAAA,EACA,OAAmC,GAAA,EACH,EAAA;EA3LlC,IAAA,IAAA,EAAA,CAAA;EA4LE,IAAA,IAAI,CAAC,KAAM,CAAA,OAAA,CAAQ,QAAQ,CAAK,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;EACnD,MAAM,MAAA,IAAI,MAAM,mDAAmD,CAAA,CAAA;EAAA,KACrE;EAEA,IAAA,MAAM,WAAW,IAAI,GAAA;EAAA,MACnB,CAAa,UAAA,EAAA,QAAA,CAAS,CAAC,CAAA,CAAA,CAAA,EAAK,SAAS,CAAC,CAAA,CAAA,KAAA,CAAA;EAAA,MACtC,QAAS,CAAA,cAAA;EAAA,KACX,CAAA;EACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,IAAA,IAAI,cAAc,OAAS,EAAA;EACzB,MAAA,MAAM,YAAY,KAAM,CAAA,IAAA;EAAA,QACtB,IAAI,GAAA;EAAA,UACD,CAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,QAAQ,CAAA,GAC3B,QAAQ,QACR,GAAA,CAAC,OAAQ,CAAA,QAAQ,CACnB,EAAA,GAAA;EAAA,YAAI,CAAC,IACL,KAAA,IAAA,KAAS,iBAAkB,CAAA,IAAA,GAAO,0BAA6B,GAAA,IAAA;EAAA,WACjE;EAAA,SACF;EAAA,OACF,CAAE,KAAK,GAAG,CAAA,CAAA;EAEV,MAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAAA,KACjD;EAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;AAOA,QAAM,SAAY,GAAA;EAAA,EAChB,OAAA;EAAA,EACA,OAAA;EAAA,EACA,QAAU,EAAA,iBAAA;EACZ;;;;;;;;;;;;;;;;;;;;;;ECtOA,MAAMA,gBAAiB,GAAA;EAAA,EACrB,GAAK,EAAA,uCAAA;EACP,CAAA,CAAA;EAsGA,SAAe,IAEe,GAAA;EAAA,EAD5B,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,OAAA,GAAkC,EACN,EAAA;EAhH9B,IAAA,IAAA,EAAA,CAAA;EAiHE,IAAA,MAAM,QAAW,GAAA,IAAI,GAAI,CAAA,CAAA,mBAAA,CAAA,EAAuB,SAAS,cAAc,CAAA,CAAA;EACvE,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAChE,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;AAMA,QAAM,WAAc,GAAA;EAAA,EAClB,IAAA;EACF;;;;;;;;;;;;;;;;;;;;;;EClIA,MAAMA,gBAAiB,GAAA;EAAA,EACrB,GAAK,EAAA,uCAAA;EACP,CAAA,CAAA;EAqGA,SAAe,OACb,EAEiC,EAAA;EAAA,EAFjC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,KAAA,EACA,OAAoC,GAAA,EACH,EAAA;EAhHnC,IAAA,IAAA,EAAA,CAAA;EAiHE,IAAA,IAAI,OAAO,KAAU,KAAA,QAAA,IAAY,MAAM,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;EAC1D,MAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA,CAAA;EAAA,KACxD;EAEA,IAAA,MAAM,WAAW,IAAI,GAAA;EAAA,MACnB,CAAsB,mBAAA,EAAA,KAAA,CAAA,KAAA,CAAA;EAAA,MACtB,QAAS,CAAA,cAAA;EAAA,KACX,CAAA;EACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,IAAA,IAAI,WAAW,OAAS,EAAA;EACtB,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,KAAA,CAAM,UAAU,CAAA,CAAA;EAAA,KAC7D;EAEA,IAAA,IAAI,qBAAqB,OAAS,EAAA;EAChC,MAAA,QAAA,CAAS,YAAa,CAAA,GAAA;EAAA,QACpB,iBAAA;EAAA,QACA,OAAA,CAAQ,gBAAgB,QAAS,EAAA;EAAA,OACnC,CAAA;EAAA,KACF;EAEA,IAAA,IAAI,aAAa,OAAS,EAAA;EACxB,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;EAAA,KACjE;EAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;EAoDA,SAAe,UACb,EAEoC,EAAA;EAAA,EAFpC,OAAAD,SAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,SAAA,EACA,OAAuC,GAAA,EACH,EAAA;EA7MtC,IAAA,IAAA,EAAA,CAAA;EA8ME,IAAM,MAAA,cAAA,GAAA,CAAkB,MAAM,OAAQ,CAAA,SAAA,CAAU,CAAC,CAAC,CAAA,GAAI,SAAY,GAAA,CAAC,SAAS,CAAA,EACzE,IAAI,CAAC,KAAA,KAAU,CAAG,EAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA,EAAK,MAAM,CAAC,CAAA,CAAA,CAAG,CACxC,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EAEX,IAAA,MAAM,WAAW,IAAI,GAAA;EAAA,MACnB,CAAyB,sBAAA,EAAA,cAAA,CAAA,KAAA,CAAA;EAAA,MACzB,QAAS,CAAA,cAAA;EAAA,KACX,CAAA;EACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;EAAA,KACjE;EAEA,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,QAAA,CAAS,aAAa,GAAI,CAAA,OAAA,EAAS,OAAQ,CAAA,SAAA,CAAU,UAAU,CAAA,CAAA;EAAA,KACjE;EAEA,IAAA,IAAI,gBAAgB,OAAS,EAAA;EAC3B,MAAA,QAAA,CAAS,YAAa,CAAA,GAAA;EAAA,QACpB,KAAA;EAAA,QAAA,CACC,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,UAAU,CAC7B,GAAA,OAAA,CAAQ,UACR,GAAA,CAAC,OAAQ,CAAA,UAAU,CACrB,EAAA,IAAA,CAAK,GAAG,CAAA;EAAA,OACZ,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EACxC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAAC,gBAAA,GAAiBA,gBAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;AAMA,QAAM,WAAc,GAAA;EAAA,EAClB,MAAA;EAAA,EACA,SAAA;EACF;;;;;;;;;;;;;;;;;;;;;;ECzPA,MAAM,cAAiB,GAAA;EAAA,EACrB,GAAK,EAAA,uCAAA;EACP,CAAA,CAAA;EAkBA,SAAe,IACb,EAE4B,EAAA;EAAA,EAF5B,OAAA,OAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,MAAA,EACA,OAA0B,GAAA,EACE,EAAA;EA7B9B,IAAA,IAAA,EAAA,CAAA;EA8BE,IAAA,IAAI,OAAO,MAAW,KAAA,QAAA,IAAY,OAAO,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;EAC5D,MAAM,MAAA,IAAI,MAAM,wCAAwC,CAAA,CAAA;EAAA,KAC1D;EAEA,IAAA,MAAM,WAAW,IAAI,GAAA;EAAA,MACnB,CAAA,KAAA,EAAQ,mBAAmB,MAAM,CAAA,CAAA,cAAA,CAAA;EAAA,MACjC,QAAS,CAAA,cAAA;EAAA,KACX,CAAA;EACA,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAChE,IAAM,MAAA,aAAA,GAAgB,SAAS,QAAS,EAAA,CAAA;EAExC,IAAM,MAAA,GAAA,GAAM,MAAM,SAAA,CAAU,aAAa,CAAA,CAAA;EAEzC,IAAI,IAAA,CAAC,IAAI,EAAI,EAAA;EACX,MAAA,MAAM,IAAI,YAAA;EAAA,QACR,GAAA;EAAA,QACA,IAAI,MAAU,IAAA,cAAA,GAAiB,cAAe,CAAA,GAAA,CAAI,MAAM,CAAI,GAAA,EAAA;EAAA,OAC9D,CAAA;EAAA,KACF;EAEA,IAAM,MAAA,GAAA,GAAM,MAAM,GAAA,CAAI,IAAK,EAAA,CAAA;EAC3B,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA,CAAA;EAAA,CAAA;AAMA,QAAM,IAAO,GAAA;EAAA,EACX,GAAA;EACF;;ECvDO,SAAS,eAAe,KAAe,EAAA;EAE5C,EAAA,MAAM,mBAAsB,GAAA,oBAAA,CAAA;EAC5B,EAAI,IAAA,KAAA,CAAA;EACJ,EAAM,MAAA,OAAA,GAAU,MAAM,IAAK,EAAA,CAAA;EAC3B,EAAI,IAAA,aAAA,CAAA;EAGJ,EAAA,IAAI,QAAQ,UAAW,CAAA,SAAS,KAAK,OAAQ,CAAA,UAAA,CAAW,UAAU,CAAG,EAAA;EACnE,IAAgB,aAAA,GAAA,OAAA,CAAA;EAAA,cACN,KAAQ,GAAA,mBAAA,CAAoB,IAAK,CAAA,OAAO,OAAO,IAAM,EAAA;EAC/D,IAAgB,aAAA,GAAA,CAAA,8BAAA,EAAiC,MAAM,CAAC,CAAA,CAAA,WAAA,CAAA,CAAA;EAAA,GACnD,MAAA;EAEL,IAAA,aAAA,GAAgB,CAAiC,8BAAA,EAAA,OAAA,CAAA,WAAA,CAAA,CAAA;EAAA,GACnD;EAEA,EAAO,OAAA,aAAA,CAAA;EACT,CAAA;EAqBO,MAAM,eAAgB,CAAA;EAAA,EAC3B,YAIU,IAKA,EAAA,WAAA,EAKA,EAKA,EAAA,cAAA,EAKA,aAKA,QACR,EAAA;EA1BQ,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA;EAKA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA,CAAA;EAKA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA,CAAA;EAKA,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA,CAAA;EAKA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA,CAAA;EAKA,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA,CAAA;EAAA,GACP;EAAA;EAAA;EAAA;EAAA;EAAA,EAMH,OAAkB,GAAA;EAChB,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;EAAA,GACd;EAAA,EAEA,WAAsB,GAAA;EACpB,IAAA,OAAO,CAAG,EAAA,IAAA,CAAK,cAAe,CAAA,OAAA,MAAa,IAAK,CAAA,IAAA,CAAA,CAAA,CAAA;EAAA,GAClD;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,OAAkB,GAAA;EAChB,IAAA,OAAO,IAAK,CAAA,WAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,KAAgB,GAAA;EACd,IAAA,OAAO,IAAK,CAAA,EAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA,EAKA,cAAyB,GAAA;EACvB,IAAA,OAAO,IAAK,CAAA,WAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,iBAAuC,GAAA;EACrC,IAAA,OAAO,IAAK,CAAA,cAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,EAQA,WAAW,WAA8B,EAAA;EACvC,IAAO,OAAA,IAAA,CAAK,cAAe,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;EAAA,GACnD;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,EAQA,WAAW,WAAsC,EAAA;EAC/C,IAAO,OAAA,IAAA,CAAK,cAAe,CAAA,UAAA,CAAW,WAAW,CAAA,CAAA;EAAA,GACnD;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,WAAsC,GAAA;EACpC,IAAO,OAAA,IAAA,CAAK,eAAe,WAAY,EAAA,CAAE,OAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA,CAAA;EAAA,GACnE;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,WAAsB,GAAA;EACpB,IAAA,OAAO,IAAK,CAAA,QAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,mBAA8B,GAAA;EAC5B,IAAO,OAAA,cAAA,CAAe,IAAK,CAAA,KAAA,EAAO,CAAA,CAAA;EAAA,GACpC;EACF,CAAA;EAKO,MAAM,iBAAkB,CAAA;EAAA,EAW7B,WAAA,CAIU,MAKA,EACR,EAAA;EANQ,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA,CAAA;EAKA,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA,CAAA;EAhBV;EAAA;EAAA;EAAA,IAAA,IAAA,CAAQ,WAA+C,EAAC,CAAA;EAKxD;EAAA;EAAA;EAAA,IAAA,IAAA,CAAQ,kBAA0C,EAAC,CAAA;EAAA,GAYhD;EAAA;EAAA;EAAA;EAAA;EAAA,EAMH,OAAkB,GAAA;EAChB,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,KAAgB,GAAA;EACd,IAAA,OAAO,IAAK,CAAA,EAAA,CAAA;EAAA,GACd;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,WAAW,CAAoB,EAAA;EAC7B,IAAA,IAAA,CAAK,QAAS,CAAA,CAAA,CAAE,OAAQ,EAAC,CAAI,GAAA,CAAA,CAAA;EAC7B,IAAK,IAAA,CAAA,eAAA,CAAgB,KAAK,CAAC,CAAA,CAAA;EAAA,GAC7B;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,EAOA,WAAW,WAA8B,EAAA;EACvC,IAAA,OAAO,eAAe,IAAK,CAAA,QAAA,CAAA;EAAA,GAC7B;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,EAQA,WAAW,WAAsC,EAAA;EAC/C,IAAO,OAAA,WAAA,IAAe,KAAK,QACvB,GAAA,IAAA,CAAK,SAAS,WAAW,CAAA,GACzB,IAAK,CAAA,eAAA,CAAgB,CAAC,CAAA,CAAA;EAAA,GAC5B;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,WAAsC,GAAA;EACpC,IAAO,OAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;EAAA,GACpC;EAAA;EAAA;EAAA;EAAA;EAAA,EAMA,iBAAqC,GAAA;EACnC,IAAO,OAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;EAAA,GAC/B;EACF,CAAA;AAqNO,QAAM,kBAA4C,GAAA;EAAA,EACvD;EAAA,IACE,gBAAkB,EAAA,SAAA;EAAA,IAClB,IAAM,EAAA,SAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,YAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,iBAAA;EAAA,QACJ,IAAM,EAAA,MAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,kBAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,mBAAA;EAAA,QACJ,IAAM,EAAA,QAAA;EAAA,QACN,WAAa,EAAA,QAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,SAAA;EAAA,IAClB,IAAM,EAAA,SAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,YAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,QAAA;EAAA,IAClB,IAAM,EAAA,QAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,WAAA;EAAA,QACJ,IAAM,EAAA,QAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,WAAA;EAAA,IAClB,IAAM,EAAA,WAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,WAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,QAAA;EAAA,IAClB,IAAM,EAAA,QAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,QAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,OAAA;EAAA,IAClB,IAAM,EAAA,OAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,UAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,eAAA;EAAA,QACJ,IAAM,EAAA,MAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,gBAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,QAAA;EAAA,IAClB,IAAM,EAAA,QAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,WAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,gBAAA;EAAA,QACJ,IAAM,EAAA,MAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,iBAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,kBAAA;EAAA,QACJ,IAAM,EAAA,QAAA;EAAA,QACN,WAAa,EAAA,QAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,eAAA;EAAA,IAClB,IAAM,EAAA,eAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,eAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,MAAA;EAAA,IAClB,IAAM,EAAA,MAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,SAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,eAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,gBAAA;EAAA,QACJ,IAAM,EAAA,QAAA;EAAA,QACN,WAAa,EAAA,QAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,uBAAA;EAAA,QACJ,IAAM,EAAA,eAAA;EAAA,QACN,WAAa,EAAA,eAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,SAAA;EAAA,IAClB,IAAM,EAAA,SAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,YAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,uBAAA;EAAA,QACJ,IAAM,EAAA,YAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,qBAAA;EAAA,QACJ,IAAM,EAAA,UAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,oBAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,OAAA;EAAA,IAClB,IAAM,EAAA,OAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,UAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,qBAAA;EAAA,QACJ,IAAM,EAAA,YAAA;EAAA,QACN,WAAa,EAAA,YAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,eAAA;EAAA,QACJ,IAAM,EAAA,MAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,gBAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,SAAA;EAAA,IAClB,IAAM,EAAA,SAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,SAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,cAAA;EAAA,QACJ,IAAM,EAAA,MAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,MACA;EAAA,QACE,EAAI,EAAA,eAAA;EAAA,QACJ,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,OAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EAEA;EAAA,IACE,gBAAkB,EAAA,OAAA;EAAA,IAClB,IAAM,EAAA,OAAA;EAAA,IACN,WAAa,EAAA,EAAA;EAAA,IACb,QAAU,EAAA;EAAA,MACR;EAAA,QACE,EAAI,EAAA,OAAA;EAAA,QACJ,IAAM,EAAA,SAAA;EAAA,QACN,WAAa,EAAA,SAAA;EAAA,QACb,WAAa,EAAA,EAAA;EAAA,QACb,QAAU,EAAA,EAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EACF,EAAA;EAEA,SAAS,wBAAwB,cAAmC,EAAA;EAClE,EAAO,OAAA,IAAI,MAAM,cAAgB,EAAA;EAAA,IAC/B,GAAA,CAAI,MAAQ,EAAA,IAAA,EAAM,QAAU,EAAA;EAC1B,MAAI,IAAA,MAAA,CAAO,UAAW,CAAA,IAAc,CAAG,EAAA;EACrC,QAAO,OAAA,MAAA,CAAO,WAAW,IAAc,CAAA,CAAA;EAAA,OACzC;EAKA,MAAA,IAAI,IAAK,CAAA,QAAA,EAAW,CAAA,WAAA,OAAmB,IAAiB,EAAA;EACtD,QAAA,OAAO,eAAe,iBAAkB,EAAA,CAAA;EAAA,OAC1C;EAEA,MAAA,OAAO,OAAQ,CAAA,GAAA,CAAI,MAAQ,EAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;EAAA,KAC3C;EAAA,GACD,CAAA,CAAA;EACH,CAAA;EAEA,SAAS,cAA+B,GAAA;EACtC,EAAA,MAAM,WAAW,EAAC,CAAA;EAElB,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,kBAAmB,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;EACrD,IAAM,MAAA,YAAA,GAAe,mBAAmB,CAAC,CAAA,CAAA;EAEzC,IAAA,MAAM,QAAW,GAAA,uBAAA;EAAA,MACf,IAAI,iBAAA,CAAkB,YAAa,CAAA,IAAA,EAAM,aAAa,gBAAgB,CAAA;EAAA,KACxE,CAAA;EAEA,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,aAAa,QAAS,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;EACxD,MAAM,MAAA,WAAA,GAAc,YAAa,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EAC3C,MAAA,MAAM,UAAU,IAAI,eAAA;EAAA,QAClB,WAAY,CAAA,IAAA;EAAA;EAAA,QACZ,WAAY,CAAA,WAAA;EAAA;EAAA,QACZ,WAAY,CAAA,EAAA;EAAA;EAAA,QACZ,QAAA;EAAA;EAAA,QACA,WAAY,CAAA,WAAA;EAAA,QACZ,WAAY,CAAA,QAAA;EAAA;EAAA,OACd,CAAA;EAEA,MAAA,QAAA,CAAS,WAAW,OAAO,CAAA,CAAA;EAAA,KAC7B;EACA,IAAS,QAAA,CAAA,YAAA,CAAa,gBAAgB,CAAI,GAAA,QAAA,CAAA;EAAA,GAC5C;EACA,EAAO,OAAA,QAAA,CAAA;EACT,CAAA;EAEO,SAAS,aACd,KACQ,EAAA;EACR,EAAA,IAAI,CAAC,KAAO,EAAA;EACV,IAAO,OAAA,QAAA,CAAS,mBAAmB,CAAC,CAAA,CAAE,gBAAgB,CACnD,CAAA,iBAAA,GACA,KAAM,EAAA,CAAA;EAAA,GACX;EAGA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,KAAA,YAAiB,MAAQ,EAAA;EACxD,IAAO,OAAA,KAAA,CAAM,IAAK,EAAA,CAAE,WAAY,EAAA,CAAA;EAAA,GAClC;EAEA,EAAA,IAAI,iBAAiB,eAAiB,EAAA;EACpC,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;EAAA,GACrB;EAEA,EAAA,IAAI,iBAAiB,iBAAmB,EAAA;EACtC,IAAO,OAAA,KAAA,CAAM,iBAAkB,EAAA,CAAE,KAAM,EAAA,CAAA;EAAA,GACzC;EACF,CAAA;AAUO,QAAM,WAAyB,cAAe;;ECl2BrD,SAAS,YAAA,CAAa,CAAa,EAAA,EAAA,EAAc,EAAsB,EAAA;EACrE,EAAA,IAAI,IAAI,EAAG,CAAA,CAAC,CACV,EAAA,CAAA,GAAI,GAAG,CAAC,CAAA,EACR,EAAK,GAAA,EAAA,CAAG,CAAC,CAAI,GAAA,CAAA,EACb,EAAK,GAAA,EAAA,CAAG,CAAC,CAAI,GAAA,CAAA,CAAA;EAEf,EAAI,IAAA,EAAA,KAAO,CAAK,IAAA,EAAA,KAAO,CAAG,EAAA;EACxB,IAAA,MAAM,CAAM,GAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,GAAI,CAAK,IAAA,EAAA,GAAA,CAAM,CAAE,CAAA,CAAC,CAAI,GAAA,CAAA,IAAK,EAAO,KAAA,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,CAAA,CAAA;EAEhE,IAAA,IAAI,IAAI,CAAG,EAAA;EACT,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;EACR,MAAA,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA;EAAA,KACV,MAAA,IAAW,IAAI,CAAG,EAAA;EAChB,MAAA,CAAA,IAAK,EAAK,GAAA,CAAA,CAAA;EACV,MAAA,CAAA,IAAK,EAAK,GAAA,CAAA,CAAA;EAAA,KACZ;EAAA,GACF;EAEA,EAAK,EAAA,GAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;EACZ,EAAK,EAAA,GAAA,CAAA,CAAE,CAAC,CAAI,GAAA,CAAA,CAAA;EAEZ,EAAO,OAAA,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,CAAA;EACxB,CAAA;EAEA,SAAS,cACP,CAAA,MAAA,EACA,KACA,EAAA,IAAA,EACA,aACA,UACA,EAAA;EACA,EAAA,IAAI,YAAY,WACd,EAAA,KAAA,CAAA;EAEF,EAAA,KAAA,IAAS,CAAI,GAAA,KAAA,GAAQ,CAAG,EAAA,CAAA,GAAI,MAAM,CAAK,EAAA,EAAA;EACrC,IAAM,MAAA,MAAA,GAAS,YAAa,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,OAAO,KAAK,CAAA,EAAG,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;EAElE,IAAA,IAAI,SAAS,SAAW,EAAA;EACtB,MAAQ,KAAA,GAAA,CAAA,CAAA;EACR,MAAY,SAAA,GAAA,MAAA,CAAA;EAAA,KACd;EAAA,GACF;EAEA,EAAA,IAAI,YAAY,WAAa,EAAA;EAC3B,IAAI,IAAA,KAAA,GAAQ,QAAQ,CAAG,EAAA;EACrB,MAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,EAAO,KAAO,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;EAAA,KAC9D;EACA,IAAW,UAAA,CAAA,IAAA,CAAK,MAAO,CAAA,KAAK,CAAC,CAAA,CAAA;EAE7B,IAAI,IAAA,IAAA,GAAO,QAAQ,CAAG,EAAA;EACpB,MAAA,cAAA,CAAe,MAAQ,EAAA,KAAA,EAAO,IAAM,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;EAAA,KAC7D;EAAA,GACF;EACF,CAAA;EAGA,SAAS,sBAAA,CACP,QACA,WACiB,EAAA;EACjB,EAAM,MAAA,IAAA,GAAO,OAAO,MAAS,GAAA,CAAA,CAAA;EAC7B,EAAA,MAAM,UAAa,GAAA,CAAC,MAAO,CAAA,CAAC,CAAC,CAAA,CAAA;EAC7B,EAAA,cAAA,CAAe,MAAQ,EAAA,CAAA,EAAG,IAAM,EAAA,WAAA,EAAa,UAAU,CAAA,CAAA;EACvD,EAAW,UAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;EAC5B,EAAO,OAAA,UAAA,CAAA;EACT,CAAA;EAGwB,SAAA,QAAA,CACtB,QACA,SACiB,EAAA;EACjB,EAAI,IAAA,MAAA,CAAO,UAAU,CAAG,EAAA;EACtB,IAAO,OAAA,MAAA,CAAA;EAAA,GACT;EAEA,EAAA,MAAM,WAAc,GAAA,SAAA,KAAc,KAAY,CAAA,GAAA,SAAA,GAAY,SAAY,GAAA,CAAA,CAAA;EACtE,EAAM,MAAA,YAAA,GAAe,sBAAuB,CAAA,MAAA,EAAQ,WAAW,CAAA,CAAA;EAC/D,EAAO,OAAA,YAAA,CAAA;EACT;;EC0EA,SAAS,uBAAA,CACP,MACA,EAAA,YAAA,GAAe,IACP,EAAA;EACR,EAAA,IAAI,MAAM,CAAG,EAAA,MAAA,CAAO,CAAC,CAAA,CAAA,CAAA,EAAK,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA;EAElC,EAAI,IAAA,MAAA,CAAO,MAAW,KAAA,CAAA,IAAK,YAAc,EAAA;EACvC,IAAO,GAAA,IAAA,CAAA,CAAA,EAAI,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA;EAAA,GACrB;EAEA,EAAO,OAAA,GAAA,CAAA;EACT,CAAA;EAEA,SAAS,oBAAA,CAAqB,IAAuB,EAAA,SAAA,GAAY,GAAc,EAAA;EAC7E,EAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,KAAM,CAAA,IAAA,CAAK,GAAG,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EACvD,EAAA,IAAI,SAAY,GAAA,IAAA,CAAA;EAChB,EAAA,MAAM,aAAgB,GAAA,IAAA,CAAA;EAEtB,EAAO,OAAA,GAAA,CAAI,SAAS,SAAW,EAAA;EAC7B,IAAM,MAAA,WAAA,GAAc,QAAS,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;EAE5C,IAAA,GAAA,GAAM,WAAY,CAAA,GAAA,CAAI,CAAC,KAAA,KAAU,CAAG,EAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA,EAAK,KAAM,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;EACpE,IAAa,SAAA,IAAA,aAAA,CAAA;EAAA,GACf;EAEA,EAAO,OAAA,GAAA,CAAA;EACT,CAAA;EAYA,SAAS,QACP,CAAA,MAAA,EACA,IACA,EAAA,OAAA,GAAoC,EAC5B,EAAA;EA1MV,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;EA2ME,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;EACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;EACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;EACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;EACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;EACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;EAAA,GACvB;EAEA,EAAA,MAAM,WAAW,IAAI,GAAA;EAAA,IACnB,CAAQ,KAAA,EAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA,QAAA,EAAY,MAAO,CAAA,CAAC,CAClD,CAAA,CAAA,EAAA,MAAA,CAAO,CAAC,CAAA,CAAA,CAAA,EACN,IAAQ,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,SAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;EAAA,IACvC,QAAS,CAAA,cAAA;EAAA,GACX,CAAA;EAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;EAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;EAAA,GACzE;EAEA,EAAA,IAAI,aAAa,OAAS,EAAA;EACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;EAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;EAEhC,IAAA,IAAI,OAAS,EAAA;EACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;EACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACjC;EAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;EAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;EAAA,KACf;EAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;EACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;EAAA,GAChD;EAEA,EAAA,IAAI,UAAU,OAAS,EAAA;EACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;EAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;EAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;EAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;EAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACzC;EAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;EAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;EAAA,GAC3C;EAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;EAC3B,CAAA;EAWA,SAAS,OACP,CAAA,WAAA,EACA,OAAmC,GAAA,EAC3B,EAAA;EA9RV,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;EA+RE,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;EACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;EACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;EACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;EACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;EACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;EAAA,GACvB;EAEA,EAAA,MAAM,WAAW,IAAI,GAAA;EAAA,IACnB,QAAQ,kBAAmB,CAAA,KAAK,YAAY,WAAY,CAAA,CAAC,KACvD,WAAY,CAAA,CAAC,CACX,CAAA,CAAA,EAAA,WAAA,CAAY,CAAC,CAAK,CAAA,CAAA,EAAA,WAAA,CAAY,CAAC,CAAK,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAS,SAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;EAAA,IACnE,QAAS,CAAA,cAAA;EAAA,GACX,CAAA;EAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;EAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;EAAA,GACzE;EAEA,EAAA,IAAI,aAAa,OAAS,EAAA;EACxB,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;EAAA,GACjE;EAEA,EAAA,IAAI,aAAa,OAAS,EAAA;EACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;EAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;EAEhC,IAAA,IAAI,OAAS,EAAA;EACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;EACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACjC;EAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;EAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;EAAA,KACf;EAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;EACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;EAAA,GAChD;EAEA,EAAA,IAAI,UAAU,OAAS,EAAA;EACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;EAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;EAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;EAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;EAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACzC;EAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;EAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;EAAA,GAC3C;EAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;EAC3B,CAAA;EAUA,SAAS,SAAA,CAAU,OAAqC,GAAA,EAAY,EAAA;EAlXpE,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;EAmXE,EAAA,IAAI,EAAE,SAAA,IAAa,OAAY,CAAA,IAAA,EAAE,UAAU,OAAU,CAAA,EAAA;EACnD,IAAA,MAAM,IAAI,KAAA;EAAA,MACR,kEAAA;EAAA,KACF,CAAA;EAAA,GACF;EAEA,EAAM,MAAA,KAAA,GAAQ,YAAa,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;EACxC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,GAAQ,KAAQ,GAAA,EAAA,CAAA;EACtC,EAAM,MAAA,MAAA,GAAA,CAAS,EAAQ,GAAA,OAAA,CAAA,MAAA,KAAR,IAAkB,GAAA,EAAA,GAAA,KAAA,CAAA;EACjC,EAAA,IAAI,KAAQ,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAiB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAChC,EAAA,IAAI,MAAS,GAAA,CAAC,EAAE,CAAA,EAAA,GAAA,OAAA,CAAQ,WAAR,IAAkB,GAAA,EAAA,GAAA,IAAA,CAAA,CAAA;EAElC,EAAA,IAAI,QAAQ,KAAO,EAAA;EACjB,IAAQ,KAAA,GAAA,CAAC,EAAE,KAAQ,GAAA,CAAA,CAAA,CAAA;EACnB,IAAS,MAAA,GAAA,CAAC,EAAE,MAAS,GAAA,CAAA,CAAA,CAAA;EAAA,GACvB;EAEA,EAAA,MAAM,WAAW,IAAI,GAAA;EAAA,IACnB,CAAQ,KAAA,EAAA,kBAAA;AAAA,MACN,KAAA;AAAA,KACF,CAAA,aAAA,EAAiB,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,EAAS,KAAS,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;EAAA,IAC5C,QAAS,CAAA,cAAA;EAAA,GACX,CAAA;EAEA,EAAA,IAAI,iBAAiB,OAAS,EAAA;EAC5B,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,aAAA,EAAe,OAAQ,CAAA,WAAA,CAAY,UAAU,CAAA,CAAA;EAAA,GACzE;EAEA,EAAA,IAAI,aAAa,OAAS,EAAA;EACxB,IAAA,QAAA,CAAS,aAAa,GAAI,CAAA,SAAA,EAAW,OAAQ,CAAA,OAAA,CAAQ,UAAU,CAAA,CAAA;EAAA,GACjE;EAEA,EAAA,IAAI,aAAa,OAAS,EAAA;EACxB,IAAA,IAAI,SAAY,GAAA,EAAA,CAAA;EAEhB,IAAA,MAAM,UAAU,YAAgB,IAAA,OAAA,CAAA;EAEhC,IAAA,IAAI,OAAS,EAAA;EACX,MAAA,SAAA,IAAa,QAAQ,OAAQ,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAI,IAAA,OAAA,IAAW,kBAAkB,OAAS,EAAA;EACxC,MAAA,SAAA,IAAa,UAAU,OAAQ,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACjC;EAEA,IAAI,IAAA,OAAA,IAAW,QAAQ,KAAO,EAAA;EAC5B,MAAa,SAAA,IAAA,CAAA,QAAA,CAAA,CAAA;EAAA,KACf;EAEA,IAAA,MAAM,UAAa,GAAA,KAAA,CAAM,OAAQ,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,CAAC,CAAA,GAC/C,OAAQ,CAAA,OAAA,GACR,CAAC,OAAA,CAAQ,OAAO,CAAA,CAAA;EACpB,IAAa,SAAA,IAAA,UAAA,CACV,GAAI,CAAA,CAAC,CAAM,KAAA,uBAAA,CAAwB,CAAG,EAAA,CAAC,OAAO,CAAC,CAC/C,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EACX,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,SAAA,EAAW,SAAS,CAAA,CAAA;EAAA,GAChD;EAEA,EAAA,IAAI,UAAU,OAAS,EAAA;EACrB,IAAA,IAAI,OAAU,GAAA,EAAA,CAAA;EAEd,IAAW,OAAA,IAAA,CAAA,KAAA,EAAA,CAAQ,EAAQ,GAAA,OAAA,CAAA,aAAA,KAAR,IAAyB,GAAA,EAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;EAE5C,IAAA,IAAI,qBAAqB,OAAS,EAAA;EAChC,MAAA,OAAA,IAAW,UAAU,OAAQ,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC/B;EAEA,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAA,MAAM,SAAY,GAAA,OAAA,CAAQ,SAAa,IAAA,OAAA,CAAQ,QAAQ,CAAI,GAAA,CAAA,CAAA,CAAA;EAC3D,MAAW,OAAA,IAAA,CAAA,MAAA,EAAS,UAAU,QAAS,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACzC;EAEA,IAAW,OAAA,IAAA,oBAAA,CAAqB,QAAQ,IAAI,CAAA,CAAA;EAC5C,IAAS,QAAA,CAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;EAAA,GAC3C;EAEA,EAAA,QAAA,CAAS,aAAa,GAAI,CAAA,KAAA,EAAA,CAAO,aAAQ,MAAR,KAAA,IAAA,GAAA,EAAA,GAAkB,OAAO,MAAM,CAAA,CAAA;EAEhE,EAAA,OAAO,SAAS,QAAS,EAAA,CAAA;EAC3B,CAAA;AAMA,QAAM,UAAa,GAAA;EAAA,EACjB,QAAA;EAAA,EACA,OAAA;EAAA,EACA,SAAA;EACF;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"maptiler-client.umd.js","sources":["../src/config.ts","../src/language.ts","../src/callFetch.ts","../src/defaults.ts","../src/services/ServiceError.ts","../src/services/geocoding.ts","../src/services/geolocation.ts","../src/services/coordinates.ts","../src/services/data.ts","../src/mapstyle.ts","../src/services/simplify.ts","../src/services/staticMaps.ts"],"sourcesContent":["export type FetchFunction = (url: string, options: object) => Promise;\n\nfunction tryGettingFetch() {\n // this is browser, fetch exists\n if (typeof self !== \"undefined\") {\n return fetch.bind(self);\n }\n\n if (typeof global !== \"undefined\" && global.fetch) {\n return global.fetch;\n }\n\n return null;\n}\n\n/**\n * The configuration object definition\n */\nclass ClientConfig {\n /**\n * MapTiler Cloud API key\n */\n private _apiKey = \"\";\n\n /**\n * The fetch function. To be set if in Node < 18, otherwise\n * will be automatically resolved.\n */\n private _fetch: FetchFunction | null = tryGettingFetch();\n\n /**\n * Set the MapTiler Cloud API key\n */\n set apiKey(k: string) {\n this._apiKey = k;\n }\n\n /**\n * Get the MapTiler Cloud API key\n */\n get apiKey(): string {\n return this._apiKey;\n }\n\n /**\n * Set a the custom fetch function to replace the default one\n */\n set fetch(f: FetchFunction) {\n this._fetch = f;\n }\n\n /**\n * Get the fetch fucntion\n */\n get fetch(): FetchFunction | null {\n return this._fetch;\n }\n}\n\n/**\n * Configuration object\n */\nconst config = new ClientConfig();\n\nexport { ClientConfig, config };\n","/**\n * Languages. Note that not all the languages of this list are available but the compatibility list may be expanded in the future.\n */\nconst LanguageGeocoding = {\n AUTO: \"auto\",\n ALBANIAN: \"sq\",\n ARABIC: \"ar\",\n ARMENIAN: \"hy\",\n AZERBAIJANI: \"az\",\n BELORUSSIAN: \"be\",\n BOSNIAN: \"bs\",\n BRETON: \"br\",\n BULGARIAN: \"bg\",\n CATALAN: \"ca\",\n CHINESE: \"zh\",\n CROATIAN: \"hr\",\n CZECH: \"cs\",\n DANISH: \"da\",\n DUTCH: \"nl\",\n ENGLISH: \"en\",\n ESPERANTO: \"eo\",\n ESTONIAN: \"et\",\n FINNISH: \"fi\",\n FRENCH: \"fr\",\n FRISIAN: \"fy\",\n GEORGIAN: \"ka\",\n GERMAN: \"de\",\n GREEK: \"el\",\n HEBREW: \"he\",\n HUNGARIAN: \"hu\",\n ICELANDIC: \"is\",\n IRISH: \"ga\",\n ITALIAN: \"it\",\n JAPANESE: \"ja\",\n KANNADA: \"kn\",\n KAZAKH: \"kk\",\n KOREAN: \"ko\",\n ROMAN_LATIN: \"la\",\n LATVIAN: \"lv\",\n LITHUANIAN: \"lt\",\n LUXEMBOURGISH: \"lb\",\n MACEDONIAN: \"mk\",\n MALTESE: \"mt\",\n NORWEGIAN: \"no\",\n POLISH: \"pl\",\n PORTUGUESE: \"pt\",\n ROMANIAN: \"ro\",\n ROMANSH: \"rm\",\n RUSSIAN: \"ru\",\n SCOTTISH_GAELIC: \"gd\",\n SERBIAN_CYRILLIC: \"sr\",\n SLOVAK: \"sk\",\n SLOVENE: \"sl\",\n SPANISH: \"es\",\n SWEDISH: \"sv\",\n THAI: \"th\",\n TURKISH: \"tr\",\n UKRAINIAN: \"uk\",\n WELSH: \"cy\",\n};\n\nconst languageCodeSet = new Set(Object.values(LanguageGeocoding));\n\ntype Values = T[keyof T];\n\n/**\n * Built-in languages values as strings\n */\ntype LanguageGeocodingString = Values;\n\nfunction getAutoLanguageGeocoding(): LanguageGeocodingString {\n if (typeof navigator === \"undefined\") {\n return Intl.DateTimeFormat()\n .resolvedOptions()\n .locale.split(\"-\")[0] as LanguageGeocodingString;\n }\n\n const canditatelangs = Array.from(\n new Set(navigator.languages.map((l) => l.split(\"-\")[0]))\n ).filter((l) => languageCodeSet.has(l as LanguageGeocodingString));\n\n return canditatelangs.length\n ? (canditatelangs[0] as LanguageGeocodingString)\n : LanguageGeocoding.ENGLISH;\n}\n\nexport { LanguageGeocoding, LanguageGeocodingString, getAutoLanguageGeocoding };\n","import { config } from \"./config\";\n\nexport async function callFetch(resource, options = {}) {\n if (config.fetch === null) {\n throw new Error(\n \"The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch\"\n );\n }\n\n // Control if URL contains the api key\n if (new URL(resource).searchParams.get(\"key\").trim() === \"\") {\n throw new Error(\n \"The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com\"\n );\n }\n\n return config.fetch(resource, options);\n}\n","/**\n * Some default settings for the SDK\n */\nconst defaults = {\n maptilerApiURL: \"https://api.maptiler.com/\",\n mapStyle: \"streets-v2\",\n};\n\nObject.freeze(defaults);\n\nexport { defaults };\n","/**\n * A ServiceError is an Error that includes the HTTP response details\n */\nexport class ServiceError extends Error {\n constructor(public res: Response, customMessage = \"\") {\n super(\n `Call to enpoint ${res.url} failed with the status code ${res.status}. ${customMessage}`\n );\n }\n}\n","import { BBox, Feature, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\n\nimport {\n getAutoLanguageGeocoding,\n LanguageGeocoding,\n LanguageGeocodingString,\n} from \"../language\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 400: \"Query too long / Invalid parameters\",\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type LanguageGeocodingOptions = {\n /**\n * Prefer results in specific language. It’s possible to specify multiple values.\n */\n language?: LanguageGeocodingString | Array;\n};\n\nexport type CommonForwardAndReverseGeocodingOptions =\n LanguageGeocodingOptions & {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results to show. Must be between 1 and 10. Default is 5 for forward and 1 for reverse geocoding.\n */\n limit?: number;\n\n /**\n * Filter of feature types to return. If not specified, all available feature types are returned.\n */\n types?: (\n | \"country\"\n | \"region\"\n | \"subregion\"\n | \"county\"\n | \"joint_municipality\"\n | \"joint_submunicipality\"\n | \"municipality\"\n | \"municipal_district\"\n | \"locality\"\n | \"neighbourhood\"\n | \"place\"\n | \"postal_code\"\n | \"address\"\n )[];\n };\n\nexport type GeocodingOptions = CommonForwardAndReverseGeocodingOptions & {\n /**\n * Only search for results in the specified area.\n */\n bbox?: BBox;\n\n /**\n * Prefer results close to a specific location.\n */\n proximity?: Position;\n\n /**\n * Limit search to specific country/countries specified as list of Alpha-2 ISO 3166-1 codes.\n */\n country?: string[];\n\n /**\n * Set to `false` to disable fuzzy (typo-tolerant) search. Default is `true`.\n */\n fuzzyMatch?: boolean;\n\n /**\n * Set to `true` to use autocomplete, `false` to disable it.\n * Default (`undefined`) is to combine autocomplete with non-autocomplete results.\n */\n autocomplete?: boolean;\n};\n\nexport type ReverseGeocodingOptions = CommonForwardAndReverseGeocodingOptions;\n\nexport type ByIdGeocodingOptions = LanguageGeocodingOptions;\n\nexport type Coordinates = Position;\n\nexport type FeatureHierarchy = {\n /**\n * Unique feature ID\n */\n id: string;\n\n /**\n * Localized feature name\n */\n text: string;\n};\n\nexport type GeocodingFeature = Feature & {\n /**\n * Bounding box of the original feature as [w, s, e, n] array\n */\n bbox: BBox;\n\n /**\n * A [lon, lat] array of the original feature centeroid\n */\n center: Coordinates;\n\n /**\n * Formatted (including the hierarchy) and localized feature full name\n */\n place_name: string;\n\n /**\n * Localized feature name\n */\n text: string;\n\n /**\n * Feature hierarchy\n */\n context?: Array;\n\n /**\n * Address number, if applicable\n */\n address?: string;\n};\n\nexport type GeocodingSearchResult = {\n type: \"FeatureCollection\";\n\n /**\n * Array of features found\n */\n features: Array;\n\n /**\n * Tokenized search query\n */\n query: Array;\n\n /**\n * Attribution of the result\n */\n attribution: string;\n};\n\nfunction addLanguageGeocodingOptions(\n searchParams: URLSearchParams,\n options: LanguageGeocodingOptions\n) {\n if (options.language == undefined) {\n return;\n }\n\n const languages = Array.from(\n new Set(\n (Array.isArray(options.language)\n ? options.language\n : [options.language]\n ).map((lang) =>\n lang === LanguageGeocoding.AUTO ? getAutoLanguageGeocoding() : lang\n )\n )\n ).join(\",\");\n\n searchParams.set(\"language\", languages);\n}\n\nfunction addCommonForwardAndReverseGeocodingOptions(\n searchParams: URLSearchParams,\n options: CommonForwardAndReverseGeocodingOptions\n) {\n searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (options.limit != undefined) {\n searchParams.set(\"limit\", String(options.limit));\n }\n\n if (options.types != undefined) {\n searchParams.set(\"types\", options.types.join(\",\"));\n }\n\n addLanguageGeocodingOptions(searchParams, options);\n}\n\n/**\n * Performs a forward geocoding query to MapTiler API.\n * Providing a human readable place name (of a city, country, street, etc.), the function returns\n * a list of candidate locations including longitude and latitude.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-name-forward\n * @param query\n * @param options\n * @returns\n */\nasync function forward(\n query: string,\n options: GeocodingOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `geocoding/${encodeURIComponent(query)}.json`,\n defaults.maptilerApiURL\n );\n\n const { searchParams } = endpoint;\n\n addCommonForwardAndReverseGeocodingOptions(searchParams, options);\n\n if (options.bbox != undefined) {\n searchParams.set(\"bbox\", options.bbox.join(\",\"));\n }\n\n if (options.proximity != undefined) {\n searchParams.set(\"proximity\", options.proximity.join(\",\"));\n }\n\n if (options.country != undefined) {\n searchParams.set(\"country\", options.country.join(\",\"));\n }\n\n if (options.fuzzyMatch != undefined) {\n searchParams.set(\"fuzzyMatch\", options.fuzzyMatch ? \"true\" : \"false\");\n }\n\n if (options.autocomplete != undefined) {\n searchParams.set(\"autocomplete\", options.autocomplete ? \"true\" : \"false\");\n }\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a reverse geocoding query to MapTiler API.\n * Providing a longitude and latitude, this function returns a set of human readable information about this place (country, city, street, etc.)\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-coordinates-reverse\n * @param position\n * @param options\n * @returns\n */\nasync function reverse(\n position: Position,\n options: ReverseGeocodingOptions = {}\n): Promise {\n if (!Array.isArray(position) || position.length < 2) {\n throw new Error(\"The position must be an array of form [lng, lat].\");\n }\n\n const endpoint = new URL(\n `geocoding/${position[0]},${position[1]}.json`,\n defaults.maptilerApiURL\n );\n\n addCommonForwardAndReverseGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * Perform a geocoding query to MapTiler API to obtain fature by its ID.\n * Providing a feature ID, this function returns a feature which includes its full geometry.\n * Note that the feature ID is not stable and it changes when the database is re-indexed.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geocoding/#search-by-feature-id\n * @param id\n * @param options\n * @returns\n */\nasync function byId(\n id: string,\n options: ByIdGeocodingOptions = {}\n): Promise {\n const endpoint = new URL(`geocoding/${id}.json`, defaults.maptilerApiURL);\n\n addLanguageGeocodingOptions(endpoint.searchParams, options);\n\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(res, customMessages[res.status] ?? \"\");\n }\n\n const obj: GeocodingSearchResult = await res.json();\n\n return obj;\n}\n\n/**\n * The **geocoding** namespace contains asynchronous functions to call the [MapTiler Geocoding API](https://docs.maptiler.com/cloud/api/geocoding/).\n * The **Geocoding API** provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding)\n * and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);\n */\nconst geocoding = {\n forward,\n reverse,\n byId,\n language: LanguageGeocoding,\n};\n\nexport { geocoding };\n","import { BBox } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GeolocationInfoOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\nexport type GeolocationResult = {\n /**\n * Name of the country\n * Example: Switzerland\n */\n country?: string;\n\n /**\n * Two-letter code of the country ISO 3166-1 alpha-2 codes\n * Example: CH\n */\n country_code?: string;\n\n /**\n * Bounds of the country in WGS84 degrees [west, south, east, north].\n * Example: [5.95538,45.818852,10.490936,47.809357]\n */\n country_bounds?: BBox;\n\n /**\n * Official country languages in ISO 639-1 format. ISO 639-1 codes\n * Example: [\"de\",\"fr\",\"it\"]\n */\n country_languages?: Array;\n\n /**\n * Name of the continent\n * Example: Europe\n */\n continent?: string;\n\n /**\n * Two-letter code of the continent\n * Example: EU\n */\n continent_code?: string;\n\n /**\n * Indicated whether the country is part of the European Union.\n */\n eu?: boolean;\n\n /**\n * Name of the city\n * Example: Zurich\n */\n city?: string;\n\n /**\n * Latitude of the location\n * Example: 47.36667\n */\n latitude?: number;\n\n /**\n * Longitude of the location\n * Example: 8.55\n */\n longitude?: number;\n\n /**\n * Postal code\n * Example: 8000\n */\n postal?: string;\n\n /**\n * If known, the ISO 3166-2 name for the first level region. ISO 3166-2 codes\n * Example: Zurich\n */\n region?: string;\n\n /**\n * If known, the ISO 3166-2 code for the first level region. ISO 3166-2 codes\n * Example: ZH\n */\n region_code?: string;\n\n /**\n * Name of the timezone\n * Example: Europe/Zurich\n */\n timezone?: string;\n};\n\n/**\n * Looks up geolocation details from IP address using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/geolocation/#ip-geolocation\n * @returns\n */\nasync function info(\n options: GeolocationInfoOptions = {}\n): Promise {\n const endpoint = new URL(`geolocation/ip.json`, defaults.maptilerApiURL);\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as GeolocationResult;\n}\n\n/**\n * The **geolocation** namespace contains an asynchronous function to call the [MapTiler Geolocation API](https://docs.maptiler.com/cloud/api/geolocation/).\n * The **Geolocation API** provides a way to retrieve the IP address as well as geographic informations of a machine performing the query (most likely: a user)\n */\nconst geolocation = {\n info,\n};\n\nexport { geolocation };\n","import { BBox, Position } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\nexport type CoordinatesSearchOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Maximum number of results returned (default: 10)\n */\n limit?: number;\n\n /**\n * Show detailed transformations for each CRS (default: false)\n */\n transformations?: boolean;\n\n /**\n * Show exports in WKT and Proj4 notations (default: false)\n */\n exports?: boolean;\n};\n\nexport type CoordinateId = {\n authority: string;\n code: BigInteger;\n};\n\nexport type CoordinateExport = {\n proj4: string;\n wkt: string;\n};\n\nexport type CoordinateGrid = {\n path: string;\n};\n\nexport type CoordinateTransformation = {\n id: CoordinateId;\n name: string;\n reversible: boolean;\n usable: boolean;\n deprecated: boolean;\n grids: Array;\n accuracy?: number;\n area?: string;\n bbox?: BBox;\n target_crs?: CoordinateId;\n unit?: string;\n};\n\nexport type CoordinateSearch = {\n id: CoordinateId;\n\n name: string;\n\n kind: string;\n\n deprecated: boolean;\n\n transformations?: Array;\n\n accuracy?: number;\n\n unit?: string;\n\n area?: string;\n\n /**\n * Bounding box of the resource in [min_lon, min_lat, max_lon, max_lat] order.\n */\n bbox?: BBox;\n\n /**\n * Most suitable transformation for this CRS.\n */\n default_transformation?: any;\n\n exports: CoordinateExport;\n};\n\nexport type CoordinateSearchResult = {\n /**\n * The coordinate search results\n */\n results: Array;\n\n /**\n * The number of results\n */\n total: number;\n};\n\n/**\n * Search information about coordinate systems using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#search-coordinate-systems\n * @param query Can be any kind of CRS by name or code\n * @param options\n * @returns\n */\nasync function search(\n query: string,\n options: CoordinatesSearchOptions = {}\n): Promise {\n if (typeof query !== \"string\" || query.trim().length === 0) {\n throw new Error(\"The query must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `coordinates/search/${query}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"limit\" in options) {\n endpoint.searchParams.set(\"limit\", options.limit.toString());\n }\n\n if (\"transformations\" in options) {\n endpoint.searchParams.set(\n \"transformations\",\n options.transformations.toString()\n );\n }\n\n if (\"exports\" in options) {\n endpoint.searchParams.set(\"exports\", options.exports.toString());\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateSearchResult;\n}\n\nexport type XYZ = {\n x?: number;\n y?: number;\n z?: number;\n};\n\nexport type CoordinateTransformResult = {\n results: Array;\n\n /**\n * Transformations are selected using given ops parameter.\n * If no parameter is given, auto strategy is used.\n * If given, it may try to use a listed transformation,\n * then fallback to towgs84 patching, and finally boundcrs.\n */\n transformer_selection_strategy: string;\n};\n\n/**\n * Options that can be provided when transforming a coordinate from one CRS to another.\n */\nexport type CoordinatesTransformOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Source coordinate reference system (default: 4326)\n */\n sourceCrs?: number;\n\n /**\n * Target coordinate reference system (default: 4326)\n */\n targetCrs?: number;\n\n /**\n * List of codes of operations\n */\n operations?: number | Array;\n};\n\n/**\n * Transforms coordinates from a source reference system to a target reference system using MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/coordinates/#transform-coordinates\n * @param positions\n * @param options\n * @returns\n */\nasync function transform(\n positions: Position | Array,\n options: CoordinatesTransformOptions = {}\n): Promise {\n const coordinatesStr = (Array.isArray(positions[0]) ? positions : [positions])\n .map((coord) => `${coord[0]},${coord[1]}`)\n .join(\";\");\n\n const endpoint = new URL(\n `coordinates/transform/${coordinatesStr}.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n if (\"sourceCrs\" in options) {\n endpoint.searchParams.set(\"s_srs\", options.sourceCrs.toString());\n }\n\n if (\"targetCrs\" in options) {\n endpoint.searchParams.set(\"t_srs\", options.targetCrs.toString());\n }\n\n if (\"operations\" in options) {\n endpoint.searchParams.set(\n \"ops\",\n (Array.isArray(options.operations)\n ? options.operations\n : [options.operations]\n ).join(\"|\")\n );\n }\n\n const urlWithParams = endpoint.toString();\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj as CoordinateTransformResult;\n}\n\n/**\n * The **coordinate** namespace contains asynchronous functions to call the [MapTiler Coordinate API](https://docs.maptiler.com/cloud/api/coordinates/).\n * The goal of the **Coordinate API* is query information about spatial coordinate reference system (CRS) as well as to transform coordinates from one CRS to another.\n */\nconst coordinates = {\n search,\n transform,\n};\n\nexport { coordinates };\n","import { FeatureCollection } from \"geojson\";\nimport { callFetch } from \"../callFetch\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { ServiceError } from \"./ServiceError\";\n\nconst customMessages = {\n 403: \"Key is missing, invalid or restricted\",\n};\n\n/**\n * Options that can be provided to get user data.\n */\nexport type GetDataOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n};\n\n/**\n * Get user data and returns it as GeoJSON using the MapTiler API.\n * Learn more on the MapTiler API reference page: https://docs.maptiler.com/cloud/api/data/#geojson\n * @param dataId\n * @returns\n */\nasync function get(\n dataId: string,\n options: GetDataOptions = {}\n): Promise {\n if (typeof dataId !== \"string\" || dataId.trim().length === 0) {\n throw new Error(\"The data ID must be a non-empty string\");\n }\n\n const endpoint = new URL(\n `data/${encodeURIComponent(dataId)}/features.json`,\n defaults.maptilerApiURL\n );\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n const urlWithParams = endpoint.toString();\n\n const res = await callFetch(urlWithParams);\n\n if (!res.ok) {\n throw new ServiceError(\n res,\n res.status in customMessages ? customMessages[res.status] : \"\"\n );\n }\n\n const obj = await res.json();\n return obj;\n}\n\n/**\n * The **data** namespace contains an asynchronous function to call the [MapTiler Data API](https://docs.maptiler.com/cloud/api/data/).\n * The **Data API** provides a way to retrieve user data in GeoJSON format.\n */\nconst data = {\n get,\n};\n\nexport { data };\n","/**\n * Expand the map style provided as argument of the Map constructor\n * @param style\n * @returns\n */\nexport function expandMapStyle(style): string {\n // testing if the style provided is of form \"maptiler://some-style\"\n const maptilerDomainRegex = /^maptiler:\\/\\/(.*)/;\n let match;\n const trimmed = style.trim();\n let expandedStyle;\n\n // The style was possibly already given as expanded URL\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n expandedStyle = trimmed;\n } else if ((match = maptilerDomainRegex.exec(trimmed)) !== null) {\n expandedStyle = `https://api.maptiler.com/maps/${match[1]}/style.json`;\n } else {\n // The style could also possibly just be the name of the style without any URI style\n expandedStyle = `https://api.maptiler.com/maps/${trimmed}/style.json`;\n }\n\n return expandedStyle;\n}\n\n/**\n * Type for object containing style details\n */\nexport type MapStylePreset = {\n referenceStyleID: string;\n name: string;\n description: string;\n variants: Array<{\n id: string;\n name: string;\n variantType: string;\n description: string;\n imageURL: string;\n }>;\n};\n\n/**\n * An instance of MapStyleVariant contains information about a style to use that belong to a reference style\n */\nexport class MapStyleVariant {\n constructor(\n /**\n * Human-friendly name\n */\n private name: string,\n\n /**\n * Variant name the variant is addressed to from its reference style: `MapStyle.REFERNCE_STYLE_NAME.VARIANT_TYPE`\n */\n private variantType: string,\n\n /**\n * MapTiler Cloud id\n */\n private id: string,\n\n /**\n * Reference map style, used to retrieve sibling variants\n */\n private referenceStyle: ReferenceMapStyle,\n\n /**\n * Human-friendly description\n */\n private description: string,\n\n /**\n * URL to an image describing the style variant\n */\n private imageURL: string\n ) {}\n\n /**\n * Get the human-friendly name\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n getFullName(): string {\n return `${this.referenceStyle.getName()} ${this.name}`;\n }\n\n /**\n * Get the variant type (eg. \"DEFAULT\", \"DARK\", \"PASTEL\", etc.)\n * @returns\n */\n getType(): string {\n return this.variantType;\n }\n\n /**\n * Get the MapTiler Cloud id\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Get the human-friendly description\n */\n getDescription(): string {\n return this.description;\n }\n\n /**\n * Get the reference style this variant belongs to\n * @returns\n */\n getReferenceStyle(): ReferenceMapStyle {\n return this.referenceStyle;\n }\n\n /**\n * Check if a variant of a given type exists for _this_ variants\n * (eg. if this is a \"DARK\", then we can check if there is a \"LIGHT\" variant of it)\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return this.referenceStyle.hasVariant(variantType);\n }\n\n /**\n * Retrieve the variant of a given type. If not found, will return the \"DEFAULT\" variant.\n * (eg. _this_ \"DARK\" variant does not have any \"PASTEL\" variant, then the \"DEFAULT\" is returned)\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return this.referenceStyle.getVariant(variantType);\n }\n\n /**\n * Get all the variants for _this_ variants, except _this_ current one\n * @returns\n */\n getVariants(): Array {\n return this.referenceStyle.getVariants().filter((v) => v !== this);\n }\n\n /**\n * Get the image URL that represent _this_ variant\n * @returns\n */\n getImageURL(): string {\n return this.imageURL;\n }\n\n /**\n * Get the style as usable by MapLibre, a string (URL) or a plain style description (StyleSpecification)\n * @returns\n */\n getExpandedStyleURL(): string {\n return expandMapStyle(this.getId());\n }\n}\n\n/**\n * An instance of reference style contains a list of StyleVariants ordered by relevance\n */\nexport class ReferenceMapStyle {\n /**\n * Variants that belong to this reference style, key being the reference type\n */\n private variants: { [key: string]: MapStyleVariant } = {};\n\n /**\n * Variants that belong to this reference style, ordered by relevance\n */\n private orderedVariants: Array = [];\n\n constructor(\n /**\n * Human-friendly name of this reference style\n */\n private name: string,\n\n /**\n * ID of this reference style\n */\n private id: string\n ) {}\n\n /**\n * Get the human-friendly name of this reference style\n * @returns\n */\n getName(): string {\n return this.name;\n }\n\n /**\n * Get the id of _this_ reference style\n * @returns\n */\n getId(): string {\n return this.id;\n }\n\n /**\n * Add a variant to _this_ reference style\n * @param v\n */\n addVariant(v: MapStyleVariant) {\n this.variants[v.getType()] = v;\n this.orderedVariants.push(v);\n }\n\n /**\n * Check if a given variant type exists for this reference style\n * @param variantType\n * @returns\n */\n hasVariant(variantType: string): boolean {\n return variantType in this.variants;\n }\n\n /**\n * Get a given variant. If the given type of variant does not exist for this reference style,\n * then the most relevant default variant is returned instead\n * @param variantType\n * @returns\n */\n getVariant(variantType: string): MapStyleVariant {\n return variantType in this.variants\n ? this.variants[variantType]\n : this.orderedVariants[0];\n }\n\n /**\n * Get the list of variants for this reference style\n * @returns\n */\n getVariants(): Array {\n return Object.values(this.variants);\n }\n\n /**\n * Get the defualt variant for this reference style\n * @returns\n */\n getDefaultVariant(): MapStyleVariant {\n return this.orderedVariants[0];\n }\n}\n\n/**\n * All the styles and variants maintained by MapTiler.\n */\nexport type MapStyleType = {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings\n */\n STREETS: ReferenceMapStyle & {\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings.\n */\n DEFAULT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in dark mode.\n */\n DARK: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, in light mode.\n */\n LIGHT: MapStyleVariant;\n /**\n * Suitable for navigation, with high level of detail on urban areas, plenty of POIs and 3D buildings, with a pastel color palette.\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n OUTDOOR: ReferenceMapStyle & {\n /**\n * Suitable for outdoor activities. With elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n WINTER: ReferenceMapStyle & {\n /**\n * Suitabe for winter outdoor activities. With ski tracks, elevation isolines and hillshading.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery only, without any label.\n */\n SATELLITE: ReferenceMapStyle & {\n /**\n * High resolution imagery only, without any label.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n HYBRID: ReferenceMapStyle & {\n /**\n * High resolution imagery with labels, political borders and roads.\n */\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A minimalist street-oriented style without POI\n */\n BASIC: ReferenceMapStyle & {\n /**\n * A minimalist street-oriented style without POI\n */\n DEFAULT: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A minimalist street-oriented style without POI, in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n BRIGHT: ReferenceMapStyle & {\n /**\n * A bright street-oriented style, a nice alternative to `streets`\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A bright street-oriented style, a nice alternative to `streets`, with a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n };\n\n /**\n * Classic OpenStreetMap style\n */\n OPENSTREETMAP: ReferenceMapStyle & {\n DEFAULT: MapStyleVariant;\n };\n\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPO: ReferenceMapStyle & {\n /**\n * A nice high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice high-contrast, and high saturation alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n SHINY: MapStyleVariant;\n /**\n * A nice low-contrast, alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details, using a soft pastel color palette\n */\n PASTEL: MapStyleVariant;\n\n /**\n * A nice very high-contrast, yet less saturated alternative to the `outdoor` style, with hillshading, 3D buildings and fairly high street details\n */\n TOPOGRAPHIQUE: MapStyleVariant;\n };\n\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n VOYAGER: ReferenceMapStyle & {\n /**\n * A nice alternative to `streets` with a soft color palette\n */\n DEFAULT: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in very dark mode\n */\n DARK: MapStyleVariant;\n /**\n * A nice alternative to `streets`, in light mode\n */\n LIGHT: MapStyleVariant;\n /**\n * A nice alternative to `streets` with a soft sepia color palette and vintage look\n */\n VINTAGE: MapStyleVariant;\n };\n\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n TONER: ReferenceMapStyle & {\n /**\n * A bold very high contrast black and white (no gray!) style for the city\n */\n DEFAULT: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, without any label\n */\n BACKGROUND: MapStyleVariant;\n /**\n * A bold very high contrast, yet faded, style for the city\n */\n LITE: MapStyleVariant;\n /**\n * A bold very high contrast black and white (no gray!) style for the city, with no building, only roads!\n */\n LINES: MapStyleVariant;\n };\n\n /**\n * Minimalist style, perfect for data visualization\n */\n DATAVIZ: ReferenceMapStyle & {\n /**\n * Minimalist style, perfect for data visualization\n */\n DEFAULT: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in dark mode\n */\n DARK: MapStyleVariant;\n\n /**\n * Minimalist style, perfect for data visualization in light mode\n */\n LIGHT: MapStyleVariant;\n };\n\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n OCEAN: ReferenceMapStyle & {\n /**\n * Explore deep see trenches and mountains, with isolines and depth labels\n */\n DEFAULT: MapStyleVariant;\n };\n};\n\nexport const mapStylePresetList: Array = [\n {\n referenceStyleID: \"STREETS\",\n name: \"Streets\",\n description: \"\",\n variants: [\n {\n id: \"streets-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"streets-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OUTDOOR\",\n name: \"Outdoor\",\n description: \"\",\n variants: [\n {\n id: \"outdoor-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"WINTER\",\n name: \"Winter\",\n description: \"\",\n variants: [\n {\n id: \"winter-v2\",\n name: \"Winter\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"SATELLITE\",\n name: \"Satellite\",\n description: \"\",\n variants: [\n {\n id: \"satellite\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"HYBRID\",\n name: \"Hybrid\",\n description: \"\",\n variants: [\n {\n id: \"hybrid\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BASIC\",\n name: \"Basic\",\n description: \"\",\n variants: [\n {\n id: \"basic-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"basic-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"BRIGHT\",\n name: \"Bright\",\n description: \"\",\n variants: [\n {\n id: \"bright-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"bright-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OPENSTREETMAP\",\n name: \"OpenStreetMap\",\n description: \"\",\n variants: [\n {\n id: \"openstreetmap\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TOPO\",\n name: \"Topo\",\n description: \"\",\n variants: [\n {\n id: \"topo-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-shiny\",\n name: \"Shiny\",\n variantType: \"SHINY\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-pastel\",\n name: \"Pastel\",\n variantType: \"PASTEL\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"topo-v2-topographique\",\n name: \"Topographique\",\n variantType: \"TOPOGRAPHIQUE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"VOYAGER\",\n name: \"Voyager\",\n description: \"\",\n variants: [\n {\n id: \"voyager-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-darkmatter\",\n name: \"Darkmatter\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-positron\",\n name: \"Positron\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"voyager-v2-vintage\",\n name: \"Vintage\",\n variantType: \"VINTAGE\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"TONER\",\n name: \"Toner\",\n description: \"\",\n variants: [\n {\n id: \"toner-v2\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-background\",\n name: \"Background\",\n variantType: \"BACKGROUND\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lite\",\n name: \"Lite\",\n variantType: \"LITE\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"toner-v2-lines\",\n name: \"Lines\",\n variantType: \"LINES\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"DATAVIZ\",\n name: \"Dataviz\",\n description: \"\",\n variants: [\n {\n id: \"dataviz\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-dark\",\n name: \"Dark\",\n variantType: \"DARK\",\n description: \"\",\n imageURL: \"\",\n },\n {\n id: \"dataviz-light\",\n name: \"Light\",\n variantType: \"LIGHT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n\n {\n referenceStyleID: \"OCEAN\",\n name: \"Ocean\",\n description: \"\",\n variants: [\n {\n id: \"ocean\",\n name: \"Default\",\n variantType: \"DEFAULT\",\n description: \"\",\n imageURL: \"\",\n },\n ],\n },\n];\n\nfunction makeReferenceStyleProxy(referenceStyle: ReferenceMapStyle) {\n return new Proxy(referenceStyle, {\n get(target, prop, receiver) {\n if (target.hasVariant(prop as string)) {\n return target.getVariant(prop as string);\n }\n\n // This variant does not exist for this style, but since it's full uppercase\n // we guess that the dev tries to access a style variant. So instead of\n // returning the default (STREETS.DEFAULT), we return the non-variant of the current style\n if (prop.toString().toUpperCase() === (prop as string)) {\n return referenceStyle.getDefaultVariant();\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\nfunction buildMapStyles(): MapStyleType {\n const mapStyle = {};\n\n for (let i = 0; i < mapStylePresetList.length; i += 1) {\n const refStyleInfo = mapStylePresetList[i];\n\n const refStyle = makeReferenceStyleProxy(\n new ReferenceMapStyle(refStyleInfo.name, refStyleInfo.referenceStyleID)\n );\n\n for (let j = 0; j < refStyleInfo.variants.length; j += 1) {\n const variantInfo = refStyleInfo.variants[j];\n const variant = new MapStyleVariant(\n variantInfo.name, // name\n variantInfo.variantType, // variantType\n variantInfo.id, // id\n refStyle, // referenceStyle\n variantInfo.description,\n variantInfo.imageURL // imageURL\n );\n\n refStyle.addVariant(variant);\n }\n mapStyle[refStyleInfo.referenceStyleID] = refStyle;\n }\n return mapStyle as MapStyleType;\n}\n\nexport function styleToStyle(\n style: string | ReferenceMapStyle | MapStyleVariant | null | undefined\n): string {\n if (!style) {\n return MapStyle[mapStylePresetList[0].referenceStyleID]\n .getDefaultVariant()\n .getId();\n }\n\n // If the provided style is a shorthand (eg. \"streets-v2\") then we make sure it's trimmed and lowercase\n if (typeof style === \"string\" || style instanceof String) {\n return style.trim().toLowerCase();\n }\n\n if (style instanceof MapStyleVariant) {\n return style.getId();\n }\n\n if (style instanceof ReferenceMapStyle) {\n return style.getDefaultVariant().getId();\n }\n}\n\n/**\n * Contains all the reference map style created by MapTiler team as well as all the variants.\n * For example, `MapStyle.STREETS` and the variants:\n * - `MapStyle.STREETS.DARK`\n * - `MapStyle.STREETS.LIGHT`\n * - `MapStyle.STREETS.PASTEL`\n *\n */\nexport const MapStyle: MapStyleType = buildMapStyles();\n","/**\\\n * This code is borrowed from https://github.com/mourner/simplify-js and reworked a little.\n */\n\nimport { Position } from \"geojson\";\n\n// square distance from a point to a segment\nfunction getSqSegDist(p: Position, p1: Position, p2: Position): number {\n let x = p1[0],\n y = p1[1],\n dx = p2[0] - x,\n dy = p2[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n const t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2[0];\n y = p2[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = p[0] - x;\n dy = p[1] - y;\n\n return dx * dx + dy * dy;\n}\n\nfunction simplifyDPStep(\n points: Array,\n first: number,\n last: number,\n sqTolerance: number,\n simplified: Array\n) {\n let maxSqDist = sqTolerance,\n index;\n\n for (let i = first + 1; i < last; i++) {\n const sqDist = getSqSegDist(points[i], points[first], points[last]);\n\n if (sqDist > maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n if (index - first > 1) {\n simplifyDPStep(points, first, index, sqTolerance, simplified);\n }\n simplified.push(points[index]);\n\n if (last - index > 1) {\n simplifyDPStep(points, index, last, sqTolerance, simplified);\n }\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(\n points: Array,\n sqTolerance: number\n): Array {\n const last = points.length - 1;\n const simplified = [points[0]];\n simplifyDPStep(points, 0, last, sqTolerance, simplified);\n simplified.push(points[last]);\n return simplified;\n}\n\n// both algorithms combined for awesome performance\nexport default function simplify(\n points: Array,\n tolerance: number\n): Array {\n if (points.length <= 2) {\n return points;\n }\n\n const sqTolerance = tolerance !== undefined ? tolerance * tolerance : 1;\n const simplePoints = simplifyDouglasPeucker(points, sqTolerance);\n return simplePoints;\n}\n","import { BBox, Position } from \"geojson\";\nimport { config } from \"../config\";\nimport { defaults } from \"../defaults\";\nimport { MapStyleVariant, ReferenceMapStyle, styleToStyle } from \"../mapstyle\";\nimport simplify from \"./simplify\";\n\n/**\n * Base set of options that can be provided to all the types of static maps\n */\nexport type StaticMapBaseOptions = {\n /**\n * Custom MapTiler Cloud API key to use instead of the one in global `config`\n */\n apiKey?: string;\n\n /**\n * Style of the map (not full style URL). Example: \"winter\", \"streets-v2\".\n * Default: `\"streets-v2\"`\n */\n style?: string | ReferenceMapStyle | MapStyleVariant;\n\n /**\n * Double the size of the static map image to support hiDPI/Retina monitors.\n * Default: `false`\n */\n hiDPI?: boolean;\n\n /**\n * Image format.\n * Default: `\"png\"`\n */\n format?: \"png\" | \"jpg\" | \"webp\";\n\n /**\n * Width of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n width?: number;\n\n /**\n * Height of the output image. Maximum value: `2048`.\n * Default: `1024`\n */\n height?: number;\n\n /**\n * Placement of the attribution. Can also be set to `false` to not show attribution.\n * Default: `\"bottomright\"`\n */\n attribution?: \"bottomright\" | \"bottomleft\" | \"topleft\" | \"topright\" | false;\n\n /**\n * A marker or list of markers to show on the map\n * Default: none provided\n */\n markers?: StaticMapMarker | Array;\n\n /**\n * URL of the marker image. Applies only if one or multiple markers positions are provided.\n * Default: none provided\n */\n markerIcon?: string;\n\n /**\n * Position of the marker regarding its coordinates. Applies only:\n * - with a custom icon provided with `markerIcon`\n * - if one or multiple markers positions are provided.\n * Default: `\"bottom\"`\n */\n markerAnchor?:\n | \"top\"\n | \"left\"\n | \"bottom\"\n | \"right\"\n | \"center\"\n | \"topleft\"\n | \"bottomleft\"\n | \"topright\"\n | \"bottomright\";\n\n /**\n * Draw a path or polygon on top of the map. If the path is too long it will be simplified, yet remaining accurate.\n * Default: none provided\n */\n path?: Array;\n\n /**\n * Color of the path line. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: `\"blue\"`\n */\n pathStrokeColor?: string;\n\n /**\n * Color of the filling, also works if the polygon is not closed. The color must be CSS compatible.\n * Examples:\n * - long form hex without transparency `\"#FF0000\"` (red)\n * - short form hex without transparency `\"#F00\"` (red)\n * - long form hex with transparency `\"#FF000008\"` (red, half opacity)\n * - short form hex with transparency `\"#F008\"` (red, half opacity)\n * - CSS color shorthands: `\"red\"`, `\"chartreuse\"`, etc.\n * - decimal RGB values without transparency: `\"rgb(128, 100, 255)\"`\n * - decimal RGB values with transparency: `\"rgb(128, 100, 255, 0.5)\"`\n * Default: none (transparent filling)\n */\n pathFillColor?: string;\n\n /**\n * Width of the path line in pixel. It can be floating point precision (ex: `0.5`)\n * Default: `1` if `hiDPI` is `false` and `2` if `hiDPI` is `true`.\n */\n pathWidth?: number;\n};\n\n/**\n * Options that can be provided to centered static maps\n */\nexport type CenteredStaticMapOptions = StaticMapBaseOptions;\n\n/**\n * Options that can be provided to bounded static maps\n */\nexport type BoundedStaticMapOptions = StaticMapBaseOptions & {\n /**\n * Extra space added around the regio of interest, in percentage.\n * Default: `0.1` (for 10%)\n */\n padding?: number;\n};\n\n/**\n * Options that can be provided to automatic static maps\n */\nexport type AutomaticStaticMapOptions = BoundedStaticMapOptions;\n\n/**\n * Definition of a maker to show on a static map\n */\nexport type StaticMapMarker = [\n /**\n * Longitude of the marker\n */\n number,\n /**\n * latitude of the marker\n */\n number,\n /**\n * Color of the marker with CSS syntax. Applies only if a custom `markerIcon` is not provided.\n */\n string\n];\n\nfunction staticMapMarkerToString(\n marker: StaticMapMarker,\n includeColor = true\n): string {\n let str = `${marker[0]},${marker[1]}`;\n\n if (marker.length === 3 && includeColor) {\n str += `,${marker[2]}`;\n }\n\n return str;\n}\n\nfunction simplifyAndStringify(path: Array, maxNbChar = 3000): string {\n let str = path.map((point) => point.join(\",\")).join(\"|\");\n let tolerance = 0.000005;\n const toleranceStep = 0.00001;\n\n while (str.length > maxNbChar) {\n const simplerPath = simplify(path, tolerance);\n // str = simplerPath.map(point => point.join(',')).join('|');\n str = simplerPath.map((point) => `${point[0]},${point[1]}`).join(\"|\");\n tolerance += toleranceStep;\n }\n\n return str;\n}\n\n/**\n * Construct the URL for a static map centered on one point.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param center\n * @param zoom\n * @param options\n * @returns\n */\nfunction centered(\n center: Position,\n zoom: number,\n options: CenteredStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${center[0]},${\n center[1]\n },${zoom}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map using a bounding box\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param boundingBox\n * @param options\n * @returns\n */\nfunction bounded(\n boundingBox: BBox,\n options: BoundedStaticMapOptions = {}\n): string {\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(style)}/static/${boundingBox[0]},${\n boundingBox[1]\n },${boundingBox[2]},${boundingBox[3]}/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * Construct the URL for a static map automatically fitted around the provided path or markers.\n * Note: this function does not fetch the binary content of the image since\n * the purpose of a static map is generally to have its URL as a `src` property of a element.\n * If a path is provided and is too long, it will be simplified in an accurate way.\n * @param options\n * @returns\n */\nfunction automatic(options: AutomaticStaticMapOptions = {}): string {\n if (!(\"markers\" in options) && !(\"path\" in options)) {\n throw new Error(\n \"Automatic static maps require markers and/or path to be created.\"\n );\n }\n\n const style = styleToStyle(options.style);\n const scale = options.hiDPI ? \"@2x\" : \"\";\n const format = options.format ?? \"png\";\n let width = ~~(options.width ?? 1024);\n let height = ~~(options.height ?? 1024);\n\n if (options.hiDPI) {\n width = ~~(width / 2);\n height = ~~(height / 2);\n }\n\n const endpoint = new URL(\n `maps/${encodeURIComponent(\n style\n )}/static/auto/${width}x${height}${scale}.${format}`,\n defaults.maptilerApiURL\n );\n\n if (\"attribution\" in options) {\n endpoint.searchParams.set(\"attribution\", options.attribution.toString());\n }\n\n if (\"padding\" in options) {\n endpoint.searchParams.set(\"padding\", options.padding.toString());\n }\n\n if (\"markers\" in options) {\n let markerStr = \"\";\n\n const hasIcon = \"markerIcon\" in options;\n\n if (hasIcon) {\n markerStr += `icon:${options.markerIcon}|`;\n }\n\n if (hasIcon && \"markerAnchor\" in options) {\n markerStr += `anchor:${options.markerAnchor}|`;\n }\n\n if (hasIcon && options.hiDPI) {\n markerStr += `scale:2|`;\n }\n\n const markerList = Array.isArray(options.markers[0])\n ? options.markers\n : [options.markers];\n markerStr += markerList\n .map((m) => staticMapMarkerToString(m, !hasIcon))\n .join(\"|\");\n endpoint.searchParams.set(\"markers\", markerStr);\n }\n\n if (\"path\" in options) {\n let pathStr = \"\";\n\n pathStr += `fill:${options.pathFillColor ?? \"none\"}|`;\n\n if (\"pathStrokeColor\" in options) {\n pathStr += `stroke:${options.pathStrokeColor}|`;\n }\n\n if (\"pathWidth\" in options) {\n const pathWidth = options.pathWidth / (options.hiDPI ? 2 : 1);\n pathStr += `width:${pathWidth.toString()}|`;\n }\n\n pathStr += simplifyAndStringify(options.path);\n endpoint.searchParams.set(\"path\", pathStr);\n }\n\n endpoint.searchParams.set(\"key\", options.apiKey ?? config.apiKey);\n\n return endpoint.toString();\n}\n\n/**\n * The **staticMaps** namespace contains an synchronous function build image URL of static map, as specified by the [MapTiler Static Map API](https://docs.maptiler.com/cloud/api/static-maps/).\n * The URL of static maps can then be used within a `` markup element, as the `src` property value.\n */\nconst staticMaps = {\n centered,\n bounded,\n automatic,\n};\n\nexport { staticMaps };\n"],"names":["__async","customMessages"],"mappings":"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"} \ No newline at end of file diff --git a/dist/maptiler-client.umd.min.js b/dist/maptiler-client.umd.min.js index 68806df..dc0afb9 100644 --- a/dist/maptiler-client.umd.min.js +++ b/dist/maptiler-client.umd.min.js @@ -1 +1 @@ -(function(u,L){typeof exports=="object"&&typeof module<"u"?L(exports):typeof define=="function"&&define.amd?define(["exports"],L):(u=typeof globalThis<"u"?globalThis:u||self,L(u.maptilerClient={}))})(this,function(u){"use strict";function L(){return typeof self<"u"?fetch.bind(self):typeof global<"u"&&global.fetch?global.fetch:null}class b{constructor(){this._apiKey="",this._fetch=L()}set apiKey(t){this._apiKey=t}get apiKey(){return this._apiKey}set fetch(t){this._fetch=t}get fetch(){return this._fetch}}const g=new b,S={AUTO:"auto",ALBANIAN:"sq",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HUNGARIAN:"hu",ICELANDIC:"is",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALTESE:"mt",NORWEGIAN:"no",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},F=new Set(Object.values(S));function C(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const n=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>F.has(t));return n.length?n[0]:S.ENGLISH}var x=(n,t,e)=>new Promise((i,r)=>{var s=o=>{try{c(e.next(o))}catch(l){r(l)}},a=o=>{try{c(e.throw(o))}catch(l){r(l)}},c=o=>o.done?i(o.value):Promise.resolve(o.value).then(s,a);c((e=e.apply(n,t)).next())});function I(n){return x(this,arguments,function*(t,e={}){if(g.fetch===null)throw new Error("The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch");if(new URL(t).searchParams.get("key").trim()==="")throw new Error("The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com");return g.fetch(t,e)})}const y={maptilerApiURL:"https://api.maptiler.com/",mapStyle:"streets-v2"};Object.freeze(y);class A extends Error{constructor(t,e=""){super(`Call to enpoint ${t.url} failed with the status code ${t.status}. ${e}`),this.res=t}}var K=(n,t,e)=>new Promise((i,r)=>{var s=o=>{try{c(e.next(o))}catch(l){r(l)}},a=o=>{try{c(e.throw(o))}catch(l){r(l)}},c=o=>o.done?i(o.value):Promise.resolve(o.value).then(s,a);c((e=e.apply(n,t)).next())});const R={400:"Query too long / Invalid parameters",403:"Key is missing, invalid or restricted"};function M(n){return K(this,arguments,function*(t,e={}){var i;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const r=new URL(`geocoding/${encodeURIComponent(t)}.json`,y.maptilerApiURL);if(r.searchParams.set("key",(i=e.apiKey)!=null?i:g.apiKey),"bbox"in e&&r.searchParams.set("bbox",e.bbox.join(",")),"proximity"in e&&r.searchParams.set("proximity",e.proximity.join(",")),"language"in e){const c=Array.from(new Set((Array.isArray(e.language)?e.language:[e.language]).map(o=>o===S.AUTO?C():o))).join(",");r.searchParams.set("language",c)}const s=r.toString(),a=yield I(s);if(!a.ok)throw new A(a,a.status in R?R[a.status]:"");return yield a.json()})}function B(n){return K(this,arguments,function*(t,e={}){var i;if(!Array.isArray(t)||t.length<2)throw new Error("The position must be an array of form [lng, lat].");const r=new URL(`geocoding/${t[0]},${t[1]}.json`,y.maptilerApiURL);if(r.searchParams.set("key",(i=e.apiKey)!=null?i:g.apiKey),"language"in e){const c=Array.from(new Set((Array.isArray(e.language)?e.language:[e.language]).map(o=>o===S.AUTO?C():o))).join(",");r.searchParams.set("language",c)}const s=r.toString(),a=yield I(s);if(!a.ok)throw new A(a,a.status in R?R[a.status]:"");return yield a.json()})}const W={forward:M,reverse:B,language:S};var _=(n,t,e)=>new Promise((i,r)=>{var s=o=>{try{c(e.next(o))}catch(l){r(l)}},a=o=>{try{c(e.throw(o))}catch(l){r(l)}},c=o=>o.done?i(o.value):Promise.resolve(o.value).then(s,a);c((e=e.apply(n,t)).next())});const O={403:"Key is missing, invalid or restricted"};function z(){return _(this,arguments,function*(n={}){var t;const e=new URL("geolocation/ip.json",y.maptilerApiURL);e.searchParams.set("key",(t=n.apiKey)!=null?t:g.apiKey);const i=e.toString(),r=yield I(i);if(!r.ok)throw new A(r,r.status in O?O[r.status]:"");return yield r.json()})}const q={info:z};var j=(n,t,e)=>new Promise((i,r)=>{var s=o=>{try{c(e.next(o))}catch(l){r(l)}},a=o=>{try{c(e.throw(o))}catch(l){r(l)}},c=o=>o.done?i(o.value):Promise.resolve(o.value).then(s,a);c((e=e.apply(n,t)).next())});const T={403:"Key is missing, invalid or restricted"};function Y(n){return j(this,arguments,function*(t,e={}){var i;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const r=new URL(`coordinates/search/${t}.json`,y.maptilerApiURL);r.searchParams.set("key",(i=e.apiKey)!=null?i:g.apiKey),"limit"in e&&r.searchParams.set("limit",e.limit.toString()),"transformations"in e&&r.searchParams.set("transformations",e.transformations.toString()),"exports"in e&&r.searchParams.set("exports",e.exports.toString());const s=r.toString(),a=yield I(s);if(!a.ok)throw new A(a,a.status in T?T[a.status]:"");return yield a.json()})}function Z(n){return j(this,arguments,function*(t,e={}){var i;const r=(Array.isArray(t[0])?t:[t]).map(o=>`${o[0]},${o[1]}`).join(";"),s=new URL(`coordinates/transform/${r}.json`,y.maptilerApiURL);s.searchParams.set("key",(i=e.apiKey)!=null?i:g.apiKey),"sourceCrs"in e&&s.searchParams.set("s_srs",e.sourceCrs.toString()),"targetCrs"in e&&s.searchParams.set("t_srs",e.targetCrs.toString()),"operations"in e&&s.searchParams.set("ops",(Array.isArray(e.operations)?e.operations:[e.operations]).join("|"));const a=s.toString(),c=yield I(a);if(!c.ok)throw new A(c,c.status in T?T[c.status]:"");return yield c.json()})}const J={search:Y,transform:Z};var Q=(n,t,e)=>new Promise((i,r)=>{var s=o=>{try{c(e.next(o))}catch(l){r(l)}},a=o=>{try{c(e.throw(o))}catch(l){r(l)}},c=o=>o.done?i(o.value):Promise.resolve(o.value).then(s,a);c((e=e.apply(n,t)).next())});const H={403:"Key is missing, invalid or restricted"};function X(n){return Q(this,arguments,function*(t,e={}){var i;if(typeof t!="string"||t.trim().length===0)throw new Error("The data ID must be a non-empty string");const r=new URL(`data/${encodeURIComponent(t)}/features.json`,y.maptilerApiURL);r.searchParams.set("key",(i=e.apiKey)!=null?i:g.apiKey);const s=r.toString(),a=yield I(s);if(!a.ok)throw new A(a,a.status in H?H[a.status]:"");return yield a.json()})}const ee={get:X};function V(n){const t=/^maptiler:\/\/(.*)/;let e;const i=n.trim();let r;return i.startsWith("http://")||i.startsWith("https://")?r=i:(e=t.exec(i))!==null?r=`https://api.maptiler.com/maps/${e[1]}/style.json`:r=`https://api.maptiler.com/maps/${i}/style.json`,r}class D{constructor(t,e,i,r,s,a){this.name=t,this.variantType=e,this.id=i,this.referenceStyle=r,this.description=s,this.imageURL=a}getName(){return this.name}getFullName(){return`${this.referenceStyle.getName()} ${this.name}`}getType(){return this.variantType}getId(){return this.id}getDescription(){return this.description}getReferenceStyle(){return this.referenceStyle}hasVariant(t){return this.referenceStyle.hasVariant(t)}getVariant(t){return this.referenceStyle.getVariant(t)}getVariants(){return this.referenceStyle.getVariants().filter(t=>t!==this)}getImageURL(){return this.imageURL}getExpandedStyleURL(){return V(this.getId())}}class k{constructor(t,e){this.name=t,this.id=e,this.variants={},this.orderedVariants=[]}getName(){return this.name}getId(){return this.id}addVariant(t){this.variants[t.getType()]=t,this.orderedVariants.push(t)}hasVariant(t){return t in this.variants}getVariant(t){return t in this.variants?this.variants[t]:this.orderedVariants[0]}getVariants(){return Object.values(this.variants)}getDefaultVariant(){return this.orderedVariants[0]}}const U=[{referenceStyleID:"STREETS",name:"Streets",description:"",variants:[{id:"streets-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"streets-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"streets-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"streets-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OUTDOOR",name:"Outdoor",description:"",variants:[{id:"outdoor-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"WINTER",name:"Winter",description:"",variants:[{id:"winter-v2",name:"Winter",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"SATELLITE",name:"Satellite",description:"",variants:[{id:"satellite",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"HYBRID",name:"Hybrid",description:"",variants:[{id:"hybrid",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"BASIC",name:"Basic",description:"",variants:[{id:"basic-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"basic-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"basic-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"BRIGHT",name:"Bright",description:"",variants:[{id:"bright-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"bright-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"bright-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"bright-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OPENSTREETMAP",name:"OpenStreetMap",description:"",variants:[{id:"openstreetmap",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"TOPO",name:"Topo",description:"",variants:[{id:"topo-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"topo-v2-shiny",name:"Shiny",variantType:"SHINY",description:"",imageURL:""},{id:"topo-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""},{id:"topo-v2-topographique",name:"Topographique",variantType:"TOPOGRAPHIQUE",description:"",imageURL:""}]},{referenceStyleID:"VOYAGER",name:"Voyager",description:"",variants:[{id:"voyager-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"voyager-v2-darkmatter",name:"Darkmatter",variantType:"DARK",description:"",imageURL:""},{id:"voyager-v2-positron",name:"Positron",variantType:"LIGHT",description:"",imageURL:""},{id:"voyager-v2-vintage",name:"Vintage",variantType:"VINTAGE",description:"",imageURL:""}]},{referenceStyleID:"TONER",name:"Toner",description:"",variants:[{id:"toner-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"toner-v2-background",name:"Background",variantType:"BACKGROUND",description:"",imageURL:""},{id:"toner-v2-lite",name:"Lite",variantType:"LITE",description:"",imageURL:""},{id:"toner-v2-lines",name:"Lines",variantType:"LINES",description:"",imageURL:""}]},{referenceStyleID:"DATAVIZ",name:"Dataviz",description:"",variants:[{id:"dataviz",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"dataviz-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"dataviz-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"OCEAN",name:"Ocean",description:"",variants:[{id:"ocean",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]}];function te(n){return new Proxy(n,{get(t,e,i){return t.hasVariant(e)?t.getVariant(e):e.toString().toUpperCase()===e?n.getDefaultVariant():Reflect.get(t,e,i)}})}function ne(){const n={};for(let t=0;t1?(i=e[0],r=e[1]):c>0&&(i+=s*c,r+=a*c)}return s=n[0]-i,a=n[1]-r,s*s+a*a}function P(n,t,e,i,r){let s=i,a;for(let c=t+1;cs&&(a=c,s=o)}s>i&&(a-t>1&&P(n,t,a,i,r),r.push(n[a]),e-a>1&&P(n,a,e,i,r))}function ie(n,t){const e=n.length-1,i=[n[0]];return P(n,0,e,t,i),i.push(n[e]),i}function ae(n,t){if(n.length<=2)return n;const e=t!==void 0?t*t:1;return ie(n,e)}function $(n,t=!0){let e=`${n[0]},${n[1]}`;return n.length===3&&t&&(e+=`,${n[2]}`),e}function w(n,t=3e3){let e=n.map(s=>s.join(",")).join("|"),i=5e-6;const r=1e-5;for(;e.length>t;)e=ae(n,i).map(s=>`${s[0]},${s[1]}`).join("|"),i+=r;return e}function se(n,t,e={}){var i,r,s,a,c;const o=E(e.style),l=e.hiDPI?"@2x":"",v=(i=e.format)!=null?i:"png";let d=~~((r=e.width)!=null?r:1024),m=~~((s=e.height)!=null?s:1024);e.hiDPI&&(d=~~(d/2),m=~~(m/2));const p=new URL(`maps/${encodeURIComponent(o)}/static/${n[0]},${n[1]},${t}/${d}x${m}${l}.${v}`,y.maptilerApiURL);if("attribution"in e&&p.searchParams.set("attribution",e.attribution.toString()),"markers"in e){let h="";const f="markerIcon"in e;f&&(h+=`icon:${e.markerIcon}|`),f&&"markerAnchor"in e&&(h+=`anchor:${e.markerAnchor}|`),f&&e.hiDPI&&(h+="scale:2|");const N=Array.isArray(e.markers[0])?e.markers:[e.markers];h+=N.map(pe=>$(pe,!f)).join("|"),p.searchParams.set("markers",h)}if("path"in e){let h="";if(h+=`fill:${(a=e.pathFillColor)!=null?a:"none"}|`,"pathStrokeColor"in e&&(h+=`stroke:${e.pathStrokeColor}|`),"pathWidth"in e){const f=e.pathWidth/(e.hiDPI?2:1);h+=`width:${f.toString()}|`}h+=w(e.path),p.searchParams.set("path",h)}return p.searchParams.set("key",(c=e.apiKey)!=null?c:g.apiKey),p.toString()}function oe(n,t={}){var e,i,r,s,a;const c=E(t.style),o=t.hiDPI?"@2x":"",l=(e=t.format)!=null?e:"png";let v=~~((i=t.width)!=null?i:1024),d=~~((r=t.height)!=null?r:1024);t.hiDPI&&(v=~~(v/2),d=~~(d/2));const m=new URL(`maps/${encodeURIComponent(c)}/static/${n[0]},${n[1]},${n[2]},${n[3]}/${v}x${d}${o}.${l}`,y.maptilerApiURL);if("attribution"in t&&m.searchParams.set("attribution",t.attribution.toString()),"padding"in t&&m.searchParams.set("padding",t.padding.toString()),"markers"in t){let p="";const h="markerIcon"in t;h&&(p+=`icon:${t.markerIcon}|`),h&&"markerAnchor"in t&&(p+=`anchor:${t.markerAnchor}|`),h&&t.hiDPI&&(p+="scale:2|");const f=Array.isArray(t.markers[0])?t.markers:[t.markers];p+=f.map(N=>$(N,!h)).join("|"),m.searchParams.set("markers",p)}if("path"in t){let p="";if(p+=`fill:${(s=t.pathFillColor)!=null?s:"none"}|`,"pathStrokeColor"in t&&(p+=`stroke:${t.pathStrokeColor}|`),"pathWidth"in t){const h=t.pathWidth/(t.hiDPI?2:1);p+=`width:${h.toString()}|`}p+=w(t.path),m.searchParams.set("path",p)}return m.searchParams.set("key",(a=t.apiKey)!=null?a:g.apiKey),m.toString()}function ce(n={}){var t,e,i,r,s;if(!("markers"in n)&&!("path"in n))throw new Error("Automatic static maps require markers and/or path to be created.");const a=E(n.style),c=n.hiDPI?"@2x":"",o=(t=n.format)!=null?t:"png";let l=~~((e=n.width)!=null?e:1024),v=~~((i=n.height)!=null?i:1024);n.hiDPI&&(l=~~(l/2),v=~~(v/2));const d=new URL(`maps/${encodeURIComponent(a)}/static/auto/${l}x${v}${c}.${o}`,y.maptilerApiURL);if("attribution"in n&&d.searchParams.set("attribution",n.attribution.toString()),"padding"in n&&d.searchParams.set("padding",n.padding.toString()),"markers"in n){let m="";const p="markerIcon"in n;p&&(m+=`icon:${n.markerIcon}|`),p&&"markerAnchor"in n&&(m+=`anchor:${n.markerAnchor}|`),p&&n.hiDPI&&(m+="scale:2|");const h=Array.isArray(n.markers[0])?n.markers:[n.markers];m+=h.map(f=>$(f,!p)).join("|"),d.searchParams.set("markers",m)}if("path"in n){let m="";if(m+=`fill:${(r=n.pathFillColor)!=null?r:"none"}|`,"pathStrokeColor"in n&&(m+=`stroke:${n.pathStrokeColor}|`),"pathWidth"in n){const p=n.pathWidth/(n.hiDPI?2:1);m+=`width:${p.toString()}|`}m+=w(n.path),d.searchParams.set("path",m)}return d.searchParams.set("key",(s=n.apiKey)!=null?s:g.apiKey),d.toString()}const le={centered:se,bounded:oe,automatic:ce};u.ClientConfig=b,u.LanguageGeocoding=S,u.MapStyle=G,u.MapStyleVariant=D,u.ReferenceMapStyle=k,u.ServiceError=A,u.config=g,u.coordinates=J,u.data=ee,u.expandMapStyle=V,u.geocoding=W,u.geolocation=q,u.mapStylePresetList=U,u.staticMaps=le,Object.defineProperty(u,"__esModule",{value:!0})}); +(function(u,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):(u=typeof globalThis<"u"?globalThis:u||self,I(u.maptilerClient={}))})(this,function(u){"use strict";function I(){return typeof self<"u"?fetch.bind(self):typeof global<"u"&&global.fetch?global.fetch:null}class C{constructor(){this._apiKey="",this._fetch=I()}set apiKey(t){this._apiKey=t}get apiKey(){return this._apiKey}set fetch(t){this._fetch=t}get fetch(){return this._fetch}}const g=new C,L={AUTO:"auto",ALBANIAN:"sq",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HUNGARIAN:"hu",ICELANDIC:"is",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALTESE:"mt",NORWEGIAN:"no",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},F=new Set(Object.values(L));function x(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const n=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>F.has(t));return n.length?n[0]:L.ENGLISH}var B=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});function S(n){return B(this,arguments,function*(t,e={}){if(g.fetch===null)throw new Error("The fetch function was not found. If on NodeJS < 18 please specify the fetch function with config.fetch");if(new URL(t).searchParams.get("key").trim()==="")throw new Error("The MapTiler Cloud API key is missing. Set it in `config.apiKey` or get one for free at https://maptiler.com");return g.fetch(t,e)})}const y={maptilerApiURL:"https://api.maptiler.com/",mapStyle:"streets-v2"};Object.freeze(y);class A extends Error{constructor(t,e=""){super(`Call to enpoint ${t.url} failed with the status code ${t.status}. ${e}`),this.res=t}}var U=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const D={400:"Query too long / Invalid parameters",403:"Key is missing, invalid or restricted"};function O(n,t){if(t.language==null)return;const e=Array.from(new Set((Array.isArray(t.language)?t.language:[t.language]).map(r=>r===L.AUTO?x():r))).join(",");n.set("language",e)}function K(n,t){var e;n.set("key",(e=t.apiKey)!=null?e:g.apiKey),t.limit!=null&&n.set("limit",String(t.limit)),t.types!=null&&n.set("types",t.types.join(",")),O(n,t)}function W(n){return U(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const i=new URL(`geocoding/${encodeURIComponent(t)}.json`,y.maptilerApiURL),{searchParams:a}=i;K(a,e),e.bbox!=null&&a.set("bbox",e.bbox.join(",")),e.proximity!=null&&a.set("proximity",e.proximity.join(",")),e.country!=null&&a.set("country",e.country.join(",")),e.fuzzyMatch!=null&&a.set("fuzzyMatch",e.fuzzyMatch?"true":"false"),e.autocomplete!=null&&a.set("autocomplete",e.autocomplete?"true":"false");const s=i.toString(),c=yield S(s);if(!c.ok)throw new A(c,(r=D[c.status])!=null?r:"");return yield c.json()})}function z(n){return U(this,arguments,function*(t,e={}){var r;if(!Array.isArray(t)||t.length<2)throw new Error("The position must be an array of form [lng, lat].");const i=new URL(`geocoding/${t[0]},${t[1]}.json`,y.maptilerApiURL);K(i.searchParams,e);const a=i.toString(),s=yield S(a);if(!s.ok)throw new A(s,(r=D[s.status])!=null?r:"");return yield s.json()})}function _(n){return U(this,arguments,function*(t,e={}){var r;const i=new URL(`geocoding/${t}.json`,y.maptilerApiURL);O(i.searchParams,e);const a=i.toString(),s=yield S(a);if(!s.ok)throw new A(s,(r=D[s.status])!=null?r:"");return yield s.json()})}const q={forward:W,reverse:z,byId:_,language:L};var Y=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const j={403:"Key is missing, invalid or restricted"};function Z(){return Y(this,arguments,function*(n={}){var t;const e=new URL("geolocation/ip.json",y.maptilerApiURL);e.searchParams.set("key",(t=n.apiKey)!=null?t:g.apiKey);const r=e.toString(),i=yield S(r);if(!i.ok)throw new A(i,i.status in j?j[i.status]:"");return yield i.json()})}const J={info:Z};var H=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const R={403:"Key is missing, invalid or restricted"};function Q(n){return H(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The query must be a non-empty string");const i=new URL(`coordinates/search/${t}.json`,y.maptilerApiURL);i.searchParams.set("key",(r=e.apiKey)!=null?r:g.apiKey),"limit"in e&&i.searchParams.set("limit",e.limit.toString()),"transformations"in e&&i.searchParams.set("transformations",e.transformations.toString()),"exports"in e&&i.searchParams.set("exports",e.exports.toString());const a=i.toString(),s=yield S(a);if(!s.ok)throw new A(s,s.status in R?R[s.status]:"");return yield s.json()})}function X(n){return H(this,arguments,function*(t,e={}){var r;const i=(Array.isArray(t[0])?t:[t]).map(o=>`${o[0]},${o[1]}`).join(";"),a=new URL(`coordinates/transform/${i}.json`,y.maptilerApiURL);a.searchParams.set("key",(r=e.apiKey)!=null?r:g.apiKey),"sourceCrs"in e&&a.searchParams.set("s_srs",e.sourceCrs.toString()),"targetCrs"in e&&a.searchParams.set("t_srs",e.targetCrs.toString()),"operations"in e&&a.searchParams.set("ops",(Array.isArray(e.operations)?e.operations:[e.operations]).join("|"));const s=a.toString(),c=yield S(s);if(!c.ok)throw new A(c,c.status in R?R[c.status]:"");return yield c.json()})}const ee={search:Q,transform:X};var te=(n,t,e)=>new Promise((r,i)=>{var a=o=>{try{c(e.next(o))}catch(l){i(l)}},s=o=>{try{c(e.throw(o))}catch(l){i(l)}},c=o=>o.done?r(o.value):Promise.resolve(o.value).then(a,s);c((e=e.apply(n,t)).next())});const V={403:"Key is missing, invalid or restricted"};function ne(n){return te(this,arguments,function*(t,e={}){var r;if(typeof t!="string"||t.trim().length===0)throw new Error("The data ID must be a non-empty string");const i=new URL(`data/${encodeURIComponent(t)}/features.json`,y.maptilerApiURL);i.searchParams.set("key",(r=e.apiKey)!=null?r:g.apiKey);const a=i.toString(),s=yield S(a);if(!s.ok)throw new A(s,s.status in V?V[s.status]:"");return yield s.json()})}const re={get:ne};function M(n){const t=/^maptiler:\/\/(.*)/;let e;const r=n.trim();let i;return r.startsWith("http://")||r.startsWith("https://")?i=r:(e=t.exec(r))!==null?i=`https://api.maptiler.com/maps/${e[1]}/style.json`:i=`https://api.maptiler.com/maps/${r}/style.json`,i}class k{constructor(t,e,r,i,a,s){this.name=t,this.variantType=e,this.id=r,this.referenceStyle=i,this.description=a,this.imageURL=s}getName(){return this.name}getFullName(){return`${this.referenceStyle.getName()} ${this.name}`}getType(){return this.variantType}getId(){return this.id}getDescription(){return this.description}getReferenceStyle(){return this.referenceStyle}hasVariant(t){return this.referenceStyle.hasVariant(t)}getVariant(t){return this.referenceStyle.getVariant(t)}getVariants(){return this.referenceStyle.getVariants().filter(t=>t!==this)}getImageURL(){return this.imageURL}getExpandedStyleURL(){return M(this.getId())}}class E{constructor(t,e){this.name=t,this.id=e,this.variants={},this.orderedVariants=[]}getName(){return this.name}getId(){return this.id}addVariant(t){this.variants[t.getType()]=t,this.orderedVariants.push(t)}hasVariant(t){return t in this.variants}getVariant(t){return t in this.variants?this.variants[t]:this.orderedVariants[0]}getVariants(){return Object.values(this.variants)}getDefaultVariant(){return this.orderedVariants[0]}}const T=[{referenceStyleID:"STREETS",name:"Streets",description:"",variants:[{id:"streets-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"streets-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"streets-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"streets-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OUTDOOR",name:"Outdoor",description:"",variants:[{id:"outdoor-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"WINTER",name:"Winter",description:"",variants:[{id:"winter-v2",name:"Winter",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"SATELLITE",name:"Satellite",description:"",variants:[{id:"satellite",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"HYBRID",name:"Hybrid",description:"",variants:[{id:"hybrid",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"BASIC",name:"Basic",description:"",variants:[{id:"basic-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"basic-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"basic-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"BRIGHT",name:"Bright",description:"",variants:[{id:"bright-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"bright-v2-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"bright-v2-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""},{id:"bright-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""}]},{referenceStyleID:"OPENSTREETMAP",name:"OpenStreetMap",description:"",variants:[{id:"openstreetmap",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]},{referenceStyleID:"TOPO",name:"Topo",description:"",variants:[{id:"topo-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"topo-v2-shiny",name:"Shiny",variantType:"SHINY",description:"",imageURL:""},{id:"topo-v2-pastel",name:"Pastel",variantType:"PASTEL",description:"",imageURL:""},{id:"topo-v2-topographique",name:"Topographique",variantType:"TOPOGRAPHIQUE",description:"",imageURL:""}]},{referenceStyleID:"VOYAGER",name:"Voyager",description:"",variants:[{id:"voyager-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"voyager-v2-darkmatter",name:"Darkmatter",variantType:"DARK",description:"",imageURL:""},{id:"voyager-v2-positron",name:"Positron",variantType:"LIGHT",description:"",imageURL:""},{id:"voyager-v2-vintage",name:"Vintage",variantType:"VINTAGE",description:"",imageURL:""}]},{referenceStyleID:"TONER",name:"Toner",description:"",variants:[{id:"toner-v2",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"toner-v2-background",name:"Background",variantType:"BACKGROUND",description:"",imageURL:""},{id:"toner-v2-lite",name:"Lite",variantType:"LITE",description:"",imageURL:""},{id:"toner-v2-lines",name:"Lines",variantType:"LINES",description:"",imageURL:""}]},{referenceStyleID:"DATAVIZ",name:"Dataviz",description:"",variants:[{id:"dataviz",name:"Default",variantType:"DEFAULT",description:"",imageURL:""},{id:"dataviz-dark",name:"Dark",variantType:"DARK",description:"",imageURL:""},{id:"dataviz-light",name:"Light",variantType:"LIGHT",description:"",imageURL:""}]},{referenceStyleID:"OCEAN",name:"Ocean",description:"",variants:[{id:"ocean",name:"Default",variantType:"DEFAULT",description:"",imageURL:""}]}];function ie(n){return new Proxy(n,{get(t,e,r){return t.hasVariant(e)?t.getVariant(e):e.toString().toUpperCase()===e?n.getDefaultVariant():Reflect.get(t,e,r)}})}function ae(){const n={};for(let t=0;t1?(r=e[0],i=e[1]):c>0&&(r+=a*c,i+=s*c)}return a=n[0]-r,s=n[1]-i,a*a+s*s}function $(n,t,e,r,i){let a=r,s;for(let c=t+1;ca&&(s=c,a=o)}a>r&&(s-t>1&&$(n,t,s,r,i),i.push(n[s]),e-s>1&&$(n,s,e,r,i))}function oe(n,t){const e=n.length-1,r=[n[0]];return $(n,0,e,t,r),r.push(n[e]),r}function ce(n,t){if(n.length<=2)return n;const e=t!==void 0?t*t:1;return oe(n,e)}function w(n,t=!0){let e=`${n[0]},${n[1]}`;return n.length===3&&t&&(e+=`,${n[2]}`),e}function N(n,t=3e3){let e=n.map(a=>a.join(",")).join("|"),r=5e-6;const i=1e-5;for(;e.length>t;)e=ce(n,r).map(a=>`${a[0]},${a[1]}`).join("|"),r+=i;return e}function le(n,t,e={}){var r,i,a,s,c;const o=P(e.style),l=e.hiDPI?"@2x":"",v=(r=e.format)!=null?r:"png";let d=~~((i=e.width)!=null?i:1024),m=~~((a=e.height)!=null?a:1024);e.hiDPI&&(d=~~(d/2),m=~~(m/2));const p=new URL(`maps/${encodeURIComponent(o)}/static/${n[0]},${n[1]},${t}/${d}x${m}${l}.${v}`,y.maptilerApiURL);if("attribution"in e&&p.searchParams.set("attribution",e.attribution.toString()),"markers"in e){let h="";const f="markerIcon"in e;f&&(h+=`icon:${e.markerIcon}|`),f&&"markerAnchor"in e&&(h+=`anchor:${e.markerAnchor}|`),f&&e.hiDPI&&(h+="scale:2|");const b=Array.isArray(e.markers[0])?e.markers:[e.markers];h+=b.map(ue=>w(ue,!f)).join("|"),p.searchParams.set("markers",h)}if("path"in e){let h="";if(h+=`fill:${(s=e.pathFillColor)!=null?s:"none"}|`,"pathStrokeColor"in e&&(h+=`stroke:${e.pathStrokeColor}|`),"pathWidth"in e){const f=e.pathWidth/(e.hiDPI?2:1);h+=`width:${f.toString()}|`}h+=N(e.path),p.searchParams.set("path",h)}return p.searchParams.set("key",(c=e.apiKey)!=null?c:g.apiKey),p.toString()}function pe(n,t={}){var e,r,i,a,s;const c=P(t.style),o=t.hiDPI?"@2x":"",l=(e=t.format)!=null?e:"png";let v=~~((r=t.width)!=null?r:1024),d=~~((i=t.height)!=null?i:1024);t.hiDPI&&(v=~~(v/2),d=~~(d/2));const m=new URL(`maps/${encodeURIComponent(c)}/static/${n[0]},${n[1]},${n[2]},${n[3]}/${v}x${d}${o}.${l}`,y.maptilerApiURL);if("attribution"in t&&m.searchParams.set("attribution",t.attribution.toString()),"padding"in t&&m.searchParams.set("padding",t.padding.toString()),"markers"in t){let p="";const h="markerIcon"in t;h&&(p+=`icon:${t.markerIcon}|`),h&&"markerAnchor"in t&&(p+=`anchor:${t.markerAnchor}|`),h&&t.hiDPI&&(p+="scale:2|");const f=Array.isArray(t.markers[0])?t.markers:[t.markers];p+=f.map(b=>w(b,!h)).join("|"),m.searchParams.set("markers",p)}if("path"in t){let p="";if(p+=`fill:${(a=t.pathFillColor)!=null?a:"none"}|`,"pathStrokeColor"in t&&(p+=`stroke:${t.pathStrokeColor}|`),"pathWidth"in t){const h=t.pathWidth/(t.hiDPI?2:1);p+=`width:${h.toString()}|`}p+=N(t.path),m.searchParams.set("path",p)}return m.searchParams.set("key",(s=t.apiKey)!=null?s:g.apiKey),m.toString()}function me(n={}){var t,e,r,i,a;if(!("markers"in n)&&!("path"in n))throw new Error("Automatic static maps require markers and/or path to be created.");const s=P(n.style),c=n.hiDPI?"@2x":"",o=(t=n.format)!=null?t:"png";let l=~~((e=n.width)!=null?e:1024),v=~~((r=n.height)!=null?r:1024);n.hiDPI&&(l=~~(l/2),v=~~(v/2));const d=new URL(`maps/${encodeURIComponent(s)}/static/auto/${l}x${v}${c}.${o}`,y.maptilerApiURL);if("attribution"in n&&d.searchParams.set("attribution",n.attribution.toString()),"padding"in n&&d.searchParams.set("padding",n.padding.toString()),"markers"in n){let m="";const p="markerIcon"in n;p&&(m+=`icon:${n.markerIcon}|`),p&&"markerAnchor"in n&&(m+=`anchor:${n.markerAnchor}|`),p&&n.hiDPI&&(m+="scale:2|");const h=Array.isArray(n.markers[0])?n.markers:[n.markers];m+=h.map(f=>w(f,!p)).join("|"),d.searchParams.set("markers",m)}if("path"in n){let m="";if(m+=`fill:${(i=n.pathFillColor)!=null?i:"none"}|`,"pathStrokeColor"in n&&(m+=`stroke:${n.pathStrokeColor}|`),"pathWidth"in n){const p=n.pathWidth/(n.hiDPI?2:1);m+=`width:${p.toString()}|`}m+=N(n.path),d.searchParams.set("path",m)}return d.searchParams.set("key",(a=n.apiKey)!=null?a:g.apiKey),d.toString()}const he={centered:le,bounded:pe,automatic:me};u.ClientConfig=C,u.LanguageGeocoding=L,u.MapStyle=G,u.MapStyleVariant=k,u.ReferenceMapStyle=E,u.ServiceError=A,u.config=g,u.coordinates=ee,u.data=re,u.expandMapStyle=M,u.geocoding=q,u.geolocation=J,u.mapStylePresetList=T,u.staticMaps=he,Object.defineProperty(u,"__esModule",{value:!0})}); diff --git a/docs/assets/search.js b/docs/assets/search.js index 997f9a5..f6ad815 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"kinds\":{\"2\":\"Module\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"512\":\"Constructor\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":2,\"name\":\"services/ServiceError\",\"url\":\"modules/services_ServiceError.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":128,\"name\":\"ServiceError\",\"url\":\"classes/services_ServiceError.ServiceError.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"services/ServiceError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/services_ServiceError.ServiceError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":1024,\"name\":\"res\",\"url\":\"classes/services_ServiceError.ServiceError.html#res\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":2,\"name\":\"services/coordinates\",\"url\":\"modules/services_coordinates.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"CoordinatesSearchOptions\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesSearchOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":4194304,\"name\":\"CoordinateId\",\"url\":\"types/services_coordinates.CoordinateId.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateId.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateId\"},{\"kind\":1024,\"name\":\"authority\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.authority\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":1024,\"name\":\"code\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":4194304,\"name\":\"CoordinateExport\",\"url\":\"types/services_coordinates.CoordinateExport.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateExport\"},{\"kind\":1024,\"name\":\"proj4\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.proj4\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":1024,\"name\":\"wkt\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.wkt\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":4194304,\"name\":\"CoordinateGrid\",\"url\":\"types/services_coordinates.CoordinateGrid.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateGrid\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateGrid.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformation\",\"url\":\"types/services_coordinates.CoordinateTransformation.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformation\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"reversible\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.reversible\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"usable\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.usable\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"grids\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.grids\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"target_crs\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.target_crs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearch\",\"url\":\"types/services_coordinates.CoordinateSearch.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearch\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"kind\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.kind\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"default_transformation\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.default_transformation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearchResult\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearchResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":1024,\"name\":\"total\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.total\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":4194304,\"name\":\"XYZ\",\"url\":\"types/services_coordinates.XYZ.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.XYZ.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.XYZ\"},{\"kind\":1024,\"name\":\"x\",\"url\":\"types/services_coordinates.XYZ.html#__type.x\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"y\",\"url\":\"types/services_coordinates.XYZ.html#__type.y\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"z\",\"url\":\"types/services_coordinates.XYZ.html#__type.z\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformResult\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":1024,\"name\":\"transformer_selection_strategy\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.transformer_selection_strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":4194304,\"name\":\"CoordinatesTransformOptions\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesTransformOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"sourceCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.sourceCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"targetCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.targetCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"operations\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.operations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":32,\"name\":\"coordinates\",\"url\":\"variables/services_coordinates.coordinates.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/coordinates.coordinates\"},{\"kind\":1024,\"name\":\"search\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.search\"},{\"kind\":1024,\"name\":\"transform\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.transform\"},{\"kind\":2,\"name\":\"services/data\",\"url\":\"modules/services_data.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GetDataOptions\",\"url\":\"types/services_data.GetDataOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_data.GetDataOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/data.GetDataOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_data.GetDataOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.GetDataOptions.__type\"},{\"kind\":32,\"name\":\"data\",\"url\":\"variables/services_data.data.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/data.data\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"variables/services_data.data.html#__type.get\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.data.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type.get.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/data.data.__type.get\"},{\"kind\":2,\"name\":\"services/geocoding\",\"url\":\"modules/services_geocoding.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GeocodingOptions\",\"url\":\"types/services_geocoding.GeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.GeocodingOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.GeocodingOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geocoding.GeocodingOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingOptions.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_geocoding.GeocodingOptions.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingOptions.__type\"},{\"kind\":1024,\"name\":\"proximity\",\"url\":\"types/services_geocoding.GeocodingOptions.html#__type.proximity\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingOptions.__type\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"types/services_geocoding.GeocodingOptions.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingOptions.__type\"},{\"kind\":4194304,\"name\":\"Coordinates\",\"url\":\"types/services_geocoding.Coordinates.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"FeatureHierarchy\",\"url\":\"types/services_geocoding.FeatureHierarchy.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.FeatureHierarchy\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":1024,\"name\":\"text\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.text\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":4194304,\"name\":\"GeocodingFeature\",\"url\":\"types/services_geocoding.GeocodingFeature.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingSearchResult\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.GeocodingSearchResult\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.type\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"features\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.features\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"query\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.query\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":4194304,\"name\":\"ReverseGeocodingOptions\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.ReverseGeocodingOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.ReverseGeocodingOptions.__type\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.ReverseGeocodingOptions.__type\"},{\"kind\":32,\"name\":\"geocoding\",\"url\":\"variables/services_geocoding.geocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geocoding.geocoding\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.forward\"},{\"kind\":1024,\"name\":\"reverse\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse.__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.reverse\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.language\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-3.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":2,\"name\":\"services/geolocation\",\"url\":\"modules/services_geolocation.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GeolocationInfoOptions\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationInfoOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationInfoOptions.__type\"},{\"kind\":4194304,\"name\":\"GeolocationResult\",\"url\":\"types/services_geolocation.GeolocationResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationResult\"},{\"kind\":1024,\"name\":\"country\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_bounds\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_bounds\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_languages\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_languages\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"eu\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.eu\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"city\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.city\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"latitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.latitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"longitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.longitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"postal\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.postal\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"timezone\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.timezone\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":32,\"name\":\"geolocation\",\"url\":\"variables/services_geolocation.geolocation.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geolocation.geolocation\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.geolocation.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geolocation.geolocation.__type.info\"},{\"kind\":2,\"name\":\"services/simplify\",\"url\":\"modules/services_simplify.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":64,\"name\":\"default\",\"url\":\"functions/services_simplify.default.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"services/simplify\"},{\"kind\":2,\"name\":\"services/staticMaps\",\"url\":\"modules/services_staticMaps.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"StaticMapBaseOptions\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/staticMaps.StaticMapBaseOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"style\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.style\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"hiDPI\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.hiDPI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"format\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.format\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"width\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.width\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.height\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markers\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerIcon\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerIcon\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerAnchor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerAnchor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathStrokeColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathStrokeColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathFillColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathFillColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathWidth\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathWidth\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":4194304,\"name\":\"CenteredStaticMapOptions\",\"url\":\"types/services_staticMaps.CenteredStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"BoundedStaticMapOptions\",\"url\":\"types/services_staticMaps.BoundedStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"AutomaticStaticMapOptions\",\"url\":\"types/services_staticMaps.AutomaticStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"StaticMapMarker\",\"url\":\"types/services_staticMaps.StaticMapMarker.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":32,\"name\":\"staticMaps\",\"url\":\"variables/services_staticMaps.staticMaps.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/staticMaps.staticMaps\"},{\"kind\":1024,\"name\":\"centered\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.centered\"},{\"kind\":1024,\"name\":\"bounded\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.bounded\"},{\"kind\":1024,\"name\":\"automatic\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.automatic\"},{\"kind\":2,\"name\":\"language\",\"url\":\"modules/language.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":32,\"name\":\"LanguageGeocoding\",\"url\":\"variables/language.LanguageGeocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/language.LanguageGeocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"language.LanguageGeocoding\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingString\",\"url\":\"types/language.LanguageGeocodingString.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":64,\"name\":\"getAutoLanguageGeocoding\",\"url\":\"functions/language.getAutoLanguageGeocoding.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":2,\"name\":\"config\",\"url\":\"modules/config.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"FetchFunction\",\"url\":\"types/config.FetchFunction.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/config.FetchFunction.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"config.FetchFunction\"},{\"kind\":128,\"name\":\"ClientConfig\",\"url\":\"classes/config.ClientConfig.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/config.ClientConfig.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"apiKey\",\"url\":\"classes/config.ClientConfig.html#apiKey\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"fetch\",\"url\":\"classes/config.ClientConfig.html#fetch\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":32,\"name\":\"config\",\"url\":\"variables/config.config.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"config\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,52.679]],[\"comment/0\",[]],[\"name/1\",[1,52.679]],[\"comment/1\",[]],[\"name/2\",[2,47.57]],[\"comment/2\",[]],[\"name/3\",[3,52.679]],[\"comment/3\",[]],[\"name/4\",[4,52.679]],[\"comment/4\",[]],[\"name/5\",[5,52.679]],[\"comment/5\",[]],[\"name/6\",[6,21.038]],[\"comment/6\",[]],[\"name/7\",[7,35.333]],[\"comment/7\",[]],[\"name/8\",[8,52.679]],[\"comment/8\",[]],[\"name/9\",[9,47.57]],[\"comment/9\",[]],[\"name/10\",[10,47.57]],[\"comment/10\",[]],[\"name/11\",[11,52.679]],[\"comment/11\",[]],[\"name/12\",[6,21.038]],[\"comment/12\",[]],[\"name/13\",[12,52.679]],[\"comment/13\",[]],[\"name/14\",[13,52.679]],[\"comment/14\",[]],[\"name/15\",[14,52.679]],[\"comment/15\",[]],[\"name/16\",[6,21.038]],[\"comment/16\",[]],[\"name/17\",[15,52.679]],[\"comment/17\",[]],[\"name/18\",[16,52.679]],[\"comment/18\",[]],[\"name/19\",[17,52.679]],[\"comment/19\",[]],[\"name/20\",[6,21.038]],[\"comment/20\",[]],[\"name/21\",[18,47.57]],[\"comment/21\",[]],[\"name/22\",[19,52.679]],[\"comment/22\",[]],[\"name/23\",[6,21.038]],[\"comment/23\",[]],[\"name/24\",[20,44.206]],[\"comment/24\",[]],[\"name/25\",[21,47.57]],[\"comment/25\",[]],[\"name/26\",[22,52.679]],[\"comment/26\",[]],[\"name/27\",[23,52.679]],[\"comment/27\",[]],[\"name/28\",[24,47.57]],[\"comment/28\",[]],[\"name/29\",[25,52.679]],[\"comment/29\",[]],[\"name/30\",[26,47.57]],[\"comment/30\",[]],[\"name/31\",[27,47.57]],[\"comment/31\",[]],[\"name/32\",[28,44.206]],[\"comment/32\",[]],[\"name/33\",[29,52.679]],[\"comment/33\",[]],[\"name/34\",[30,47.57]],[\"comment/34\",[]],[\"name/35\",[31,52.679]],[\"comment/35\",[]],[\"name/36\",[6,21.038]],[\"comment/36\",[]],[\"name/37\",[20,44.206]],[\"comment/37\",[]],[\"name/38\",[21,47.57]],[\"comment/38\",[]],[\"name/39\",[32,52.679]],[\"comment/39\",[]],[\"name/40\",[24,47.57]],[\"comment/40\",[]],[\"name/41\",[9,47.57]],[\"comment/41\",[]],[\"name/42\",[26,47.57]],[\"comment/42\",[]],[\"name/43\",[30,47.57]],[\"comment/43\",[]],[\"name/44\",[27,47.57]],[\"comment/44\",[]],[\"name/45\",[28,44.206]],[\"comment/45\",[]],[\"name/46\",[33,52.679]],[\"comment/46\",[]],[\"name/47\",[10,47.57]],[\"comment/47\",[]],[\"name/48\",[34,52.679]],[\"comment/48\",[]],[\"name/49\",[6,21.038]],[\"comment/49\",[]],[\"name/50\",[35,47.57]],[\"comment/50\",[]],[\"name/51\",[36,52.679]],[\"comment/51\",[]],[\"name/52\",[37,52.679]],[\"comment/52\",[]],[\"name/53\",[6,21.038]],[\"comment/53\",[]],[\"name/54\",[38,52.679]],[\"comment/54\",[]],[\"name/55\",[39,52.679]],[\"comment/55\",[]],[\"name/56\",[40,52.679]],[\"comment/56\",[]],[\"name/57\",[41,52.679]],[\"comment/57\",[]],[\"name/58\",[6,21.038]],[\"comment/58\",[]],[\"name/59\",[35,47.57]],[\"comment/59\",[]],[\"name/60\",[42,52.679]],[\"comment/60\",[]],[\"name/61\",[43,52.679]],[\"comment/61\",[]],[\"name/62\",[6,21.038]],[\"comment/62\",[]],[\"name/63\",[7,35.333]],[\"comment/63\",[]],[\"name/64\",[44,52.679]],[\"comment/64\",[]],[\"name/65\",[45,52.679]],[\"comment/65\",[]],[\"name/66\",[46,52.679]],[\"comment/66\",[]],[\"name/67\",[47,47.57]],[\"comment/67\",[]],[\"name/68\",[6,21.038]],[\"comment/68\",[]],[\"name/69\",[48,52.679]],[\"comment/69\",[]],[\"name/70\",[6,21.038]],[\"comment/70\",[]],[\"name/71\",[49,52.679]],[\"comment/71\",[]],[\"name/72\",[6,21.038]],[\"comment/72\",[]],[\"name/73\",[50,52.679]],[\"comment/73\",[]],[\"name/74\",[51,52.679]],[\"comment/74\",[]],[\"name/75\",[6,21.038]],[\"comment/75\",[]],[\"name/76\",[7,35.333]],[\"comment/76\",[]],[\"name/77\",[52,52.679]],[\"comment/77\",[]],[\"name/78\",[6,21.038]],[\"comment/78\",[]],[\"name/79\",[53,52.679]],[\"comment/79\",[]],[\"name/80\",[6,21.038]],[\"comment/80\",[]],[\"name/81\",[54,52.679]],[\"comment/81\",[]],[\"name/82\",[55,52.679]],[\"comment/82\",[]],[\"name/83\",[6,21.038]],[\"comment/83\",[]],[\"name/84\",[7,35.333]],[\"comment/84\",[]],[\"name/85\",[28,44.206]],[\"comment/85\",[]],[\"name/86\",[56,52.679]],[\"comment/86\",[]],[\"name/87\",[57,41.692]],[\"comment/87\",[]],[\"name/88\",[47,47.57]],[\"comment/88\",[]],[\"name/89\",[58,52.679]],[\"comment/89\",[]],[\"name/90\",[6,21.038]],[\"comment/90\",[]],[\"name/91\",[20,44.206]],[\"comment/91\",[]],[\"name/92\",[59,52.679]],[\"comment/92\",[]],[\"name/93\",[60,52.679]],[\"comment/93\",[]],[\"name/94\",[61,52.679]],[\"comment/94\",[]],[\"name/95\",[6,21.038]],[\"comment/95\",[]],[\"name/96\",[62,52.679]],[\"comment/96\",[]],[\"name/97\",[63,52.679]],[\"comment/97\",[]],[\"name/98\",[64,52.679]],[\"comment/98\",[]],[\"name/99\",[65,47.57]],[\"comment/99\",[]],[\"name/100\",[66,52.679]],[\"comment/100\",[]],[\"name/101\",[6,21.038]],[\"comment/101\",[]],[\"name/102\",[7,35.333]],[\"comment/102\",[]],[\"name/103\",[57,41.692]],[\"comment/103\",[]],[\"name/104\",[67,52.679]],[\"comment/104\",[]],[\"name/105\",[6,21.038]],[\"comment/105\",[]],[\"name/106\",[68,52.679]],[\"comment/106\",[]],[\"name/107\",[6,21.038]],[\"comment/107\",[]],[\"name/108\",[69,52.679]],[\"comment/108\",[]],[\"name/109\",[6,21.038]],[\"comment/109\",[]],[\"name/110\",[57,41.692]],[\"comment/110\",[]],[\"name/111\",[6,21.038]],[\"comment/111\",[]],[\"name/112\",[70,47.57]],[\"comment/112\",[]],[\"name/113\",[71,47.57]],[\"comment/113\",[]],[\"name/114\",[72,47.57]],[\"comment/114\",[]],[\"name/115\",[73,47.57]],[\"comment/115\",[]],[\"name/116\",[74,47.57]],[\"comment/116\",[]],[\"name/117\",[75,47.57]],[\"comment/117\",[]],[\"name/118\",[76,47.57]],[\"comment/118\",[]],[\"name/119\",[77,47.57]],[\"comment/119\",[]],[\"name/120\",[78,47.57]],[\"comment/120\",[]],[\"name/121\",[79,47.57]],[\"comment/121\",[]],[\"name/122\",[80,47.57]],[\"comment/122\",[]],[\"name/123\",[81,47.57]],[\"comment/123\",[]],[\"name/124\",[82,47.57]],[\"comment/124\",[]],[\"name/125\",[83,47.57]],[\"comment/125\",[]],[\"name/126\",[84,47.57]],[\"comment/126\",[]],[\"name/127\",[85,47.57]],[\"comment/127\",[]],[\"name/128\",[86,47.57]],[\"comment/128\",[]],[\"name/129\",[87,47.57]],[\"comment/129\",[]],[\"name/130\",[88,47.57]],[\"comment/130\",[]],[\"name/131\",[89,47.57]],[\"comment/131\",[]],[\"name/132\",[90,47.57]],[\"comment/132\",[]],[\"name/133\",[91,47.57]],[\"comment/133\",[]],[\"name/134\",[92,47.57]],[\"comment/134\",[]],[\"name/135\",[93,47.57]],[\"comment/135\",[]],[\"name/136\",[94,47.57]],[\"comment/136\",[]],[\"name/137\",[95,47.57]],[\"comment/137\",[]],[\"name/138\",[96,47.57]],[\"comment/138\",[]],[\"name/139\",[97,47.57]],[\"comment/139\",[]],[\"name/140\",[98,47.57]],[\"comment/140\",[]],[\"name/141\",[99,47.57]],[\"comment/141\",[]],[\"name/142\",[100,47.57]],[\"comment/142\",[]],[\"name/143\",[101,47.57]],[\"comment/143\",[]],[\"name/144\",[102,47.57]],[\"comment/144\",[]],[\"name/145\",[103,47.57]],[\"comment/145\",[]],[\"name/146\",[104,47.57]],[\"comment/146\",[]],[\"name/147\",[105,47.57]],[\"comment/147\",[]],[\"name/148\",[106,47.57]],[\"comment/148\",[]],[\"name/149\",[107,47.57]],[\"comment/149\",[]],[\"name/150\",[108,47.57]],[\"comment/150\",[]],[\"name/151\",[109,47.57]],[\"comment/151\",[]],[\"name/152\",[110,47.57]],[\"comment/152\",[]],[\"name/153\",[111,47.57]],[\"comment/153\",[]],[\"name/154\",[112,47.57]],[\"comment/154\",[]],[\"name/155\",[113,47.57]],[\"comment/155\",[]],[\"name/156\",[114,47.57]],[\"comment/156\",[]],[\"name/157\",[115,47.57]],[\"comment/157\",[]],[\"name/158\",[116,47.57]],[\"comment/158\",[]],[\"name/159\",[117,47.57]],[\"comment/159\",[]],[\"name/160\",[118,47.57]],[\"comment/160\",[]],[\"name/161\",[119,47.57]],[\"comment/161\",[]],[\"name/162\",[120,47.57]],[\"comment/162\",[]],[\"name/163\",[121,47.57]],[\"comment/163\",[]],[\"name/164\",[122,47.57]],[\"comment/164\",[]],[\"name/165\",[123,47.57]],[\"comment/165\",[]],[\"name/166\",[124,47.57]],[\"comment/166\",[]],[\"name/167\",[125,52.679]],[\"comment/167\",[]],[\"name/168\",[126,52.679]],[\"comment/168\",[]],[\"name/169\",[6,21.038]],[\"comment/169\",[]],[\"name/170\",[7,35.333]],[\"comment/170\",[]],[\"name/171\",[127,52.679]],[\"comment/171\",[]],[\"name/172\",[6,21.038]],[\"comment/172\",[]],[\"name/173\",[128,52.679]],[\"comment/173\",[]],[\"name/174\",[129,52.679]],[\"comment/174\",[]],[\"name/175\",[130,52.679]],[\"comment/175\",[]],[\"name/176\",[131,52.679]],[\"comment/176\",[]],[\"name/177\",[132,52.679]],[\"comment/177\",[]],[\"name/178\",[133,52.679]],[\"comment/178\",[]],[\"name/179\",[134,52.679]],[\"comment/179\",[]],[\"name/180\",[135,52.679]],[\"comment/180\",[]],[\"name/181\",[136,52.679]],[\"comment/181\",[]],[\"name/182\",[137,52.679]],[\"comment/182\",[]],[\"name/183\",[138,52.679]],[\"comment/183\",[]],[\"name/184\",[139,52.679]],[\"comment/184\",[]],[\"name/185\",[140,52.679]],[\"comment/185\",[]],[\"name/186\",[141,52.679]],[\"comment/186\",[]],[\"name/187\",[142,52.679]],[\"comment/187\",[]],[\"name/188\",[6,21.038]],[\"comment/188\",[]],[\"name/189\",[143,52.679]],[\"comment/189\",[]],[\"name/190\",[6,21.038]],[\"comment/190\",[]],[\"name/191\",[144,52.679]],[\"comment/191\",[]],[\"name/192\",[145,52.679]],[\"comment/192\",[]],[\"name/193\",[146,52.679]],[\"comment/193\",[]],[\"name/194\",[147,52.679]],[\"comment/194\",[]],[\"name/195\",[6,21.038]],[\"comment/195\",[]],[\"name/196\",[7,35.333]],[\"comment/196\",[]],[\"name/197\",[148,52.679]],[\"comment/197\",[]],[\"name/198\",[149,52.679]],[\"comment/198\",[]],[\"name/199\",[150,52.679]],[\"comment/199\",[]],[\"name/200\",[151,52.679]],[\"comment/200\",[]],[\"name/201\",[152,52.679]],[\"comment/201\",[]],[\"name/202\",[65,47.57]],[\"comment/202\",[]],[\"name/203\",[153,52.679]],[\"comment/203\",[]],[\"name/204\",[154,52.679]],[\"comment/204\",[]],[\"name/205\",[155,52.679]],[\"comment/205\",[]],[\"name/206\",[18,47.57]],[\"comment/206\",[]],[\"name/207\",[156,52.679]],[\"comment/207\",[]],[\"name/208\",[157,52.679]],[\"comment/208\",[]],[\"name/209\",[158,52.679]],[\"comment/209\",[]],[\"name/210\",[159,52.679]],[\"comment/210\",[]],[\"name/211\",[160,52.679]],[\"comment/211\",[]],[\"name/212\",[161,52.679]],[\"comment/212\",[]],[\"name/213\",[162,52.679]],[\"comment/213\",[]],[\"name/214\",[163,52.679]],[\"comment/214\",[]],[\"name/215\",[6,21.038]],[\"comment/215\",[]],[\"name/216\",[164,52.679]],[\"comment/216\",[]],[\"name/217\",[6,21.038]],[\"comment/217\",[]],[\"name/218\",[165,52.679]],[\"comment/218\",[]],[\"name/219\",[6,21.038]],[\"comment/219\",[]],[\"name/220\",[166,52.679]],[\"comment/220\",[]],[\"name/221\",[6,21.038]],[\"comment/221\",[]],[\"name/222\",[57,41.692]],[\"comment/222\",[]],[\"name/223\",[167,52.679]],[\"comment/223\",[]],[\"name/224\",[6,21.038]],[\"comment/224\",[]],[\"name/225\",[70,47.57]],[\"comment/225\",[]],[\"name/226\",[71,47.57]],[\"comment/226\",[]],[\"name/227\",[72,47.57]],[\"comment/227\",[]],[\"name/228\",[73,47.57]],[\"comment/228\",[]],[\"name/229\",[74,47.57]],[\"comment/229\",[]],[\"name/230\",[75,47.57]],[\"comment/230\",[]],[\"name/231\",[76,47.57]],[\"comment/231\",[]],[\"name/232\",[77,47.57]],[\"comment/232\",[]],[\"name/233\",[78,47.57]],[\"comment/233\",[]],[\"name/234\",[79,47.57]],[\"comment/234\",[]],[\"name/235\",[80,47.57]],[\"comment/235\",[]],[\"name/236\",[81,47.57]],[\"comment/236\",[]],[\"name/237\",[82,47.57]],[\"comment/237\",[]],[\"name/238\",[83,47.57]],[\"comment/238\",[]],[\"name/239\",[84,47.57]],[\"comment/239\",[]],[\"name/240\",[85,47.57]],[\"comment/240\",[]],[\"name/241\",[86,47.57]],[\"comment/241\",[]],[\"name/242\",[87,47.57]],[\"comment/242\",[]],[\"name/243\",[88,47.57]],[\"comment/243\",[]],[\"name/244\",[89,47.57]],[\"comment/244\",[]],[\"name/245\",[90,47.57]],[\"comment/245\",[]],[\"name/246\",[91,47.57]],[\"comment/246\",[]],[\"name/247\",[92,47.57]],[\"comment/247\",[]],[\"name/248\",[93,47.57]],[\"comment/248\",[]],[\"name/249\",[94,47.57]],[\"comment/249\",[]],[\"name/250\",[95,47.57]],[\"comment/250\",[]],[\"name/251\",[96,47.57]],[\"comment/251\",[]],[\"name/252\",[97,47.57]],[\"comment/252\",[]],[\"name/253\",[98,47.57]],[\"comment/253\",[]],[\"name/254\",[99,47.57]],[\"comment/254\",[]],[\"name/255\",[100,47.57]],[\"comment/255\",[]],[\"name/256\",[101,47.57]],[\"comment/256\",[]],[\"name/257\",[102,47.57]],[\"comment/257\",[]],[\"name/258\",[103,47.57]],[\"comment/258\",[]],[\"name/259\",[104,47.57]],[\"comment/259\",[]],[\"name/260\",[105,47.57]],[\"comment/260\",[]],[\"name/261\",[106,47.57]],[\"comment/261\",[]],[\"name/262\",[107,47.57]],[\"comment/262\",[]],[\"name/263\",[108,47.57]],[\"comment/263\",[]],[\"name/264\",[109,47.57]],[\"comment/264\",[]],[\"name/265\",[110,47.57]],[\"comment/265\",[]],[\"name/266\",[111,47.57]],[\"comment/266\",[]],[\"name/267\",[112,47.57]],[\"comment/267\",[]],[\"name/268\",[113,47.57]],[\"comment/268\",[]],[\"name/269\",[114,47.57]],[\"comment/269\",[]],[\"name/270\",[115,47.57]],[\"comment/270\",[]],[\"name/271\",[116,47.57]],[\"comment/271\",[]],[\"name/272\",[117,47.57]],[\"comment/272\",[]],[\"name/273\",[118,47.57]],[\"comment/273\",[]],[\"name/274\",[119,47.57]],[\"comment/274\",[]],[\"name/275\",[120,47.57]],[\"comment/275\",[]],[\"name/276\",[121,47.57]],[\"comment/276\",[]],[\"name/277\",[122,47.57]],[\"comment/277\",[]],[\"name/278\",[123,47.57]],[\"comment/278\",[]],[\"name/279\",[124,47.57]],[\"comment/279\",[]],[\"name/280\",[168,52.679]],[\"comment/280\",[]],[\"name/281\",[169,52.679]],[\"comment/281\",[]],[\"name/282\",[170,47.57]],[\"comment/282\",[]],[\"name/283\",[171,52.679]],[\"comment/283\",[]],[\"name/284\",[6,21.038]],[\"comment/284\",[]],[\"name/285\",[172,52.679]],[\"comment/285\",[]],[\"name/286\",[2,47.57]],[\"comment/286\",[]],[\"name/287\",[7,35.333]],[\"comment/287\",[]],[\"name/288\",[173,52.679]],[\"comment/288\",[]],[\"name/289\",[170,47.57]],[\"comment/289\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":6,\"name\":{\"6\":{},\"12\":{},\"16\":{},\"20\":{},\"23\":{},\"36\":{},\"49\":{},\"53\":{},\"58\":{},\"62\":{},\"68\":{},\"70\":{},\"72\":{},\"75\":{},\"78\":{},\"80\":{},\"83\":{},\"90\":{},\"95\":{},\"101\":{},\"105\":{},\"107\":{},\"109\":{},\"111\":{},\"169\":{},\"172\":{},\"188\":{},\"190\":{},\"195\":{},\"215\":{},\"217\":{},\"219\":{},\"221\":{},\"224\":{},\"284\":{}},\"comment\":{}}],[\"accuracy\",{\"_index\":26,\"name\":{\"30\":{},\"42\":{}},\"comment\":{}}],[\"albanian\",{\"_index\":71,\"name\":{\"113\":{},\"226\":{}},\"comment\":{}}],[\"apikey\",{\"_index\":7,\"name\":{\"7\":{},\"63\":{},\"76\":{},\"84\":{},\"102\":{},\"170\":{},\"196\":{},\"287\":{}},\"comment\":{}}],[\"arabic\",{\"_index\":72,\"name\":{\"114\":{},\"227\":{}},\"comment\":{}}],[\"area\",{\"_index\":27,\"name\":{\"31\":{},\"44\":{}},\"comment\":{}}],[\"armenian\",{\"_index\":73,\"name\":{\"115\":{},\"228\":{}},\"comment\":{}}],[\"attribution\",{\"_index\":65,\"name\":{\"99\":{},\"202\":{}},\"comment\":{}}],[\"authority\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"auto\",{\"_index\":70,\"name\":{\"112\":{},\"225\":{}},\"comment\":{}}],[\"automatic\",{\"_index\":166,\"name\":{\"220\":{}},\"comment\":{}}],[\"automaticstaticmapoptions\",{\"_index\":161,\"name\":{\"212\":{}},\"comment\":{}}],[\"azerbaijani\",{\"_index\":74,\"name\":{\"116\":{},\"229\":{}},\"comment\":{}}],[\"bbox\",{\"_index\":28,\"name\":{\"32\":{},\"45\":{},\"85\":{}},\"comment\":{}}],[\"belorussian\",{\"_index\":75,\"name\":{\"117\":{},\"230\":{}},\"comment\":{}}],[\"bosnian\",{\"_index\":76,\"name\":{\"118\":{},\"231\":{}},\"comment\":{}}],[\"bounded\",{\"_index\":165,\"name\":{\"218\":{}},\"comment\":{}}],[\"boundedstaticmapoptions\",{\"_index\":160,\"name\":{\"211\":{}},\"comment\":{}}],[\"breton\",{\"_index\":77,\"name\":{\"119\":{},\"232\":{}},\"comment\":{}}],[\"bulgarian\",{\"_index\":78,\"name\":{\"120\":{},\"233\":{}},\"comment\":{}}],[\"catalan\",{\"_index\":79,\"name\":{\"121\":{},\"234\":{}},\"comment\":{}}],[\"centered\",{\"_index\":164,\"name\":{\"216\":{}},\"comment\":{}}],[\"centeredstaticmapoptions\",{\"_index\":159,\"name\":{\"210\":{}},\"comment\":{}}],[\"chinese\",{\"_index\":80,\"name\":{\"122\":{},\"235\":{}},\"comment\":{}}],[\"city\",{\"_index\":135,\"name\":{\"180\":{}},\"comment\":{}}],[\"clientconfig\",{\"_index\":172,\"name\":{\"285\":{}},\"comment\":{}}],[\"code\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"config\",{\"_index\":170,\"name\":{\"282\":{},\"289\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":2,\"name\":{\"2\":{},\"286\":{}},\"comment\":{}}],[\"continent\",{\"_index\":132,\"name\":{\"177\":{}},\"comment\":{}}],[\"continent_code\",{\"_index\":133,\"name\":{\"178\":{}},\"comment\":{}}],[\"coordinateexport\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"coordinategrid\",{\"_index\":17,\"name\":{\"19\":{}},\"comment\":{}}],[\"coordinateid\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"coordinates\",{\"_index\":47,\"name\":{\"67\":{},\"88\":{}},\"comment\":{}}],[\"coordinatesearch\",{\"_index\":31,\"name\":{\"35\":{}},\"comment\":{}}],[\"coordinatesearchresult\",{\"_index\":34,\"name\":{\"48\":{}},\"comment\":{}}],[\"coordinatessearchoptions\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"coordinatestransformoptions\",{\"_index\":43,\"name\":{\"61\":{}},\"comment\":{}}],[\"coordinatetransformation\",{\"_index\":19,\"name\":{\"22\":{}},\"comment\":{}}],[\"coordinatetransformresult\",{\"_index\":41,\"name\":{\"57\":{}},\"comment\":{}}],[\"country\",{\"_index\":128,\"name\":{\"173\":{}},\"comment\":{}}],[\"country_bounds\",{\"_index\":130,\"name\":{\"175\":{}},\"comment\":{}}],[\"country_code\",{\"_index\":129,\"name\":{\"174\":{}},\"comment\":{}}],[\"country_languages\",{\"_index\":131,\"name\":{\"176\":{}},\"comment\":{}}],[\"croatian\",{\"_index\":81,\"name\":{\"123\":{},\"236\":{}},\"comment\":{}}],[\"czech\",{\"_index\":82,\"name\":{\"124\":{},\"237\":{}},\"comment\":{}}],[\"danish\",{\"_index\":83,\"name\":{\"125\":{},\"238\":{}},\"comment\":{}}],[\"data\",{\"_index\":52,\"name\":{\"77\":{}},\"comment\":{}}],[\"default\",{\"_index\":145,\"name\":{\"192\":{}},\"comment\":{}}],[\"default_transformation\",{\"_index\":33,\"name\":{\"46\":{}},\"comment\":{}}],[\"deprecated\",{\"_index\":24,\"name\":{\"28\":{},\"40\":{}},\"comment\":{}}],[\"dutch\",{\"_index\":84,\"name\":{\"126\":{},\"239\":{}},\"comment\":{}}],[\"english\",{\"_index\":85,\"name\":{\"127\":{},\"240\":{}},\"comment\":{}}],[\"esperanto\",{\"_index\":86,\"name\":{\"128\":{},\"241\":{}},\"comment\":{}}],[\"estonian\",{\"_index\":87,\"name\":{\"129\":{},\"242\":{}},\"comment\":{}}],[\"eu\",{\"_index\":134,\"name\":{\"179\":{}},\"comment\":{}}],[\"exports\",{\"_index\":10,\"name\":{\"10\":{},\"47\":{}},\"comment\":{}}],[\"featurehierarchy\",{\"_index\":58,\"name\":{\"89\":{}},\"comment\":{}}],[\"features\",{\"_index\":63,\"name\":{\"97\":{}},\"comment\":{}}],[\"fetch\",{\"_index\":173,\"name\":{\"288\":{}},\"comment\":{}}],[\"fetchfunction\",{\"_index\":171,\"name\":{\"283\":{}},\"comment\":{}}],[\"finnish\",{\"_index\":88,\"name\":{\"130\":{},\"243\":{}},\"comment\":{}}],[\"format\",{\"_index\":150,\"name\":{\"199\":{}},\"comment\":{}}],[\"forward\",{\"_index\":68,\"name\":{\"106\":{}},\"comment\":{}}],[\"french\",{\"_index\":89,\"name\":{\"131\":{},\"244\":{}},\"comment\":{}}],[\"frisian\",{\"_index\":90,\"name\":{\"132\":{},\"245\":{}},\"comment\":{}}],[\"geocoding\",{\"_index\":67,\"name\":{\"104\":{}},\"comment\":{}}],[\"geocodingfeature\",{\"_index\":60,\"name\":{\"93\":{}},\"comment\":{}}],[\"geocodingoptions\",{\"_index\":55,\"name\":{\"82\":{}},\"comment\":{}}],[\"geocodingsearchresult\",{\"_index\":61,\"name\":{\"94\":{}},\"comment\":{}}],[\"geolocation\",{\"_index\":142,\"name\":{\"187\":{}},\"comment\":{}}],[\"geolocationinfooptions\",{\"_index\":126,\"name\":{\"168\":{}},\"comment\":{}}],[\"geolocationresult\",{\"_index\":127,\"name\":{\"171\":{}},\"comment\":{}}],[\"georgian\",{\"_index\":91,\"name\":{\"133\":{},\"246\":{}},\"comment\":{}}],[\"german\",{\"_index\":92,\"name\":{\"134\":{},\"247\":{}},\"comment\":{}}],[\"get\",{\"_index\":53,\"name\":{\"79\":{}},\"comment\":{}}],[\"getautolanguagegeocoding\",{\"_index\":169,\"name\":{\"281\":{}},\"comment\":{}}],[\"getdataoptions\",{\"_index\":51,\"name\":{\"74\":{}},\"comment\":{}}],[\"greek\",{\"_index\":93,\"name\":{\"135\":{},\"248\":{}},\"comment\":{}}],[\"grids\",{\"_index\":25,\"name\":{\"29\":{}},\"comment\":{}}],[\"hebrew\",{\"_index\":94,\"name\":{\"136\":{},\"249\":{}},\"comment\":{}}],[\"height\",{\"_index\":152,\"name\":{\"201\":{}},\"comment\":{}}],[\"hidpi\",{\"_index\":149,\"name\":{\"198\":{}},\"comment\":{}}],[\"hungarian\",{\"_index\":95,\"name\":{\"137\":{},\"250\":{}},\"comment\":{}}],[\"icelandic\",{\"_index\":96,\"name\":{\"138\":{},\"251\":{}},\"comment\":{}}],[\"id\",{\"_index\":20,\"name\":{\"24\":{},\"37\":{},\"91\":{}},\"comment\":{}}],[\"info\",{\"_index\":143,\"name\":{\"189\":{}},\"comment\":{}}],[\"irish\",{\"_index\":97,\"name\":{\"139\":{},\"252\":{}},\"comment\":{}}],[\"italian\",{\"_index\":98,\"name\":{\"140\":{},\"253\":{}},\"comment\":{}}],[\"japanese\",{\"_index\":99,\"name\":{\"141\":{},\"254\":{}},\"comment\":{}}],[\"kannada\",{\"_index\":100,\"name\":{\"142\":{},\"255\":{}},\"comment\":{}}],[\"kazakh\",{\"_index\":101,\"name\":{\"143\":{},\"256\":{}},\"comment\":{}}],[\"kind\",{\"_index\":32,\"name\":{\"39\":{}},\"comment\":{}}],[\"korean\",{\"_index\":102,\"name\":{\"144\":{},\"257\":{}},\"comment\":{}}],[\"language\",{\"_index\":57,\"name\":{\"87\":{},\"103\":{},\"110\":{},\"222\":{}},\"comment\":{}}],[\"languagegeocoding\",{\"_index\":167,\"name\":{\"223\":{}},\"comment\":{}}],[\"languagegeocodingstring\",{\"_index\":168,\"name\":{\"280\":{}},\"comment\":{}}],[\"latitude\",{\"_index\":136,\"name\":{\"181\":{}},\"comment\":{}}],[\"latvian\",{\"_index\":104,\"name\":{\"146\":{},\"259\":{}},\"comment\":{}}],[\"limit\",{\"_index\":8,\"name\":{\"8\":{}},\"comment\":{}}],[\"lithuanian\",{\"_index\":105,\"name\":{\"147\":{},\"260\":{}},\"comment\":{}}],[\"longitude\",{\"_index\":137,\"name\":{\"182\":{}},\"comment\":{}}],[\"luxembourgish\",{\"_index\":106,\"name\":{\"148\":{},\"261\":{}},\"comment\":{}}],[\"macedonian\",{\"_index\":107,\"name\":{\"149\":{},\"262\":{}},\"comment\":{}}],[\"maltese\",{\"_index\":108,\"name\":{\"150\":{},\"263\":{}},\"comment\":{}}],[\"markeranchor\",{\"_index\":155,\"name\":{\"205\":{}},\"comment\":{}}],[\"markericon\",{\"_index\":154,\"name\":{\"204\":{}},\"comment\":{}}],[\"markers\",{\"_index\":153,\"name\":{\"203\":{}},\"comment\":{}}],[\"name\",{\"_index\":21,\"name\":{\"25\":{},\"38\":{}},\"comment\":{}}],[\"norwegian\",{\"_index\":109,\"name\":{\"151\":{},\"264\":{}},\"comment\":{}}],[\"operations\",{\"_index\":46,\"name\":{\"66\":{}},\"comment\":{}}],[\"path\",{\"_index\":18,\"name\":{\"21\":{},\"206\":{}},\"comment\":{}}],[\"pathfillcolor\",{\"_index\":157,\"name\":{\"208\":{}},\"comment\":{}}],[\"pathstrokecolor\",{\"_index\":156,\"name\":{\"207\":{}},\"comment\":{}}],[\"pathwidth\",{\"_index\":158,\"name\":{\"209\":{}},\"comment\":{}}],[\"polish\",{\"_index\":110,\"name\":{\"152\":{},\"265\":{}},\"comment\":{}}],[\"portuguese\",{\"_index\":111,\"name\":{\"153\":{},\"266\":{}},\"comment\":{}}],[\"postal\",{\"_index\":138,\"name\":{\"183\":{}},\"comment\":{}}],[\"proj4\",{\"_index\":15,\"name\":{\"17\":{}},\"comment\":{}}],[\"proximity\",{\"_index\":56,\"name\":{\"86\":{}},\"comment\":{}}],[\"query\",{\"_index\":64,\"name\":{\"98\":{}},\"comment\":{}}],[\"region\",{\"_index\":139,\"name\":{\"184\":{}},\"comment\":{}}],[\"region_code\",{\"_index\":140,\"name\":{\"185\":{}},\"comment\":{}}],[\"res\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"results\",{\"_index\":35,\"name\":{\"50\":{},\"59\":{}},\"comment\":{}}],[\"reverse\",{\"_index\":69,\"name\":{\"108\":{}},\"comment\":{}}],[\"reversegeocodingoptions\",{\"_index\":66,\"name\":{\"100\":{}},\"comment\":{}}],[\"reversible\",{\"_index\":22,\"name\":{\"26\":{}},\"comment\":{}}],[\"roman_latin\",{\"_index\":103,\"name\":{\"145\":{},\"258\":{}},\"comment\":{}}],[\"romanian\",{\"_index\":112,\"name\":{\"154\":{},\"267\":{}},\"comment\":{}}],[\"romansh\",{\"_index\":113,\"name\":{\"155\":{},\"268\":{}},\"comment\":{}}],[\"russian\",{\"_index\":114,\"name\":{\"156\":{},\"269\":{}},\"comment\":{}}],[\"scottish_gaelic\",{\"_index\":115,\"name\":{\"157\":{},\"270\":{}},\"comment\":{}}],[\"search\",{\"_index\":48,\"name\":{\"69\":{}},\"comment\":{}}],[\"serbian_cyrillic\",{\"_index\":116,\"name\":{\"158\":{},\"271\":{}},\"comment\":{}}],[\"serviceerror\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"services/coordinates\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"services/data\",{\"_index\":50,\"name\":{\"73\":{}},\"comment\":{}}],[\"services/geocoding\",{\"_index\":54,\"name\":{\"81\":{}},\"comment\":{}}],[\"services/geolocation\",{\"_index\":125,\"name\":{\"167\":{}},\"comment\":{}}],[\"services/serviceerror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"services/simplify\",{\"_index\":144,\"name\":{\"191\":{}},\"comment\":{}}],[\"services/staticmaps\",{\"_index\":146,\"name\":{\"193\":{}},\"comment\":{}}],[\"slovak\",{\"_index\":117,\"name\":{\"159\":{},\"272\":{}},\"comment\":{}}],[\"slovene\",{\"_index\":118,\"name\":{\"160\":{},\"273\":{}},\"comment\":{}}],[\"sourcecrs\",{\"_index\":44,\"name\":{\"64\":{}},\"comment\":{}}],[\"spanish\",{\"_index\":119,\"name\":{\"161\":{},\"274\":{}},\"comment\":{}}],[\"staticmapbaseoptions\",{\"_index\":147,\"name\":{\"194\":{}},\"comment\":{}}],[\"staticmapmarker\",{\"_index\":162,\"name\":{\"213\":{}},\"comment\":{}}],[\"staticmaps\",{\"_index\":163,\"name\":{\"214\":{}},\"comment\":{}}],[\"style\",{\"_index\":148,\"name\":{\"197\":{}},\"comment\":{}}],[\"swedish\",{\"_index\":120,\"name\":{\"162\":{},\"275\":{}},\"comment\":{}}],[\"target_crs\",{\"_index\":29,\"name\":{\"33\":{}},\"comment\":{}}],[\"targetcrs\",{\"_index\":45,\"name\":{\"65\":{}},\"comment\":{}}],[\"text\",{\"_index\":59,\"name\":{\"92\":{}},\"comment\":{}}],[\"thai\",{\"_index\":121,\"name\":{\"163\":{},\"276\":{}},\"comment\":{}}],[\"timezone\",{\"_index\":141,\"name\":{\"186\":{}},\"comment\":{}}],[\"total\",{\"_index\":36,\"name\":{\"51\":{}},\"comment\":{}}],[\"transform\",{\"_index\":49,\"name\":{\"71\":{}},\"comment\":{}}],[\"transformations\",{\"_index\":9,\"name\":{\"9\":{},\"41\":{}},\"comment\":{}}],[\"transformer_selection_strategy\",{\"_index\":42,\"name\":{\"60\":{}},\"comment\":{}}],[\"turkish\",{\"_index\":122,\"name\":{\"164\":{},\"277\":{}},\"comment\":{}}],[\"type\",{\"_index\":62,\"name\":{\"96\":{}},\"comment\":{}}],[\"ukrainian\",{\"_index\":123,\"name\":{\"165\":{},\"278\":{}},\"comment\":{}}],[\"unit\",{\"_index\":30,\"name\":{\"34\":{},\"43\":{}},\"comment\":{}}],[\"usable\",{\"_index\":23,\"name\":{\"27\":{}},\"comment\":{}}],[\"welsh\",{\"_index\":124,\"name\":{\"166\":{},\"279\":{}},\"comment\":{}}],[\"width\",{\"_index\":151,\"name\":{\"200\":{}},\"comment\":{}}],[\"wkt\",{\"_index\":16,\"name\":{\"18\":{}},\"comment\":{}}],[\"x\",{\"_index\":38,\"name\":{\"54\":{}},\"comment\":{}}],[\"xyz\",{\"_index\":37,\"name\":{\"52\":{}},\"comment\":{}}],[\"y\",{\"_index\":39,\"name\":{\"55\":{}},\"comment\":{}}],[\"z\",{\"_index\":40,\"name\":{\"56\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"kinds\":{\"2\":\"Module\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"512\":\"Constructor\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":2,\"name\":\"services/ServiceError\",\"url\":\"modules/services_ServiceError.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":128,\"name\":\"ServiceError\",\"url\":\"classes/services_ServiceError.ServiceError.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"services/ServiceError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/services_ServiceError.ServiceError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":1024,\"name\":\"res\",\"url\":\"classes/services_ServiceError.ServiceError.html#res\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"services/ServiceError.ServiceError\"},{\"kind\":2,\"name\":\"services/coordinates\",\"url\":\"modules/services_coordinates.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"CoordinatesSearchOptions\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesSearchOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinatesSearchOptions.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesSearchOptions.__type\"},{\"kind\":4194304,\"name\":\"CoordinateId\",\"url\":\"types/services_coordinates.CoordinateId.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateId.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateId\"},{\"kind\":1024,\"name\":\"authority\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.authority\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":1024,\"name\":\"code\",\"url\":\"types/services_coordinates.CoordinateId.html#__type.code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateId.__type\"},{\"kind\":4194304,\"name\":\"CoordinateExport\",\"url\":\"types/services_coordinates.CoordinateExport.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateExport\"},{\"kind\":1024,\"name\":\"proj4\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.proj4\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":1024,\"name\":\"wkt\",\"url\":\"types/services_coordinates.CoordinateExport.html#__type.wkt\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateExport.__type\"},{\"kind\":4194304,\"name\":\"CoordinateGrid\",\"url\":\"types/services_coordinates.CoordinateGrid.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateGrid\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_coordinates.CoordinateGrid.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateGrid.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformation\",\"url\":\"types/services_coordinates.CoordinateTransformation.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformation\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"reversible\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.reversible\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"usable\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.usable\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"grids\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.grids\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"target_crs\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.target_crs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateTransformation.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformation.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearch\",\"url\":\"types/services_coordinates.CoordinateSearch.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearch\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"kind\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.kind\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"deprecated\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.deprecated\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"transformations\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.transformations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"accuracy\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.accuracy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"area\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.area\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"bbox\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.bbox\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"default_transformation\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.default_transformation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":1024,\"name\":\"exports\",\"url\":\"types/services_coordinates.CoordinateSearch.html#__type.exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearch.__type\"},{\"kind\":4194304,\"name\":\"CoordinateSearchResult\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateSearchResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":1024,\"name\":\"total\",\"url\":\"types/services_coordinates.CoordinateSearchResult.html#__type.total\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateSearchResult.__type\"},{\"kind\":4194304,\"name\":\"XYZ\",\"url\":\"types/services_coordinates.XYZ.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.XYZ.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.XYZ\"},{\"kind\":1024,\"name\":\"x\",\"url\":\"types/services_coordinates.XYZ.html#__type.x\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"y\",\"url\":\"types/services_coordinates.XYZ.html#__type.y\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":1024,\"name\":\"z\",\"url\":\"types/services_coordinates.XYZ.html#__type.z\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.XYZ.__type\"},{\"kind\":4194304,\"name\":\"CoordinateTransformResult\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinateTransformResult\"},{\"kind\":1024,\"name\":\"results\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.results\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":1024,\"name\":\"transformer_selection_strategy\",\"url\":\"types/services_coordinates.CoordinateTransformResult.html#__type.transformer_selection_strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinateTransformResult.__type\"},{\"kind\":4194304,\"name\":\"CoordinatesTransformOptions\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/coordinates.CoordinatesTransformOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"sourceCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.sourceCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"targetCrs\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.targetCrs\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":1024,\"name\":\"operations\",\"url\":\"types/services_coordinates.CoordinatesTransformOptions.html#__type.operations\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.CoordinatesTransformOptions.__type\"},{\"kind\":32,\"name\":\"coordinates\",\"url\":\"variables/services_coordinates.coordinates.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/coordinates\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/coordinates.coordinates\"},{\"kind\":1024,\"name\":\"search\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.search.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.search\"},{\"kind\":1024,\"name\":\"transform\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/coordinates.coordinates.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_coordinates.coordinates.html#__type.transform.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/coordinates.coordinates.__type.transform\"},{\"kind\":2,\"name\":\"services/data\",\"url\":\"modules/services_data.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GetDataOptions\",\"url\":\"types/services_data.GetDataOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_data.GetDataOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/data.GetDataOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_data.GetDataOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.GetDataOptions.__type\"},{\"kind\":32,\"name\":\"data\",\"url\":\"variables/services_data.data.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/data\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/data.data\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"variables/services_data.data.html#__type.get\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/data.data.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_data.data.html#__type.get.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/data.data.__type.get\"},{\"kind\":2,\"name\":\"services/geocoding\",\"url\":\"modules/services_geocoding.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingOptions\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.LanguageGeocodingOptions\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"types/services_geocoding.LanguageGeocodingOptions.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.LanguageGeocodingOptions.__type\"},{\"kind\":4194304,\"name\":\"CommonForwardAndReverseGeocodingOptions\",\"url\":\"types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingOptions\",\"url\":\"types/services_geocoding.GeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ReverseGeocodingOptions\",\"url\":\"types/services_geocoding.ReverseGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"ByIdGeocodingOptions\",\"url\":\"types/services_geocoding.ByIdGeocodingOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"Coordinates\",\"url\":\"types/services_geocoding.Coordinates.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"FeatureHierarchy\",\"url\":\"types/services_geocoding.FeatureHierarchy.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.FeatureHierarchy\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.id\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":1024,\"name\":\"text\",\"url\":\"types/services_geocoding.FeatureHierarchy.html#__type.text\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.FeatureHierarchy.__type\"},{\"kind\":4194304,\"name\":\"GeocodingFeature\",\"url\":\"types/services_geocoding.GeocodingFeature.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":4194304,\"name\":\"GeocodingSearchResult\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geocoding.GeocodingSearchResult\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.type\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"features\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.features\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"query\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.query\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_geocoding.GeocodingSearchResult.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.GeocodingSearchResult.__type\"},{\"kind\":32,\"name\":\"geocoding\",\"url\":\"variables/services_geocoding.geocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geocoding\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geocoding.geocoding\"},{\"kind\":1024,\"name\":\"forward\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.forward.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.forward\"},{\"kind\":1024,\"name\":\"reverse\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.reverse.__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.reverse\"},{\"kind\":1024,\"name\":\"byId\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.byId.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.byId\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geocoding.geocoding.__type.language\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/services_geocoding.geocoding.html#__type.language.__type-5.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geocoding.geocoding.__type.language.__type\"},{\"kind\":2,\"name\":\"services/geolocation\",\"url\":\"modules/services_geolocation.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"GeolocationInfoOptions\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationInfoOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_geolocation.GeolocationInfoOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationInfoOptions.__type\"},{\"kind\":4194304,\"name\":\"GeolocationResult\",\"url\":\"types/services_geolocation.GeolocationResult.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/geolocation.GeolocationResult\"},{\"kind\":1024,\"name\":\"country\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_bounds\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_bounds\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"country_languages\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.country_languages\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"continent_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.continent_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"eu\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.eu\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"city\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.city\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"latitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.latitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"longitude\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.longitude\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"postal\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.postal\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"region_code\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.region_code\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":1024,\"name\":\"timezone\",\"url\":\"types/services_geolocation.GeolocationResult.html#__type.timezone\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.GeolocationResult.__type\"},{\"kind\":32,\"name\":\"geolocation\",\"url\":\"variables/services_geolocation.geolocation.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/geolocation\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/geolocation.geolocation\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/geolocation.geolocation.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_geolocation.geolocation.html#__type.info.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/geolocation.geolocation.__type.info\"},{\"kind\":2,\"name\":\"services/simplify\",\"url\":\"modules/services_simplify.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":64,\"name\":\"default\",\"url\":\"functions/services_simplify.default.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"services/simplify\"},{\"kind\":2,\"name\":\"services/staticMaps\",\"url\":\"modules/services_staticMaps.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"StaticMapBaseOptions\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"services/staticMaps.StaticMapBaseOptions\"},{\"kind\":1024,\"name\":\"apiKey\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.apiKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"style\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.style\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"hiDPI\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.hiDPI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"format\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.format\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"width\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.width\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"height\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.height\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"attribution\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.attribution\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markers\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markers\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerIcon\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerIcon\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"markerAnchor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.markerAnchor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.path\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathStrokeColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathStrokeColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathFillColor\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathFillColor\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":1024,\"name\":\"pathWidth\",\"url\":\"types/services_staticMaps.StaticMapBaseOptions.html#__type.pathWidth\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.StaticMapBaseOptions.__type\"},{\"kind\":4194304,\"name\":\"CenteredStaticMapOptions\",\"url\":\"types/services_staticMaps.CenteredStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"BoundedStaticMapOptions\",\"url\":\"types/services_staticMaps.BoundedStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"AutomaticStaticMapOptions\",\"url\":\"types/services_staticMaps.AutomaticStaticMapOptions.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":4194304,\"name\":\"StaticMapMarker\",\"url\":\"types/services_staticMaps.StaticMapMarker.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":32,\"name\":\"staticMaps\",\"url\":\"variables/services_staticMaps.staticMaps.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"services/staticMaps\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"services/staticMaps.staticMaps\"},{\"kind\":1024,\"name\":\"centered\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.centered.__type-5\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.centered\"},{\"kind\":1024,\"name\":\"bounded\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.bounded.__type-3\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.bounded\"},{\"kind\":1024,\"name\":\"automatic\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"services/staticMaps.staticMaps.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/services_staticMaps.staticMaps.html#__type.automatic.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-property\",\"parent\":\"services/staticMaps.staticMaps.__type.automatic\"},{\"kind\":2,\"name\":\"language\",\"url\":\"modules/language.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":32,\"name\":\"LanguageGeocoding\",\"url\":\"variables/language.LanguageGeocoding.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/language.LanguageGeocoding.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"language.LanguageGeocoding\"},{\"kind\":1024,\"name\":\"AUTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AUTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ALBANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ALBANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARABIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARABIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ARMENIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ARMENIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"AZERBAIJANI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.AZERBAIJANI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BELORUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BELORUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BOSNIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BOSNIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BRETON\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BRETON\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"BULGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.BULGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CATALAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CATALAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CHINESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CHINESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CROATIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CROATIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"CZECH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.CZECH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"DUTCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.DUTCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ENGLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ENGLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESPERANTO\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESPERANTO\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ESTONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ESTONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FINNISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FINNISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRENCH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRENCH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"FRISIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.FRISIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GEORGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GEORGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GERMAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GERMAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"GREEK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.GREEK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HEBREW\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HEBREW\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"HUNGARIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.HUNGARIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ICELANDIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ICELANDIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"IRISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.IRISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ITALIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ITALIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"JAPANESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.JAPANESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KANNADA\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KANNADA\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KAZAKH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KAZAKH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"KOREAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.KOREAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMAN_LATIN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMAN_LATIN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LATVIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LATVIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LITHUANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LITHUANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"LUXEMBOURGISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.LUXEMBOURGISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MACEDONIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MACEDONIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"MALTESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.MALTESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"NORWEGIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.NORWEGIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"POLISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.POLISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"PORTUGUESE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.PORTUGUESE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"ROMANSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.ROMANSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"RUSSIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.RUSSIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SCOTTISH_GAELIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SCOTTISH_GAELIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SERBIAN_CYRILLIC\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SERBIAN_CYRILLIC\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVAK\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVAK\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SLOVENE\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SLOVENE\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SPANISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SPANISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"SWEDISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.SWEDISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"THAI\",\"url\":\"variables/language.LanguageGeocoding.html#__type.THAI\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"TURKISH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.TURKISH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"UKRAINIAN\",\"url\":\"variables/language.LanguageGeocoding.html#__type.UKRAINIAN\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":1024,\"name\":\"WELSH\",\"url\":\"variables/language.LanguageGeocoding.html#__type.WELSH\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"language.LanguageGeocoding.__type\"},{\"kind\":4194304,\"name\":\"LanguageGeocodingString\",\"url\":\"types/language.LanguageGeocodingString.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":64,\"name\":\"getAutoLanguageGeocoding\",\"url\":\"functions/language.getAutoLanguageGeocoding.html\",\"classes\":\"tsd-kind-function tsd-parent-kind-module\",\"parent\":\"language\"},{\"kind\":2,\"name\":\"config\",\"url\":\"modules/config.html\",\"classes\":\"tsd-kind-module\"},{\"kind\":4194304,\"name\":\"FetchFunction\",\"url\":\"types/config.FetchFunction.html\",\"classes\":\"tsd-kind-type-alias tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/config.FetchFunction.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"config.FetchFunction\"},{\"kind\":128,\"name\":\"ClientConfig\",\"url\":\"classes/config.ClientConfig.html\",\"classes\":\"tsd-kind-class tsd-parent-kind-module\",\"parent\":\"config\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/config.ClientConfig.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"apiKey\",\"url\":\"classes/config.ClientConfig.html#apiKey\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":262144,\"name\":\"fetch\",\"url\":\"classes/config.ClientConfig.html#fetch\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"config.ClientConfig\"},{\"kind\":32,\"name\":\"config\",\"url\":\"variables/config.config.html\",\"classes\":\"tsd-kind-variable tsd-parent-kind-module\",\"parent\":\"config\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,52.644]],[\"comment/0\",[]],[\"name/1\",[1,52.644]],[\"comment/1\",[]],[\"name/2\",[2,47.536]],[\"comment/2\",[]],[\"name/3\",[3,52.644]],[\"comment/3\",[]],[\"name/4\",[4,52.644]],[\"comment/4\",[]],[\"name/5\",[5,52.644]],[\"comment/5\",[]],[\"name/6\",[6,21.003]],[\"comment/6\",[]],[\"name/7\",[7,37.981]],[\"comment/7\",[]],[\"name/8\",[8,52.644]],[\"comment/8\",[]],[\"name/9\",[9,47.536]],[\"comment/9\",[]],[\"name/10\",[10,47.536]],[\"comment/10\",[]],[\"name/11\",[11,52.644]],[\"comment/11\",[]],[\"name/12\",[6,21.003]],[\"comment/12\",[]],[\"name/13\",[12,52.644]],[\"comment/13\",[]],[\"name/14\",[13,52.644]],[\"comment/14\",[]],[\"name/15\",[14,52.644]],[\"comment/15\",[]],[\"name/16\",[6,21.003]],[\"comment/16\",[]],[\"name/17\",[15,52.644]],[\"comment/17\",[]],[\"name/18\",[16,52.644]],[\"comment/18\",[]],[\"name/19\",[17,52.644]],[\"comment/19\",[]],[\"name/20\",[6,21.003]],[\"comment/20\",[]],[\"name/21\",[18,47.536]],[\"comment/21\",[]],[\"name/22\",[19,52.644]],[\"comment/22\",[]],[\"name/23\",[6,21.003]],[\"comment/23\",[]],[\"name/24\",[20,44.171]],[\"comment/24\",[]],[\"name/25\",[21,47.536]],[\"comment/25\",[]],[\"name/26\",[22,52.644]],[\"comment/26\",[]],[\"name/27\",[23,52.644]],[\"comment/27\",[]],[\"name/28\",[24,47.536]],[\"comment/28\",[]],[\"name/29\",[25,52.644]],[\"comment/29\",[]],[\"name/30\",[26,47.536]],[\"comment/30\",[]],[\"name/31\",[27,47.536]],[\"comment/31\",[]],[\"name/32\",[28,47.536]],[\"comment/32\",[]],[\"name/33\",[29,52.644]],[\"comment/33\",[]],[\"name/34\",[30,47.536]],[\"comment/34\",[]],[\"name/35\",[31,52.644]],[\"comment/35\",[]],[\"name/36\",[6,21.003]],[\"comment/36\",[]],[\"name/37\",[20,44.171]],[\"comment/37\",[]],[\"name/38\",[21,47.536]],[\"comment/38\",[]],[\"name/39\",[32,52.644]],[\"comment/39\",[]],[\"name/40\",[24,47.536]],[\"comment/40\",[]],[\"name/41\",[9,47.536]],[\"comment/41\",[]],[\"name/42\",[26,47.536]],[\"comment/42\",[]],[\"name/43\",[30,47.536]],[\"comment/43\",[]],[\"name/44\",[27,47.536]],[\"comment/44\",[]],[\"name/45\",[28,47.536]],[\"comment/45\",[]],[\"name/46\",[33,52.644]],[\"comment/46\",[]],[\"name/47\",[10,47.536]],[\"comment/47\",[]],[\"name/48\",[34,52.644]],[\"comment/48\",[]],[\"name/49\",[6,21.003]],[\"comment/49\",[]],[\"name/50\",[35,47.536]],[\"comment/50\",[]],[\"name/51\",[36,52.644]],[\"comment/51\",[]],[\"name/52\",[37,52.644]],[\"comment/52\",[]],[\"name/53\",[6,21.003]],[\"comment/53\",[]],[\"name/54\",[38,52.644]],[\"comment/54\",[]],[\"name/55\",[39,52.644]],[\"comment/55\",[]],[\"name/56\",[40,52.644]],[\"comment/56\",[]],[\"name/57\",[41,52.644]],[\"comment/57\",[]],[\"name/58\",[6,21.003]],[\"comment/58\",[]],[\"name/59\",[35,47.536]],[\"comment/59\",[]],[\"name/60\",[42,52.644]],[\"comment/60\",[]],[\"name/61\",[43,52.644]],[\"comment/61\",[]],[\"name/62\",[6,21.003]],[\"comment/62\",[]],[\"name/63\",[7,37.981]],[\"comment/63\",[]],[\"name/64\",[44,52.644]],[\"comment/64\",[]],[\"name/65\",[45,52.644]],[\"comment/65\",[]],[\"name/66\",[46,52.644]],[\"comment/66\",[]],[\"name/67\",[47,47.536]],[\"comment/67\",[]],[\"name/68\",[6,21.003]],[\"comment/68\",[]],[\"name/69\",[48,52.644]],[\"comment/69\",[]],[\"name/70\",[6,21.003]],[\"comment/70\",[]],[\"name/71\",[49,52.644]],[\"comment/71\",[]],[\"name/72\",[6,21.003]],[\"comment/72\",[]],[\"name/73\",[50,52.644]],[\"comment/73\",[]],[\"name/74\",[51,52.644]],[\"comment/74\",[]],[\"name/75\",[6,21.003]],[\"comment/75\",[]],[\"name/76\",[7,37.981]],[\"comment/76\",[]],[\"name/77\",[52,52.644]],[\"comment/77\",[]],[\"name/78\",[6,21.003]],[\"comment/78\",[]],[\"name/79\",[53,52.644]],[\"comment/79\",[]],[\"name/80\",[6,21.003]],[\"comment/80\",[]],[\"name/81\",[54,52.644]],[\"comment/81\",[]],[\"name/82\",[55,52.644]],[\"comment/82\",[]],[\"name/83\",[6,21.003]],[\"comment/83\",[]],[\"name/84\",[56,44.171]],[\"comment/84\",[]],[\"name/85\",[57,52.644]],[\"comment/85\",[]],[\"name/86\",[58,52.644]],[\"comment/86\",[]],[\"name/87\",[59,52.644]],[\"comment/87\",[]],[\"name/88\",[60,52.644]],[\"comment/88\",[]],[\"name/89\",[47,47.536]],[\"comment/89\",[]],[\"name/90\",[61,52.644]],[\"comment/90\",[]],[\"name/91\",[6,21.003]],[\"comment/91\",[]],[\"name/92\",[20,44.171]],[\"comment/92\",[]],[\"name/93\",[62,52.644]],[\"comment/93\",[]],[\"name/94\",[63,52.644]],[\"comment/94\",[]],[\"name/95\",[64,52.644]],[\"comment/95\",[]],[\"name/96\",[6,21.003]],[\"comment/96\",[]],[\"name/97\",[65,52.644]],[\"comment/97\",[]],[\"name/98\",[66,52.644]],[\"comment/98\",[]],[\"name/99\",[67,52.644]],[\"comment/99\",[]],[\"name/100\",[68,47.536]],[\"comment/100\",[]],[\"name/101\",[69,52.644]],[\"comment/101\",[]],[\"name/102\",[6,21.003]],[\"comment/102\",[]],[\"name/103\",[70,52.644]],[\"comment/103\",[]],[\"name/104\",[6,21.003]],[\"comment/104\",[]],[\"name/105\",[71,52.644]],[\"comment/105\",[]],[\"name/106\",[6,21.003]],[\"comment/106\",[]],[\"name/107\",[72,52.644]],[\"comment/107\",[]],[\"name/108\",[6,21.003]],[\"comment/108\",[]],[\"name/109\",[56,44.171]],[\"comment/109\",[]],[\"name/110\",[6,21.003]],[\"comment/110\",[]],[\"name/111\",[73,47.536]],[\"comment/111\",[]],[\"name/112\",[74,47.536]],[\"comment/112\",[]],[\"name/113\",[75,47.536]],[\"comment/113\",[]],[\"name/114\",[76,47.536]],[\"comment/114\",[]],[\"name/115\",[77,47.536]],[\"comment/115\",[]],[\"name/116\",[78,47.536]],[\"comment/116\",[]],[\"name/117\",[79,47.536]],[\"comment/117\",[]],[\"name/118\",[80,47.536]],[\"comment/118\",[]],[\"name/119\",[81,47.536]],[\"comment/119\",[]],[\"name/120\",[82,47.536]],[\"comment/120\",[]],[\"name/121\",[83,47.536]],[\"comment/121\",[]],[\"name/122\",[84,47.536]],[\"comment/122\",[]],[\"name/123\",[85,47.536]],[\"comment/123\",[]],[\"name/124\",[86,47.536]],[\"comment/124\",[]],[\"name/125\",[87,47.536]],[\"comment/125\",[]],[\"name/126\",[88,47.536]],[\"comment/126\",[]],[\"name/127\",[89,47.536]],[\"comment/127\",[]],[\"name/128\",[90,47.536]],[\"comment/128\",[]],[\"name/129\",[91,47.536]],[\"comment/129\",[]],[\"name/130\",[92,47.536]],[\"comment/130\",[]],[\"name/131\",[93,47.536]],[\"comment/131\",[]],[\"name/132\",[94,47.536]],[\"comment/132\",[]],[\"name/133\",[95,47.536]],[\"comment/133\",[]],[\"name/134\",[96,47.536]],[\"comment/134\",[]],[\"name/135\",[97,47.536]],[\"comment/135\",[]],[\"name/136\",[98,47.536]],[\"comment/136\",[]],[\"name/137\",[99,47.536]],[\"comment/137\",[]],[\"name/138\",[100,47.536]],[\"comment/138\",[]],[\"name/139\",[101,47.536]],[\"comment/139\",[]],[\"name/140\",[102,47.536]],[\"comment/140\",[]],[\"name/141\",[103,47.536]],[\"comment/141\",[]],[\"name/142\",[104,47.536]],[\"comment/142\",[]],[\"name/143\",[105,47.536]],[\"comment/143\",[]],[\"name/144\",[106,47.536]],[\"comment/144\",[]],[\"name/145\",[107,47.536]],[\"comment/145\",[]],[\"name/146\",[108,47.536]],[\"comment/146\",[]],[\"name/147\",[109,47.536]],[\"comment/147\",[]],[\"name/148\",[110,47.536]],[\"comment/148\",[]],[\"name/149\",[111,47.536]],[\"comment/149\",[]],[\"name/150\",[112,47.536]],[\"comment/150\",[]],[\"name/151\",[113,47.536]],[\"comment/151\",[]],[\"name/152\",[114,47.536]],[\"comment/152\",[]],[\"name/153\",[115,47.536]],[\"comment/153\",[]],[\"name/154\",[116,47.536]],[\"comment/154\",[]],[\"name/155\",[117,47.536]],[\"comment/155\",[]],[\"name/156\",[118,47.536]],[\"comment/156\",[]],[\"name/157\",[119,47.536]],[\"comment/157\",[]],[\"name/158\",[120,47.536]],[\"comment/158\",[]],[\"name/159\",[121,47.536]],[\"comment/159\",[]],[\"name/160\",[122,47.536]],[\"comment/160\",[]],[\"name/161\",[123,47.536]],[\"comment/161\",[]],[\"name/162\",[124,47.536]],[\"comment/162\",[]],[\"name/163\",[125,47.536]],[\"comment/163\",[]],[\"name/164\",[126,47.536]],[\"comment/164\",[]],[\"name/165\",[127,47.536]],[\"comment/165\",[]],[\"name/166\",[128,52.644]],[\"comment/166\",[]],[\"name/167\",[129,52.644]],[\"comment/167\",[]],[\"name/168\",[6,21.003]],[\"comment/168\",[]],[\"name/169\",[7,37.981]],[\"comment/169\",[]],[\"name/170\",[130,52.644]],[\"comment/170\",[]],[\"name/171\",[6,21.003]],[\"comment/171\",[]],[\"name/172\",[131,52.644]],[\"comment/172\",[]],[\"name/173\",[132,52.644]],[\"comment/173\",[]],[\"name/174\",[133,52.644]],[\"comment/174\",[]],[\"name/175\",[134,52.644]],[\"comment/175\",[]],[\"name/176\",[135,52.644]],[\"comment/176\",[]],[\"name/177\",[136,52.644]],[\"comment/177\",[]],[\"name/178\",[137,52.644]],[\"comment/178\",[]],[\"name/179\",[138,52.644]],[\"comment/179\",[]],[\"name/180\",[139,52.644]],[\"comment/180\",[]],[\"name/181\",[140,52.644]],[\"comment/181\",[]],[\"name/182\",[141,52.644]],[\"comment/182\",[]],[\"name/183\",[142,52.644]],[\"comment/183\",[]],[\"name/184\",[143,52.644]],[\"comment/184\",[]],[\"name/185\",[144,52.644]],[\"comment/185\",[]],[\"name/186\",[145,52.644]],[\"comment/186\",[]],[\"name/187\",[6,21.003]],[\"comment/187\",[]],[\"name/188\",[146,52.644]],[\"comment/188\",[]],[\"name/189\",[6,21.003]],[\"comment/189\",[]],[\"name/190\",[147,52.644]],[\"comment/190\",[]],[\"name/191\",[148,52.644]],[\"comment/191\",[]],[\"name/192\",[149,52.644]],[\"comment/192\",[]],[\"name/193\",[150,52.644]],[\"comment/193\",[]],[\"name/194\",[6,21.003]],[\"comment/194\",[]],[\"name/195\",[7,37.981]],[\"comment/195\",[]],[\"name/196\",[151,52.644]],[\"comment/196\",[]],[\"name/197\",[152,52.644]],[\"comment/197\",[]],[\"name/198\",[153,52.644]],[\"comment/198\",[]],[\"name/199\",[154,52.644]],[\"comment/199\",[]],[\"name/200\",[155,52.644]],[\"comment/200\",[]],[\"name/201\",[68,47.536]],[\"comment/201\",[]],[\"name/202\",[156,52.644]],[\"comment/202\",[]],[\"name/203\",[157,52.644]],[\"comment/203\",[]],[\"name/204\",[158,52.644]],[\"comment/204\",[]],[\"name/205\",[18,47.536]],[\"comment/205\",[]],[\"name/206\",[159,52.644]],[\"comment/206\",[]],[\"name/207\",[160,52.644]],[\"comment/207\",[]],[\"name/208\",[161,52.644]],[\"comment/208\",[]],[\"name/209\",[162,52.644]],[\"comment/209\",[]],[\"name/210\",[163,52.644]],[\"comment/210\",[]],[\"name/211\",[164,52.644]],[\"comment/211\",[]],[\"name/212\",[165,52.644]],[\"comment/212\",[]],[\"name/213\",[166,52.644]],[\"comment/213\",[]],[\"name/214\",[6,21.003]],[\"comment/214\",[]],[\"name/215\",[167,52.644]],[\"comment/215\",[]],[\"name/216\",[6,21.003]],[\"comment/216\",[]],[\"name/217\",[168,52.644]],[\"comment/217\",[]],[\"name/218\",[6,21.003]],[\"comment/218\",[]],[\"name/219\",[169,52.644]],[\"comment/219\",[]],[\"name/220\",[6,21.003]],[\"comment/220\",[]],[\"name/221\",[56,44.171]],[\"comment/221\",[]],[\"name/222\",[170,52.644]],[\"comment/222\",[]],[\"name/223\",[6,21.003]],[\"comment/223\",[]],[\"name/224\",[73,47.536]],[\"comment/224\",[]],[\"name/225\",[74,47.536]],[\"comment/225\",[]],[\"name/226\",[75,47.536]],[\"comment/226\",[]],[\"name/227\",[76,47.536]],[\"comment/227\",[]],[\"name/228\",[77,47.536]],[\"comment/228\",[]],[\"name/229\",[78,47.536]],[\"comment/229\",[]],[\"name/230\",[79,47.536]],[\"comment/230\",[]],[\"name/231\",[80,47.536]],[\"comment/231\",[]],[\"name/232\",[81,47.536]],[\"comment/232\",[]],[\"name/233\",[82,47.536]],[\"comment/233\",[]],[\"name/234\",[83,47.536]],[\"comment/234\",[]],[\"name/235\",[84,47.536]],[\"comment/235\",[]],[\"name/236\",[85,47.536]],[\"comment/236\",[]],[\"name/237\",[86,47.536]],[\"comment/237\",[]],[\"name/238\",[87,47.536]],[\"comment/238\",[]],[\"name/239\",[88,47.536]],[\"comment/239\",[]],[\"name/240\",[89,47.536]],[\"comment/240\",[]],[\"name/241\",[90,47.536]],[\"comment/241\",[]],[\"name/242\",[91,47.536]],[\"comment/242\",[]],[\"name/243\",[92,47.536]],[\"comment/243\",[]],[\"name/244\",[93,47.536]],[\"comment/244\",[]],[\"name/245\",[94,47.536]],[\"comment/245\",[]],[\"name/246\",[95,47.536]],[\"comment/246\",[]],[\"name/247\",[96,47.536]],[\"comment/247\",[]],[\"name/248\",[97,47.536]],[\"comment/248\",[]],[\"name/249\",[98,47.536]],[\"comment/249\",[]],[\"name/250\",[99,47.536]],[\"comment/250\",[]],[\"name/251\",[100,47.536]],[\"comment/251\",[]],[\"name/252\",[101,47.536]],[\"comment/252\",[]],[\"name/253\",[102,47.536]],[\"comment/253\",[]],[\"name/254\",[103,47.536]],[\"comment/254\",[]],[\"name/255\",[104,47.536]],[\"comment/255\",[]],[\"name/256\",[105,47.536]],[\"comment/256\",[]],[\"name/257\",[106,47.536]],[\"comment/257\",[]],[\"name/258\",[107,47.536]],[\"comment/258\",[]],[\"name/259\",[108,47.536]],[\"comment/259\",[]],[\"name/260\",[109,47.536]],[\"comment/260\",[]],[\"name/261\",[110,47.536]],[\"comment/261\",[]],[\"name/262\",[111,47.536]],[\"comment/262\",[]],[\"name/263\",[112,47.536]],[\"comment/263\",[]],[\"name/264\",[113,47.536]],[\"comment/264\",[]],[\"name/265\",[114,47.536]],[\"comment/265\",[]],[\"name/266\",[115,47.536]],[\"comment/266\",[]],[\"name/267\",[116,47.536]],[\"comment/267\",[]],[\"name/268\",[117,47.536]],[\"comment/268\",[]],[\"name/269\",[118,47.536]],[\"comment/269\",[]],[\"name/270\",[119,47.536]],[\"comment/270\",[]],[\"name/271\",[120,47.536]],[\"comment/271\",[]],[\"name/272\",[121,47.536]],[\"comment/272\",[]],[\"name/273\",[122,47.536]],[\"comment/273\",[]],[\"name/274\",[123,47.536]],[\"comment/274\",[]],[\"name/275\",[124,47.536]],[\"comment/275\",[]],[\"name/276\",[125,47.536]],[\"comment/276\",[]],[\"name/277\",[126,47.536]],[\"comment/277\",[]],[\"name/278\",[127,47.536]],[\"comment/278\",[]],[\"name/279\",[171,52.644]],[\"comment/279\",[]],[\"name/280\",[172,52.644]],[\"comment/280\",[]],[\"name/281\",[173,47.536]],[\"comment/281\",[]],[\"name/282\",[174,52.644]],[\"comment/282\",[]],[\"name/283\",[6,21.003]],[\"comment/283\",[]],[\"name/284\",[175,52.644]],[\"comment/284\",[]],[\"name/285\",[2,47.536]],[\"comment/285\",[]],[\"name/286\",[7,37.981]],[\"comment/286\",[]],[\"name/287\",[176,52.644]],[\"comment/287\",[]],[\"name/288\",[173,47.536]],[\"comment/288\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":6,\"name\":{\"6\":{},\"12\":{},\"16\":{},\"20\":{},\"23\":{},\"36\":{},\"49\":{},\"53\":{},\"58\":{},\"62\":{},\"68\":{},\"70\":{},\"72\":{},\"75\":{},\"78\":{},\"80\":{},\"83\":{},\"91\":{},\"96\":{},\"102\":{},\"104\":{},\"106\":{},\"108\":{},\"110\":{},\"168\":{},\"171\":{},\"187\":{},\"189\":{},\"194\":{},\"214\":{},\"216\":{},\"218\":{},\"220\":{},\"223\":{},\"283\":{}},\"comment\":{}}],[\"accuracy\",{\"_index\":26,\"name\":{\"30\":{},\"42\":{}},\"comment\":{}}],[\"albanian\",{\"_index\":74,\"name\":{\"112\":{},\"225\":{}},\"comment\":{}}],[\"apikey\",{\"_index\":7,\"name\":{\"7\":{},\"63\":{},\"76\":{},\"169\":{},\"195\":{},\"286\":{}},\"comment\":{}}],[\"arabic\",{\"_index\":75,\"name\":{\"113\":{},\"226\":{}},\"comment\":{}}],[\"area\",{\"_index\":27,\"name\":{\"31\":{},\"44\":{}},\"comment\":{}}],[\"armenian\",{\"_index\":76,\"name\":{\"114\":{},\"227\":{}},\"comment\":{}}],[\"attribution\",{\"_index\":68,\"name\":{\"100\":{},\"201\":{}},\"comment\":{}}],[\"authority\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"auto\",{\"_index\":73,\"name\":{\"111\":{},\"224\":{}},\"comment\":{}}],[\"automatic\",{\"_index\":169,\"name\":{\"219\":{}},\"comment\":{}}],[\"automaticstaticmapoptions\",{\"_index\":164,\"name\":{\"211\":{}},\"comment\":{}}],[\"azerbaijani\",{\"_index\":77,\"name\":{\"115\":{},\"228\":{}},\"comment\":{}}],[\"bbox\",{\"_index\":28,\"name\":{\"32\":{},\"45\":{}},\"comment\":{}}],[\"belorussian\",{\"_index\":78,\"name\":{\"116\":{},\"229\":{}},\"comment\":{}}],[\"bosnian\",{\"_index\":79,\"name\":{\"117\":{},\"230\":{}},\"comment\":{}}],[\"bounded\",{\"_index\":168,\"name\":{\"217\":{}},\"comment\":{}}],[\"boundedstaticmapoptions\",{\"_index\":163,\"name\":{\"210\":{}},\"comment\":{}}],[\"breton\",{\"_index\":80,\"name\":{\"118\":{},\"231\":{}},\"comment\":{}}],[\"bulgarian\",{\"_index\":81,\"name\":{\"119\":{},\"232\":{}},\"comment\":{}}],[\"byid\",{\"_index\":72,\"name\":{\"107\":{}},\"comment\":{}}],[\"byidgeocodingoptions\",{\"_index\":60,\"name\":{\"88\":{}},\"comment\":{}}],[\"catalan\",{\"_index\":82,\"name\":{\"120\":{},\"233\":{}},\"comment\":{}}],[\"centered\",{\"_index\":167,\"name\":{\"215\":{}},\"comment\":{}}],[\"centeredstaticmapoptions\",{\"_index\":162,\"name\":{\"209\":{}},\"comment\":{}}],[\"chinese\",{\"_index\":83,\"name\":{\"121\":{},\"234\":{}},\"comment\":{}}],[\"city\",{\"_index\":138,\"name\":{\"179\":{}},\"comment\":{}}],[\"clientconfig\",{\"_index\":175,\"name\":{\"284\":{}},\"comment\":{}}],[\"code\",{\"_index\":13,\"name\":{\"14\":{}},\"comment\":{}}],[\"commonforwardandreversegeocodingoptions\",{\"_index\":57,\"name\":{\"85\":{}},\"comment\":{}}],[\"config\",{\"_index\":173,\"name\":{\"281\":{},\"288\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":2,\"name\":{\"2\":{},\"285\":{}},\"comment\":{}}],[\"continent\",{\"_index\":135,\"name\":{\"176\":{}},\"comment\":{}}],[\"continent_code\",{\"_index\":136,\"name\":{\"177\":{}},\"comment\":{}}],[\"coordinateexport\",{\"_index\":14,\"name\":{\"15\":{}},\"comment\":{}}],[\"coordinategrid\",{\"_index\":17,\"name\":{\"19\":{}},\"comment\":{}}],[\"coordinateid\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"coordinates\",{\"_index\":47,\"name\":{\"67\":{},\"89\":{}},\"comment\":{}}],[\"coordinatesearch\",{\"_index\":31,\"name\":{\"35\":{}},\"comment\":{}}],[\"coordinatesearchresult\",{\"_index\":34,\"name\":{\"48\":{}},\"comment\":{}}],[\"coordinatessearchoptions\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"coordinatestransformoptions\",{\"_index\":43,\"name\":{\"61\":{}},\"comment\":{}}],[\"coordinatetransformation\",{\"_index\":19,\"name\":{\"22\":{}},\"comment\":{}}],[\"coordinatetransformresult\",{\"_index\":41,\"name\":{\"57\":{}},\"comment\":{}}],[\"country\",{\"_index\":131,\"name\":{\"172\":{}},\"comment\":{}}],[\"country_bounds\",{\"_index\":133,\"name\":{\"174\":{}},\"comment\":{}}],[\"country_code\",{\"_index\":132,\"name\":{\"173\":{}},\"comment\":{}}],[\"country_languages\",{\"_index\":134,\"name\":{\"175\":{}},\"comment\":{}}],[\"croatian\",{\"_index\":84,\"name\":{\"122\":{},\"235\":{}},\"comment\":{}}],[\"czech\",{\"_index\":85,\"name\":{\"123\":{},\"236\":{}},\"comment\":{}}],[\"danish\",{\"_index\":86,\"name\":{\"124\":{},\"237\":{}},\"comment\":{}}],[\"data\",{\"_index\":52,\"name\":{\"77\":{}},\"comment\":{}}],[\"default\",{\"_index\":148,\"name\":{\"191\":{}},\"comment\":{}}],[\"default_transformation\",{\"_index\":33,\"name\":{\"46\":{}},\"comment\":{}}],[\"deprecated\",{\"_index\":24,\"name\":{\"28\":{},\"40\":{}},\"comment\":{}}],[\"dutch\",{\"_index\":87,\"name\":{\"125\":{},\"238\":{}},\"comment\":{}}],[\"english\",{\"_index\":88,\"name\":{\"126\":{},\"239\":{}},\"comment\":{}}],[\"esperanto\",{\"_index\":89,\"name\":{\"127\":{},\"240\":{}},\"comment\":{}}],[\"estonian\",{\"_index\":90,\"name\":{\"128\":{},\"241\":{}},\"comment\":{}}],[\"eu\",{\"_index\":137,\"name\":{\"178\":{}},\"comment\":{}}],[\"exports\",{\"_index\":10,\"name\":{\"10\":{},\"47\":{}},\"comment\":{}}],[\"featurehierarchy\",{\"_index\":61,\"name\":{\"90\":{}},\"comment\":{}}],[\"features\",{\"_index\":66,\"name\":{\"98\":{}},\"comment\":{}}],[\"fetch\",{\"_index\":176,\"name\":{\"287\":{}},\"comment\":{}}],[\"fetchfunction\",{\"_index\":174,\"name\":{\"282\":{}},\"comment\":{}}],[\"finnish\",{\"_index\":91,\"name\":{\"129\":{},\"242\":{}},\"comment\":{}}],[\"format\",{\"_index\":153,\"name\":{\"198\":{}},\"comment\":{}}],[\"forward\",{\"_index\":70,\"name\":{\"103\":{}},\"comment\":{}}],[\"french\",{\"_index\":92,\"name\":{\"130\":{},\"243\":{}},\"comment\":{}}],[\"frisian\",{\"_index\":93,\"name\":{\"131\":{},\"244\":{}},\"comment\":{}}],[\"geocoding\",{\"_index\":69,\"name\":{\"101\":{}},\"comment\":{}}],[\"geocodingfeature\",{\"_index\":63,\"name\":{\"94\":{}},\"comment\":{}}],[\"geocodingoptions\",{\"_index\":58,\"name\":{\"86\":{}},\"comment\":{}}],[\"geocodingsearchresult\",{\"_index\":64,\"name\":{\"95\":{}},\"comment\":{}}],[\"geolocation\",{\"_index\":145,\"name\":{\"186\":{}},\"comment\":{}}],[\"geolocationinfooptions\",{\"_index\":129,\"name\":{\"167\":{}},\"comment\":{}}],[\"geolocationresult\",{\"_index\":130,\"name\":{\"170\":{}},\"comment\":{}}],[\"georgian\",{\"_index\":94,\"name\":{\"132\":{},\"245\":{}},\"comment\":{}}],[\"german\",{\"_index\":95,\"name\":{\"133\":{},\"246\":{}},\"comment\":{}}],[\"get\",{\"_index\":53,\"name\":{\"79\":{}},\"comment\":{}}],[\"getautolanguagegeocoding\",{\"_index\":172,\"name\":{\"280\":{}},\"comment\":{}}],[\"getdataoptions\",{\"_index\":51,\"name\":{\"74\":{}},\"comment\":{}}],[\"greek\",{\"_index\":96,\"name\":{\"134\":{},\"247\":{}},\"comment\":{}}],[\"grids\",{\"_index\":25,\"name\":{\"29\":{}},\"comment\":{}}],[\"hebrew\",{\"_index\":97,\"name\":{\"135\":{},\"248\":{}},\"comment\":{}}],[\"height\",{\"_index\":155,\"name\":{\"200\":{}},\"comment\":{}}],[\"hidpi\",{\"_index\":152,\"name\":{\"197\":{}},\"comment\":{}}],[\"hungarian\",{\"_index\":98,\"name\":{\"136\":{},\"249\":{}},\"comment\":{}}],[\"icelandic\",{\"_index\":99,\"name\":{\"137\":{},\"250\":{}},\"comment\":{}}],[\"id\",{\"_index\":20,\"name\":{\"24\":{},\"37\":{},\"92\":{}},\"comment\":{}}],[\"info\",{\"_index\":146,\"name\":{\"188\":{}},\"comment\":{}}],[\"irish\",{\"_index\":100,\"name\":{\"138\":{},\"251\":{}},\"comment\":{}}],[\"italian\",{\"_index\":101,\"name\":{\"139\":{},\"252\":{}},\"comment\":{}}],[\"japanese\",{\"_index\":102,\"name\":{\"140\":{},\"253\":{}},\"comment\":{}}],[\"kannada\",{\"_index\":103,\"name\":{\"141\":{},\"254\":{}},\"comment\":{}}],[\"kazakh\",{\"_index\":104,\"name\":{\"142\":{},\"255\":{}},\"comment\":{}}],[\"kind\",{\"_index\":32,\"name\":{\"39\":{}},\"comment\":{}}],[\"korean\",{\"_index\":105,\"name\":{\"143\":{},\"256\":{}},\"comment\":{}}],[\"language\",{\"_index\":56,\"name\":{\"84\":{},\"109\":{},\"221\":{}},\"comment\":{}}],[\"languagegeocoding\",{\"_index\":170,\"name\":{\"222\":{}},\"comment\":{}}],[\"languagegeocodingoptions\",{\"_index\":55,\"name\":{\"82\":{}},\"comment\":{}}],[\"languagegeocodingstring\",{\"_index\":171,\"name\":{\"279\":{}},\"comment\":{}}],[\"latitude\",{\"_index\":139,\"name\":{\"180\":{}},\"comment\":{}}],[\"latvian\",{\"_index\":107,\"name\":{\"145\":{},\"258\":{}},\"comment\":{}}],[\"limit\",{\"_index\":8,\"name\":{\"8\":{}},\"comment\":{}}],[\"lithuanian\",{\"_index\":108,\"name\":{\"146\":{},\"259\":{}},\"comment\":{}}],[\"longitude\",{\"_index\":140,\"name\":{\"181\":{}},\"comment\":{}}],[\"luxembourgish\",{\"_index\":109,\"name\":{\"147\":{},\"260\":{}},\"comment\":{}}],[\"macedonian\",{\"_index\":110,\"name\":{\"148\":{},\"261\":{}},\"comment\":{}}],[\"maltese\",{\"_index\":111,\"name\":{\"149\":{},\"262\":{}},\"comment\":{}}],[\"markeranchor\",{\"_index\":158,\"name\":{\"204\":{}},\"comment\":{}}],[\"markericon\",{\"_index\":157,\"name\":{\"203\":{}},\"comment\":{}}],[\"markers\",{\"_index\":156,\"name\":{\"202\":{}},\"comment\":{}}],[\"name\",{\"_index\":21,\"name\":{\"25\":{},\"38\":{}},\"comment\":{}}],[\"norwegian\",{\"_index\":112,\"name\":{\"150\":{},\"263\":{}},\"comment\":{}}],[\"operations\",{\"_index\":46,\"name\":{\"66\":{}},\"comment\":{}}],[\"path\",{\"_index\":18,\"name\":{\"21\":{},\"205\":{}},\"comment\":{}}],[\"pathfillcolor\",{\"_index\":160,\"name\":{\"207\":{}},\"comment\":{}}],[\"pathstrokecolor\",{\"_index\":159,\"name\":{\"206\":{}},\"comment\":{}}],[\"pathwidth\",{\"_index\":161,\"name\":{\"208\":{}},\"comment\":{}}],[\"polish\",{\"_index\":113,\"name\":{\"151\":{},\"264\":{}},\"comment\":{}}],[\"portuguese\",{\"_index\":114,\"name\":{\"152\":{},\"265\":{}},\"comment\":{}}],[\"postal\",{\"_index\":141,\"name\":{\"182\":{}},\"comment\":{}}],[\"proj4\",{\"_index\":15,\"name\":{\"17\":{}},\"comment\":{}}],[\"query\",{\"_index\":67,\"name\":{\"99\":{}},\"comment\":{}}],[\"region\",{\"_index\":142,\"name\":{\"183\":{}},\"comment\":{}}],[\"region_code\",{\"_index\":143,\"name\":{\"184\":{}},\"comment\":{}}],[\"res\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"results\",{\"_index\":35,\"name\":{\"50\":{},\"59\":{}},\"comment\":{}}],[\"reverse\",{\"_index\":71,\"name\":{\"105\":{}},\"comment\":{}}],[\"reversegeocodingoptions\",{\"_index\":59,\"name\":{\"87\":{}},\"comment\":{}}],[\"reversible\",{\"_index\":22,\"name\":{\"26\":{}},\"comment\":{}}],[\"roman_latin\",{\"_index\":106,\"name\":{\"144\":{},\"257\":{}},\"comment\":{}}],[\"romanian\",{\"_index\":115,\"name\":{\"153\":{},\"266\":{}},\"comment\":{}}],[\"romansh\",{\"_index\":116,\"name\":{\"154\":{},\"267\":{}},\"comment\":{}}],[\"russian\",{\"_index\":117,\"name\":{\"155\":{},\"268\":{}},\"comment\":{}}],[\"scottish_gaelic\",{\"_index\":118,\"name\":{\"156\":{},\"269\":{}},\"comment\":{}}],[\"search\",{\"_index\":48,\"name\":{\"69\":{}},\"comment\":{}}],[\"serbian_cyrillic\",{\"_index\":119,\"name\":{\"157\":{},\"270\":{}},\"comment\":{}}],[\"serviceerror\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"services/coordinates\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"services/data\",{\"_index\":50,\"name\":{\"73\":{}},\"comment\":{}}],[\"services/geocoding\",{\"_index\":54,\"name\":{\"81\":{}},\"comment\":{}}],[\"services/geolocation\",{\"_index\":128,\"name\":{\"166\":{}},\"comment\":{}}],[\"services/serviceerror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"services/simplify\",{\"_index\":147,\"name\":{\"190\":{}},\"comment\":{}}],[\"services/staticmaps\",{\"_index\":149,\"name\":{\"192\":{}},\"comment\":{}}],[\"slovak\",{\"_index\":120,\"name\":{\"158\":{},\"271\":{}},\"comment\":{}}],[\"slovene\",{\"_index\":121,\"name\":{\"159\":{},\"272\":{}},\"comment\":{}}],[\"sourcecrs\",{\"_index\":44,\"name\":{\"64\":{}},\"comment\":{}}],[\"spanish\",{\"_index\":122,\"name\":{\"160\":{},\"273\":{}},\"comment\":{}}],[\"staticmapbaseoptions\",{\"_index\":150,\"name\":{\"193\":{}},\"comment\":{}}],[\"staticmapmarker\",{\"_index\":165,\"name\":{\"212\":{}},\"comment\":{}}],[\"staticmaps\",{\"_index\":166,\"name\":{\"213\":{}},\"comment\":{}}],[\"style\",{\"_index\":151,\"name\":{\"196\":{}},\"comment\":{}}],[\"swedish\",{\"_index\":123,\"name\":{\"161\":{},\"274\":{}},\"comment\":{}}],[\"target_crs\",{\"_index\":29,\"name\":{\"33\":{}},\"comment\":{}}],[\"targetcrs\",{\"_index\":45,\"name\":{\"65\":{}},\"comment\":{}}],[\"text\",{\"_index\":62,\"name\":{\"93\":{}},\"comment\":{}}],[\"thai\",{\"_index\":124,\"name\":{\"162\":{},\"275\":{}},\"comment\":{}}],[\"timezone\",{\"_index\":144,\"name\":{\"185\":{}},\"comment\":{}}],[\"total\",{\"_index\":36,\"name\":{\"51\":{}},\"comment\":{}}],[\"transform\",{\"_index\":49,\"name\":{\"71\":{}},\"comment\":{}}],[\"transformations\",{\"_index\":9,\"name\":{\"9\":{},\"41\":{}},\"comment\":{}}],[\"transformer_selection_strategy\",{\"_index\":42,\"name\":{\"60\":{}},\"comment\":{}}],[\"turkish\",{\"_index\":125,\"name\":{\"163\":{},\"276\":{}},\"comment\":{}}],[\"type\",{\"_index\":65,\"name\":{\"97\":{}},\"comment\":{}}],[\"ukrainian\",{\"_index\":126,\"name\":{\"164\":{},\"277\":{}},\"comment\":{}}],[\"unit\",{\"_index\":30,\"name\":{\"34\":{},\"43\":{}},\"comment\":{}}],[\"usable\",{\"_index\":23,\"name\":{\"27\":{}},\"comment\":{}}],[\"welsh\",{\"_index\":127,\"name\":{\"165\":{},\"278\":{}},\"comment\":{}}],[\"width\",{\"_index\":154,\"name\":{\"199\":{}},\"comment\":{}}],[\"wkt\",{\"_index\":16,\"name\":{\"18\":{}},\"comment\":{}}],[\"x\",{\"_index\":38,\"name\":{\"54\":{}},\"comment\":{}}],[\"xyz\",{\"_index\":37,\"name\":{\"52\":{}},\"comment\":{}}],[\"y\",{\"_index\":39,\"name\":{\"55\":{}},\"comment\":{}}],[\"z\",{\"_index\":40,\"name\":{\"56\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/classes/config.ClientConfig.html b/docs/classes/config.ClientConfig.html index cb9ec50..6a8713c 100644 --- a/docs/classes/config.ClientConfig.html +++ b/docs/classes/config.ClientConfig.html @@ -1,4 +1,4 @@ -ClientConfig | MapTiler Client - v1.1.3
+ClientConfig | MapTiler Client - v1.2.0
  • Preparing search index...
  • -
  • The search index is not available
MapTiler Client - v1.1.3
+
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -24,7 +24,7 @@

    Hierarchy

    • ClientConfig
    +
  • Defined in config.ts:19
  • @@ -58,7 +58,7 @@

    Returns void

    +
  • Defined in config.ts:34
  • set fetch(f: FetchFunction): void
  • Set a the custom fetch function to replace the default one

    @@ -92,7 +92,7 @@

    Parameters

    f: FetchFunction
  • Returns void

    +
  • Defined in config.ts:48
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -26,7 +26,7 @@

    Hierarchy

    • ServiceError
    +
  • Defined in services/ServiceError.ts:4
  • @@ -57,14 +57,14 @@
    customMessage: stringReturns ServiceError
    +
  • Defined in services/ServiceError.ts:5
  • Properties

    res: Response
    +
  • Defined in services/ServiceError.ts:5
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -22,7 +22,7 @@

    Function getAutoLanguageGeocoding

  • Returns LanguageGeocodingString

  • +
  • Defined in language.ts:71
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -29,7 +29,7 @@
    points: Positionnumber

    Returns Position[]

    +
  • Defined in services/simplify.ts:76
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    -

    MapTiler Client - v1.1.3

    +

    MapTiler Client - v1.2.0

    offcial page →
    @@ -318,7 +318,7 @@

    Theme

    @@ -6,12 +6,12 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    -

    MapTiler Client - v1.1.3

    +

    MapTiler Client - v1.2.0

    Index

    @@ -43,7 +43,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in config.ts:1
  • @@ -50,7 +50,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in language.ts:4
  • @@ -50,7 +50,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/ServiceError.ts:4
  • @@ -42,7 +42,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/coordinates.ts:1
  • @@ -55,7 +55,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/data.ts:1
  • @@ -46,7 +46,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/geocoding.ts:1
  • @@ -24,11 +24,14 @@

    Module services/geocoding

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/geolocation.ts:1
  • @@ -47,7 +47,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/simplify.ts:5
  • @@ -42,7 +42,7 @@

    Theme

    @@ -6,17 +6,17 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    +
  • Defined in services/staticMaps.ts:1
  • @@ -50,7 +50,7 @@

    Theme

    @@ -6,13 +6,13 @@
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -33,7 +33,7 @@
    url: string
    options: object

    Returns Promise<any>

    +
  • Defined in config.ts:1
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Type alias LanguageGeocodingString

    Built-in languages values as strings

    +
  • Defined in language.ts:69
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -25,7 +25,7 @@
    proj4:
    wkt: string
    +
  • Defined in services/coordinates.ts:38
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -23,7 +23,7 @@

    Type declaration

  • path: string
  • +
  • Defined in services/coordinates.ts:43
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -25,7 +25,7 @@
    authority:
    code: BigInteger
    +
  • Defined in services/coordinates.ts:33
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -47,7 +47,7 @@
    Optional transformations
    Optional unit?: string
    +
  • Defined in services/coordinates.ts:61
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -29,7 +29,7 @@
    total:

    The number of results

    +
  • Defined in services/coordinates.ts:91
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -30,7 +30,7 @@
    transformer_selection_strategy
    +
  • Defined in services/coordinates.ts:159
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -43,7 +43,7 @@
    Optional unit
    usable: boolean
    +
  • Defined in services/coordinates.ts:47
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -22,7 +22,7 @@

    Type declaration

    • Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      +

      Custom MapTiler Cloud API key to use instead of the one in global config

    • Optional exports?: boolean
      @@ -37,7 +37,7 @@
      Optional transformations

      Show detailed transformations for each CRS (default: false)

    +
  • Defined in services/coordinates.ts:11
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -24,7 +24,7 @@

    Type declaration

    • Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      +

      Custom MapTiler Cloud API key to use instead of the one in global config

    • Optional operations?: number | number[]
      @@ -39,7 +39,7 @@
      Optional targetCrs

      Target coordinate reference system (default: 4326)

    +
  • Defined in services/coordinates.ts:174
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -27,7 +27,7 @@
    Optional y
    Optional z?: number
    +
  • Defined in services/coordinates.ts:153
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -24,10 +24,10 @@

    Type declaration

    • Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      +

      Custom MapTiler Cloud API key to use instead of the one in global config

    +
  • Defined in services/data.ts:14
  • +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html b/docs/types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html new file mode 100644 index 0000000..2f2ffaf --- /dev/null +++ b/docs/types/services_geocoding.CommonForwardAndReverseGeocodingOptions.html @@ -0,0 +1,63 @@ +CommonForwardAndReverseGeocodingOptions | MapTiler Client - v1.2.0
    +
    + +
    +
    +
    +
    + +

    Type alias CommonForwardAndReverseGeocodingOptions

    +
    CommonForwardAndReverseGeocodingOptions: LanguageGeocodingOptions & {
        apiKey?: string;
        limit?: number;
        types?: ("country" | "region" | "subregion" | "county" | "joint_municipality" | "joint_submunicipality" | "municipality" | "municipal_district" | "locality" | "neighbourhood" | "place" | "postal_code" | "address")[];
    }
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/services_geocoding.Coordinates.html b/docs/types/services_geocoding.Coordinates.html index fafb2c4..c7dd589 100644 --- a/docs/types/services_geocoding.Coordinates.html +++ b/docs/types/services_geocoding.Coordinates.html @@ -1,4 +1,4 @@ -Coordinates | MapTiler Client - v1.1.3
    +Coordinates | MapTiler Client - v1.2.0
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3
    +
  • The search index is not available
  • MapTiler Client - v1.2.0
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -29,7 +29,7 @@
    text:

    Localized feature name

    +
  • Defined in services/geocoding.ts:91
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    GeocodingFeature: Feature & {
        address?: string;
        bbox: BBox;
        center: Coordinates;
        context?: FeatureHierarchy[];
        place_name: string;
        text: string;
    }
    +
  • Defined in services/geocoding.ts:103
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    -
    GeocodingOptions: {
        apiKey?: string;
        bbox?: BBox;
        language?: LanguageGeocodingString | LanguageGeocodingString[];
        proximity?: Position;
    }
    -
    -

    Type declaration

    -
      -
    • -
      Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      -
    • -
    • -
      Optional bbox?: BBox
      -

      Only search for results in the specified area.

      -
    • -
    • -
      Optional language?: LanguageGeocodingString | LanguageGeocodingString[]
      -

      Prefer results in specific language. It’s possible to specify multiple values.

      -
    • -
    • -
      Optional proximity?: Position
      -

      Prefer results close to a specific location.

      -
    +
  • Defined in services/geocoding.ts:57
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -35,7 +35,7 @@
    query:
    type: "FeatureCollection"
    +
  • Defined in services/geocoding.ts:135
  • +
    +
    +
    +
    + +

    Type alias LanguageGeocodingOptions

    +
    LanguageGeocodingOptions: {
        language?: LanguageGeocodingString | LanguageGeocodingString[];
    }
    +
    +

    Type declaration

    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/types/services_geocoding.ReverseGeocodingOptions.html b/docs/types/services_geocoding.ReverseGeocodingOptions.html index 1e17d16..8e7f1f6 100644 --- a/docs/types/services_geocoding.ReverseGeocodingOptions.html +++ b/docs/types/services_geocoding.ReverseGeocodingOptions.html @@ -1,4 +1,4 @@ -ReverseGeocodingOptions | MapTiler Client - v1.1.3
    +ReverseGeocodingOptions | MapTiler Client - v1.2.0
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3
    +
  • The search index is not available
  • MapTiler Client - v1.2.0
    -
    ReverseGeocodingOptions: {
        apiKey?: string;
        language?: LanguageGeocodingString | LanguageGeocodingString[];
    }
    -
    -

    Type declaration

    -
      -
    • -
      Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      -
    • -
    • -
      Optional language?: LanguageGeocodingString | LanguageGeocodingString[]
      -

      Prefer results in specific language. It’s possible to specify multiple values.

      -
    +
  • Defined in services/geocoding.ts:85
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -24,10 +24,10 @@

    Type declaration

    • Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      +

      Custom MapTiler Cloud API key to use instead of the one in global config

    +
  • Defined in services/geolocation.ts:14
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -90,7 +90,7 @@
    Optional timezone
    +
  • Defined in services/geolocation.ts:21
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Type alias AutomaticStaticMapOptions

    Options that can be provided to automatic static maps

    +
  • Defined in services/staticMaps.ts:141
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Type alias BoundedStaticMapOptions

    Options that can be provided to bounded static maps

    +
  • Defined in services/staticMaps.ts:130
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Type alias CenteredStaticMapOptions

    Options that can be provided to centered static maps

    +
  • Defined in services/staticMaps.ts:125
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -24,7 +24,7 @@

    Type declaration

    • Optional apiKey?: string
      -

      Custom mapTiler Cloud API key to use instead of the one in global config

      +

      Custom MapTiler Cloud API key to use instead of the one in global config

    • Optional attribution?: "bottomright" | "bottomleft" | "topleft" | "topright" | false
      @@ -116,7 +116,7 @@
      Optional width
    +
  • Defined in services/staticMaps.ts:10
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Type alias StaticMapMarker

    Definition of a maker to show on a static map

    +
  • Defined in services/staticMaps.ts:146
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -20,7 +20,7 @@

    Variable configConst

    Configuration object

    +
  • Defined in config.ts:63
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -133,7 +133,7 @@
    UKRAINIAN:
    WELSH: string
    +
  • Defined in language.ts:4
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -64,7 +64,7 @@
    positions: PositionCoordinatesTransformOptions = {}

    Returns Promise<CoordinateTransformResult>

    +
  • Defined in services/coordinates.ts:253
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -43,7 +43,7 @@
    dataId: string
    options: GetDataOptions = {}

    Returns Promise<FeatureCollection>

    +
  • Defined in services/data.ts:59
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    -
    geocoding: {
        forward: ((query: string, options?: GeocodingOptions) => Promise<GeocodingSearchResult>);
        language: {
            ALBANIAN: string;
            ARABIC: string;
            ARMENIAN: string;
            AUTO: string;
            AZERBAIJANI: string;
            BELORUSSIAN: string;
            BOSNIAN: string;
            BRETON: string;
            BULGARIAN: string;
            CATALAN: string;
            CHINESE: string;
            CROATIAN: string;
            CZECH: string;
            DANISH: string;
            DUTCH: string;
            ENGLISH: string;
            ESPERANTO: string;
            ESTONIAN: string;
            FINNISH: string;
            FRENCH: string;
            FRISIAN: string;
            GEORGIAN: string;
            GERMAN: string;
            GREEK: string;
            HEBREW: string;
            HUNGARIAN: string;
            ICELANDIC: string;
            IRISH: string;
            ITALIAN: string;
            JAPANESE: string;
            KANNADA: string;
            KAZAKH: string;
            KOREAN: string;
            LATVIAN: string;
            LITHUANIAN: string;
            LUXEMBOURGISH: string;
            MACEDONIAN: string;
            MALTESE: string;
            NORWEGIAN: string;
            POLISH: string;
            PORTUGUESE: string;
            ROMANIAN: string;
            ROMANSH: string;
            ROMAN_LATIN: string;
            RUSSIAN: string;
            SCOTTISH_GAELIC: string;
            SERBIAN_CYRILLIC: string;
            SLOVAK: string;
            SLOVENE: string;
            SPANISH: string;
            SWEDISH: string;
            THAI: string;
            TURKISH: string;
            UKRAINIAN: string;
            WELSH: string;
        };
        reverse: ((position: Position, options?: ReverseGeocodingOptions) => Promise<GeocodingSearchResult>);
    } = ...
    +
    geocoding: {
        byId: ((id: string, options?: LanguageGeocodingOptions) => Promise<GeocodingSearchResult>);
        forward: ((query: string, options?: GeocodingOptions) => Promise<GeocodingSearchResult>);
        language: {
            ALBANIAN: string;
            ARABIC: string;
            ARMENIAN: string;
            AUTO: string;
            AZERBAIJANI: string;
            BELORUSSIAN: string;
            BOSNIAN: string;
            BRETON: string;
            BULGARIAN: string;
            CATALAN: string;
            CHINESE: string;
            CROATIAN: string;
            CZECH: string;
            DANISH: string;
            DUTCH: string;
            ENGLISH: string;
            ESPERANTO: string;
            ESTONIAN: string;
            FINNISH: string;
            FRENCH: string;
            FRISIAN: string;
            GEORGIAN: string;
            GERMAN: string;
            GREEK: string;
            HEBREW: string;
            HUNGARIAN: string;
            ICELANDIC: string;
            IRISH: string;
            ITALIAN: string;
            JAPANESE: string;
            KANNADA: string;
            KAZAKH: string;
            KOREAN: string;
            LATVIAN: string;
            LITHUANIAN: string;
            LUXEMBOURGISH: string;
            MACEDONIAN: string;
            MALTESE: string;
            NORWEGIAN: string;
            POLISH: string;
            PORTUGUESE: string;
            ROMANIAN: string;
            ROMANSH: string;
            ROMAN_LATIN: string;
            RUSSIAN: string;
            SCOTTISH_GAELIC: string;
            SERBIAN_CYRILLIC: string;
            SLOVAK: string;
            SLOVENE: string;
            SPANISH: string;
            SWEDISH: string;
            THAI: string;
            TURKISH: string;
            UKRAINIAN: string;
            WELSH: string;
        };
        reverse: ((position: Position, options?: CommonForwardAndReverseGeocodingOptions) => Promise<GeocodingSearchResult>);
    } = ...

    The geocoding namespace contains asynchronous functions to call the MapTiler Geocoding API. The Geocoding API provides ways to get geographic coordinates from a human-readable search query of a place (forward geocoding) and to get the location details (country, city, street, etc.) from a geographic coordinate (reverse geocoding);

    @@ -25,11 +25,32 @@

    Variable geocodingConst

    Type declaration
    +
    options: CommonForwardAndReverseGeocodingOptions = {}

    Returns Promise<GeocodingSearchResult>

    +
  • Defined in services/geocoding.ts:323
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -41,7 +41,7 @@

    Parameters

    options: GeolocationInfoOptions = {}

    Returns Promise<GeolocationResult>

    +
  • Defined in services/geolocation.ts:135
    • Preparing search index...
    • -
    • The search index is not available
    MapTiler Client - v1.1.3 +
  • The search index is not available
  • MapTiler Client - v1.2.0
    @@ -87,7 +87,7 @@
    zoom: number
    options: StaticMapBaseOptions = {}

    Returns string

    +
  • Defined in services/staticMaps.ts:457