// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ../../config ../../core/Error ../../core/has ../../core/Logger ../../geometry/Point ../../geometry/support/webMercatorUtils ../../portal/Portal ../../rest/geometryService/project ../../rest/support/ProjectParameters".split(" "),function(d,h,f,m,n,p,q,r,t,u){function v({longitude:a,latitude:c,altitude:b}){return new p({longitude:a,latitude:c,z:b||void 0,spatialReference:{wkid:4326}})}function w(a,c,b){if(!c)return Promise.resolve(a);const e=c.spatialReference;return e.isWGS84?Promise.resolve(a): e.isWebMercator?Promise.resolve(q.geographicToWebMercator(a)):x(b).then(k=>{if(!k)throw new f("geometry-service:missing-url","Geometry service URL is missing");const y=new u({geometries:[a],outSpatialReference:e});return t.project(k,y,b).then(z=>z[0])})}function x(a){if(h.geometryServiceUrl)return Promise.resolve(h.geometryServiceUrl);const c=r.getDefault();return c.load(a).catch(()=>{}).then(()=>c.helperServices?.geometry?.url)}const l=()=>n.getLogger("esri.widgets.support.geolocationUtils"),A={maximumAge:0, timeout:15E3,enableHighAccuracy:!0};let g;d.getCurrentPosition=function(a){a||=A;return new Promise((c,b)=>{setTimeout(()=>b(new f("geolocation:timeout","getting the current geolocation position timed out")),15E3);navigator.geolocation.getCurrentPosition(c,b,a??void 0)})};d.overridePositionToPoint=function(a){g=a};d.positionToPoint=function(a,c){if(g)return g(a,c);const {position:b,view:e}=a;a=b&&b.coords||{};a={accuracy:a.accuracy,altitude:a.altitude,altitudeAccuracy:a.altitudeAccuracy,heading:a.heading, latitude:a.latitude,longitude:a.longitude,speed:a.speed};a=(b?{coords:a,timestamp:b.timestamp}:b)?.coords;if(!a)throw new f("geometry-service:no-coords","Geolocation has no coordinates");a=v(a);return w(a,e,c)};d.supported=function(){var a=m("esri-geolocation");a||l().warn("geolocation-unsupported","Geolocation unsupported.");a&&((a=window.isSecureContext)||l().warn("insecure-context","Geolocation requires a secure origin."));return a};Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});