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