Files
sim-location-frontend/dist/spa/assets/vendor-openrouteservice-DNyyTee3.js
T
2026-06-10 11:16:43 -04:00

1 line
9.7 KiB
JavaScript

var e={defaultAPIVersion:`v2`,defaultHost:`https://api.openrouteservice.org`,missingAPIKeyMsg:`Please add your openrouteservice api_key..`,baseUrlConstituents:[`host`,`service`,`api_version`,`mime_type`],propNames:{apiKey:`api_key`,host:`host`,service:`service`,apiVersion:`api_version`,mimeType:`mime_type`,profile:`profile`,format:`format`,timeout:`timeout`}},t=class{fillArgs(e,t){return t={...e,...t},t}saveArgsToCache(t){return{host:t[e.propNames.host],api_version:t[e.propNames.apiVersion],profile:t[e.propNames.profile],format:t[e.propNames.format],service:t[e.propNames.service],api_key:t[e.propNames.apiKey],mime_type:t[e.propNames.mimeType]}}prepareRequest(t){return delete t[e.propNames.mimeType],delete t[e.propNames.host],delete t[e.propNames.apiVersion],delete t[e.propNames.service],delete t[e.propNames.apiKey],delete t[e.propNames.profile],delete t[e.propNames.format],delete t[e.propNames.timeout],{...t}}prepareUrl(t){let n=t[e.propNames.host],r=[t[e.propNames.apiVersion],t[e.propNames.service],t[e.propNames.profile],t[e.propNames.format]];return r=r.join(`/`),r=r.replace(/\/(\/)+/g,`/`),r[0]===`/`&&(r=r.slice(1)),r.slice(-1)[0]===`/`&&(r=r.slice(0,-1)),n=n+`/`+r,n}},n=new t,r=class{constructor(e){this.defaultArgs={},this.requestArgs={},this.argsCache=null,this.customHeaders={},this._setRequestDefaults(e)}_setRequestDefaults(t){if(this.defaultArgs[e.propNames.host]=e.defaultHost,t[e.propNames.host]&&(this.defaultArgs[e.propNames.host]=t[e.propNames.host]),t[e.propNames.service]&&(this.defaultArgs[e.propNames.service]=t[e.propNames.service]),t[e.propNames.timeout]&&(this.defaultArgs[e.propNames.timeout]=t[e.propNames.timeout]),e.propNames.apiKey in t)this.defaultArgs[e.propNames.apiKey]=t[e.propNames.apiKey];else if(!t[e.propNames.host])throw console.error(e.missingAPIKeyMsg),Error(e.missingAPIKeyMsg)}checkHeaders(){this.requestArgs.customHeaders&&(this.customHeaders=this.requestArgs.customHeaders,delete this.requestArgs.customHeaders),`Content-type`in this.customHeaders||(this.customHeaders={...this.customHeaders,"Content-type":`application/json`})}async fetchRequest(t,r){let i=n.prepareUrl(this.argsCache);this.argsCache[e.propNames.service]===`pois`&&(i+=i.indexOf(`?`)>-1?`&`:`?`);let a={Authorization:this.argsCache[e.propNames.apiKey]};return await fetch(i,{method:`POST`,body:JSON.stringify(t),headers:{...a,...this.customHeaders},signal:r.signal})}async createRequest(t){let n=new AbortController,r=setTimeout(()=>n.abort(),this.defaultArgs[e.propNames.timeout]||5e3);try{let e=await this.fetchRequest(t,n);if(!e.ok){let t=Error(e.statusText);throw t.status=e.status,t.response=e,t}return this.argsCache?.format===`gpx`?await e.text():await e.json()}finally{clearTimeout(r)}}getBody(){return this.httpArgs}async calculate(e){this.requestArgs=e,this.checkHeaders(),this.requestArgs=n.fillArgs(this.defaultArgs,this.requestArgs),this.argsCache=n.saveArgsToCache(this.requestArgs),this.httpArgs=n.prepareRequest(this.requestArgs);let t=this.getBody(this.httpArgs);return await this.createRequest(t)}},i=new t,a=class extends r{constructor(e){super(e),this.lookupParameter={api_key:function(e,t){return e+`=`+t},text:function(e,t){return`&`+e+`=`+encodeURIComponent(t)},focus_point:function(e,t){let n=``;return n+=`&focus.point.lon=`+t[1],n+=`&focus.point.lat=`+t[0],n},boundary_bbox:function(e,t){let n=``;return n+=`&boundary.rect.min_lon=`+t[0][1],n+=`&boundary.rect.min_lat=`+t[0][0],n+=`&boundary.rect.max_lon=`+t[1][1],n+=`&boundary.rect.max_lat=`+t[1][0],n},point:function(e,t){if(t&&Array.isArray(t.lat_lng)){let e=``;return e+=`&point.lon=`+t.lat_lng[1],e+=`&point.lat=`+t.lat_lng[0],e}},boundary_circle:function(e,t){let n=``;return n+=`&boundary.circle.lon=`+t.lat_lng[1],n+=`&boundary.circle.lat=`+t.lat_lng[0],n+=`&boundary.circle.radius=`+t.radius,n},sources:function(e,t){let n=`&sources=`;if(t){for(let e in t)Number(e)>0&&(n+=`,`),n+=t[e];return n}},layers:function(e,t){let n=`&layers=`,r=0;for(e in t)r>0&&(n+=`,`),n+=t[e],r++;return n},boundary_country:function(e,t){return`&boundary.country=`+t},size:function(e,t){return`&`+e+`=`+t},address:function(e,t){return`&`+e+`=`+t},neighbourhood:function(e,t){return`&`+e+`=`+t},borough:function(e,t){return`&`+e+`=`+t},locality:function(e,t){return`&`+e+`=`+t},county:function(e,t){return`&`+e+`=`+t},region:function(e,t){return`&`+e+`=`+t},postalcode:function(e,t){return`&`+e+`=`+t},country:function(e,t){return`&`+e+`=`+t}}}getParametersAsQueryString(t){let n=``;for(let r in t){let i=t[r];e.baseUrlConstituents.indexOf(r)<=-1&&(n+=this.lookupParameter[r](r,i))}return n}async fetchGetRequest(e){let t=i.prepareUrl(this.requestArgs);return t+=`?`+this.getParametersAsQueryString(this.requestArgs),await fetch(t,{method:`GET`,headers:this.customHeaders,signal:e.signal})}async geocodePromise(){let t=new AbortController,n=setTimeout(()=>t.abort(),this.defaultArgs[e.propNames.timeout]||5e3);try{let e=await this.fetchGetRequest(t);if(!e.ok){let t=Error(e.statusText);throw t.status=e.status,t.response=e,t}return await e.json()||e.text()}finally{clearTimeout(n)}}async geocode(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.requestArgs.service=`geocode/search`),this.requestArgs=i.fillArgs(this.defaultArgs,this.requestArgs),await this.geocodePromise()}async reverseGeocode(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.requestArgs.service=`geocode/reverse`),this.requestArgs=i.fillArgs(this.defaultArgs,this.requestArgs),await this.geocodePromise()}async structuredGeocode(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.requestArgs.service=`geocode/search/structured`),this.requestArgs=i.fillArgs(this.defaultArgs,this.requestArgs),await this.geocodePromise()}},o=class extends r{constructor(t){super(t),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.defaultArgs.service=`isochrones`),t[e.propNames.apiVersion]||(this.defaultArgs.api_version=e.defaultAPIVersion)}getBody(e){let t={};return e.restrictions&&(t.profile_params={restrictions:{...e.restrictions}},delete e.restrictions),e.avoidables&&(t.avoid_features=[...e.avoidables],delete e.avoidables),e.avoid_polygons&&(t.avoid_polygons={...e.avoid_polygons},delete e.avoid_polygons),Object.keys(t).length>0?{...e,options:t}:{...e}}},s=class extends r{constructor(t){super(t),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.defaultArgs[e.propNames.service]=`matrix`),t[e.propNames.apiVersion]||(this.defaultArgs.api_version=e.defaultAPIVersion)}},c=class extends r{constructor(t){super(t),this.defaultArgs[e.propNames.service]||(this.defaultArgs[e.propNames.service]=`directions`),t[e.propNames.apiVersion]||(this.defaultArgs.api_version=e.defaultAPIVersion)}getBody(e){return e.options&&typeof e.options!=`object`&&(e.options=JSON.parse(e.options)),e.restrictions&&(e.options=e.options||{},e.options.profile_params={restrictions:{...e.restrictions}},delete e.restrictions),e.avoidables&&(e.options=e.options||{},e.options.avoid_features=[...e.avoidables],delete e.avoidables),e}},l=new t,u=class extends r{constructor(t){super(t),this.defaultArgs[e.propNames.service]||(this.defaultArgs[e.propNames.service]=`pois`)}generatePayload(t){let n={};for(let r in t)e.baseUrlConstituents.indexOf(r)>-1||r===e.propNames.apiKey||r===e.propNames.timeout||(n[r]=t[r]);return n}async poisPromise(){this.requestArgs.request=this.requestArgs.request||`pois`,this.argsCache=l.saveArgsToCache(this.requestArgs),this.requestArgs[e.propNames.service]&&delete this.requestArgs[e.propNames.service];let t=this.generatePayload(this.requestArgs);return await this.createRequest(t)}async pois(e){return this.requestArgs=e,this.checkHeaders(),this.requestArgs=l.fillArgs(this.defaultArgs,this.requestArgs),await this.poisPromise()}},d=new t,f=class extends r{generatePayload(t){let n={};for(let r in t)e.baseUrlConstituents.indexOf(r)<=-1&&(n[r]=t[r]);return n}async elevationPromise(){this.argsCache=d.saveArgsToCache(this.requestArgs);let e=this.generatePayload(this.requestArgs);return await this.createRequest(e)}async lineElevation(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.requestArgs[e.propNames.service]=`elevation/line`),this.requestArgs=d.fillArgs(this.defaultArgs,this.requestArgs),await this.elevationPromise()}async pointElevation(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.requestArgs[e.propNames.service]=`elevation/point`),this.requestArgs=d.fillArgs(this.defaultArgs,this.requestArgs),await this.elevationPromise()}},p=new t,m={Geocode:a,Isochrones:o,Directions:c,Matrix:s,Pois:u,Elevation:f,Optimization:class extends r{generatePayload(t){let n={};for(let r in t)e.baseUrlConstituents.indexOf(r)<=-1&&(n[r]=t[r]);return n}async optimizationPromise(){this.argsCache=p.saveArgsToCache(this.requestArgs);let e=this.generatePayload(this.requestArgs);return await this.createRequest(e)}async optimize(t){return this.requestArgs=t,this.checkHeaders(),!this.defaultArgs[e.propNames.service]&&!t[e.propNames.service]&&(t[e.propNames.service]=`optimization`),this.requestArgs=p.fillArgs(this.defaultArgs,this.requestArgs),await this.optimizationPromise()}},Snap:class extends r{constructor(t){super(t),!this.defaultArgs[e.propNames.service]&&!this.requestArgs[e.propNames.service]&&(this.defaultArgs[e.propNames.service]=`snap`),t[e.propNames.apiVersion]||(this.defaultArgs.api_version=e.defaultAPIVersion)}}};typeof module==`object`&&typeof module.exports==`object`?module.exports=m:typeof define==`function`&&define.amd&&define(m),typeof window<`u`&&(window.Openrouteservice=m);export{m as t};