/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.24/esri/copyright.txt for details. */ import e from"../Dictionary.js";import{h as t,b as r,a as n,f as s,l as a,n as i}from"../../chunks/languageUtils.js";const c=e=>(t,r,n)=>(n=n||14,+e(t,r).toFixed(n)),o=(e,t)=>e+t,d=(e,t)=>e-t,u=(e,t)=>e*t,m=(e,t)=>e/t,l=(e,t,r)=>c(o)(e,t,r),h=(e,t,r)=>c(d)(e,t,r),g=(e,t,r)=>c(u)(e,t,r),_=(e,t,r)=>c(m)(e,t,r),f=360,w=400,A=2*Math.PI,D=3600,E=3240,p=60,T=60,S=180*D/Math.PI,R=f*p*T,M=90*D,U=180*D,v=270*D,F=String.fromCharCode(7501),I="°";function N(e){if(!1===r(e))throw new Error("Invalid Parameter");return e}function x(e,t){const r=10**t;return Math.round(e*r)/r}function z(e,t){return e%t}function O(e){const t=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:t,integer:Math.ceil(e)}}return{fraction:t,integer:Math.floor(e)}}var G,b,H,C;function y(e,t){switch(e){case G.north:return"SHORT"===t?"N":"North";case G.east:return"SHORT"===t?"E":"East";case G.south:return"SHORT"===t?"S":"South";case G.west:return"SHORT"===t?"W":"West"}}function q(e,t,r){for(;e.length=v?G.north:G.south,r=t===G.north?Math.min(R-e,e):Math.abs(e-U),n=e>U?G.west:G.east;return new Z(t,r,n)}static createFromAngleMeridianAndDirection(e,t,r){return new B(new V(B.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(b.seconds),t,r)))}static secondsQuadrantToNorthAzimuth(e,t,r){return t===G.north?r===G.east?e:R-e:r===G.east?U-e:U+e}static _convertDirectionFormat(e,t,r){let n=0;switch(t){case H.north_azimuth:n=e;break;case H.polar:n=M-e;break;case H.quadrant:throw new Error("Unnexpected evaluation");case H.south_azimuth:n=e+U}let s=0;switch(r){case H.north_azimuth:s=n;break;case H.polar:s=M-n;break;case H.quadrant:throw new Error("Unnexpected evaluation");case H.south_azimuth:s=n-U}return s=z(s,R),s<0?R+s:s}}function j(e,t,r){let n=null;switch(t){case b.decimal_degrees:n=g(e,D);break;case b.seconds:n=e;break;case b.gradians:n=g(e,E);break;case b.radians:n=g(e,S);break;default:throw new Error("Unnexpected evaluation")}switch(r){case b.decimal_degrees:return _(n,D);case b.seconds:return n;case b.gradians:return _(n,E);case b.radians:return n/S;default:throw new Error("Unnexpected evaluation")}}class V{constructor(e){this.m_seconds=e}static createFromAngleAndUnits(e,t){return new V(j(e,t,b.seconds))}extractAngularUnits(e){return j(this.m_seconds,b.seconds,X(e))}static createFromDegreesMinutesSeconds(e,t,r){return new V(l(l(g(e,D),g(t,T)),r))}}function X(e){switch(e){case b.decimal_degrees:case b.truncated_degrees:case b.degrees_minutes_seconds:return b.decimal_degrees;case b.gradians:return b.gradians;case b.fractional_degree_minutes:return b.fractional_degree_minutes;case b.radians:return b.radians;case b.seconds:case b.fractional_minute_seconds:return b.seconds}}class J{constructor(e,t,r,n){this.m_view=e,this.m_angle=t,this.m_merdian=r,this.m_direction=n,this.m_dms=null,this.m_formatted_dms=null}static createFromStringAndBearing(e,t,r){return new J(e,t.getAngle(r),t.getMeridian(r),t.getDirection(r))}fetchAngle(){return this.m_angle}fetchMeridian(){return this.m_merdian}fetchDirection(){return this.m_direction}fetchView(){return this.m_view}fetchDms(){return null===this.m_dms&&this._calculateDms(),this.m_dms}fetchFormattedDms(){return null===this.m_formatted_dms&&this._calculateDms(),this.m_formatted_dms}_calculateDms(){let e=null,t=b.truncated_degrees,r=0;for(let n=0;n0?1:0));case b.truncated_degrees:case b.fractional_degree_minutes:return a=P(s.fetchFormattedDms().getField(t),k(t)),q(a.toFixed(n),"0",r+n+(n>0?1:0));case b.fractional_minute_seconds:return a=P(x(s.fetchDms().getField(t),n),k(t)),q(a.toFixed(n),"0",r+n+(n>0?1:0));default:throw new Error("Unnexepected evaluation")}}function Y(e,t,r){if(r===H.quadrant)throw new Error("Conversion error");if(t===b.degrees_minutes_seconds){const t=W.numberToDms(e);return B.createFromAngleAndDirection(V.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds),r)}return B.createFromAngleAndDirection(V.createFromAngleAndUnits(e,X(t)),r)}function $(e){switch(s(e)){case 1:return{first:G.north,second:G.east};case 2:return{first:G.south,second:G.east};case 3:return{first:G.south,second:G.west};case 4:return{first:G.north,second:G.west}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return G.north;case"E":case"EAST":return G.east;case"S":case"SOUTH":return G.south;case"W":case"WEST":return G.west}return null}function te(e){const t=parseFloat(e);if(n(t)){if(isNaN(t))throw new Error("Invalid conversion");return t}throw new Error("Invalid conversion")}function re(e,r,n){const s=n===H.quadrant;let a=null,i=null,c=0,o=0,d=0;if(s){if(e.length<2)throw new Error("Conversion Error");d=1;const r=$(t(e[e.length-1]));if(r?(a=r.first,i=r.second):(c=1,a=ee(t(e[0])),i=ee(t(e[e.length-1]))),null===a||null===i)throw new Error("Invalid Conversion")}switch(r){case b.decimal_degrees:case b.radians:case b.gradians:if(0===e.length)throw new Error("Invalid Conversion");return s?B.createFromAngleMeridianAndDirection(V.createFromAngleAndUnits(te(e[c]),X(r)),a,i):B.createFromAngleAndDirection(V.createFromAngleAndUnits(te(e[c]),X(r)),n);case b.degrees_minutes_seconds:if(o=e.length-d-c,3===o){const t=V.createFromDegreesMinutesSeconds(te(e[c]),te(e[c+1]),te(e[c+2]));return s?B.createFromAngleMeridianAndDirection(t,a,i):B.createFromAngleAndDirection(t,n)}if(1===o){const t=te(e[c]),r=W.numberToDms(t),o=V.createFromDegreesMinutesSeconds(r.m_degrees,r.m_minutes,r.m_seconds);return s?B.createFromAngleMeridianAndDirection(o,a,i):B.createFromAngleAndDirection(o,n)}}throw new Error("Conversion Error")}function ne(e){const t=[" ","-","/","'",'"',"\\","^",I,F,"\t","\r","\n","*"];let r="";for(let n=0;n""!==e))}function se(e,t,c){if(n(e))return Y(s(e),t,c);if(r(e))return re(ne(e),t,c);if(a(e))return re(e,t,c);if(i(e))return re(e.toArray(),t,c);throw new Error("Conversion Error")}function ae(e,t,r){const n=X(r);if(n&&r!==b.degrees_minutes_seconds){return e.getAngle(t).extractAngularUnits(n)}throw new Error("Conversion Error")}function ie(e,t,r){const n=e.getAngle(t);if(t===H.quadrant&&r===b.degrees_minutes_seconds){const r=W.secondsToDMS(n.extractAngularUnits(b.seconds));return[y(e.getMeridian(t),"SHORT"),r.m_degrees,r.m_minutes,r.m_seconds,y(e.getDirection(t),"SHORT")]}if(r===b.degrees_minutes_seconds){const e=W.secondsToDMS(n.extractAngularUnits(b.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return t===H.quadrant?[y(e.getMeridian(t),"SHORT"),n.extractAngularUnits(r),y(e.getDirection(t),"SHORT")]:[n.extractAngularUnits(r)]}function ce(e,t){let r="";switch(e){case b.decimal_degrees:r=t===H.quadrant?"DD.DD"+I:"DDD.DD"+I;break;case b.degrees_minutes_seconds:r=t===H.quadrant?"dd"+I+" mm' ss\"":"ddd"+I+" mm' ss.ss\"";break;case b.radians:r="R.RR";break;case b.gradians:r="GGG.GG"+F;break;default:throw new Error("Conversion error")}return t===H.quadrant&&(r="p "+r+" b"),r}function oe(e,t,r){const n={padding:0,rounding:0,newpos:t};let s=!1;for(;t