import{getWidth}from"./extent.js";import{modulo}from"./math.js";import{padNumber}from"./string.js";function add(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function closestOnCircle(t,e){var r=e.getRadius(),e=e.getCenter(),n=e[0],e=e[1];let o=t[0]-n;var t=t[1]-e,a=(0===o&&0==t&&(o=1),Math.sqrt(o*o+t*t));return[n+r*o/a,e+r*t/a]}function closestOnSegment(t,e){var r=t[0],t=t[1],n=e[0],e=e[1],o=n[0],n=n[1],a=e[0],e=e[1],i=a-o,u=e-n,r=0==i&&0==u?0:(i*(r-o)+u*(t-n))/(i*i+u*u||0);let s,c;return c=r<=0?(s=o,n):1<=r?(s=a,e):(s=o+r*i,n+r*u),[s,c]}function createStringXY(e){return function(t){return toStringXY(t,e)}}function degreesToStringHDMS(t,e,r){var e=modulo(e+180,360)-180,n=Math.abs(3600*e),r=r||0,o=Math.pow(10,r);let a=Math.floor(n/3600),i=Math.floor((n-3600*a)/60),u=n-3600*a-60*i;return 60<=(u=Math.ceil(u*o)/o)&&(u=0,i+=1),60<=i&&(i=0,a+=1),a+"° "+padNumber(i,2)+"′ "+padNumber(u,2,r)+"″"+(0==e?"":" "+t.charAt(e<0?1:0))}function format(t,e,r){return t?e.replace("{x}",t[0].toFixed(r)).replace("{y}",t[1].toFixed(r)):""}function equals(e,r){let n=!0;for(let t=e.length-1;0<=t;--t)if(e[t]!=r[t]){n=!1;break}return n}function rotate(t,e){var r=Math.cos(e),e=Math.sin(e),n=t[0]*r-t[1]*e,r=t[1]*r+t[0]*e;return t[0]=n,t[1]=r,t}function scale(t,e){return t[0]*=e,t[1]*=e,t}function squaredDistance(t,e){var r=t[0]-e[0],t=t[1]-e[1];return r*r+t*t}function distance(t,e){return Math.sqrt(squaredDistance(t,e))}function squaredDistanceToSegment(t,e){return squaredDistance(t,closestOnSegment(t,e))}function toStringHDMS(t,e){return t?degreesToStringHDMS("NS",t[1],e)+" "+degreesToStringHDMS("EW",t[0],e):""}function toStringXY(t,e){return format(t,"{x}, {y}",e)}function wrapX(t,e){var r=e.getExtent();return e.canWrapX()&&(t[0]<r[0]||t[0]>=r[2])&&(e=getWidth(r),r=Math.floor((t[0]-r[0])/e),t[0]-=r*e),t}export{add,closestOnCircle,closestOnSegment,createStringXY,degreesToStringHDMS,format,equals,rotate,scale,squaredDistance,distance,squaredDistanceToSegment,toStringHDMS,toStringXY,wrapX};