!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).Coordinate={})}(this,function(t){"use strict";function g(t,n,r){if(r||2===arguments.length)for(var e,a=0,o=n.length;a""+t:"object"==typeof t?t=>JSON.stringify(t):t=>t}class h extends e{constructor(t){super(t)}getDefaultOptions(){return{domain:[],range:[]}}map(t){return 0===this.domainIndexMap.size&&a(this.domainIndexMap,this.getDomain(),this.domainKey),o({value:this.domainKey(t),mapper:this.domainIndexMap,from:this.getDomain(),to:this.getRange(),notFoundReturn:this.options.unknown})}invert(t){return 0===this.rangeIndexMap.size&&a(this.rangeIndexMap,this.getRange(),this.rangeKey),o({value:this.rangeKey(t),mapper:this.rangeIndexMap,from:this.getRange(),to:this.getDomain(),notFoundReturn:this.options.unknown})}rescale(t){var[n]=this.options.domain,[r]=this.options.range;this.domainKey=l(n),this.rangeKey=l(r),this.rangeIndexMap?(t&&!t.range||this.rangeIndexMap.clear(),t&&!t.domain&&!t.compare||(this.domainIndexMap.clear(),this.sortedDomain=void 0)):(this.rangeIndexMap=new Map,this.domainIndexMap=new Map)}clone(){return new h(this.options)}getRange(){return this.options.range}getDomain(){var t,n;return this.sortedDomain||({domain:t,compare:n}=this.options,this.sortedDomain=n?[...t].sort(n):t),this.sortedDomain}}function z(t){const n=t["domain"];var r=n.length;if(0===r)return{valueBandWidth:void 0,valueStep:void 0,adjustedRange:[]};const{range:e,paddingOuter:a,paddingInner:o,flex:i=[],round:u,align:s}=t;t=i,h=n.length;var l=0<(l=h-t.length)?[...t,...new Array(l).fill(1)]:l<0?t.slice(0,h):t,[h,t]=e,t=t-h,c=t/(2/r*a+1-1/r*o);const d=c*o/r;c-=r*d;const p=function(t){const n=Math.min(...t);return t.map(t=>t/n)}(l),f=c/p.reduce((t,n)=>t+n);l=new Map(n.map((t,n)=>{n=p[n]*f;return[t,u?Math.floor(n):n]}));const g=new Map(n.map((t,n)=>{n=p[n]*f+d;return[t,u?Math.floor(n):n]}));c=Array.from(g.values()).reduce((t,n)=>t+n),h+=(t-(c-c/r*o))*s;let m=u?Math.round(h):h;const v=new Array(r);for(let t=0;tt=>n(r(t)),t)}function p(n,r){return r-n?t=>(t-n)/(r-n):t=>.5}const M=Math.sqrt(50),J=Math.sqrt(10),L=Math.sqrt(2);function w(t,n,r){n=(n-t)/Math.max(0,r),t=Math.floor(Math.log(n)/Math.LN10),r=n/10**t;return 0<=t?(r>=M?10:r>=J?5:r>=L?2:1)*10**t:-(10**-t)/(r>=M?10:r>=J?5:r>=L?2:1)}const _=(t,n,r=5)=>{const e=[t,n];let a=0,o=e.length-1,i=e[a],u=e[o],s;return ut=>n*(1-t)+r*t,nt=(t,n)=>{{if("number"==typeof t&&"number"==typeof n)return S(t,n);if("string"!=typeof t||"string"!=typeof n)return()=>t;{var r=t,e=n;const s=tt(r),l=tt(e);return null===s||null===l?s?()=>r:()=>e:n=>{const r=new Array(4);for(let t=0;t<4;t+=1){var e=s[t],a=l[t];r[t]=e*(1-n)+a*n}var[t,o,i,u]=r;return`rgba(${Math.round(t)}, ${Math.round(o)}, ${Math.round(i)}, ${u})`}}}},rt=(t,n)=>{const r=S(t,n);return t=>Math.round(r(t))},et=(t,n,r)=>{let e,a,o=t,i=n;if(o===i&&0{var[t,e]=t,[n,a]=n;let o,i;return d(i=t{const a=Math.min(e.length,t.length)-1,o=new Array(a),i=new Array(a);var r=e[0]>e[a],u=r?[...e].reverse():e,s=r?[...t].reverse():t;for(let t=0;t{var n=function(t,n,r,e,a){let o=r||0,i=e||t.length;const u=a||(t=>t);for(;on?i=s:o=s+1}return o}(e,t,1,a)-1,r=o[n];return d(i[n],r)(t)}},it=(t,n,r,e)=>{const a=2Math.min(Math.max(e,t),a)}return m}composeOutput(t,n){const{domain:r,range:e,round:a,interpolate:o}=this.options;var i=it(r.map(t),e,o,a);this.output=d(i,n,t)}composeInput(t,n,r){const{domain:e,range:a}=this.options;t=it(a,e.map(t),S);this.input=d(n,r,t)}}class P extends ut{getDefaultOptions(){return{domain:[0,1],range:[0,1],unknown:void 0,nice:!1,clamp:!1,round:!1,interpolate:nt,tickMethod:et,tickCount:5}}chooseTransforms(){return[m,m]}clone(){return new P(this.options)}}class st extends c{getDefaultOptions(){return{domain:[],range:[0,1],align:.5,round:!1,padding:0,unknown:void 0,paddingInner:1,paddingOuter:0}}constructor(t){super(t)}getPaddingInner(){return 1}clone(){return new st(this.options)}update(t){super.update(t)}getPaddingOuter(){return this.options.padding}}function lt(t,n){for(var r=[],e=0,a=t.length;e