datly 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +1773 -2386
- package/dist/datly.cjs +1 -0
- package/dist/datly.mjs +1 -0
- package/dist/datly.umd.js +1 -1
- package/dist/datly.umd.js.map +1 -0
- package/package.json +24 -11
- package/src/code.js +2466 -0
- package/src/index.js +236 -0
- package/src/plot.js +609 -0
package/dist/datly.cjs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
function t(){return t=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)({}).hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},t.apply(null,arguments)}var n="http://www.w3.org/1999/xhtml",r={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function e(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),r.hasOwnProperty(n)?{space:r[n],local:t}:t}function i(t){return function(){var r=this.ownerDocument,e=this.namespaceURI;return e===n&&r.documentElement.namespaceURI===n?r.createElement(t):r.createElementNS(e,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function o(t){var n=e(t);return(n.local?a:i)(n)}function u(){}function c(t){return null==t?u:function(){return this.querySelector(t)}}function s(){return[]}function l(t){return function(n){return n.matches(t)}}var f=Array.prototype.find;function h(){return this.firstElementChild}var p=Array.prototype.filter;function d(){return Array.from(this.children)}function m(t){return new Array(t.length)}function g(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function v(t,n,r,e,i,a){for(var o,u=0,c=n.length,s=a.length;u<s;++u)(o=n[u])?(o.__data__=a[u],e[u]=o):r[u]=new g(t,a[u]);for(;u<c;++u)(o=n[u])&&(i[u]=o)}function _(t,n,r,e,i,a,o){var u,c,s,l=new Map,f=n.length,h=a.length,p=new Array(f);for(u=0;u<f;++u)(c=n[u])&&(p[u]=s=o.call(c,c.__data__,u,n)+"",l.has(s)?i[u]=c:l.set(s,c));for(u=0;u<h;++u)s=o.call(t,a[u],u,a)+"",(c=l.get(s))?(e[u]=c,c.__data__=a[u],l.delete(s)):r[u]=new g(t,a[u]);for(u=0;u<f;++u)(c=n[u])&&l.get(p[u])===c&&(i[u]=c)}function y(t){return t.__data__}function b(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function w(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function x(t){return function(){this.removeAttribute(t)}}function M(t){return function(){this.removeAttributeNS(t.space,t.local)}}function k(t,n){return function(){this.setAttribute(t,n)}}function A(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function N(t,n){return function(){var r=n.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function $(t,n){return function(){var r=n.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function E(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function q(t){return function(){this.style.removeProperty(t)}}function S(t,n,r){return function(){this.style.setProperty(t,n,r)}}function j(t,n,r){return function(){var e=n.apply(this,arguments);null==e?this.style.removeProperty(t):this.style.setProperty(t,e,r)}}function O(t){return function(){delete this[t]}}function z(t,n){return function(){this[t]=n}}function C(t,n){return function(){var r=n.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function P(t){return t.trim().split(/^|\s+/)}function T(t){return t.classList||new R(t)}function R(t){this._node=t,this._names=P(t.getAttribute("class")||"")}function L(t,n){for(var r=T(t),e=-1,i=n.length;++e<i;)r.add(n[e])}function I(t,n){for(var r=T(t),e=-1,i=n.length;++e<i;)r.remove(n[e])}function F(t){return function(){L(this,t)}}function H(t){return function(){I(this,t)}}function V(t,n){return function(){(n.apply(this,arguments)?L:I)(this,t)}}function B(){this.textContent=""}function D(t){return function(){this.textContent=t}}function X(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function G(){this.innerHTML=""}function J(t){return function(){this.innerHTML=t}}function Q(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function U(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function W(){return null}function Y(){var t=this.parentNode;t&&t.removeChild(this)}function K(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function tt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function nt(t){return function(){var n=this.__on;if(n){for(var r,e=0,i=-1,a=n.length;e<a;++e)r=n[e],t.type&&r.type!==t.type||r.name!==t.name?n[++i]=r:this.removeEventListener(r.type,r.listener,r.options);++i?n.length=i:delete this.__on}}}function rt(t,n,r){return function(){var e,i=this.__on,a=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var o=0,u=i.length;o<u;++o)if((e=i[o]).type===t.type&&e.name===t.name)return this.removeEventListener(e.type,e.listener,e.options),this.addEventListener(e.type,e.listener=a,e.options=r),void(e.value=n);this.addEventListener(t.type,a,r),e={type:t.type,name:t.name,value:n,listener:a,options:r},i?i.push(e):this.__on=[e]}}function et(t,n,r){var e=E(t),i=e.CustomEvent;"function"==typeof i?i=new i(n,r):(i=e.document.createEvent("Event"),r?(i.initEvent(n,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function it(t,n){return function(){return et(this,t,n)}}function at(t,n){return function(){return et(this,t,n.apply(this,arguments))}}g.prototype={constructor:g,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},R.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ot=[null];function ut(t,n){this._groups=t,this._parents=n}function ct(t){return"string"==typeof t?new ut([[document.querySelector(t)]],[document.documentElement]):new ut([[t]],ot)}function st(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function lt(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function ft(t){let n,r,e;function i(t,e,i=0,a=t.length){if(i<a){if(0!==n(e,e))return a;do{const n=i+a>>>1;r(t[n],e)<0?i=n+1:a=n}while(i<a)}return i}return 2!==t.length?(n=st,r=(n,r)=>st(t(n),r),e=(n,r)=>t(n)-r):(n=t===st||t===lt?t:ht,r=t,e=t),{left:i,center:function(t,n,r=0,a=t.length){const o=i(t,n,r,a-1);return o>r&&e(t[o-1],n)>-e(t[o],n)?o-1:o},right:function(t,e,i=0,a=t.length){if(i<a){if(0!==n(e,e))return a;do{const n=i+a>>>1;r(t[n],e)<=0?i=n+1:a=n}while(i<a)}return i}}}function ht(){return 0}ut.prototype={constructor:ut,select:function(t){"function"!=typeof t&&(t=c(t));for(var n=this._groups,r=n.length,e=new Array(r),i=0;i<r;++i)for(var a,o,u=n[i],s=u.length,l=e[i]=new Array(s),f=0;f<s;++f)(a=u[f])&&(o=t.call(a,a.__data__,f,u))&&("__data__"in a&&(o.__data__=a.__data__),l[f]=o);return new ut(e,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}(t):function(t){return null==t?s:function(){return this.querySelectorAll(t)}}(t);for(var n=this._groups,r=n.length,e=[],i=[],a=0;a<r;++a)for(var o,u=n[a],c=u.length,l=0;l<c;++l)(o=u[l])&&(e.push(t.call(o,o.__data__,l,u)),i.push(o));return new ut(e,i)},selectChild:function(t){return this.select(null==t?h:function(t){return function(){return f.call(this.children,t)}}("function"==typeof t?t:l(t)))},selectChildren:function(t){return this.selectAll(null==t?d:function(t){return function(){return p.call(this.children,t)}}("function"==typeof t?t:l(t)))},filter:function(t){"function"!=typeof t&&(t=function(t){return function(){return this.matches(t)}}(t));for(var n=this._groups,r=n.length,e=new Array(r),i=0;i<r;++i)for(var a,o=n[i],u=o.length,c=e[i]=[],s=0;s<u;++s)(a=o[s])&&t.call(a,a.__data__,s,o)&&c.push(a);return new ut(e,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,y);var r=n?_:v,e=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var a=i.length,o=new Array(a),u=new Array(a),c=new Array(a),s=0;s<a;++s){var l=e[s],f=i[s],h=f.length,p=b(t.call(l,l&&l.__data__,s,e)),d=p.length,m=u[s]=new Array(d),g=o[s]=new Array(d);r(l,f,m,g,c[s]=new Array(h),p,n);for(var w,x,M=0,k=0;M<d;++M)if(w=m[M]){for(M>=k&&(k=M+1);!(x=g[k])&&++k<d;);w._next=x||null}}return(o=new ut(o,e))._enter=u,o._exit=c,o},enter:function(){return new ut(this._enter||this._groups.map(m),this._parents)},exit:function(){return new ut(this._exit||this._groups.map(m),this._parents)},join:function(t,n,r){var e=this.enter(),i=this,a=this.exit();return"function"==typeof t?(e=t(e))&&(e=e.selection()):e=e.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==r?a.remove():r(a),e&&i?e.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,r=this._groups,e=n._groups,i=r.length,a=Math.min(i,e.length),o=new Array(i),u=0;u<a;++u)for(var c,s=r[u],l=e[u],f=s.length,h=o[u]=new Array(f),p=0;p<f;++p)(c=s[p]||l[p])&&(h[p]=c);for(;u<i;++u)o[u]=r[u];return new ut(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,r=t.length;++n<r;)for(var e,i=t[n],a=i.length-1,o=i[a];--a>=0;)(e=i[a])&&(o&&4^e.compareDocumentPosition(o)&&o.parentNode.insertBefore(e,o),o=e);return this},sort:function(t){function n(n,r){return n&&r?t(n.__data__,r.__data__):!n-!r}t||(t=w);for(var r=this._groups,e=r.length,i=new Array(e),a=0;a<e;++a){for(var o,u=r[a],c=u.length,s=i[a]=new Array(c),l=0;l<c;++l)(o=u[l])&&(s[l]=o);s.sort(n)}return new ut(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var e=t[n],i=0,a=e.length;i<a;++i){var o=e[i];if(o)return o}return null},size:function(){let t=0;for(const n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,r=0,e=n.length;r<e;++r)for(var i,a=n[r],o=0,u=a.length;o<u;++o)(i=a[o])&&t.call(i,i.__data__,o,a);return this},attr:function(t,n){var r=e(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((null==n?r.local?M:x:"function"==typeof n?r.local?$:N:r.local?A:k)(r,n))},style:function(t,n,r){return arguments.length>1?this.each((null==n?q:"function"==typeof n?j:S)(t,n,null==r?"":r)):function(t,n){return t.style.getPropertyValue(n)||E(t).getComputedStyle(t,null).getPropertyValue(n)}(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?O:"function"==typeof n?C:z)(t,n)):this.node()[t]},classed:function(t,n){var r=P(t+"");if(arguments.length<2){for(var e=T(this.node()),i=-1,a=r.length;++i<a;)if(!e.contains(r[i]))return!1;return!0}return this.each(("function"==typeof n?V:n?F:H)(r,n))},text:function(t){return arguments.length?this.each(null==t?B:("function"==typeof t?X:D)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?G:("function"==typeof t?Q:J)(t)):this.node().innerHTML},raise:function(){return this.each(U)},lower:function(){return this.each(Z)},append:function(t){var n="function"==typeof t?t:o(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var r="function"==typeof t?t:o(t),e=null==n?W:"function"==typeof n?n:c(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),e.apply(this,arguments)||null)})},remove:function(){return this.each(Y)},clone:function(t){return this.select(t?tt:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,r){var e,i,a=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}(t+""),o=a.length;if(!(arguments.length<2)){for(u=n?rt:nt,e=0;e<o;++e)this.each(u(a[e],n,r));return this}var u=this.node().__on;if(u)for(var c,s=0,l=u.length;s<l;++s)for(e=0,c=u[s];e<o;++e)if((i=a[e]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,n){return this.each(("function"==typeof n?at:it)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var e,i=t[n],a=0,o=i.length;a<o;++a)(e=i[a])&&(yield e)}};const pt=ft(st).right;ft(function(t){return null===t?NaN:+t});var dt=pt;function mt(t,n){let r,e;if(void 0===n)for(const n of t)null!=n&&(void 0===r?n>=n&&(r=e=n):(r>n&&(r=n),e<n&&(e=n)));else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&(void 0===r?a>=a&&(r=e=a):(r>a&&(r=a),e<a&&(e=a)))}return[r,e]}class gt extends Map{constructor(t,n=_t){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,r]of t)this.set(n,r)}get(t){return super.get(vt(this,t))}has(t){return super.has(vt(this,t))}set(t,n){return super.set(function({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):(t.set(e,r),r)}(this,t),n)}delete(t){return super.delete(function({_intern:t,_key:n},r){const e=n(r);return t.has(e)&&(r=t.get(e),t.delete(e)),r}(this,t))}}function vt({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):r}function _t(t){return null!==t&&"object"==typeof t?t.valueOf():t}function yt(t){return t}function bt(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}var wt=Array.prototype.slice;function xt(t){return()=>t}const Mt=Math.sqrt(50),kt=Math.sqrt(10),At=Math.sqrt(2);function Nt(t,n,r){const e=(n-t)/Math.max(0,r),i=Math.floor(Math.log10(e)),a=e/Math.pow(10,i),o=a>=Mt?10:a>=kt?5:a>=At?2:1;let u,c,s;return i<0?(s=Math.pow(10,-i)/o,u=Math.round(t*s),c=Math.round(n*s),u/s<t&&++u,c/s>n&&--c,s=-s):(s=Math.pow(10,i)*o,u=Math.round(t/s),c=Math.round(n/s),u*s<t&&++u,c*s>n&&--c),c<u&&.5<=r&&r<2?Nt(t,n,2*r):[u,c,s]}function $t(t,n,r){if(!((r=+r)>0))return[];if((t=+t)===(n=+n))return[t];const e=n<t,[i,a,o]=e?Nt(n,t,r):Nt(t,n,r);if(!(a>=i))return[];const u=a-i+1,c=new Array(u);if(e)if(o<0)for(let t=0;t<u;++t)c[t]=(a-t)/-o;else for(let t=0;t<u;++t)c[t]=(a-t)*o;else if(o<0)for(let t=0;t<u;++t)c[t]=(i+t)/-o;else for(let t=0;t<u;++t)c[t]=(i+t)*o;return c}function Et(t,n,r){return Nt(t=+t,n=+n,r=+r)[2]}function qt(t){return Math.max(1,Math.ceil(Math.log(function(t){let n=0;for(let r of t)null!=r&&(r=+r)>=r&&++n;return n}(t))/Math.LN2)+1)}function St(){var t=yt,n=mt,r=qt;function e(e){Array.isArray(e)||(e=Array.from(e));var i,a,o,u=e.length,c=new Array(u);for(i=0;i<u;++i)c[i]=t(e[i],i,e);var s=n(c),l=s[0],f=s[1],h=r(c,l,f);if(!Array.isArray(h)){const t=f,r=+h;if(n===mt&&([l,f]=function(t,n,r){let e;for(;;){const i=Et(t,n,r);if(i===e||0===i||!isFinite(i))return[t,n];i>0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),e=i}}(l,f,r)),(h=$t(l,f,r))[0]<=l&&(o=Et(l,f,r)),h[h.length-1]>=f)if(t>=f&&n===mt){const t=Et(l,f,r);isFinite(t)&&(t>0?f=(Math.floor(f/t)+1)*t:t<0&&(f=(Math.ceil(f*-t)+1)/-t))}else h.pop()}for(var p=h.length,d=0,m=p;h[d]<=l;)++d;for(;h[m-1]>f;)--m;(d||m<p)&&(h=h.slice(d,m),p=m-d);var g,v=new Array(p+1);for(i=0;i<=p;++i)(g=v[i]=[]).x0=i>0?h[i-1]:l,g.x1=i<p?h[i]:f;if(isFinite(o)){if(o>0)for(i=0;i<u;++i)null!=(a=c[i])&&l<=a&&a<=f&&v[Math.min(p,Math.floor((a-l)/o))].push(e[i]);else if(o<0)for(i=0;i<u;++i)if(null!=(a=c[i])&&l<=a&&a<=f){const t=Math.floor((l-a)*o);v[Math.min(p,t+(h[t]<=a))].push(e[i])}}else for(i=0;i<u;++i)null!=(a=c[i])&&l<=a&&a<=f&&v[dt(h,a,0,p)].push(e[i]);return v}return e.value=function(n){return arguments.length?(t="function"==typeof n?n:xt(n),e):t},e.domain=function(t){return arguments.length?(n="function"==typeof t?t:xt([t[0],t[1]]),e):n},e.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:xt(Array.isArray(t)?wt.call(t):t),e):r},e}function jt(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let i of t)null!=(i=n(i,++e,t))&&(r<i||void 0===r&&i>=i)&&(r=i)}return r}function Ot(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let i of t)null!=(i=n(i,++e,t))&&(r>i||void 0===r&&i>=i)&&(r=i)}return r}function zt(t,n,r=0,e=Infinity,i){if(n=Math.floor(n),r=Math.floor(Math.max(0,r)),e=Math.floor(Math.min(t.length-1,e)),!(r<=n&&n<=e))return t;for(i=void 0===i?bt:function(t=st){if(t===st)return bt;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,r)=>{const e=t(n,r);return e||0===e?e:(0===t(r,r))-(0===t(n,n))}}(i);e>r;){if(e-r>600){const a=e-r+1,o=n-r+1,u=Math.log(a),c=.5*Math.exp(2*u/3),s=.5*Math.sqrt(u*c*(a-c)/a)*(o-a/2<0?-1:1);zt(t,n,Math.max(r,Math.floor(n-o*c/a+s)),Math.min(e,Math.floor(n+(a-o)*c/a+s)),i)}const a=t[n];let o=r,u=e;for(Ct(t,r,n),i(t[e],a)>0&&Ct(t,r,e);o<u;){for(Ct(t,o,u),++o,--u;i(t[o],a)<0;)++o;for(;i(t[u],a)>0;)--u}0===i(t[r],a)?Ct(t,r,u):(++u,Ct(t,u,e)),u<=n&&(r=u+1),n<=u&&(e=u-1)}return t}function Ct(t,n,r){const e=t[n];t[n]=t[r],t[r]=e}function Pt(t,n,r){if(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let r=-1;for(let e of t)null!=(e=n(e,++r,t))&&(e=+e)>=e&&(yield e)}}(t,r)),(e=t.length)&&!isNaN(n=+n)){if(n<=0||e<2)return Ot(t);if(n>=1)return jt(t);var e,i=(e-1)*n,a=Math.floor(i),o=jt(zt(t,a).subarray(0,a+1));return o+(Ot(t.subarray(a+1))-o)*(i-a)}}function Tt(t,n){let r=0,e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++r,e+=n);else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&(a=+a)>=a&&(++r,e+=a)}if(r)return e/r}function Rt(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function Lt(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const It=Symbol("implicit");function Ft(){var t=new gt,n=[],r=[],e=It;function i(i){let a=t.get(i);if(void 0===a){if(e!==It)return e;t.set(i,a=n.push(i)-1)}return r[a%r.length]}return i.domain=function(r){if(!arguments.length)return n.slice();n=[],t=new gt;for(const e of r)t.has(e)||t.set(e,n.push(e)-1);return i},i.range=function(t){return arguments.length?(r=Array.from(t),i):r.slice()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Ft(n,r).unknown(e)},Rt.apply(i,arguments),i}function Ht(){var t,n,r=Ft().unknown(void 0),e=r.domain,i=r.range,a=0,o=1,u=!1,c=0,s=0,l=.5;function f(){var r=e().length,f=o<a,h=f?o:a,p=f?a:o;t=(p-h)/Math.max(1,r-c+2*s),u&&(t=Math.floor(t)),h+=(p-h-t*(r-c))*l,n=t*(1-c),u&&(h=Math.round(h),n=Math.round(n));var d=function(t,n,r){t=+t,n=+n,r=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+r;for(var e=-1,i=0|Math.max(0,Math.ceil((n-t)/r)),a=new Array(i);++e<i;)a[e]=t+e*r;return a}(r).map(function(n){return h+t*n});return i(f?d.reverse():d)}return delete r.unknown,r.domain=function(t){return arguments.length?(e(t),f()):e()},r.range=function(t){return arguments.length?([a,o]=t,a=+a,o=+o,f()):[a,o]},r.rangeRound=function(t){return[a,o]=t,a=+a,o=+o,u=!0,f()},r.bandwidth=function(){return n},r.step=function(){return t},r.round=function(t){return arguments.length?(u=!!t,f()):u},r.padding=function(t){return arguments.length?(c=Math.min(1,s=+t),f()):c},r.paddingInner=function(t){return arguments.length?(c=Math.min(1,t),f()):c},r.paddingOuter=function(t){return arguments.length?(s=+t,f()):s},r.align=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),f()):l},r.copy=function(){return Ht(e(),[a,o]).round(u).paddingInner(c).paddingOuter(s).align(l)},Rt.apply(f(),arguments)}function Vt(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Vt(n())},t}function Bt(){return Vt(Ht.apply(null,arguments).paddingInner(1))}function Dt(t,n,r){t.prototype=n.prototype=r,r.constructor=t}function Xt(t,n){var r=Object.create(t.prototype);for(var e in n)r[e]=n[e];return r}function Gt(){}var Jt=.7,Qt=1/Jt,Ut="\\s*([+-]?\\d+)\\s*",Zt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Wt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Yt=/^#([0-9a-f]{3,8})$/,Kt=new RegExp(`^rgb\\(${Ut},${Ut},${Ut}\\)$`),tn=new RegExp(`^rgb\\(${Wt},${Wt},${Wt}\\)$`),nn=new RegExp(`^rgba\\(${Ut},${Ut},${Ut},${Zt}\\)$`),rn=new RegExp(`^rgba\\(${Wt},${Wt},${Wt},${Zt}\\)$`),en=new RegExp(`^hsl\\(${Zt},${Wt},${Wt}\\)$`),an=new RegExp(`^hsla\\(${Zt},${Wt},${Wt},${Zt}\\)$`),on={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function un(){return this.rgb().formatHex()}function cn(){return this.rgb().formatRgb()}function sn(t){var n,r;return t=(t+"").trim().toLowerCase(),(n=Yt.exec(t))?(r=n[1].length,n=parseInt(n[1],16),6===r?ln(n):3===r?new pn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===r?fn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===r?fn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Kt.exec(t))?new pn(n[1],n[2],n[3],1):(n=tn.exec(t))?new pn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=nn.exec(t))?fn(n[1],n[2],n[3],n[4]):(n=rn.exec(t))?fn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=en.exec(t))?yn(n[1],n[2]/100,n[3]/100,1):(n=an.exec(t))?yn(n[1],n[2]/100,n[3]/100,n[4]):on.hasOwnProperty(t)?ln(on[t]):"transparent"===t?new pn(NaN,NaN,NaN,0):null}function ln(t){return new pn(t>>16&255,t>>8&255,255&t,1)}function fn(t,n,r,e){return e<=0&&(t=n=r=NaN),new pn(t,n,r,e)}function hn(t,n,r,e){return 1===arguments.length?((i=t)instanceof Gt||(i=sn(i)),i?new pn((i=i.rgb()).r,i.g,i.b,i.opacity):new pn):new pn(t,n,r,null==e?1:e);var i}function pn(t,n,r,e){this.r=+t,this.g=+n,this.b=+r,this.opacity=+e}function dn(){return`#${_n(this.r)}${_n(this.g)}${_n(this.b)}`}function mn(){const t=gn(this.opacity);return`${1===t?"rgb(":"rgba("}${vn(this.r)}, ${vn(this.g)}, ${vn(this.b)}${1===t?")":`, ${t})`}`}function gn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function vn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function _n(t){return((t=vn(t))<16?"0":"")+t.toString(16)}function yn(t,n,r,e){return e<=0?t=n=r=NaN:r<=0||r>=1?t=n=NaN:n<=0&&(t=NaN),new wn(t,n,r,e)}function bn(t){if(t instanceof wn)return new wn(t.h,t.s,t.l,t.opacity);if(t instanceof Gt||(t=sn(t)),!t)return new wn;if(t instanceof wn)return t;var n=(t=t.rgb()).r/255,r=t.g/255,e=t.b/255,i=Math.min(n,r,e),a=Math.max(n,r,e),o=NaN,u=a-i,c=(a+i)/2;return u?(o=n===a?(r-e)/u+6*(r<e):r===a?(e-n)/u+2:(n-r)/u+4,u/=c<.5?a+i:2-a-i,o*=60):u=c>0&&c<1?0:o,new wn(o,u,c,t.opacity)}function wn(t,n,r,e){this.h=+t,this.s=+n,this.l=+r,this.opacity=+e}function xn(t){return(t=(t||0)%360)<0?t+360:t}function Mn(t){return Math.max(0,Math.min(1,t||0))}function kn(t,n,r){return 255*(t<60?n+(r-n)*t/60:t<180?r:t<240?n+(r-n)*(240-t)/60:n)}Dt(Gt,sn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:un,formatHex:un,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bn(this).formatHsl()},formatRgb:cn,toString:cn}),Dt(pn,hn,Xt(Gt,{brighter(t){return t=null==t?Qt:Math.pow(Qt,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Jt:Math.pow(Jt,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pn(vn(this.r),vn(this.g),vn(this.b),gn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:dn,formatHex:dn,formatHex8:function(){return`#${_n(this.r)}${_n(this.g)}${_n(this.b)}${_n(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:mn,toString:mn})),Dt(wn,function(t,n,r,e){return 1===arguments.length?bn(t):new wn(t,n,r,null==e?1:e)},Xt(Gt,{brighter(t){return t=null==t?Qt:Math.pow(Qt,t),new wn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Jt:Math.pow(Jt,t),new wn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,e=r+(r<.5?r:1-r)*n,i=2*r-e;return new pn(kn(t>=240?t-240:t+120,i,e),kn(t,i,e),kn(t<120?t+240:t-120,i,e),this.opacity)},clamp(){return new wn(xn(this.h),Mn(this.s),Mn(this.l),gn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=gn(this.opacity);return`${1===t?"hsl(":"hsla("}${xn(this.h)}, ${100*Mn(this.s)}%, ${100*Mn(this.l)}%${1===t?")":`, ${t})`}`}}));var An=t=>()=>t;function Nn(t,n){var r=n-t;return r?function(t,n){return function(r){return t+r*n}}(t,r):An(isNaN(t)?n:t)}var $n,En=function t(n){var r=function(t){return 1===(t=+t)?Nn:function(n,r){return r-n?function(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(e){return Math.pow(t+e*n,r)}}(n,r,t):An(isNaN(n)?r:n)}}(n);function e(t,n){var e=r((t=hn(t)).r,(n=hn(n)).r),i=r(t.g,n.g),a=r(t.b,n.b),o=Nn(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=a(n),t.opacity=o(n),t+""}}return e.gamma=t,e}(1),qn=($n=function(t){var n=t.length-1;return function(r){var e=r<=0?r=0:r>=1?(r=1,n-1):Math.floor(r*n),i=t[e],a=t[e+1];return function(t,n,r,e,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*n+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*e+o*i)/6}((r-e/n)*n,e>0?t[e-1]:2*i-a,i,a,e<n-1?t[e+2]:2*a-i)}},function(t){var n,r,e=t.length,i=new Array(e),a=new Array(e),o=new Array(e);for(n=0;n<e;++n)r=hn(t[n]),i[n]=r.r||0,a[n]=r.g||0,o[n]=r.b||0;return i=$n(i),a=$n(a),o=$n(o),r.opacity=1,function(t){return r.r=i(t),r.g=a(t),r.b=o(t),r+""}});function Sn(t,n){n||(n=[]);var r,e=t?Math.min(n.length,t.length):0,i=n.slice();return function(a){for(r=0;r<e;++r)i[r]=t[r]*(1-a)+n[r]*a;return i}}function jn(t,n){var r,e=n?n.length:0,i=t?Math.min(e,t.length):0,a=new Array(i),o=new Array(e);for(r=0;r<i;++r)a[r]=Ln(t[r],n[r]);for(;r<e;++r)o[r]=n[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function On(t,n){var r=new Date;return t=+t,n=+n,function(e){return r.setTime(t*(1-e)+n*e),r}}function zn(t,n){return t=+t,n=+n,function(r){return t*(1-r)+n*r}}function Cn(t,n){var r,e={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)r in t?e[r]=Ln(t[r],n[r]):i[r]=n[r];return function(t){for(r in e)i[r]=e[r](t);return i}}var Pn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Tn=new RegExp(Pn.source,"g");function Rn(t,n){var r,e,i,a=Pn.lastIndex=Tn.lastIndex=0,o=-1,u=[],c=[];for(t+="",n+="";(r=Pn.exec(t))&&(e=Tn.exec(n));)(i=e.index)>a&&(i=n.slice(a,i),u[o]?u[o]+=i:u[++o]=i),(r=r[0])===(e=e[0])?u[o]?u[o]+=e:u[++o]=e:(u[++o]=null,c.push({i:o,x:zn(r,e)})),a=Tn.lastIndex;return a<n.length&&(i=n.slice(a),u[o]?u[o]+=i:u[++o]=i),u.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var r,e=0;e<n;++e)u[(r=c[e]).i]=r.x(t);return u.join("")})}function Ln(t,n){var r,e=typeof n;return null==n||"boolean"===e?An(n):("number"===e?zn:"string"===e?(r=sn(n))?(n=r,En):Rn:n instanceof sn?En:n instanceof Date?On:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(n)?Sn:Array.isArray(n)?jn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?Cn:zn)(t,n)}function In(t,n){return t=+t,n=+n,function(r){return Math.round(t*(1-r)+n*r)}}function Fn(t){return+t}var Hn=[0,1];function Vn(t){return t}function Bn(t,n){return(n-=t=+t)?function(r){return(r-t)/n}:function(t){return function(){return t}}(isNaN(n)?NaN:.5)}function Dn(t,n,r){var e=t[0],i=t[1],a=n[0],o=n[1];return i<e?(e=Bn(i,e),a=r(o,a)):(e=Bn(e,i),a=r(a,o)),function(t){return a(e(t))}}function Xn(t,n,r){var e=Math.min(t.length,n.length)-1,i=new Array(e),a=new Array(e),o=-1;for(t[e]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++o<e;)i[o]=Bn(t[o],t[o+1]),a[o]=r(n[o],n[o+1]);return function(n){var r=dt(t,n,1,e)-1;return a[r](i[r](n))}}function Gn(t,n){if((r=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var r,e=t.slice(0,r);return[e.length>1?e[0]+e.slice(2):e,+t.slice(r+1)]}function Jn(t){return(t=Gn(Math.abs(t)))?t[1]:NaN}var Qn,Un=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Zn(t){if(!(n=Un.exec(t)))throw new Error("invalid format: "+t);var n;return new Wn({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function Wn(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Yn(t,n){var r=Gn(t,n);if(!r)return t+"";var e=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+e:e.length>i+1?e.slice(0,i+1)+"."+e.slice(i+1):e+new Array(i-e.length+2).join("0")}Zn.prototype=Wn.prototype,Wn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Kn={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>Yn(100*t,n),r:Yn,s:function(t,n){var r=Gn(t,n);if(!r)return t+"";var e=r[0],i=r[1],a=i-(Qn=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=e.length;return a===o?e:a>o?e+new Array(a-o+1).join("0"):a>0?e.slice(0,a)+"."+e.slice(a):"0."+new Array(1-a).join("0")+Gn(t,Math.max(0,n+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function tr(t){return t}var nr,rr,er,ir=Array.prototype.map,ar=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function or(t){var n=t.domain;return t.ticks=function(t){var r=n();return $t(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var e=n();return function(t,n,r,e){var i,a=function(t,n,r){r=+r;const e=(n=+n)<(t=+t),i=e?Et(n,t,r):Et(t,n,r);return(e?-1:1)*(i<0?1/-i:i)}(t,n,r);switch((e=Zn(null==e?",f":e)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(n));return null!=e.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Jn(n)/3)))-Jn(Math.abs(t)))}(a,o))||(e.precision=i),er(e,o);case"":case"e":case"g":case"p":case"r":null!=e.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Jn(n)-Jn(t))+1}(a,Math.max(Math.abs(t),Math.abs(n))))||(e.precision=i-("e"===e.type));break;case"f":case"%":null!=e.precision||isNaN(i=function(t){return Math.max(0,-Jn(Math.abs(t)))}(a))||(e.precision=i-2*("%"===e.type))}return rr(e)}(e[0],e[e.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var e,i,a=n(),o=0,u=a.length-1,c=a[o],s=a[u],l=10;for(s<c&&(i=c,c=s,s=i,i=o,o=u,u=i);l-- >0;){if((i=Et(c,s,r))===e)return a[o]=c,a[u]=s,n(a);if(i>0)c=Math.floor(c/i)*i,s=Math.ceil(s/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,s=Math.floor(s*i)/i}e=i}return t},t}function ur(){var t=function(){var t,n,r,e,i,a,o=Hn,u=Hn,c=Ln,s=Vn;function l(){var t,n,r,c=Math.min(o.length,u.length);return s!==Vn&&((t=o[0])>(n=o[c-1])&&(r=t,t=n,n=r),s=function(r){return Math.max(t,Math.min(n,r))}),e=c>2?Xn:Dn,i=a=null,f}function f(n){return null==n||isNaN(n=+n)?r:(i||(i=e(o.map(t),u,c)))(t(s(n)))}return f.invert=function(r){return s(n((a||(a=e(u,o.map(t),zn)))(r)))},f.domain=function(t){return arguments.length?(o=Array.from(t,Fn),l()):o.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),l()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),c=In,l()},f.clamp=function(t){return arguments.length?(s=!!t||Vn,l()):s!==Vn},f.interpolate=function(t){return arguments.length?(c=t,l()):c},f.unknown=function(t){return arguments.length?(r=t,f):r},function(r,e){return t=r,n=e,l()}}()(Vn,Vn);return t.copy=function(){return n=t,ur().domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown());var n},Rt.apply(t,arguments),or(t)}function cr(){var t=or(function(){var t,n,r,e,i,a=0,o=1,u=Vn,c=!1;function s(n){return null==n||isNaN(n=+n)?i:u(0===r?.5:(n=(e(n)-t)*r,c?Math.max(0,Math.min(1,n)):n))}function l(t){return function(n){var r,e;return arguments.length?([r,e]=n,u=t(r,e),s):[u(0),u(1)]}}return s.domain=function(i){return arguments.length?([a,o]=i,t=e(a=+a),n=e(o=+o),r=t===n?0:1/(n-t),s):[a,o]},s.clamp=function(t){return arguments.length?(c=!!t,s):c},s.interpolator=function(t){return arguments.length?(u=t,s):u},s.range=l(Ln),s.rangeRound=l(In),s.unknown=function(t){return arguments.length?(i=t,s):i},function(i){return e=i,t=i(a),n=i(o),r=t===n?0:1/(n-t),s}}()(Vn));return t.copy=function(){return n=t,cr().domain(n.domain()).interpolator(n.interpolator()).clamp(n.clamp()).unknown(n.unknown());var n},Lt.apply(t,arguments)}function sr(t){return t}nr=function(t){var n,r,e=void 0===t.grouping||void 0===t.thousands?tr:(n=ir.call(t.grouping,Number),r=t.thousands+"",function(t,e){for(var i=t.length,a=[],o=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>e&&(u=Math.max(1,e-c)),a.push(t.substring(i-=u,i+u)),!((c+=u+1)>e));)u=n[o=(o+1)%n.length];return a.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?tr:function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(ir.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"−":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function f(t){var n=(t=Zn(t)).fill,r=t.align,f=t.sign,h=t.symbol,p=t.zero,d=t.width,m=t.comma,g=t.precision,v=t.trim,_=t.type;"n"===_?(m=!0,_="g"):Kn[_]||(void 0===g&&(g=12),v=!0,_="g"),(p||"0"===n&&"="===r)&&(p=!0,n="0",r="=");var y="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",b="$"===h?a:/[%p]/.test(_)?c:"",w=Kn[_],x=/[defgprs%]/.test(_);function M(t){var i,a,c,h=y,M=b;if("c"===_)M=w(t)+M,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?l:w(Math.abs(t),g),v&&(t=function(t){t:for(var n,r=t.length,e=1,i=-1;e<r;++e)switch(t[e]){case".":i=n=e;break;case"0":0===i&&(i=e),n=e;break;default:if(!+t[e])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),k&&0===+t&&"+"!==f&&(k=!1),h=(k?"("===f?f:s:"-"===f||"("===f?"":f)+h,M=("s"===_?ar[8+Qn/3]:"")+M+(k&&"("===f?")":""),x)for(i=-1,a=t.length;++i<a;)if(48>(c=t.charCodeAt(i))||c>57){M=(46===c?o+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}m&&!p&&(t=e(t,Infinity));var A=h.length+t.length+M.length,N=A<d?new Array(d-A+1).join(n):"";switch(m&&p&&(t=e(N+t,N.length?d-M.length:Infinity),N=""),r){case"<":t=h+t+M+N;break;case"=":t=h+N+t+M;break;case"^":t=N.slice(0,A=N.length>>1)+h+t+M+N.slice(A);break;default:t=N+h+t+M}return u(t)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),M.toString=function(){return t+""},M}return{format:f,formatPrefix:function(t,n){var r=f(((t=Zn(t)).type="f",t)),e=3*Math.max(-8,Math.min(8,Math.floor(Jn(n)/3))),i=Math.pow(10,-e),a=ar[8+e/3];return function(t){return r(i*t)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),rr=nr.format,er=nr.formatPrefix;var lr=1e-6;function fr(t){return"translate("+t+",0)"}function hr(t){return"translate(0,"+t+")"}function pr(t){return n=>+t(n)}function dr(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),r=>+t(r)+n}function mr(){return!this.__axis}function gr(t,n){var r=[],e=null,i=null,a=6,o=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,s=1===t||4===t?-1:1,l=4===t||2===t?"x":"y",f=1===t||3===t?fr:hr;function h(h){var p=null==e?n.ticks?n.ticks.apply(n,r):n.domain():e,d=null==i?n.tickFormat?n.tickFormat.apply(n,r):sr:i,m=Math.max(a,0)+u,g=n.range(),v=+g[0]+c,_=+g[g.length-1]+c,y=(n.bandwidth?dr:pr)(n.copy(),c),b=h.selection?h.selection():h,w=b.selectAll(".domain").data([null]),x=b.selectAll(".tick").data(p,n).order(),M=x.exit(),k=x.enter().append("g").attr("class","tick"),A=x.select("line"),N=x.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(k),A=A.merge(k.append("line").attr("stroke","currentColor").attr(l+"2",s*a)),N=N.merge(k.append("text").attr("fill","currentColor").attr(l,s*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==b&&(w=w.transition(h),x=x.transition(h),A=A.transition(h),N=N.transition(h),M=M.transition(h).attr("opacity",lr).attr("transform",function(t){return isFinite(t=y(t))?f(t+c):this.getAttribute("transform")}),k.attr("opacity",lr).attr("transform",function(t){var n=this.parentNode.__axis;return f((n&&isFinite(n=n(t))?n:y(t))+c)})),M.remove(),w.attr("d",4===t||2===t?o?"M"+s*o+","+v+"H"+c+"V"+_+"H"+s*o:"M"+c+","+v+"V"+_:o?"M"+v+","+s*o+"V"+c+"H"+_+"V"+s*o:"M"+v+","+c+"H"+_),x.attr("opacity",1).attr("transform",function(t){return f(y(t)+c)}),A.attr(l+"2",s*a),N.attr(l,s*m).text(d),b.filter(mr).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),b.each(function(){this.__axis=y})}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return r=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),h):r.slice()},h.tickValues=function(t){return arguments.length?(e=null==t?null:Array.from(t),h):e&&e.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(a=o=+t,h):a},h.tickSizeInner=function(t){return arguments.length?(a=+t,h):a},h.tickSizeOuter=function(t){return arguments.length?(o=+t,h):o},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}function vr(t){return gr(3,t)}function _r(t){return gr(4,t)}function yr(t){for(var n=t.length/6|0,r=new Array(n),e=0;e<n;)r[e]="#"+t.slice(6*e,6*++e);return r}var br,wr=yr("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),xr=qn((br=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(yr))[br.length-1]);function Mr(t){return function(){return t}}const kr=Math.abs,Ar=Math.atan2,Nr=Math.cos,$r=Math.max,Er=Math.min,qr=Math.sin,Sr=Math.sqrt,jr=1e-12,Or=Math.PI,zr=Or/2,Cr=2*Or;function Pr(t){return t>=1?zr:t<=-1?-zr:Math.asin(t)}const Tr=Math.PI,Rr=2*Tr,Lr=1e-6,Ir=Rr-Lr;function Fr(t){this._+=t[0];for(let n=1,r=t.length;n<r;++n)this._+=arguments[n]+t[n]}class Hr{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Fr:function(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Fr;const r=10**n;return function(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=Math.round(arguments[n]*r)/r+t[n]}}(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,e){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+e}`}bezierCurveTo(t,n,r,e,i,a){this._append`C${+t},${+n},${+r},${+e},${this._x1=+i},${this._y1=+a}`}arcTo(t,n,r,e,i){if(t=+t,n=+n,r=+r,e=+e,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,u=r-t,c=e-n,s=a-t,l=o-n,f=s*s+l*l;if(null===this._x1)this._append`M${this._x1=t},${this._y1=n}`;else if(f>Lr)if(Math.abs(l*u-c*s)>Lr&&i){let h=r-a,p=e-o,d=u*u+c*c,m=h*h+p*p,g=Math.sqrt(d),v=Math.sqrt(f),_=i*Math.tan((Tr-Math.acos((d+f-m)/(2*g*v)))/2),y=_/v,b=_/g;Math.abs(y-1)>Lr&&this._append`L${t+y*s},${n+y*l}`,this._append`A${i},${i},0,0,${+(l*h>s*p)},${this._x1=t+b*u},${this._y1=n+b*c}`}else this._append`L${this._x1=t},${this._y1=n}`}arc(t,n,r,e,i,a){if(t=+t,n=+n,a=!!a,(r=+r)<0)throw new Error(`negative radius: ${r}`);let o=r*Math.cos(e),u=r*Math.sin(e),c=t+o,s=n+u,l=1^a,f=a?e-i:i-e;null===this._x1?this._append`M${c},${s}`:(Math.abs(this._x1-c)>Lr||Math.abs(this._y1-s)>Lr)&&this._append`L${c},${s}`,r&&(f<0&&(f=f%Rr+Rr),f>Ir?this._append`A${r},${r},0,1,${l},${t-o},${n-u}A${r},${r},0,1,${l},${this._x1=c},${this._y1=s}`:f>Lr&&this._append`A${r},${r},0,${+(f>=Tr)},${l},${this._x1=t+r*Math.cos(i)},${this._y1=n+r*Math.sin(i)}`)}rect(t,n,r,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+e}h${-r}Z`}toString(){return this._}}function Vr(t){let n=3;return t.digits=function(r){if(!arguments.length)return n;if(null==r)n=null;else{const t=Math.floor(r);if(!(t>=0))throw new RangeError(`invalid digits: ${r}`);n=t}return t},()=>new Hr(n)}function Br(t){return t.innerRadius}function Dr(t){return t.outerRadius}function Xr(t){return t.startAngle}function Gr(t){return t.endAngle}function Jr(t){return t&&t.padAngle}function Qr(t,n,r,e,i,a,o){var u=t-r,c=n-e,s=(o?a:-a)/Sr(u*u+c*c),l=s*c,f=-s*u,h=t+l,p=n+f,d=r+l,m=e+f,g=(h+d)/2,v=(p+m)/2,_=d-h,y=m-p,b=_*_+y*y,w=i-a,x=h*m-d*p,M=(y<0?-1:1)*Sr($r(0,w*w*b-x*x)),k=(x*y-_*M)/b,A=(-x*_-y*M)/b,N=(x*y+_*M)/b,$=(-x*_+y*M)/b,E=k-g,q=A-v,S=N-g,j=$-v;return E*E+q*q>S*S+j*j&&(k=N,A=$),{cx:k,cy:A,x01:-l,y01:-f,x11:k*(i/w-1),y11:A*(i/w-1)}}function Ur(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Zr(t){this._context=t}function Wr(t){return new Zr(t)}function Yr(t){return t[0]}function Kr(t){return t[1]}function te(t,n){var r=Mr(!0),e=null,i=Wr,a=null,o=Vr(u);function u(u){var c,s,l,f=(u=Ur(u)).length,h=!1;for(null==e&&(a=i(l=o())),c=0;c<=f;++c)!(c<f&&r(s=u[c],c,u))===h&&((h=!h)?a.lineStart():a.lineEnd()),h&&a.point(+t(s,c,u),+n(s,c,u));if(l)return a=null,l+""||null}return t="function"==typeof t?t:void 0===t?Yr:Mr(t),n="function"==typeof n?n:void 0===n?Kr:Mr(n),u.x=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:Mr(+t),u):n},u.defined=function(t){return arguments.length?(r="function"==typeof t?t:Mr(!!t),u):r},u.curve=function(t){return arguments.length?(i=t,null!=e&&(a=i(e)),u):i},u.context=function(t){return arguments.length?(null==t?e=a=null:a=i(e=t),u):e},u}function ne(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function re(t){return t}function ee(t,n,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+r)/6)}function ie(t){this._context=t}function ae(t){return new ie(t)}Zr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}},ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ee(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ee(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var oe=0,ue={width:400,height:400,color:"#000",background:"#fff",title:"",xlabel:"",ylabel:""};function ce(n,r){var e,i=t({},ue,r),a=n;if(!a){a="#datly-plot-"+oe++;var o=document.createElement("div");o.id=a.replace("#",""),document.body.appendChild(o)}return(e=ct(a)).html(""),e.style("background",i.background).style("display","inline-block"),i.title&&e.append("h3").style("text-align","center").style("font-family","sans-serif").style("margin-bottom","5px").text(i.title),{svg:e.append("svg").attr("width",i.width).attr("height",i.height).style("background",i.background),config:i}}function se(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=ur().domain(mt(t)).nice().range([0,u]),l=ur().domain(mt(n)).nice().range([c,0]),f=a.append("g").attr("transform","translate(40,20)");f.selectAll("circle").data(t).enter().append("circle").attr("cx",function(n,r){return s(t[r])}).attr("cy",function(t,r){return l(n[r])}).attr("r",r.size||4).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))}var le=function(t){return"number"==typeof t&&Number.isFinite(t)},fe=function(t){return null==t||""===t?NaN:Number(t)},he=function(t){return t.reduce(function(t,n){return t.concat(n)},[])},pe=function(t){return t.map(fe).filter(function(t){return Number.isFinite(t)})},de=function(t){return Array.from(new Set(t))},me=function(t){return pe(t).reduce(function(t,n){return t+n},0)},ge=function(t){var n=pe(t),r=n.length;return r?me(n)/r:NaN},ve=function(t,n){void 0===n&&(n=!0);var r=pe(t),e=r.length;if(e<2)return NaN;var i=ge(r);return r.reduce(function(t,n){return t+Math.pow(n-i,2)},0)/(n?e-1:e)},_e=function(t,n){return void 0===n&&(n=!0),Math.sqrt(ve(t,n))},ye=function(t){return Math.min.apply(Math,pe(t))},be=function(t){return Math.max.apply(Math,pe(t))},we=function(t){var n=pe(t).sort(function(t,n){return t-n}),r=n.length;if(!r)return NaN;var e=Math.floor(r/2);return r%2?n[e]:(n[e-1]+n[e])/2},xe=function(t,n){var r=pe(t).sort(function(t,n){return t-n}),e=r.length;if(!e)return NaN;var i=(e-1)*n,a=Math.floor(i),o=i-a;return r[a]+(r[Math.min(a+1,e-1)]-r[a])*o},Me=function(t){var n=pe(t),r=n.length;if(r<3)return NaN;var e=ge(n),i=_e(n,!0);return n.reduce(function(t,n){return t+Math.pow(n-e,3)},0)/r/Math.pow(i,3)*Math.sqrt(r*(r-1))/(r-2)},ke=function(t){var n=pe(t),r=n.length;if(r<4)return NaN;var e=ge(n),i=ve(n,!0);return n.reduce(function(t,n){return t+Math.pow(n-e,4)},0)/r/Math.pow(i,2)-3},Ae=function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return NaN;for(var a=r.slice(0,i),o=e.slice(0,i),u=ge(a),c=ge(o),s=0,l=0,f=0,h=0;h<i;h++){var p=a[h]-u,d=o[h]-c;s+=p*d,l+=p*p,f+=d*d}return s/Math.sqrt(l*f)},Ne=function(t){for(var n=pe(t).map(function(t,n){return{v:t,i:n}}).sort(function(t,n){return t.v-n.v}),r=Array(t.length).fill(NaN),e=0;e<n.length;){for(var i=e;i+1<n.length&&n[i+1].v===n[e].v;)i++;for(var a=(e+i)/2+1,o=e;o<=i;o++)r[n[o].i]=a;e=i+1}return r.filter(Number.isFinite)},$e=function(t,n){return Ae(Ne(t),Ne(n))},Ee=function(t){return Math.exp(-.5*t*t)/Math.sqrt(2*Math.PI)},qe=function(t){return.5*(1+Se(t/Math.SQRT2))},Se=function(t){var n=Math.sign(t),r=1/(1+.3275911*(t=Math.abs(t)));return n*(1-((((1.061405429*r-1.453152027)*r+1.421413741)*r-.284496736)*r+.254829592)*r*Math.exp(-t*t))},je=function(t){return t<=0||t>=1?NaN:Math.SQRT2*function(t){var n=Math.log(1-t*t),r=2/(.147*Math.PI)+n/2;return Math.sign(t)*Math.sqrt(Math.sqrt(r*r-n/.147)-r)}(2*t-1)},Oe=function(t){var n=function(t){return Array.isArray(t)?t.map(n):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).map(function(t){var r=t[1];return[String(t[0]).toLowerCase(),n(r)]})):"number"==typeof t&&Number.isFinite(t)?Number(Number(t).toPrecision(12)):t},r=n(t),e=[],i=function(t,n){void 0===n&&(n=0);var r=" ".repeat(n);Array.isArray(t)?(e.push(r+"- list:"),t.forEach(function(t){return i(t,n+2)})):t&&"object"==typeof t?Object.keys(t).forEach(function(a){var o=t[a];o&&"object"==typeof o?(e.push(r+a+":"),i(o,n+2)):e.push(r+a+": "+String(o).toLowerCase())}):e.push(r+String(t).toLowerCase())};return i(r),e.join("\n")},ze=function(n,r){return Oe(t({type:n},r))},Ce=function(t,n){return Oe({type:t,error:n})},Pe=function(t){if(!Array.isArray(t)||!t.length)return Ce("describe","empty data");var n=de(he(t.map(function(t){return Object.keys(t)}))),r={type:"describe",columns:{}};return n.forEach(function(n){var e=t.map(function(t){return t[n]}),i=e.map(fe).filter(Number.isFinite),a=e.filter(function(t){return null==t||"number"==typeof t&&!Number.isFinite(t)||""===t}).length,o=i.length===e.length?"number":e.every(function(t){return"boolean"==typeof t})?"boolean":"string",u={dtype:o,count:e.length,missing:a};if("number"===o)u.mean=ge(i),u.std=_e(i),u.min=ye(i),u.q1=xe(i,.25),u.median=we(i),u.q3=xe(i,.75),u.max=be(i),u.skewness=Me(i),u.kurtosis=ke(i);else if("string"===o||"boolean"===o){var c={};e.forEach(function(t){var n=String(t);c[n]=(c[n]||0)+1});var s=Object.entries(c).sort(function(t,n){return n[1]-t[1]}).slice(0,10);u.top=s.map(function(t){return{value:t[0],freq:t[1]}}),u.unique=Object.keys(c).length}r.columns[n]=u}),Oe(r)},Te=function(t){if(!Array.isArray(t)||!t.length)return Ce("missing_report","empty data");var n=de(he(t.map(function(t){return Object.keys(t)}))).map(function(n){var r=t.map(function(t){return t[n]}),e=r.filter(function(t){return null==t||""===t}).length;return{column:n,missing:e,missing_rate:e/r.length}});return Oe({type:"missing_report",rows:n})},Re=function(t,n){void 0===n&&(n="pearson");var r=de(he(t.map(function(t){return Object.keys(t)}))).filter(function(n){return t.every(function(t){return Number.isFinite(fe(t[n]))||null==t[n]})}),e={};return r.forEach(function(i){e[i]={};var a=t.map(function(t){return fe(t[i])});r.forEach(function(r){var o=t.map(function(t){return fe(t[r])}),u="spearman"===n?$e(a,o):Ae(a,o);e[i][r]=u})}),Oe({type:"correlation_matrix",method:n,matrix:e})},Le=function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_cdf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return qe((t-n)/r)}):qe((t-n)/r)})},Ie=function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_ppf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return n+r*je(t)}):n+r*je(t)})},Fe=function(t,n){var r=n/2,e=n/(n+t*t),i=Math.pow(e,r)*Math.pow(1-e,.5)/r*function(t,n,r){for(var e,i=1,a=1,o=1,u=t+.5,c=t+1,s=t-1,l=1-u*r/c,f=1;f<=200;f++){var h=f+f,p=f*(.5-f)*r/((s+h)*(t+h)),d=o+p*i,m=l+p*a,g=m+(p=-(t+f)*(u+f)*r/((t+h)*(c+h)))*l;if(e=o,i=d/g,a=m/g,o=(d+p*o)/g,l=1,Math.abs(o-e)<3e-7*Math.abs(o))return o}return o}(r,0,e),a=.5*i;return t>=0?1-a:a},He=function(t,n){for(var r=t.length,e=n[0].length,i=n.length,a=Array(r).fill(0).map(function(){return Array(e).fill(0)}),o=0;o<r;o++)for(var u=0;u<e;u++){for(var c=0,s=0;s<i;s++)c+=t[o][s]*n[s][u];a[o][u]=c}return a},Ve=function(t,n){var r,e,i=function(t){return t.map(function(t){return[1].concat(t)})}(t),a=function(t,n){void 0===n&&(n=1e-8);for(var r=function(t){return t[0].map(function(n,r){return t.map(function(t){return t[r]})})}(t),e=He(r,t),i=e.length,a=0;a<i;a++)e[a][a]+=n;var o=function(t){for(var n=t.length,r=t.map(function(t,r){return t.concat(Array.from({length:n},function(t,n){return r===n?1:0}))}),e=0;e<n;e++){for(var i=r[e][e],a=e,o=e+1;o<n;o++)Math.abs(r[o][e])>Math.abs(i)&&(i=r[o][e],a=o);if(a!==e){var u=r[e];r[e]=r[a],r[a]=u}var c=r[e][e];if(!(Math.abs(c)<1e-12)){for(var s=0;s<2*n;s++)r[e][s]/=c;for(var l=0;l<n;l++)if(l!==e)for(var f=r[l][e],h=0;h<2*n;h++)r[l][h]-=f*r[e][h]}}return r.map(function(t){return t.slice(n)})}(e);return He(o,r)}(i),o=He(a,n.map(function(t){return[t]})).map(function(t){return t[0]}),u=t.map(function(t){return o[0]+t.reduce(function(t,n,r){return t+o[r+1]*n},0)}),c=n.map(function(t,n){return t-u[n]}),s=ge(c.map(function(t){return t*t})),l=1-me(c.map(function(t){return t*t}))/me(n.map(function(t){return Math.pow(t-ge(n),2)})),f={type:"linear_regression",weights:o,mse:s,r2:l,n:n.length,p:null!=(r=null==(e=t[0])?void 0:e.length)?r:0};return Oe(f)},Be=function(t){return 1/(1+Math.exp(-t))},De=function(t,n,r){var e,i,a,o,u;void 0===r&&(r={});for(var c=null!=(e=r.learning_rate)?e:.1,s=null!=(i=r.iterations)?i:1e3,l=null!=(a=r.l2)?a:0,f=null!=(o=null==(u=t[0])?void 0:u.length)?o:0,h=Array(f+1).fill(0),p=t.map(function(t){return[1].concat(t)}),d=0;d<s;d++){for(var m=Array(f+1).fill(0),g=function(t){for(var r=h.reduce(function(n,r,e){return n+r*p[t][e]},0),e=Be(r)-n[t],i=0;i<m.length;i++)m[i]+=e*p[t][i]},v=0;v<p.length;v++)g(v);for(var _=0;_<h.length;_++)m[_]=m[_]/p.length+l*h[_],h[_]-=c*m[_]}var y=t.map(function(t){return Be(h[0]+t.reduce(function(t,n,r){return t+h[r+1]*n},0))}),b=y.map(function(t){return t>=.5?1:0}),w=b.filter(function(t,r){return t===n[r]}).length/n.length;return Oe({type:"logistic_regression",weights:h,accuracy:w,n:n.length,p:f})},Xe=function(t,n){try{var r,e=JSON.parse(JSON.stringify(Je(t))),i=e.weights||(null==(r=e.model)?void 0:r.weights);if(!i)return Ce("predict_linear","invalid model");var a=n.map(function(t){return i[0]+t.reduce(function(t,n,r){return t+i[r+1]*n},0)});return Oe({type:"prediction",name:"linear_regression",predictions:a})}catch(t){return Ce("predict_linear","invalid model text")}},Ge=function(t,n,r){void 0===r&&(r=.5);try{var e,i=JSON.parse(JSON.stringify(Je(t))),a=i.weights||(null==(e=i.model)?void 0:e.weights);if(!a)return Ce("predict_logistic","invalid model");var o=n.map(function(t){return Be(a[0]+t.reduce(function(t,n,r){return t+a[r+1]*n},0))}),u=o.map(function(t){return t>=r?1:0});return Oe({type:"prediction",name:"logistic_regression",threshold:r,probabilities:o,classes:u})}catch(t){return Ce("predict_logistic","invalid model text")}},Je=function(t){var n=function(t){return Array.isArray(t)?t.map(n):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).map(function(t){var r=t[1];return[String(t[0]).toLowerCase(),n(r)]})):t};return n(function(t){try{return"string"==typeof t?JSON.parse(t):t}catch(t){return{}}}(t))},Qe=function(t,n){for(var r=Math.min(t.length,n.length),e=0,i=0,a=0,o=0,u=0;u<r;u++)1===n[u]&&1===t[u]?e++:0===n[u]&&0===t[u]?i++:1===n[u]&&0===t[u]?a++:0===n[u]&&1===t[u]&&o++;var c=e+a?e/(e+a):0,s=e+o?e/(e+o):0;return Oe({type:"metric",name:"classification_report",confusion_matrix:{tp:e,fp:a,tn:i,fn:o},accuracy:(e+i)/r,precision:c,recall:s,f1:c+s?2*c*s/(c+s):0})},Ue=function(t,n){var r=Math.min(t.length,n.length),e=Array.from({length:r},function(r,e){return t[e]-n[e]}),i=ge(e.map(function(t){return t*t})),a=ge(e.map(function(t){return Math.abs(t)})),o=1-me(e.map(function(t){return t*t}))/me(t.map(function(n){return Math.pow(n-ge(t),2)}));return Oe({type:"metric",name:"regression_report",mse:i,mae:a,r2:o})},Ze=function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("corr_kendall","insufficient data");for(var a=0,o=0,u=0;u<i-1;u++)for(var c=u+1;c<i;c++){var s=r[c]-r[u],l=e[c]-e[u];s*l>0?a++:s*l<0&&o++}return ze("statistic",{name:"kendall_tau",value:(a-o)/(.5*i*(i-1)),concordant:a,discordant:o,n:i})},We=function(t,n){return Math.sqrt(t.reduce(function(t,r,e){return t+Math.pow(r-n[e],2)},0))},Ye=function(t,n,r){var e,i;if(void 0===r&&(r=5),t.length!==n.length)return Ce("train_knn_classifier","X and y length mismatch");var a={type:"knn_classifier",k:r,X:t,y:n,n:n.length,p:null!=(e=null==(i=t[0])?void 0:i.length)?e:0};return Oe(a)},Ke=function(t,n){try{var r=Je(t);if("knn_classifier"!==r.type)return Ce("predict_knn_classifier","invalid model type");var e=r.k,i=r.x,a=r.y,o=n.map(function(t){var n=i.map(function(n,r){return{dist:We(t,n),label:a[r]}});n.sort(function(t,n){return t.dist-n.dist});var r=n.slice(0,e),o={};r.forEach(function(t){var n=t.label;o[n]=(o[n]||0)+1});var u=Object.entries(o).sort(function(t,n){return n[1]-t[1]})[0][0];return Number(u)});return Oe({type:"prediction",name:"knn_classifier",k:e,predictions:o})}catch(t){return Ce("predict_knn_classifier","invalid model text")}},ti=function(t,n){try{var r=Je(t);if("knn_regressor"!==r.type)return Ce("predict_knn_regressor","invalid model type");var e=r.k,i=r.x,a=r.y,o=n.map(function(t){var n=i.map(function(n,r){return{dist:We(t,n),value:a[r]}});n.sort(function(t,n){return t.dist-n.dist});var r=n.slice(0,e);return ge(r.map(function(t){return t.value}))});return Oe({type:"prediction",name:"knn_regressor",k:e,predictions:o})}catch(t){return Ce("predict_knn_regressor","invalid model text")}},ni=function(t){var n={};t.forEach(function(t){n[t]=(n[t]||0)+1});var r=t.length;return 1-Object.values(n).reduce(function(t,n){return t+Math.pow(n/r,2)},0)},ri=function(t){var n=ge(t);return ge(t.map(function(t){return Math.pow(t-n,2)}))},ei=function(t,n,r,e,i,a){if(r>=e||n.length<i){var o="classification"===a?Object.entries(n.reduce(function(t,n){return t[n]=(t[n]||0)+1,t},{})).sort(function(t,n){return n[1]-t[1]})[0][0]:ge(n);return{leaf:!0,prediction:Number(o),n:n.length}}var u=function(t,n,r){void 0===r&&(r="classification");for(var e={feature:-1,threshold:0,score:Infinity},i=t[0].length,a=function(i){for(var a=de(t.map(function(t){return t[i]})).sort(function(t,n){return t-n}),o=function(){var o=(a[u]+a[u+1])/2,c=[],s=[];if(t.forEach(function(t,n){t[i]<=o?c.push(n):s.push(n)}),0===c.length||0===s.length)return 1;var l,f=c.map(function(t){return n[t]}),h=s.map(function(t){return n[t]});(l="classification"===r?f.length/n.length*ni(f)+h.length/n.length*ni(h):f.length/n.length*ri(f)+h.length/n.length*ri(h))<e.score&&(e={feature:i,threshold:o,score:l})},u=0;u<a.length-1;u++)o()},o=0;o<i;o++)a(o);return e}(t,n,a);if(-1===u.feature){var c="classification"===a?Object.entries(n.reduce(function(t,n){return t[n]=(t[n]||0)+1,t},{})).sort(function(t,n){return n[1]-t[1]})[0][0]:ge(n);return{leaf:!0,prediction:Number(c),n:n.length}}var s=[],l=[];t.forEach(function(t,n){t[u.feature]<=u.threshold?s.push(n):l.push(n)});var f=s.map(function(n){return t[n]}),h=s.map(function(t){return n[t]}),p=l.map(function(n){return t[n]}),d=l.map(function(t){return n[t]});return{leaf:!1,feature:u.feature,threshold:u.threshold,left:ei(f,h,r+1,e,i,a),right:ei(p,d,r+1,e,i,a)}},ii=function(t,n,r){var e,i,a,o;void 0===r&&(r={});var u=null!=(e=r.max_depth)?e:5,c=null!=(i=r.min_samples_split)?i:2,s={type:"decision_tree_classifier",tree:ei(t,n,0,u,c,"classification"),max_depth:u,min_samples:c,n:n.length,p:null!=(a=null==(o=t[0])?void 0:o.length)?a:0};return Oe(s)},ai=function(t,n,r){var e,i,a,o;void 0===r&&(r={});var u=null!=(e=r.max_depth)?e:5,c=null!=(i=r.min_samples_split)?i:2,s={type:"decision_tree_regressor",tree:ei(t,n,0,u,c,"regression"),max_depth:u,min_samples:c,n:n.length,p:null!=(a=null==(o=t[0])?void 0:o.length)?a:0};return Oe(s)},oi=function(t,n){return t.leaf?t.prediction:oi(n[t.feature]<=t.threshold?t.left:t.right,n)},ui=function(t,n){try{var r=Je(t),e=n.map(function(t){return oi(r.tree,t)});return Oe({type:"prediction",name:r.type,predictions:e})}catch(t){return Ce("predict_decision_tree","invalid model text")}},ci=function(t,n,r){var e=t.length,i=r,a=Array.from({length:e},function(){return Math.floor((i=(9301*i+49297)%233280)/233280*e)});return{X_boot:a.map(function(n){return t[n]}),y_boot:a.map(function(t){return n[t]})}},si=function(t,n,r){var e,i,a,o,u,c;void 0===r&&(r={});for(var s=null!=(e=r.n_estimators)?e:10,l=null!=(i=r.max_depth)?i:5,f=null!=(a=r.min_samples_split)?a:2,h=null!=(o=r.seed)?o:42,p=[],d=0;d<s;d++){var m=ci(t,n,h+d),g=Je(ii(m.X_boot,m.y_boot,{max_depth:l,min_samples:f}));p.push(g.tree)}var v={type:"random_forest_classifier",trees:p,n_trees:s,max_depth:l,min_samples:f,n:n.length,p:null!=(u=null==(c=t[0])?void 0:c.length)?u:0};return Oe(v)},li=function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.trees.map(function(n){return oi(n,t)}),e={};return n.forEach(function(t){e[t]=(e[t]||0)+1}),Number(Object.entries(e).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"prediction",name:"random_forest_classifier",n_trees:r.n_trees,predictions:e})}catch(t){return Ce("predict_random_forest_classifier","invalid model text")}},fi=function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.trees.map(function(n){return oi(n,t)});return ge(n)});return Oe({type:"prediction",name:"random_forest_regressor",n_trees:r.n_trees,predictions:e})}catch(t){return Ce("predict_random_forest_regressor","invalid model text")}},hi=function(t,n){try{var r=Je(t),e=n.map(function(t){var n={};return r.classes.forEach(function(e){var i=Math.log(r.priors[e]);r.stats[e].forEach(function(n,r){var e=(t[r]-n.mean)/n.std;i+=-.5*e*e-Math.log(n.std)-.5*Math.log(2*Math.PI)}),n[e]=i}),Number(Object.entries(n).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"prediction",name:"naive_bayes",predictions:e})}catch(t){return Ce("predict_naive_bayes","invalid model text")}},pi=function(t,n){var r=Array(n).fill(0),e=function(t,n){t.leaf||(r[t.feature]+=n,e(t.left,n),e(t.right,n))};e(t,1);var i=r.reduce(function(t,n){return t+n},0);return r.map(function(t){return i>0?t/i:0})},di={dataframe_from_json:function(t){try{var n=Array.isArray(t)?t:"object"==typeof t?[t]:[],r=de(he(n.map(function(t){return Object.keys(t)}))),e=n.map(function(t){return r.map(function(n){var r;return null!=(r=t[n])?r:null})}),i=r.map(function(t,n){var r=e.map(function(t){return t[n]}).filter(function(t){return null!=t});return r.map(fe).filter(Number.isFinite).length===r.length?"number":r.every(function(t){return"boolean"==typeof t})?"boolean":"string"});return ze("dataframe",{columns:r,n_rows:e.length,n_cols:r.length,dtypes:i,preview:n.slice(0,5)})}catch(t){return Ce("dataframe","invalid input")}},df_describe:Pe,df_missing_report:Te,df_corr:Re,eda_overview:function(t){var n,r,e,i=Je(Pe(t)),a=Je(Te(t)),o=Je(Re(t,"pearson"));return Oe({type:"eda",summary:null!=(n=i.columns)?n:i,missing:null!=(r=a.rows)?r:a,correlation:null!=(e=o.matrix)?e:o})},mean:function(t){return ze("statistic",{name:"mean",n:pe(t).length,value:ge(t)})},stddeviation:function(t,n){return void 0===n&&(n=!0),ze("statistic",{name:"std_deviation",sample:n,n:pe(t).length,value:_e(t,n)})},variance:function(t,n){return void 0===n&&(n=!0),ze("statistic",{name:"variance",sample:n,n:pe(t).length,value:ve(t,n)})},median:function(t){return ze("statistic",{name:"median",n:pe(t).length,value:we(t)})},quantile:function(t,n){return ze("statistic",{name:"quantile",q:n,n:pe(t).length,value:xe(t,n)})},minv:function(t){return ze("statistic",{name:"min",value:ye(t)})},maxv:function(t){return ze("statistic",{name:"max",value:be(t)})},skewness:function(t){return ze("statistic",{name:"skewness",value:Me(t)})},kurtosis:function(t){return ze("statistic",{name:"kurtosis",value:ke(t)})},corr_pearson:function(t,n){return ze("statistic",{name:"pearson_correlation",value:Ae(t,n)})},corr_spearman:function(t,n){return ze("statistic",{name:"spearman_correlation",value:$e(t,n)})},normal_pdf:function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_pdf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return Ee((t-n)/r)/r}):Ee((t-n)/r)/r})},normal_cdf:Le,normal_ppf:Ie,binomial_pmf:function(t,n,r){var e=function(t){return function(t,n){if(n<0||n>t)return 0;n=Math.min(n,t-n);for(var r=1,e=1,i=1;i<=n;i++)r*=t-(n-i),e*=i;return r/e}(n,t)*Math.pow(r,t)*Math.pow(1-r,n-t)},i=Array.isArray(t)?t.map(e):e(t);return ze("distribution",{name:"binomial_pmf",params:{n:n,p:r},value:i})},binomial_cdf:function(t,n,r){var e=function(t){for(var e=0,i=0;i<=t;i++)e+=function(t,n){if(n<0||n>t)return 0;n=Math.min(n,t-n);for(var r=1,e=1,i=1;i<=n;i++)r*=t-(n-i),e*=i;return r/e}(n,i)*Math.pow(r,i)*Math.pow(1-r,n-i);return e},i=Array.isArray(t)?t.map(e):e(t);return ze("distribution",{name:"binomial_cdf",params:{n:n,p:r},value:i})},poisson_pmf:function(t,n){var r=function(t){return Math.exp(-n)*Math.pow(n,t)/function(t){for(var n=1,r=2;r<=t;r++)n*=r;return n}(t)};return ze("distribution",{name:"poisson_pmf",params:{lambda:n},value:Array.isArray(t)?t.map(r):r(t)})},poisson_cdf:function(t,n){var r=function(t){for(var r=0,e=0;e<=t;e++)r+=Math.exp(-n)*Math.pow(n,e)/function(t){for(var n=1,r=2;r<=t;r++)n*=r;return n}(e);return r};return ze("distribution",{name:"poisson_cdf",params:{lambda:n},value:Array.isArray(t)?t.map(r):r(t)})},t_test_independent:function(t,n,r){void 0===r&&(r=!0);var e=pe(t),i=pe(n),a=e.length,o=i.length;if(a<2||o<2)return Ce("t_test_independent","insufficient data");var u,c,s=ge(e),l=ge(i),f=ve(e,!0),h=ve(i,!0);r?(c=Math.sqrt(((a-1)*f+(o-1)*h)/(a+o-2)*(1/a+1/o)),u=a+o-2):(c=Math.sqrt(f/a+h/o),u=Math.pow(f/a+h/o,2)/(Math.pow(f,2)/(Math.pow(a,2)*(a-1))+Math.pow(h,2)/(Math.pow(o,2)*(o-1))));var p=(s-l)/c,d=2*(1-Fe(Math.abs(p),u));return Oe({type:"hypothesis_test",name:"independent_t_test",statistic:p,df:u,p_value:d,means:{group_a:s,group_b:l}})},z_test_one_sample:function(t,n,r,e){void 0===n&&(n=0),void 0===r&&(r=null),void 0===e&&(e=.05);var i=pe(t),a=i.length;if(a<2)return Ce("z_test_one_sample","insufficient data");var o=ge(i),u=null!=r?r:_e(i,!0),c=u/Math.sqrt(a),s=(o-n)/c,l=2*(1-Le(Math.abs(s))),f=Ie(1-e/2)*c;return Oe({type:"hypothesis_test",name:"one_sample_z_test",statistic:s,p_value:l,ci_lower:o-f,ci_upper:o+f,confidence:1-e,extra:{sample_mean:o,hypothesized_mean:n,se:c,sigma_used:u,n:a,effect_size:(o-n)/u}})},chi_square_independence:function(t,n){void 0===n&&(n=.05);var r=t.length,e=t[0].length,i=t.map(function(t){return t.reduce(function(t,n){return t+n},0)}),a=Array(e).fill(0);t.forEach(function(t){return t.forEach(function(t,n){return a[n]+=t})});for(var o=i.reduce(function(t,n){return t+n},0),u=0,c=Array.from({length:r},function(t,n){return Array.from({length:e},function(t,r){return i[n]*a[r]/o})}),s=0;s<r;s++)for(var l=0;l<e;l++)u+=Math.pow(t[s][l]-c[s][l],2)/c[s][l];var f=(r-1)*(e-1),h=1-chi_square_cdf(u,f);return Oe({type:"hypothesis_test",name:"chi_square_independence",statistic:u,df:f,p_value:h,confidence:1-n,extra:{observed:t,expected:c,dof:f}})},anova_oneway:function(t,n){void 0===n&&(n=.05);var r=t.length,e=t.map(function(t){return pe(t).length}),i=t.map(ge),a=ge(t.flat()),o=t.reduce(function(t,n,r){return t+e[r]*Math.pow(i[r]-a,2)},0),u=t.reduce(function(t,n,r){return t+pe(n).reduce(function(t,n){return t+Math.pow(n-i[r],2)},0)},0),c=r-1,s=e.reduce(function(t,n){return t+n},0)-r,l=o/c/(u/s),f=1-f_cdf(l,c,s);return Oe({type:"hypothesis_test",name:"anova_oneway",statistic:l,df:{between:c,within:s},p_value:f,confidence:1-n,extra:{group_means:i,grand_mean:a,ssb:o,ssw:u}})},train_test_split:function(t,n,r,e){void 0===r&&(r=.2),void 0===e&&(e=42);var i=t.length,a=Array.from({length:i},function(t,n){return n}),o=e;a.sort(function(){return(o=(9301*o+49297)%233280)/233280-.5});var u=Math.max(1,Math.floor(i*r)),c=a.slice(0,u),s=a.slice(u),l=s.map(function(n){return t[n]}),f=s.map(function(t){return n[t]});c.map(function(n){return t[n]});var h=c.map(function(t){return n[t]});return Oe({type:"split",sizes:{train:f.length,test:h.length},indices:{train:s,test:c},preview:{x_train:l.slice(0,2),y_train:f.slice(0,5)}})},train_linear_regression:Ve,train_logistic_regression:De,predict_linear:Xe,predict_logistic:Ge,metrics_classification:Qe,metrics_regression:Ue,t_test_paired:function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("t_test_paired","insufficient data");var a=Array.from({length:i},function(t,n){return r[n]-e[n]}),o=ge(a),u=o/(_e(a,!0)/Math.sqrt(i)),c=i-1,s=2*(1-Fe(Math.abs(u),c));return Oe({type:"hypothesis_test",name:"paired_t_test",statistic:u,df:c,p_value:s,mean_difference:o})},t_test_one_sample:function(t,n){var r=pe(t),e=r.length;if(e<2)return Ce("t_test_one_sample","insufficient data");var i=ge(r),a=(i-n)/(_e(r,!0)/Math.sqrt(e)),o=e-1,u=2*(1-Fe(Math.abs(a),o));return Oe({type:"hypothesis_test",name:"one_sample_t_test",statistic:a,df:o,p_value:u,mean:i,hypothesized_mean:n})},shapiro_wilk:function(t){var n=pe(t).sort(function(t,n){return t-n}),r=n.length;if(r<3||r>5e3)return Ce("shapiro_wilk","sample size must be between 3 and 5000");for(var e=ge(n),i=n.reduce(function(t,n){return t+Math.pow(n-e,2)},0),a=0,o=Math.floor(r/2),u=0;u<o;u++)a+=(0===u?-2.706056/Math.sqrt(r):u===o-1&&r%2==0?2.706056/Math.sqrt(r):0)*(n[r-1-u]-n[u]);return Oe({type:"hypothesis_test",name:"shapiro_wilk",statistic:a*a/i,n:r,note:"approximation; w > 0.9 suggests normality"})},jarque_bera:function(t){var n=pe(t),r=n.length;if(r<4)return Ce("jarque_bera","insufficient data");var e=Me(n),i=ke(n);return Oe({type:"hypothesis_test",name:"jarque_bera",statistic:r/6*(e*e+i*i/4),n:r,df:2,note:"tests normality; low p-value rejects normality"})},levene_test:function(t){var n=t.length,r=t.map(we),e=t.map(function(t,n){return pe(t).map(function(t){return Math.abs(t-r[n])})}),i=he(e),a=we(i),o=e.map(function(t){return t.length}),u=o.reduce(function(t,n){return t+n},0),c=e.reduce(function(t,n,r){return t+o[r]*Math.pow(ge(n)-a,2)},0),s=e.reduce(function(t,n){return t+n.reduce(function(t,r){return t+Math.pow(r-ge(n),2)},0)},0),l=n-1,f=u-n;return Oe({type:"hypothesis_test",name:"levene_test",statistic:c/l/(s/f),df_between:l,df_within:f,note:"tests homogeneity of variance"})},kruskal_wallis:function(t){var n=he(t),r=n.length,e=Ne(n),i=0,a=12/(r*(r+1))*t.map(function(t){var n=pe(t).length,r=e.slice(i,i+n).reduce(function(t,n){return t+n},0);return i+=n,{n:n,rsum:r}}).reduce(function(t,n){var r=n.rsum;return t+r*r/n.n},0)-3*(r+1);return Oe({type:"hypothesis_test",name:"kruskal_wallis",statistic:a,df:t.length-1,note:"non-parametric alternative to anova"})},mann_whitney:function(t,n){var r=pe(t),e=pe(n),i=r.length,a=e.length;if(i<1||a<1)return Ce("mann_whitney","insufficient data");var o=r.concat(e),u=Ne(o).slice(0,i).reduce(function(t,n){return t+n},0)-i*(i+1)/2,c=Math.min(u,i*a-u),s=(c-i*a/2)/Math.sqrt(i*a*(i+a+1)/12),l=2*(1-qe(Math.abs(s)));return Oe({type:"hypothesis_test",name:"mann_whitney_u",statistic:c,z_score:s,p_value:l,note:"non-parametric alternative to t-test"})},wilcoxon_signed_rank:function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("wilcoxon_signed_rank","insufficient data");var a=Array.from({length:i},function(t,n){return r[n]-e[n]}).filter(function(t){return 0!==t}),o=a.map(Math.abs),u=Ne(o).reduce(function(t,n,r){return t+(a[r]>0?n:0)},0),c=a.length,s=(u-c*(c+1)/4)/Math.sqrt(c*(c+1)*(2*c+1)/24),l=2*(1-qe(Math.abs(s)));return Oe({type:"hypothesis_test",name:"wilcoxon_signed_rank",statistic:u,z_score:s,p_value:l,n:c})},chi_square_goodness:function(t,n,r){void 0===r&&(r=.05);for(var e=pe(t),i=pe(n),a=Math.min(e.length,i.length),o=0,u=0;u<a;u++)o+=Math.pow(e[u]-i[u],2)/i[u];var c=a-1,s=1-chi_square_cdf(o,c);return Oe({type:"hypothesis_test",name:"chi_square_goodness_of_fit",statistic:o,df:c,p_value:s,confidence:1-r,extra:{observed:e,expected:i,dof:c}})},confidence_interval_mean:function(t,n){void 0===n&&(n=.95);var r=pe(t),e=r.length;if(e<2)return Ce("confidence_interval_mean","insufficient data");var i=ge(r),a=_e(r,!0),o=je(1-(1-n)/2)*(e>30?1:1.15)*a/Math.sqrt(e);return Oe({type:"confidence_interval",parameter:"mean",confidence:n,n:e,mean:i,lower:i-o,upper:i+o,margin:o})},confidence_interval_proportion:function(t,n,r){if(void 0===r&&(r=.95),n<1)return Ce("confidence_interval_proportion","invalid sample size");var e=t/n,i=je(1-(1-r)/2)*Math.sqrt(e*(1-e)/n),a=Math.max(0,e-i),o=Math.min(1,e+i);return Oe({type:"confidence_interval",parameter:"proportion",confidence:r,n:n,proportion:e,lower:a,upper:o,margin:i})},confidence_interval_variance:function(t,n){void 0===n&&(n=.95);var r=pe(t),e=r.length;if(e<2)return Ce("confidence_interval_variance","insufficient data");var i=ve(r,!0),a=e-1,o=1-n,u=a/(1+je(1-o/2)*Math.sqrt(2/a)),c=a/(1-je(1-o/2)*Math.sqrt(2/a));return Oe({type:"confidence_interval",parameter:"variance",confidence:n,n:e,variance:i,lower:a*i/c,upper:a*i/u})},confidence_interval_difference:function(t,n,r){void 0===r&&(r=.95);var e=pe(t),i=pe(n),a=e.length,o=i.length;if(a<2||o<2)return Ce("confidence_interval_difference","insufficient data");var u=ge(e),c=ge(i),s=ve(e,!0),l=ve(i,!0),f=u-c,h=Math.sqrt(s/a+l/o),p=je(1-(1-r)/2)*h;return Oe({type:"confidence_interval",parameter:"difference_of_means",confidence:r,difference:f,lower:f-p,upper:f+p,margin:p,means:{group_a:u,group_b:c}})},corr_kendall:Ze,corr_partial:function(t,n,r){var e=Ae(t,n),i=Ae(t,r),a=Ae(n,r),o=(e-i*a)/Math.sqrt((1-i*i)*(1-a*a));return ze("statistic",{name:"partial_correlation",value:o,controlling_for:"third_variable"})},corr_matrix_all:function(t,n){var r=Je(Re(t,"pearson")).matrix,e=Je(Re(t,"spearman")).matrix,i=Object.keys(r),a={};return i.forEach(function(n){a[n]={},i.forEach(function(r){var e,i=t.map(function(t){return fe(t[n])}),o=t.map(function(t){return fe(t[r])}),u=null!=(e=Je(Ze(i,o)).value)?e:NaN;a[n][r]=u})}),Oe({type:"correlation_analysis",pearson:r,spearman:e,kendall:a})},train_knn_classifier:Ye,predict_knn_classifier:Ke,train_knn_regressor:function(t,n,r){var e,i;if(void 0===r&&(r=5),t.length!==n.length)return Ce("train_knn_regressor","X and y length mismatch");var a={type:"knn_regressor",k:r,X:t,y:n,n:n.length,p:null!=(e=null==(i=t[0])?void 0:i.length)?e:0};return Oe(a)},predict_knn_regressor:ti,train_decision_tree_classifier:ii,train_decision_tree_regressor:ai,predict_decision_tree:ui,train_random_forest_classifier:si,train_random_forest_regressor:function(t,n,r){var e,i,a,o,u,c;void 0===r&&(r={});for(var s=null!=(e=r.n_estimators)?e:10,l=null!=(i=r.max_depth)?i:5,f=null!=(a=r.min_samples_split)?a:2,h=null!=(o=r.seed)?o:42,p=[],d=0;d<s;d++){var m=ci(t,n,h+d),g=Je(ai(m.X_boot,m.y_boot,{max_depth:l,min_samples:f}));p.push(g.tree)}var v={type:"random_forest_regressor",trees:p,n_trees:s,max_depth:l,min_samples:f,n:n.length,p:null!=(u=null==(c=t[0])?void 0:c.length)?u:0};return Oe(v)},predict_random_forest_classifier:li,predict_random_forest_regressor:fi,train_naive_bayes:function(t,n){var r,e,i=de(n),a=n.length,o=null!=(r=null==(e=t[0])?void 0:e.length)?r:0,u={},c={};return i.forEach(function(r){var e=n.map(function(t,n){return t===r?n:-1}).filter(function(t){return t>=0});u[r]=e.length/a,c[r]=Array.from({length:o},function(n,r){var i=e.map(function(n){return t[n][r]});return{mean:ge(i),std:_e(i,!0)}})}),Oe({type:"naive_bayes",classes:i,priors:u,stats:c,n:a,p:o})},predict_naive_bayes:hi,standard_scaler_fit:function(t){var n,r,e=null!=(n=null==(r=t[0])?void 0:r.length)?n:0,i=Array.from({length:e},function(n,r){var e=t.map(function(t){return t[r]});return{mean:ge(e),std:_e(e,!0)}});return Oe({type:"standard_scaler",params:i,n:t.length,p:e})},standard_scaler_transform:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){return(t-r.params[n].mean)/r.params[n].std})});return Oe({type:"scaled_data",method:"standard",preview:e.slice(0,5)})}catch(t){return Ce("standard_scaler_transform","invalid scaler text")}},minmax_scaler_fit:function(t){var n,r,e=null!=(n=null==(r=t[0])?void 0:r.length)?n:0,i=Array.from({length:e},function(n,r){var e=t.map(function(t){return t[r]});return{min:ye(e),max:be(e)}});return Oe({type:"minmax_scaler",params:i,n:t.length,p:e})},minmax_scaler_transform:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){var e=r.params[n].max-r.params[n].min;return 0===e?0:(t-r.params[n].min)/e})});return Oe({type:"scaled_data",method:"minmax",preview:e.slice(0,5)})}catch(t){return Ce("minmax_scaler_transform","invalid scaler text")}},train_pca:function(t,n){var r,e;void 0===n&&(n=2);var i=t.length,a=null!=(r=null==(e=t[0])?void 0:e.length)?r:0;if(n>a)return Ce("train_pca","n_components cannot exceed number of features");for(var o=Array.from({length:a},function(n,r){return ge(t.map(function(t){return t[r]}))}),u=t.map(function(t){return t.map(function(t,n){return t-o[n]})}),c=Array.from({length:a},function(t,n){return Array.from({length:a},function(t,r){for(var e=0,a=0;a<i;a++)e+=u[a][n]*u[a][r];return e/(i-1)})}),s=[],l=function(){for(var t=Array.from({length:a},function(){return Math.random()}),n=function(){var n=Array.from({length:a},function(n,r){return c[r].reduce(function(n,r,e){return n+r*t[e]},0)}),r=Math.sqrt(n.reduce(function(t,n){return t+n*n},0));t=n.map(function(t){return t/r})},r=0;r<100;r++)n();s.push(t);for(var e=0;e<a;e++)for(var i=0;i<a;i++)c[e][i]-=t[e]*t[i]*c[e].reduce(function(n,r,e){return n+r*t[e]},0)},f=0;f<n;f++)l();return Oe({type:"pca",n_components:n,means:o,components:s,n:i,p:a})},transform_pca:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){return t-r.means[n]})}).map(function(t){return r.components.map(function(n){return t.reduce(function(t,r,e){return t+r*n[e]},0)})});return Oe({type:"pca_transform",n_components:r.n_components,preview:e.slice(0,5)})}catch(t){return Ce("transform_pca","invalid model text")}},train_kmeans:function(t,n,r){var e,i,a,o;void 0===n&&(n=3),void 0===r&&(r={});for(var u=null!=(e=r.max_iterations)?e:100,c=null!=(i=r.seed)?i:42,s=t.length,l=null!=(a=null==(o=t[0])?void 0:o.length)?a:0,f=Array.from({length:n},function(){return Math.floor((c=(9301*c+49297)%233280)/233280*s)}).map(function(n){return[].concat(t[n])}),h=Array(s).fill(0),p=function(){var r=t.map(function(t){var n=f.map(function(n){return We(t,n)});return n.indexOf(Math.min.apply(Math,n))});if(h.every(function(t,n){return t===r[n]}))return 1;h=r,f=Array.from({length:n},function(n,r){var e=t.filter(function(t,n){return h[n]===r});return 0===e.length?f[r]:Array.from({length:l},function(t,n){return ge(e.map(function(t){return t[n]}))})})},d=0;d<u&&!p();d++);var m=t.reduce(function(t,n,r){return t+Math.pow(We(n,f[h[r]]),2)},0);return Oe({type:"kmeans",k:n,centroids:f,inertia:m,n:s,p:l})},predict_kmeans:function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.centroids.map(function(n){return We(t,n)});return n.indexOf(Math.min.apply(Math,n))});return Oe({type:"prediction",name:"kmeans",k:r.k,cluster_labels:e})}catch(t){return Ce("predict_kmeans","invalid model text")}},ensemble_voting_classifier:function(t,n,r){void 0===r&&(r="hard");try{var e=t.map(function(t){return Je(t)});if("hard"===r){var i=e.map(function(t){return"logistic_regression"===t.type?Je(Ge(Oe(t),n)).classes:"knn_classifier"===t.type?Je(Ke(Oe(t),n)).predictions:"decision_tree_classifier"===t.type?Je(ui(Oe(t),n)).predictions:"random_forest_classifier"===t.type?Je(li(Oe(t),n)).predictions:"naive_bayes"===t.type?Je(hi(Oe(t),n)).predictions:[]}),a=n.map(function(t,n){var r={};return i.forEach(function(t){var e=t[n];r[e]=(r[e]||0)+1}),Number(Object.entries(r).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"ensemble_prediction",method:"voting_hard",n_models:e.length,predictions:a})}return Ce("ensemble_voting_classifier","soft voting not yet implemented")}catch(t){return Ce("ensemble_voting_classifier","invalid models")}},ensemble_voting_regressor:function(t,n){try{var r=t.map(function(t){return Je(t)}),e=r.map(function(t){return"linear_regression"===t.type?Je(Xe(Oe(t),n)).predictions:"knn_regressor"===t.type?Je(ti(Oe(t),n)).predictions:"decision_tree_regressor"===t.type?Je(ui(Oe(t),n)).predictions:"random_forest_regressor"===t.type?Je(fi(Oe(t),n)).predictions:[]}),i=n.map(function(t,n){var r=e.map(function(t){return t[n]});return ge(r)});return Oe({type:"ensemble_prediction",method:"voting_average",n_models:r.length,predictions:i})}catch(t){return Ce("ensemble_voting_regressor","invalid models")}},cross_validate:function(t,n,r,e){var i;void 0===e&&(e={});for(var a=null!=(i=e.k_folds)?i:5,o=t.length,u=Math.floor(o/a),c=[],s=0;s<a;s++){var l=s*u,f=s===a-1?o:(s+1)*u,h=[].concat(t.slice(0,l),t.slice(f)),p=[].concat(n.slice(0,l),n.slice(f)),d=t.slice(l,f),m=n.slice(l,f),g=void 0;if("linear_regression"===r){g=Ve(h,p);var v=Je(Xe(g,d)),_=Je(Ue(m,v.predictions));c.push(_.r2)}else if("logistic_regression"===r){g=De(h,p,e);var y=Je(Ge(g,d)),b=Je(Qe(m,y.classes));c.push(b.accuracy)}else if("knn_classifier"===r){var w;g=Ye(h,p,null!=(w=e.k)?w:5);var x=Je(Ke(g,d)),M=Je(Qe(m,x.predictions));c.push(M.accuracy)}else if("decision_tree_classifier"===r){g=ii(h,p,e);var k=Je(ui(g,d)),A=Je(Qe(m,k.predictions));c.push(A.accuracy)}else if("random_forest_classifier"===r){g=si(h,p,e);var N=Je(li(g,d)),$=Je(Qe(m,N.predictions));c.push($.accuracy)}}return Oe({type:"cross_validation",model_type:r,k_folds:a,scores:c,mean_score:ge(c),std_score:_e(c,!0)})},feature_importance_tree:function(t){try{var n=Je(t);if("decision_tree_classifier"===n.type||"decision_tree_regressor"===n.type){var r=pi(n.tree,n.p);return Oe({type:"feature_importance",model:n.type,importance:r})}if("random_forest_classifier"===n.type||"random_forest_regressor"===n.type){var e=n.trees.map(function(t){return pi(t,n.p)}),i=Array.from({length:n.p},function(t,n){return ge(e.map(function(t){return t[n]}))});return Oe({type:"feature_importance",model:n.type,n_trees:n.n_trees,importance:i})}return Ce("feature_importance_tree","model must be tree-based")}catch(t){return Ce("feature_importance_tree","invalid model text")}},outliers_iqr:function(t){var n=pe(t),r=xe(n,.25),e=xe(n,.75),i=e-r,a=r-1.5*i,o=e+1.5*i,u=n.filter(function(t){return t<a||t>o}),c=t.map(function(t,n){return le(t)&&(t<a||t>o)?n:-1}).filter(function(t){return t>=0});return Oe({type:"outlier_detection",method:"iqr",lower_bound:a,upper_bound:o,n_outliers:u.length,outlier_indices:c,outlier_values:u})},outliers_zscore:function(t,n){void 0===n&&(n=3);var r=pe(t),e=ge(r),i=_e(r,!0),a=r.map(function(t){return Math.abs((t-e)/i)}),o=r.filter(function(t,r){return a[r]>n}),u=t.map(function(t,r){return le(t)&&Math.abs((t-e)/i)>n?r:-1}).filter(function(t){return t>=0});return Oe({type:"outlier_detection",method:"zscore",threshold:n,n_outliers:o.length,outlier_indices:u,outlier_values:o})},moving_average:function(t,n){void 0===n&&(n=3);for(var r=pe(t),e=[],i=0;i<r.length;i++){var a=Math.max(0,i-n+1),o=r.slice(a,i+1);e.push(ge(o))}return Oe({type:"time_series",method:"moving_average",window:n,values:e})},exponential_smoothing:function(t,n){void 0===n&&(n=.3);var r=pe(t);if(0===r.length)return Ce("exponential_smoothing","empty data");for(var e=[r[0]],i=1;i<r.length;i++)e.push(n*r[i]+(1-n)*e[i-1]);return Oe({type:"time_series",method:"exponential_smoothing",alpha:n,values:e})},autocorrelation:function(t,n){void 0===n&&(n=1);var r=pe(t),e=r.length;if(e<n+1)return Ce("autocorrelation","insufficient data for lag");for(var i=ge(r),a=0,o=0,u=0;u<e;u++)o+=Math.pow(r[u]-i,2),u>=n&&(a+=(r[u]-i)*(r[u-n]-i));return ze("statistic",{name:"autocorrelation",lag:n,value:a/o})},plotHistogram:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=a.width-40-20,u=a.height-20-40,c=ur().domain(mt(t)).nice().range([0,o]),s=St().domain(c.domain()).thresholds(n.bins||10)(t),l=ur().domain([0,jt(s,function(t){return t.length})]).nice().range([u,0]),f=i.append("g").attr("transform","translate(40,20)");f.selectAll("rect").data(s).enter().append("rect").attr("x",function(t){return c(t.x0)}).attr("y",function(t){return l(t.length)}).attr("width",function(t){return c(t.x1)-c(t.x0)-1}).attr("height",function(t){return u-l(t.length)}).attr("fill",a.color),f.append("g").attr("transform","translate(0,"+u+")").call(vr(c)),f.append("g").call(_r(l))},plotBoxplot:function(t,n,r){void 0===n&&(n={});var e=Array.isArray(t[0])?t:[t],i=ce(r,n),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=Ht().domain(e.map(function(t,r){return n.labels?n.labels[r]:"Group "+(r+1)})).range([0,u]).padding(.5),l=e.flat(),f=ur().domain(mt(l)).nice().range([c,0]),h=a.append("g").attr("transform","translate(40,20)");e.forEach(function(t,r){var e=[].concat(t).sort(function(t,n){return t-n}),i=Pt(e,.25),a=Pt(e,.5),u=Pt(e,.75),c=Ot(e),l=jt(e),p=s(n.labels?n.labels[r]:"Group "+(r+1))+s.bandwidth()/2,d=s.bandwidth()/2;h.append("line").attr("x1",p).attr("x2",p).attr("y1",f(c)).attr("y2",f(l)).attr("stroke",o.color),h.append("rect").attr("x",p-d/2).attr("y",f(u)).attr("width",d).attr("height",f(i)-f(u)).attr("stroke",o.color).attr("fill","none"),h.append("line").attr("x1",p-d/2).attr("x2",p+d/2).attr("y1",f(a)).attr("y2",f(a)).attr("stroke",o.color)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(f))},plotScatter:se,plotLine:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=ur().domain(mt(t)).range([0,u]),l=ur().domain(mt(n)).range([c,0]),f=a.append("g").attr("transform","translate(40,20)"),h=te().x(function(n,r){return s(t[r])}).y(function(t,r){return l(n[r])}).curve(ae);f.append("path").datum(t).attr("fill","none").attr("stroke",o.color).attr("stroke-width",r.lineWidth||2).attr("d",h),r.showPoints&&f.selectAll("circle").data(t).enter().append("circle").attr("cx",function(n,r){return s(t[r])}).attr("cy",function(t,r){return l(n[r])}).attr("r",3).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))},plotBar:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=Ht().domain(t).range([0,u]).padding(.2),l=ur().domain([0,jt(n)]).nice().range([c,0]),f=a.append("g").attr("transform","translate(40,20)");f.selectAll("rect").data(n).enter().append("rect").attr("x",function(n,r){return s(t[r])}).attr("y",function(t){return l(t)}).attr("width",s.bandwidth()).attr("height",function(t){return c-l(t)}).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))},plotPie:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=Math.min(o.width,o.height)/2,c=a.append("g").attr("transform","translate("+o.width/2+","+o.height/2+")"),s=Ft(wr),l=function(){var t=re,n=ne,r=null,e=Mr(0),i=Mr(Cr),a=Mr(0);function o(o){var u,c,s,l,f,h=(o=Ur(o)).length,p=0,d=new Array(h),m=new Array(h),g=+e.apply(this,arguments),v=Math.min(Cr,Math.max(-Cr,i.apply(this,arguments)-g)),_=Math.min(Math.abs(v)/h,a.apply(this,arguments)),y=_*(v<0?-1:1);for(u=0;u<h;++u)(f=m[d[u]=u]=+t(o[u],u,o))>0&&(p+=f);for(null!=n?d.sort(function(t,r){return n(m[t],m[r])}):null!=r&&d.sort(function(t,n){return r(o[t],o[n])}),u=0,s=p?(v-h*y)/p:0;u<h;++u,g=l)m[c=d[u]]={data:o[c],index:u,value:f=m[c],startAngle:g,endAngle:l=g+(f>0?f*s:0)+y,padAngle:_};return m}return o.value=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),o):t},o.sortValues=function(t){return arguments.length?(n=t,r=null,o):n},o.sort=function(t){return arguments.length?(r=t,n=null,o):r},o.startAngle=function(t){return arguments.length?(e="function"==typeof t?t:Mr(+t),o):e},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Mr(+t),o):i},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:Mr(+t),o):a},o}()(n),f=function(){var t=Br,n=Dr,r=Mr(0),e=null,i=Xr,a=Gr,o=Jr,u=null,c=Vr(s);function s(){var s,l,f=+t.apply(this,arguments),h=+n.apply(this,arguments),p=i.apply(this,arguments)-zr,d=a.apply(this,arguments)-zr,m=kr(d-p),g=d>p;if(u||(u=s=c()),h<f&&(l=h,h=f,f=l),h>jr)if(m>Cr-jr)u.moveTo(h*Nr(p),h*qr(p)),u.arc(0,0,h,p,d,!g),f>jr&&(u.moveTo(f*Nr(d),f*qr(d)),u.arc(0,0,f,d,p,g));else{var v,_,y=p,b=d,w=p,x=d,M=m,k=m,A=o.apply(this,arguments)/2,N=A>jr&&(e?+e.apply(this,arguments):Sr(f*f+h*h)),$=Er(kr(h-f)/2,+r.apply(this,arguments)),E=$,q=$;if(N>jr){var S=Pr(N/f*qr(A)),j=Pr(N/h*qr(A));(M-=2*S)>jr?(w+=S*=g?1:-1,x-=S):(M=0,w=x=(p+d)/2),(k-=2*j)>jr?(y+=j*=g?1:-1,b-=j):(k=0,y=b=(p+d)/2)}var O=h*Nr(y),z=h*qr(y),C=f*Nr(x),P=f*qr(x);if($>jr){var T,R=h*Nr(b),L=h*qr(b),I=f*Nr(w),F=f*qr(w);if(m<Or)if(T=function(t,n,r,e,i,a,o,u){var c=r-t,s=e-n,l=o-i,f=u-a,h=f*c-l*s;if(!(h*h<jr))return[t+(h=(l*(n-a)-f*(t-i))/h)*c,n+h*s]}(O,z,I,F,R,L,C,P)){var H=O-T[0],V=z-T[1],B=R-T[0],D=L-T[1],X=1/qr(function(t){return t>1?0:t<-1?Or:Math.acos(t)}((H*B+V*D)/(Sr(H*H+V*V)*Sr(B*B+D*D)))/2),G=Sr(T[0]*T[0]+T[1]*T[1]);E=Er($,(f-G)/(X-1)),q=Er($,(h-G)/(X+1))}else E=q=0}k>jr?q>jr?(v=Qr(I,F,O,z,h,q,g),_=Qr(R,L,C,P,h,q,g),u.moveTo(v.cx+v.x01,v.cy+v.y01),q<$?u.arc(v.cx,v.cy,q,Ar(v.y01,v.x01),Ar(_.y01,_.x01),!g):(u.arc(v.cx,v.cy,q,Ar(v.y01,v.x01),Ar(v.y11,v.x11),!g),u.arc(0,0,h,Ar(v.cy+v.y11,v.cx+v.x11),Ar(_.cy+_.y11,_.cx+_.x11),!g),u.arc(_.cx,_.cy,q,Ar(_.y11,_.x11),Ar(_.y01,_.x01),!g))):(u.moveTo(O,z),u.arc(0,0,h,y,b,!g)):u.moveTo(O,z),f>jr&&M>jr?E>jr?(v=Qr(C,P,R,L,f,-E,g),_=Qr(O,z,I,F,f,-E,g),u.lineTo(v.cx+v.x01,v.cy+v.y01),E<$?u.arc(v.cx,v.cy,E,Ar(v.y01,v.x01),Ar(_.y01,_.x01),!g):(u.arc(v.cx,v.cy,E,Ar(v.y01,v.x01),Ar(v.y11,v.x11),!g),u.arc(0,0,f,Ar(v.cy+v.y11,v.cx+v.x11),Ar(_.cy+_.y11,_.cx+_.x11),g),u.arc(_.cx,_.cy,E,Ar(_.y11,_.x11),Ar(_.y01,_.x01),!g))):u.arc(0,0,f,x,w,g):u.lineTo(C,P)}else u.moveTo(0,0);if(u.closePath(),s)return u=null,s+""||null}return s.centroid=function(){var r=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,e=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Or/2;return[Nr(e)*r,qr(e)*r]},s.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),s):t},s.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Mr(+t),s):n},s.cornerRadius=function(t){return arguments.length?(r="function"==typeof t?t:Mr(+t),s):r},s.padRadius=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:Mr(+t),s):e},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Mr(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Mr(+t),s):a},s.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Mr(+t),s):o},s.context=function(t){return arguments.length?(u=null==t?null:t,s):u},s}().innerRadius(0).outerRadius(u);c.selectAll("path").data(l).enter().append("path").attr("d",f).attr("fill",function(t,n){return s(n)}),r.showLabels&&c.selectAll("text").data(l).enter().append("text").attr("transform",function(t){return"translate("+f.centroid(t)+")"}).attr("text-anchor","middle").text(function(n,r){return t[r]})},plotHeatmap:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=n.labels||t.map(function(t,n){return"Var"+(n+1)}),u=a.width-60-20,c=a.height-40-40,s=Ht().domain(o).range([0,u]).padding(.05),l=Ht().domain(o).range([0,c]).padding(.05),f=cr(xr).domain([1,-1]),h=i.append("g").attr("transform","translate(60,40)"),p=[];t.forEach(function(t,n){t.forEach(function(t,r){return p.push({x:o[r],y:o[n],value:t})})}),h.selectAll("rect").data(p).enter().append("rect").attr("x",function(t){return s(t.x)}).attr("y",function(t){return l(t.y)}).attr("width",s.bandwidth()).attr("height",l.bandwidth()).attr("fill",function(t){return f(t.value)}),n.showValues&&h.selectAll("text").data(p).enter().append("text").attr("x",function(t){return s(t.x)+s.bandwidth()/2}).attr("y",function(t){return l(t.y)+l.bandwidth()/2}).attr("text-anchor","middle").style("font-size","10px").text(function(t){return t.value.toFixed(2)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(l))},plotViolin:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=Array.isArray(t[0])?t:[t],u=a.width-40-20,c=a.height-20-40,s=Ht().domain(o.map(function(t,r){return n.labels?n.labels[r]:"Group "+(r+1)})).range([0,u]).padding(.5),l=o.flat(),f=ur().domain(mt(l)).nice().range([c,0]),h=i.append("g").attr("transform","translate(40,20)");o.forEach(function(t,r){var e=St().domain(f.domain()).thresholds(20)(t),i=jt(e,function(t){return t.length}),o=s(n.labels?n.labels[r]:"Group "+(r+1)),u=ur().domain([0,i]).range([0,s.bandwidth()/2]),c=te().x(function(t){return u(t.length)}).y(function(t){return f((t.x0+t.x1)/2)}),l=te().x(function(t){return-u(t.length)}).y(function(t){return f((t.x0+t.x1)/2)}),p=h.append("g").attr("transform","translate("+(o+s.bandwidth()/2)+",0)");p.append("path").datum(e).attr("fill",n.color||a.color).attr("fill-opacity",.3).attr("stroke",a.color).attr("d",c),p.append("path").datum(e).attr("fill",n.color||a.color).attr("fill-opacity",.3).attr("stroke",a.color).attr("d",l)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(f))},plotDensity:function(t,n,r){void 0===n&&(n={});var e,i,a,o=ce(r,n),u=o.svg,c=o.config,s=c.width-40-20,l=c.height-20-40,f=ur().domain(mt(t)).nice().range([0,s]),h=(a=n.bandwidth||5,e=function(t){return t/=a,Math.abs(t)<=1?.75*(1-t*t)/a:0},i=f.ticks(50),function(t){return i.map(function(n){return[n,Tt(t,function(t){return e(n-t)})]})})(t),p=ur().domain([0,jt(h,function(t){return t[1]})]).range([l,0]),d=u.append("g").attr("transform","translate(40,20)"),m=te().curve(ae).x(function(t){return f(t[0])}).y(function(t){return p(t[1])});d.append("path").datum(h).attr("fill","none").attr("stroke",c.color).attr("stroke-width",2).attr("d",m),d.append("g").attr("transform","translate(0,"+l+")").call(vr(f)),d.append("g").call(_r(p))},plotQQ:function(t,n,r){void 0===n&&(n={});var e=[].concat(t).sort(function(t,n){return t-n}),i=e.length;se(e.map(function(t,n){return(n+.5)/i}).map(function(t){return function(t){var n,r,e=-.00778489400243029,i=-.322396458041136,a=-2.40075827716184,o=-2.54973253934373,u=4.37466414146497,c=2.93816398269878,s=.00778469570904146,l=.32246712907004,f=2.445134137143,h=3.75440866190742;return t<.02425?(((((e*(n=Math.sqrt(-2*Math.log(t)))+i)*n+a)*n+o)*n+u)*n+c)/((((s*n+l)*n+f)*n+h)*n+1):.97575<t?-(((((e*(n=Math.sqrt(-2*Math.log(1-t)))+i)*n+a)*n+o)*n+u)*n+c)/((((s*n+l)*n+f)*n+h)*n+1):(((((-39.6968302866538*(r=(n=t-.5)*n)+220.946098424521)*r-275.928510446969)*r+138.357751867269)*r-30.6647980661472)*r+2.50662827745924)*n/((((-54.4760987982241*r+161.585836858041)*r-155.698979859887)*r+66.8013118877197)*r-13.2806815528857)+1}(t)}),e,n,r)},plotParallel:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-30-30,c=o.height-30-10,s=Bt().range([0,u]).padding(1).domain(n),l={};n.forEach(function(n){l[n]=ur().domain(mt(t,function(t){return t[n]})).range([c,0])});var f=te(),h=a.append("g").attr("transform","translate(30,30)");h.selectAll("path").data(t).enter().append("path").attr("d",function(t){return f(n.map(function(n){return[s(n),l[n](t[n])]}))}).attr("fill","none").attr("stroke",function(t,n){return r.colors?r.colors[n%r.colors.length]:o.color}).attr("stroke-width",1).attr("opacity",.6),n.forEach(function(t){h.append("g").attr("transform","translate("+s(t)+",0)").call(_r(l[t])).append("text").style("text-anchor","middle").attr("y",-9).text(t)})},plotPairplot:function(t,n,r,e){void 0===r&&(r={});var i=r.size||120,a=10,o=n.length*(i+a),u=e||"#datly-plot-"+oe++,c=document.createElement("div");c.id=u.replace("#",""),document.body.appendChild(c);var s=ct(u);s.html(""),s.style("display","inline-block");var l=s.append("svg").attr("width",o).attr("height",o).style("background","#fff"),f={},h={};n.forEach(function(n){f[n]=ur().domain(mt(t,function(t){return t[n]})).range([a,i-a]),h[n]=ur().domain(mt(t,function(t){return t[n]})).range([i-a,a])}),n.forEach(function(e,o){n.forEach(function(n,u){l.append("g").attr("transform","translate("+o*(i+a)+","+u*(i+a)+")").selectAll("circle").data(t).enter().append("circle").attr("cx",function(t){return f[e](t[e])}).attr("cy",function(t){return h[n](t[n])}).attr("r",2).attr("fill",r.color||"#000")})})},plotMultiline:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=a.width-40-20,u=a.height-20-40,c=t.flatMap(function(t){return t.data.map(function(t){return t.x})}),s=t.flatMap(function(t){return t.data.map(function(t){return t.y})}),l=ur().domain(mt(c)).range([0,o]),f=ur().domain(mt(s)).range([u,0]),h=Ft(wr),p=i.append("g").attr("transform","translate(40,20)");if(t.forEach(function(t,n){var r=te().x(function(t){return l(t.x)}).y(function(t){return f(t.y)});p.append("path").datum(t.data).attr("fill","none").attr("stroke",h(n)).attr("stroke-width",2).attr("d",r)}),n.legend){var d=i.append("g").attr("transform","translate("+(o-100)+",20)");t.forEach(function(t,n){d.append("rect").attr("x",0).attr("y",20*n).attr("width",12).attr("height",12).attr("fill",h(n)),d.append("text").attr("x",20).attr("y",20*n+10).text(t.name).style("font-size","12px")})}p.append("g").attr("transform","translate(0,"+u+")").call(vr(l)),p.append("g").call(_r(f))}};module.exports=di;
|
package/dist/datly.mjs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
function t(){return t=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)({}).hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t},t.apply(null,arguments)}var n="http://www.w3.org/1999/xhtml",r={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function e(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),r.hasOwnProperty(n)?{space:r[n],local:t}:t}function i(t){return function(){var r=this.ownerDocument,e=this.namespaceURI;return e===n&&r.documentElement.namespaceURI===n?r.createElement(t):r.createElementNS(e,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function o(t){var n=e(t);return(n.local?a:i)(n)}function u(){}function c(t){return null==t?u:function(){return this.querySelector(t)}}function s(){return[]}function l(t){return function(n){return n.matches(t)}}var f=Array.prototype.find;function h(){return this.firstElementChild}var p=Array.prototype.filter;function d(){return Array.from(this.children)}function m(t){return new Array(t.length)}function g(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function v(t,n,r,e,i,a){for(var o,u=0,c=n.length,s=a.length;u<s;++u)(o=n[u])?(o.__data__=a[u],e[u]=o):r[u]=new g(t,a[u]);for(;u<c;++u)(o=n[u])&&(i[u]=o)}function _(t,n,r,e,i,a,o){var u,c,s,l=new Map,f=n.length,h=a.length,p=new Array(f);for(u=0;u<f;++u)(c=n[u])&&(p[u]=s=o.call(c,c.__data__,u,n)+"",l.has(s)?i[u]=c:l.set(s,c));for(u=0;u<h;++u)s=o.call(t,a[u],u,a)+"",(c=l.get(s))?(e[u]=c,c.__data__=a[u],l.delete(s)):r[u]=new g(t,a[u]);for(u=0;u<f;++u)(c=n[u])&&l.get(p[u])===c&&(i[u]=c)}function y(t){return t.__data__}function b(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function w(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function x(t){return function(){this.removeAttribute(t)}}function M(t){return function(){this.removeAttributeNS(t.space,t.local)}}function k(t,n){return function(){this.setAttribute(t,n)}}function A(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function N(t,n){return function(){var r=n.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function $(t,n){return function(){var r=n.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function E(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function q(t){return function(){this.style.removeProperty(t)}}function S(t,n,r){return function(){this.style.setProperty(t,n,r)}}function j(t,n,r){return function(){var e=n.apply(this,arguments);null==e?this.style.removeProperty(t):this.style.setProperty(t,e,r)}}function O(t){return function(){delete this[t]}}function z(t,n){return function(){this[t]=n}}function C(t,n){return function(){var r=n.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function P(t){return t.trim().split(/^|\s+/)}function T(t){return t.classList||new R(t)}function R(t){this._node=t,this._names=P(t.getAttribute("class")||"")}function L(t,n){for(var r=T(t),e=-1,i=n.length;++e<i;)r.add(n[e])}function I(t,n){for(var r=T(t),e=-1,i=n.length;++e<i;)r.remove(n[e])}function F(t){return function(){L(this,t)}}function H(t){return function(){I(this,t)}}function V(t,n){return function(){(n.apply(this,arguments)?L:I)(this,t)}}function B(){this.textContent=""}function D(t){return function(){this.textContent=t}}function X(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function G(){this.innerHTML=""}function J(t){return function(){this.innerHTML=t}}function Q(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function U(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function W(){return null}function Y(){var t=this.parentNode;t&&t.removeChild(this)}function K(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function tt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function nt(t){return function(){var n=this.__on;if(n){for(var r,e=0,i=-1,a=n.length;e<a;++e)r=n[e],t.type&&r.type!==t.type||r.name!==t.name?n[++i]=r:this.removeEventListener(r.type,r.listener,r.options);++i?n.length=i:delete this.__on}}}function rt(t,n,r){return function(){var e,i=this.__on,a=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var o=0,u=i.length;o<u;++o)if((e=i[o]).type===t.type&&e.name===t.name)return this.removeEventListener(e.type,e.listener,e.options),this.addEventListener(e.type,e.listener=a,e.options=r),void(e.value=n);this.addEventListener(t.type,a,r),e={type:t.type,name:t.name,value:n,listener:a,options:r},i?i.push(e):this.__on=[e]}}function et(t,n,r){var e=E(t),i=e.CustomEvent;"function"==typeof i?i=new i(n,r):(i=e.document.createEvent("Event"),r?(i.initEvent(n,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function it(t,n){return function(){return et(this,t,n)}}function at(t,n){return function(){return et(this,t,n.apply(this,arguments))}}g.prototype={constructor:g,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},R.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ot=[null];function ut(t,n){this._groups=t,this._parents=n}function ct(t){return"string"==typeof t?new ut([[document.querySelector(t)]],[document.documentElement]):new ut([[t]],ot)}function st(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function lt(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function ft(t){let n,r,e;function i(t,e,i=0,a=t.length){if(i<a){if(0!==n(e,e))return a;do{const n=i+a>>>1;r(t[n],e)<0?i=n+1:a=n}while(i<a)}return i}return 2!==t.length?(n=st,r=(n,r)=>st(t(n),r),e=(n,r)=>t(n)-r):(n=t===st||t===lt?t:ht,r=t,e=t),{left:i,center:function(t,n,r=0,a=t.length){const o=i(t,n,r,a-1);return o>r&&e(t[o-1],n)>-e(t[o],n)?o-1:o},right:function(t,e,i=0,a=t.length){if(i<a){if(0!==n(e,e))return a;do{const n=i+a>>>1;r(t[n],e)<=0?i=n+1:a=n}while(i<a)}return i}}}function ht(){return 0}ut.prototype={constructor:ut,select:function(t){"function"!=typeof t&&(t=c(t));for(var n=this._groups,r=n.length,e=new Array(r),i=0;i<r;++i)for(var a,o,u=n[i],s=u.length,l=e[i]=new Array(s),f=0;f<s;++f)(a=u[f])&&(o=t.call(a,a.__data__,f,u))&&("__data__"in a&&(o.__data__=a.__data__),l[f]=o);return new ut(e,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}(t):function(t){return null==t?s:function(){return this.querySelectorAll(t)}}(t);for(var n=this._groups,r=n.length,e=[],i=[],a=0;a<r;++a)for(var o,u=n[a],c=u.length,l=0;l<c;++l)(o=u[l])&&(e.push(t.call(o,o.__data__,l,u)),i.push(o));return new ut(e,i)},selectChild:function(t){return this.select(null==t?h:function(t){return function(){return f.call(this.children,t)}}("function"==typeof t?t:l(t)))},selectChildren:function(t){return this.selectAll(null==t?d:function(t){return function(){return p.call(this.children,t)}}("function"==typeof t?t:l(t)))},filter:function(t){"function"!=typeof t&&(t=function(t){return function(){return this.matches(t)}}(t));for(var n=this._groups,r=n.length,e=new Array(r),i=0;i<r;++i)for(var a,o=n[i],u=o.length,c=e[i]=[],s=0;s<u;++s)(a=o[s])&&t.call(a,a.__data__,s,o)&&c.push(a);return new ut(e,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,y);var r=n?_:v,e=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var a=i.length,o=new Array(a),u=new Array(a),c=new Array(a),s=0;s<a;++s){var l=e[s],f=i[s],h=f.length,p=b(t.call(l,l&&l.__data__,s,e)),d=p.length,m=u[s]=new Array(d),g=o[s]=new Array(d);r(l,f,m,g,c[s]=new Array(h),p,n);for(var w,x,M=0,k=0;M<d;++M)if(w=m[M]){for(M>=k&&(k=M+1);!(x=g[k])&&++k<d;);w._next=x||null}}return(o=new ut(o,e))._enter=u,o._exit=c,o},enter:function(){return new ut(this._enter||this._groups.map(m),this._parents)},exit:function(){return new ut(this._exit||this._groups.map(m),this._parents)},join:function(t,n,r){var e=this.enter(),i=this,a=this.exit();return"function"==typeof t?(e=t(e))&&(e=e.selection()):e=e.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==r?a.remove():r(a),e&&i?e.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,r=this._groups,e=n._groups,i=r.length,a=Math.min(i,e.length),o=new Array(i),u=0;u<a;++u)for(var c,s=r[u],l=e[u],f=s.length,h=o[u]=new Array(f),p=0;p<f;++p)(c=s[p]||l[p])&&(h[p]=c);for(;u<i;++u)o[u]=r[u];return new ut(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,r=t.length;++n<r;)for(var e,i=t[n],a=i.length-1,o=i[a];--a>=0;)(e=i[a])&&(o&&4^e.compareDocumentPosition(o)&&o.parentNode.insertBefore(e,o),o=e);return this},sort:function(t){function n(n,r){return n&&r?t(n.__data__,r.__data__):!n-!r}t||(t=w);for(var r=this._groups,e=r.length,i=new Array(e),a=0;a<e;++a){for(var o,u=r[a],c=u.length,s=i[a]=new Array(c),l=0;l<c;++l)(o=u[l])&&(s[l]=o);s.sort(n)}return new ut(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var e=t[n],i=0,a=e.length;i<a;++i){var o=e[i];if(o)return o}return null},size:function(){let t=0;for(const n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,r=0,e=n.length;r<e;++r)for(var i,a=n[r],o=0,u=a.length;o<u;++o)(i=a[o])&&t.call(i,i.__data__,o,a);return this},attr:function(t,n){var r=e(t);if(arguments.length<2){var i=this.node();return r.local?i.getAttributeNS(r.space,r.local):i.getAttribute(r)}return this.each((null==n?r.local?M:x:"function"==typeof n?r.local?$:N:r.local?A:k)(r,n))},style:function(t,n,r){return arguments.length>1?this.each((null==n?q:"function"==typeof n?j:S)(t,n,null==r?"":r)):function(t,n){return t.style.getPropertyValue(n)||E(t).getComputedStyle(t,null).getPropertyValue(n)}(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?O:"function"==typeof n?C:z)(t,n)):this.node()[t]},classed:function(t,n){var r=P(t+"");if(arguments.length<2){for(var e=T(this.node()),i=-1,a=r.length;++i<a;)if(!e.contains(r[i]))return!1;return!0}return this.each(("function"==typeof n?V:n?F:H)(r,n))},text:function(t){return arguments.length?this.each(null==t?B:("function"==typeof t?X:D)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?G:("function"==typeof t?Q:J)(t)):this.node().innerHTML},raise:function(){return this.each(U)},lower:function(){return this.each(Z)},append:function(t){var n="function"==typeof t?t:o(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var r="function"==typeof t?t:o(t),e=null==n?W:"function"==typeof n?n:c(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),e.apply(this,arguments)||null)})},remove:function(){return this.each(Y)},clone:function(t){return this.select(t?tt:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,r){var e,i,a=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}(t+""),o=a.length;if(!(arguments.length<2)){for(u=n?rt:nt,e=0;e<o;++e)this.each(u(a[e],n,r));return this}var u=this.node().__on;if(u)for(var c,s=0,l=u.length;s<l;++s)for(e=0,c=u[s];e<o;++e)if((i=a[e]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,n){return this.each(("function"==typeof n?at:it)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var e,i=t[n],a=0,o=i.length;a<o;++a)(e=i[a])&&(yield e)}};const pt=ft(st).right;ft(function(t){return null===t?NaN:+t});var dt=pt;function mt(t,n){let r,e;if(void 0===n)for(const n of t)null!=n&&(void 0===r?n>=n&&(r=e=n):(r>n&&(r=n),e<n&&(e=n)));else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&(void 0===r?a>=a&&(r=e=a):(r>a&&(r=a),e<a&&(e=a)))}return[r,e]}class gt extends Map{constructor(t,n=_t){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,r]of t)this.set(n,r)}get(t){return super.get(vt(this,t))}has(t){return super.has(vt(this,t))}set(t,n){return super.set(function({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):(t.set(e,r),r)}(this,t),n)}delete(t){return super.delete(function({_intern:t,_key:n},r){const e=n(r);return t.has(e)&&(r=t.get(e),t.delete(e)),r}(this,t))}}function vt({_intern:t,_key:n},r){const e=n(r);return t.has(e)?t.get(e):r}function _t(t){return null!==t&&"object"==typeof t?t.valueOf():t}function yt(t){return t}function bt(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}var wt=Array.prototype.slice;function xt(t){return()=>t}const Mt=Math.sqrt(50),kt=Math.sqrt(10),At=Math.sqrt(2);function Nt(t,n,r){const e=(n-t)/Math.max(0,r),i=Math.floor(Math.log10(e)),a=e/Math.pow(10,i),o=a>=Mt?10:a>=kt?5:a>=At?2:1;let u,c,s;return i<0?(s=Math.pow(10,-i)/o,u=Math.round(t*s),c=Math.round(n*s),u/s<t&&++u,c/s>n&&--c,s=-s):(s=Math.pow(10,i)*o,u=Math.round(t/s),c=Math.round(n/s),u*s<t&&++u,c*s>n&&--c),c<u&&.5<=r&&r<2?Nt(t,n,2*r):[u,c,s]}function $t(t,n,r){if(!((r=+r)>0))return[];if((t=+t)===(n=+n))return[t];const e=n<t,[i,a,o]=e?Nt(n,t,r):Nt(t,n,r);if(!(a>=i))return[];const u=a-i+1,c=new Array(u);if(e)if(o<0)for(let t=0;t<u;++t)c[t]=(a-t)/-o;else for(let t=0;t<u;++t)c[t]=(a-t)*o;else if(o<0)for(let t=0;t<u;++t)c[t]=(i+t)/-o;else for(let t=0;t<u;++t)c[t]=(i+t)*o;return c}function Et(t,n,r){return Nt(t=+t,n=+n,r=+r)[2]}function qt(t){return Math.max(1,Math.ceil(Math.log(function(t){let n=0;for(let r of t)null!=r&&(r=+r)>=r&&++n;return n}(t))/Math.LN2)+1)}function St(){var t=yt,n=mt,r=qt;function e(e){Array.isArray(e)||(e=Array.from(e));var i,a,o,u=e.length,c=new Array(u);for(i=0;i<u;++i)c[i]=t(e[i],i,e);var s=n(c),l=s[0],f=s[1],h=r(c,l,f);if(!Array.isArray(h)){const t=f,r=+h;if(n===mt&&([l,f]=function(t,n,r){let e;for(;;){const i=Et(t,n,r);if(i===e||0===i||!isFinite(i))return[t,n];i>0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),e=i}}(l,f,r)),(h=$t(l,f,r))[0]<=l&&(o=Et(l,f,r)),h[h.length-1]>=f)if(t>=f&&n===mt){const t=Et(l,f,r);isFinite(t)&&(t>0?f=(Math.floor(f/t)+1)*t:t<0&&(f=(Math.ceil(f*-t)+1)/-t))}else h.pop()}for(var p=h.length,d=0,m=p;h[d]<=l;)++d;for(;h[m-1]>f;)--m;(d||m<p)&&(h=h.slice(d,m),p=m-d);var g,v=new Array(p+1);for(i=0;i<=p;++i)(g=v[i]=[]).x0=i>0?h[i-1]:l,g.x1=i<p?h[i]:f;if(isFinite(o)){if(o>0)for(i=0;i<u;++i)null!=(a=c[i])&&l<=a&&a<=f&&v[Math.min(p,Math.floor((a-l)/o))].push(e[i]);else if(o<0)for(i=0;i<u;++i)if(null!=(a=c[i])&&l<=a&&a<=f){const t=Math.floor((l-a)*o);v[Math.min(p,t+(h[t]<=a))].push(e[i])}}else for(i=0;i<u;++i)null!=(a=c[i])&&l<=a&&a<=f&&v[dt(h,a,0,p)].push(e[i]);return v}return e.value=function(n){return arguments.length?(t="function"==typeof n?n:xt(n),e):t},e.domain=function(t){return arguments.length?(n="function"==typeof t?t:xt([t[0],t[1]]),e):n},e.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:xt(Array.isArray(t)?wt.call(t):t),e):r},e}function jt(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r<n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let i of t)null!=(i=n(i,++e,t))&&(r<i||void 0===r&&i>=i)&&(r=i)}return r}function Ot(t,n){let r;if(void 0===n)for(const n of t)null!=n&&(r>n||void 0===r&&n>=n)&&(r=n);else{let e=-1;for(let i of t)null!=(i=n(i,++e,t))&&(r>i||void 0===r&&i>=i)&&(r=i)}return r}function zt(t,n,r=0,e=Infinity,i){if(n=Math.floor(n),r=Math.floor(Math.max(0,r)),e=Math.floor(Math.min(t.length-1,e)),!(r<=n&&n<=e))return t;for(i=void 0===i?bt:function(t=st){if(t===st)return bt;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,r)=>{const e=t(n,r);return e||0===e?e:(0===t(r,r))-(0===t(n,n))}}(i);e>r;){if(e-r>600){const a=e-r+1,o=n-r+1,u=Math.log(a),c=.5*Math.exp(2*u/3),s=.5*Math.sqrt(u*c*(a-c)/a)*(o-a/2<0?-1:1);zt(t,n,Math.max(r,Math.floor(n-o*c/a+s)),Math.min(e,Math.floor(n+(a-o)*c/a+s)),i)}const a=t[n];let o=r,u=e;for(Ct(t,r,n),i(t[e],a)>0&&Ct(t,r,e);o<u;){for(Ct(t,o,u),++o,--u;i(t[o],a)<0;)++o;for(;i(t[u],a)>0;)--u}0===i(t[r],a)?Ct(t,r,u):(++u,Ct(t,u,e)),u<=n&&(r=u+1),n<=u&&(e=u-1)}return t}function Ct(t,n,r){const e=t[n];t[n]=t[r],t[r]=e}function Pt(t,n,r){if(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let r=-1;for(let e of t)null!=(e=n(e,++r,t))&&(e=+e)>=e&&(yield e)}}(t,r)),(e=t.length)&&!isNaN(n=+n)){if(n<=0||e<2)return Ot(t);if(n>=1)return jt(t);var e,i=(e-1)*n,a=Math.floor(i),o=jt(zt(t,a).subarray(0,a+1));return o+(Ot(t.subarray(a+1))-o)*(i-a)}}function Tt(t,n){let r=0,e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++r,e+=n);else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&(a=+a)>=a&&(++r,e+=a)}if(r)return e/r}function Rt(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function Lt(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const It=Symbol("implicit");function Ft(){var t=new gt,n=[],r=[],e=It;function i(i){let a=t.get(i);if(void 0===a){if(e!==It)return e;t.set(i,a=n.push(i)-1)}return r[a%r.length]}return i.domain=function(r){if(!arguments.length)return n.slice();n=[],t=new gt;for(const e of r)t.has(e)||t.set(e,n.push(e)-1);return i},i.range=function(t){return arguments.length?(r=Array.from(t),i):r.slice()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Ft(n,r).unknown(e)},Rt.apply(i,arguments),i}function Ht(){var t,n,r=Ft().unknown(void 0),e=r.domain,i=r.range,a=0,o=1,u=!1,c=0,s=0,l=.5;function f(){var r=e().length,f=o<a,h=f?o:a,p=f?a:o;t=(p-h)/Math.max(1,r-c+2*s),u&&(t=Math.floor(t)),h+=(p-h-t*(r-c))*l,n=t*(1-c),u&&(h=Math.round(h),n=Math.round(n));var d=function(t,n,r){t=+t,n=+n,r=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+r;for(var e=-1,i=0|Math.max(0,Math.ceil((n-t)/r)),a=new Array(i);++e<i;)a[e]=t+e*r;return a}(r).map(function(n){return h+t*n});return i(f?d.reverse():d)}return delete r.unknown,r.domain=function(t){return arguments.length?(e(t),f()):e()},r.range=function(t){return arguments.length?([a,o]=t,a=+a,o=+o,f()):[a,o]},r.rangeRound=function(t){return[a,o]=t,a=+a,o=+o,u=!0,f()},r.bandwidth=function(){return n},r.step=function(){return t},r.round=function(t){return arguments.length?(u=!!t,f()):u},r.padding=function(t){return arguments.length?(c=Math.min(1,s=+t),f()):c},r.paddingInner=function(t){return arguments.length?(c=Math.min(1,t),f()):c},r.paddingOuter=function(t){return arguments.length?(s=+t,f()):s},r.align=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),f()):l},r.copy=function(){return Ht(e(),[a,o]).round(u).paddingInner(c).paddingOuter(s).align(l)},Rt.apply(f(),arguments)}function Vt(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Vt(n())},t}function Bt(){return Vt(Ht.apply(null,arguments).paddingInner(1))}function Dt(t,n,r){t.prototype=n.prototype=r,r.constructor=t}function Xt(t,n){var r=Object.create(t.prototype);for(var e in n)r[e]=n[e];return r}function Gt(){}var Jt=.7,Qt=1/Jt,Ut="\\s*([+-]?\\d+)\\s*",Zt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Wt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Yt=/^#([0-9a-f]{3,8})$/,Kt=new RegExp(`^rgb\\(${Ut},${Ut},${Ut}\\)$`),tn=new RegExp(`^rgb\\(${Wt},${Wt},${Wt}\\)$`),nn=new RegExp(`^rgba\\(${Ut},${Ut},${Ut},${Zt}\\)$`),rn=new RegExp(`^rgba\\(${Wt},${Wt},${Wt},${Zt}\\)$`),en=new RegExp(`^hsl\\(${Zt},${Wt},${Wt}\\)$`),an=new RegExp(`^hsla\\(${Zt},${Wt},${Wt},${Zt}\\)$`),on={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function un(){return this.rgb().formatHex()}function cn(){return this.rgb().formatRgb()}function sn(t){var n,r;return t=(t+"").trim().toLowerCase(),(n=Yt.exec(t))?(r=n[1].length,n=parseInt(n[1],16),6===r?ln(n):3===r?new pn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===r?fn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===r?fn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Kt.exec(t))?new pn(n[1],n[2],n[3],1):(n=tn.exec(t))?new pn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=nn.exec(t))?fn(n[1],n[2],n[3],n[4]):(n=rn.exec(t))?fn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=en.exec(t))?yn(n[1],n[2]/100,n[3]/100,1):(n=an.exec(t))?yn(n[1],n[2]/100,n[3]/100,n[4]):on.hasOwnProperty(t)?ln(on[t]):"transparent"===t?new pn(NaN,NaN,NaN,0):null}function ln(t){return new pn(t>>16&255,t>>8&255,255&t,1)}function fn(t,n,r,e){return e<=0&&(t=n=r=NaN),new pn(t,n,r,e)}function hn(t,n,r,e){return 1===arguments.length?((i=t)instanceof Gt||(i=sn(i)),i?new pn((i=i.rgb()).r,i.g,i.b,i.opacity):new pn):new pn(t,n,r,null==e?1:e);var i}function pn(t,n,r,e){this.r=+t,this.g=+n,this.b=+r,this.opacity=+e}function dn(){return`#${_n(this.r)}${_n(this.g)}${_n(this.b)}`}function mn(){const t=gn(this.opacity);return`${1===t?"rgb(":"rgba("}${vn(this.r)}, ${vn(this.g)}, ${vn(this.b)}${1===t?")":`, ${t})`}`}function gn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function vn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function _n(t){return((t=vn(t))<16?"0":"")+t.toString(16)}function yn(t,n,r,e){return e<=0?t=n=r=NaN:r<=0||r>=1?t=n=NaN:n<=0&&(t=NaN),new wn(t,n,r,e)}function bn(t){if(t instanceof wn)return new wn(t.h,t.s,t.l,t.opacity);if(t instanceof Gt||(t=sn(t)),!t)return new wn;if(t instanceof wn)return t;var n=(t=t.rgb()).r/255,r=t.g/255,e=t.b/255,i=Math.min(n,r,e),a=Math.max(n,r,e),o=NaN,u=a-i,c=(a+i)/2;return u?(o=n===a?(r-e)/u+6*(r<e):r===a?(e-n)/u+2:(n-r)/u+4,u/=c<.5?a+i:2-a-i,o*=60):u=c>0&&c<1?0:o,new wn(o,u,c,t.opacity)}function wn(t,n,r,e){this.h=+t,this.s=+n,this.l=+r,this.opacity=+e}function xn(t){return(t=(t||0)%360)<0?t+360:t}function Mn(t){return Math.max(0,Math.min(1,t||0))}function kn(t,n,r){return 255*(t<60?n+(r-n)*t/60:t<180?r:t<240?n+(r-n)*(240-t)/60:n)}Dt(Gt,sn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:un,formatHex:un,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bn(this).formatHsl()},formatRgb:cn,toString:cn}),Dt(pn,hn,Xt(Gt,{brighter(t){return t=null==t?Qt:Math.pow(Qt,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Jt:Math.pow(Jt,t),new pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pn(vn(this.r),vn(this.g),vn(this.b),gn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:dn,formatHex:dn,formatHex8:function(){return`#${_n(this.r)}${_n(this.g)}${_n(this.b)}${_n(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:mn,toString:mn})),Dt(wn,function(t,n,r,e){return 1===arguments.length?bn(t):new wn(t,n,r,null==e?1:e)},Xt(Gt,{brighter(t){return t=null==t?Qt:Math.pow(Qt,t),new wn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Jt:Math.pow(Jt,t),new wn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,e=r+(r<.5?r:1-r)*n,i=2*r-e;return new pn(kn(t>=240?t-240:t+120,i,e),kn(t,i,e),kn(t<120?t+240:t-120,i,e),this.opacity)},clamp(){return new wn(xn(this.h),Mn(this.s),Mn(this.l),gn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=gn(this.opacity);return`${1===t?"hsl(":"hsla("}${xn(this.h)}, ${100*Mn(this.s)}%, ${100*Mn(this.l)}%${1===t?")":`, ${t})`}`}}));var An=t=>()=>t;function Nn(t,n){var r=n-t;return r?function(t,n){return function(r){return t+r*n}}(t,r):An(isNaN(t)?n:t)}var $n,En=function t(n){var r=function(t){return 1===(t=+t)?Nn:function(n,r){return r-n?function(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(e){return Math.pow(t+e*n,r)}}(n,r,t):An(isNaN(n)?r:n)}}(n);function e(t,n){var e=r((t=hn(t)).r,(n=hn(n)).r),i=r(t.g,n.g),a=r(t.b,n.b),o=Nn(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=a(n),t.opacity=o(n),t+""}}return e.gamma=t,e}(1),qn=($n=function(t){var n=t.length-1;return function(r){var e=r<=0?r=0:r>=1?(r=1,n-1):Math.floor(r*n),i=t[e],a=t[e+1];return function(t,n,r,e,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*n+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*e+o*i)/6}((r-e/n)*n,e>0?t[e-1]:2*i-a,i,a,e<n-1?t[e+2]:2*a-i)}},function(t){var n,r,e=t.length,i=new Array(e),a=new Array(e),o=new Array(e);for(n=0;n<e;++n)r=hn(t[n]),i[n]=r.r||0,a[n]=r.g||0,o[n]=r.b||0;return i=$n(i),a=$n(a),o=$n(o),r.opacity=1,function(t){return r.r=i(t),r.g=a(t),r.b=o(t),r+""}});function Sn(t,n){n||(n=[]);var r,e=t?Math.min(n.length,t.length):0,i=n.slice();return function(a){for(r=0;r<e;++r)i[r]=t[r]*(1-a)+n[r]*a;return i}}function jn(t,n){var r,e=n?n.length:0,i=t?Math.min(e,t.length):0,a=new Array(i),o=new Array(e);for(r=0;r<i;++r)a[r]=Ln(t[r],n[r]);for(;r<e;++r)o[r]=n[r];return function(t){for(r=0;r<i;++r)o[r]=a[r](t);return o}}function On(t,n){var r=new Date;return t=+t,n=+n,function(e){return r.setTime(t*(1-e)+n*e),r}}function zn(t,n){return t=+t,n=+n,function(r){return t*(1-r)+n*r}}function Cn(t,n){var r,e={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)r in t?e[r]=Ln(t[r],n[r]):i[r]=n[r];return function(t){for(r in e)i[r]=e[r](t);return i}}var Pn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Tn=new RegExp(Pn.source,"g");function Rn(t,n){var r,e,i,a=Pn.lastIndex=Tn.lastIndex=0,o=-1,u=[],c=[];for(t+="",n+="";(r=Pn.exec(t))&&(e=Tn.exec(n));)(i=e.index)>a&&(i=n.slice(a,i),u[o]?u[o]+=i:u[++o]=i),(r=r[0])===(e=e[0])?u[o]?u[o]+=e:u[++o]=e:(u[++o]=null,c.push({i:o,x:zn(r,e)})),a=Tn.lastIndex;return a<n.length&&(i=n.slice(a),u[o]?u[o]+=i:u[++o]=i),u.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var r,e=0;e<n;++e)u[(r=c[e]).i]=r.x(t);return u.join("")})}function Ln(t,n){var r,e=typeof n;return null==n||"boolean"===e?An(n):("number"===e?zn:"string"===e?(r=sn(n))?(n=r,En):Rn:n instanceof sn?En:n instanceof Date?On:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(n)?Sn:Array.isArray(n)?jn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?Cn:zn)(t,n)}function In(t,n){return t=+t,n=+n,function(r){return Math.round(t*(1-r)+n*r)}}function Fn(t){return+t}var Hn=[0,1];function Vn(t){return t}function Bn(t,n){return(n-=t=+t)?function(r){return(r-t)/n}:function(t){return function(){return t}}(isNaN(n)?NaN:.5)}function Dn(t,n,r){var e=t[0],i=t[1],a=n[0],o=n[1];return i<e?(e=Bn(i,e),a=r(o,a)):(e=Bn(e,i),a=r(a,o)),function(t){return a(e(t))}}function Xn(t,n,r){var e=Math.min(t.length,n.length)-1,i=new Array(e),a=new Array(e),o=-1;for(t[e]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++o<e;)i[o]=Bn(t[o],t[o+1]),a[o]=r(n[o],n[o+1]);return function(n){var r=dt(t,n,1,e)-1;return a[r](i[r](n))}}function Gn(t,n){if((r=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var r,e=t.slice(0,r);return[e.length>1?e[0]+e.slice(2):e,+t.slice(r+1)]}function Jn(t){return(t=Gn(Math.abs(t)))?t[1]:NaN}var Qn,Un=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Zn(t){if(!(n=Un.exec(t)))throw new Error("invalid format: "+t);var n;return new Wn({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function Wn(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Yn(t,n){var r=Gn(t,n);if(!r)return t+"";var e=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+e:e.length>i+1?e.slice(0,i+1)+"."+e.slice(i+1):e+new Array(i-e.length+2).join("0")}Zn.prototype=Wn.prototype,Wn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Kn={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>Yn(100*t,n),r:Yn,s:function(t,n){var r=Gn(t,n);if(!r)return t+"";var e=r[0],i=r[1],a=i-(Qn=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=e.length;return a===o?e:a>o?e+new Array(a-o+1).join("0"):a>0?e.slice(0,a)+"."+e.slice(a):"0."+new Array(1-a).join("0")+Gn(t,Math.max(0,n+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function tr(t){return t}var nr,rr,er,ir=Array.prototype.map,ar=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function or(t){var n=t.domain;return t.ticks=function(t){var r=n();return $t(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var e=n();return function(t,n,r,e){var i,a=function(t,n,r){r=+r;const e=(n=+n)<(t=+t),i=e?Et(n,t,r):Et(t,n,r);return(e?-1:1)*(i<0?1/-i:i)}(t,n,r);switch((e=Zn(null==e?",f":e)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(n));return null!=e.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Jn(n)/3)))-Jn(Math.abs(t)))}(a,o))||(e.precision=i),er(e,o);case"":case"e":case"g":case"p":case"r":null!=e.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Jn(n)-Jn(t))+1}(a,Math.max(Math.abs(t),Math.abs(n))))||(e.precision=i-("e"===e.type));break;case"f":case"%":null!=e.precision||isNaN(i=function(t){return Math.max(0,-Jn(Math.abs(t)))}(a))||(e.precision=i-2*("%"===e.type))}return rr(e)}(e[0],e[e.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var e,i,a=n(),o=0,u=a.length-1,c=a[o],s=a[u],l=10;for(s<c&&(i=c,c=s,s=i,i=o,o=u,u=i);l-- >0;){if((i=Et(c,s,r))===e)return a[o]=c,a[u]=s,n(a);if(i>0)c=Math.floor(c/i)*i,s=Math.ceil(s/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,s=Math.floor(s*i)/i}e=i}return t},t}function ur(){var t=function(){var t,n,r,e,i,a,o=Hn,u=Hn,c=Ln,s=Vn;function l(){var t,n,r,c=Math.min(o.length,u.length);return s!==Vn&&((t=o[0])>(n=o[c-1])&&(r=t,t=n,n=r),s=function(r){return Math.max(t,Math.min(n,r))}),e=c>2?Xn:Dn,i=a=null,f}function f(n){return null==n||isNaN(n=+n)?r:(i||(i=e(o.map(t),u,c)))(t(s(n)))}return f.invert=function(r){return s(n((a||(a=e(u,o.map(t),zn)))(r)))},f.domain=function(t){return arguments.length?(o=Array.from(t,Fn),l()):o.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),l()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),c=In,l()},f.clamp=function(t){return arguments.length?(s=!!t||Vn,l()):s!==Vn},f.interpolate=function(t){return arguments.length?(c=t,l()):c},f.unknown=function(t){return arguments.length?(r=t,f):r},function(r,e){return t=r,n=e,l()}}()(Vn,Vn);return t.copy=function(){return n=t,ur().domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown());var n},Rt.apply(t,arguments),or(t)}function cr(){var t=or(function(){var t,n,r,e,i,a=0,o=1,u=Vn,c=!1;function s(n){return null==n||isNaN(n=+n)?i:u(0===r?.5:(n=(e(n)-t)*r,c?Math.max(0,Math.min(1,n)):n))}function l(t){return function(n){var r,e;return arguments.length?([r,e]=n,u=t(r,e),s):[u(0),u(1)]}}return s.domain=function(i){return arguments.length?([a,o]=i,t=e(a=+a),n=e(o=+o),r=t===n?0:1/(n-t),s):[a,o]},s.clamp=function(t){return arguments.length?(c=!!t,s):c},s.interpolator=function(t){return arguments.length?(u=t,s):u},s.range=l(Ln),s.rangeRound=l(In),s.unknown=function(t){return arguments.length?(i=t,s):i},function(i){return e=i,t=i(a),n=i(o),r=t===n?0:1/(n-t),s}}()(Vn));return t.copy=function(){return n=t,cr().domain(n.domain()).interpolator(n.interpolator()).clamp(n.clamp()).unknown(n.unknown());var n},Lt.apply(t,arguments)}function sr(t){return t}nr=function(t){var n,r,e=void 0===t.grouping||void 0===t.thousands?tr:(n=ir.call(t.grouping,Number),r=t.thousands+"",function(t,e){for(var i=t.length,a=[],o=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>e&&(u=Math.max(1,e-c)),a.push(t.substring(i-=u,i+u)),!((c+=u+1)>e));)u=n[o=(o+1)%n.length];return a.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?tr:function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(ir.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"−":t.minus+"",l=void 0===t.nan?"NaN":t.nan+"";function f(t){var n=(t=Zn(t)).fill,r=t.align,f=t.sign,h=t.symbol,p=t.zero,d=t.width,m=t.comma,g=t.precision,v=t.trim,_=t.type;"n"===_?(m=!0,_="g"):Kn[_]||(void 0===g&&(g=12),v=!0,_="g"),(p||"0"===n&&"="===r)&&(p=!0,n="0",r="=");var y="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",b="$"===h?a:/[%p]/.test(_)?c:"",w=Kn[_],x=/[defgprs%]/.test(_);function M(t){var i,a,c,h=y,M=b;if("c"===_)M=w(t)+M,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?l:w(Math.abs(t),g),v&&(t=function(t){t:for(var n,r=t.length,e=1,i=-1;e<r;++e)switch(t[e]){case".":i=n=e;break;case"0":0===i&&(i=e),n=e;break;default:if(!+t[e])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),k&&0===+t&&"+"!==f&&(k=!1),h=(k?"("===f?f:s:"-"===f||"("===f?"":f)+h,M=("s"===_?ar[8+Qn/3]:"")+M+(k&&"("===f?")":""),x)for(i=-1,a=t.length;++i<a;)if(48>(c=t.charCodeAt(i))||c>57){M=(46===c?o+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}m&&!p&&(t=e(t,Infinity));var A=h.length+t.length+M.length,N=A<d?new Array(d-A+1).join(n):"";switch(m&&p&&(t=e(N+t,N.length?d-M.length:Infinity),N=""),r){case"<":t=h+t+M+N;break;case"=":t=h+N+t+M;break;case"^":t=N.slice(0,A=N.length>>1)+h+t+M+N.slice(A);break;default:t=N+h+t+M}return u(t)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),M.toString=function(){return t+""},M}return{format:f,formatPrefix:function(t,n){var r=f(((t=Zn(t)).type="f",t)),e=3*Math.max(-8,Math.min(8,Math.floor(Jn(n)/3))),i=Math.pow(10,-e),a=ar[8+e/3];return function(t){return r(i*t)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),rr=nr.format,er=nr.formatPrefix;var lr=1e-6;function fr(t){return"translate("+t+",0)"}function hr(t){return"translate(0,"+t+")"}function pr(t){return n=>+t(n)}function dr(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),r=>+t(r)+n}function mr(){return!this.__axis}function gr(t,n){var r=[],e=null,i=null,a=6,o=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,s=1===t||4===t?-1:1,l=4===t||2===t?"x":"y",f=1===t||3===t?fr:hr;function h(h){var p=null==e?n.ticks?n.ticks.apply(n,r):n.domain():e,d=null==i?n.tickFormat?n.tickFormat.apply(n,r):sr:i,m=Math.max(a,0)+u,g=n.range(),v=+g[0]+c,_=+g[g.length-1]+c,y=(n.bandwidth?dr:pr)(n.copy(),c),b=h.selection?h.selection():h,w=b.selectAll(".domain").data([null]),x=b.selectAll(".tick").data(p,n).order(),M=x.exit(),k=x.enter().append("g").attr("class","tick"),A=x.select("line"),N=x.select("text");w=w.merge(w.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(k),A=A.merge(k.append("line").attr("stroke","currentColor").attr(l+"2",s*a)),N=N.merge(k.append("text").attr("fill","currentColor").attr(l,s*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==b&&(w=w.transition(h),x=x.transition(h),A=A.transition(h),N=N.transition(h),M=M.transition(h).attr("opacity",lr).attr("transform",function(t){return isFinite(t=y(t))?f(t+c):this.getAttribute("transform")}),k.attr("opacity",lr).attr("transform",function(t){var n=this.parentNode.__axis;return f((n&&isFinite(n=n(t))?n:y(t))+c)})),M.remove(),w.attr("d",4===t||2===t?o?"M"+s*o+","+v+"H"+c+"V"+_+"H"+s*o:"M"+c+","+v+"V"+_:o?"M"+v+","+s*o+"V"+c+"H"+_+"V"+s*o:"M"+v+","+c+"H"+_),x.attr("opacity",1).attr("transform",function(t){return f(y(t)+c)}),A.attr(l+"2",s*a),N.attr(l,s*m).text(d),b.filter(mr).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),b.each(function(){this.__axis=y})}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return r=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),h):r.slice()},h.tickValues=function(t){return arguments.length?(e=null==t?null:Array.from(t),h):e&&e.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(a=o=+t,h):a},h.tickSizeInner=function(t){return arguments.length?(a=+t,h):a},h.tickSizeOuter=function(t){return arguments.length?(o=+t,h):o},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}function vr(t){return gr(3,t)}function _r(t){return gr(4,t)}function yr(t){for(var n=t.length/6|0,r=new Array(n),e=0;e<n;)r[e]="#"+t.slice(6*e,6*++e);return r}var br,wr=yr("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),xr=qn((br=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(yr))[br.length-1]);function Mr(t){return function(){return t}}const kr=Math.abs,Ar=Math.atan2,Nr=Math.cos,$r=Math.max,Er=Math.min,qr=Math.sin,Sr=Math.sqrt,jr=1e-12,Or=Math.PI,zr=Or/2,Cr=2*Or;function Pr(t){return t>=1?zr:t<=-1?-zr:Math.asin(t)}const Tr=Math.PI,Rr=2*Tr,Lr=1e-6,Ir=Rr-Lr;function Fr(t){this._+=t[0];for(let n=1,r=t.length;n<r;++n)this._+=arguments[n]+t[n]}class Hr{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Fr:function(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Fr;const r=10**n;return function(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=Math.round(arguments[n]*r)/r+t[n]}}(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,e){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+e}`}bezierCurveTo(t,n,r,e,i,a){this._append`C${+t},${+n},${+r},${+e},${this._x1=+i},${this._y1=+a}`}arcTo(t,n,r,e,i){if(t=+t,n=+n,r=+r,e=+e,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,u=r-t,c=e-n,s=a-t,l=o-n,f=s*s+l*l;if(null===this._x1)this._append`M${this._x1=t},${this._y1=n}`;else if(f>Lr)if(Math.abs(l*u-c*s)>Lr&&i){let h=r-a,p=e-o,d=u*u+c*c,m=h*h+p*p,g=Math.sqrt(d),v=Math.sqrt(f),_=i*Math.tan((Tr-Math.acos((d+f-m)/(2*g*v)))/2),y=_/v,b=_/g;Math.abs(y-1)>Lr&&this._append`L${t+y*s},${n+y*l}`,this._append`A${i},${i},0,0,${+(l*h>s*p)},${this._x1=t+b*u},${this._y1=n+b*c}`}else this._append`L${this._x1=t},${this._y1=n}`}arc(t,n,r,e,i,a){if(t=+t,n=+n,a=!!a,(r=+r)<0)throw new Error(`negative radius: ${r}`);let o=r*Math.cos(e),u=r*Math.sin(e),c=t+o,s=n+u,l=1^a,f=a?e-i:i-e;null===this._x1?this._append`M${c},${s}`:(Math.abs(this._x1-c)>Lr||Math.abs(this._y1-s)>Lr)&&this._append`L${c},${s}`,r&&(f<0&&(f=f%Rr+Rr),f>Ir?this._append`A${r},${r},0,1,${l},${t-o},${n-u}A${r},${r},0,1,${l},${this._x1=c},${this._y1=s}`:f>Lr&&this._append`A${r},${r},0,${+(f>=Tr)},${l},${this._x1=t+r*Math.cos(i)},${this._y1=n+r*Math.sin(i)}`)}rect(t,n,r,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+e}h${-r}Z`}toString(){return this._}}function Vr(t){let n=3;return t.digits=function(r){if(!arguments.length)return n;if(null==r)n=null;else{const t=Math.floor(r);if(!(t>=0))throw new RangeError(`invalid digits: ${r}`);n=t}return t},()=>new Hr(n)}function Br(t){return t.innerRadius}function Dr(t){return t.outerRadius}function Xr(t){return t.startAngle}function Gr(t){return t.endAngle}function Jr(t){return t&&t.padAngle}function Qr(t,n,r,e,i,a,o){var u=t-r,c=n-e,s=(o?a:-a)/Sr(u*u+c*c),l=s*c,f=-s*u,h=t+l,p=n+f,d=r+l,m=e+f,g=(h+d)/2,v=(p+m)/2,_=d-h,y=m-p,b=_*_+y*y,w=i-a,x=h*m-d*p,M=(y<0?-1:1)*Sr($r(0,w*w*b-x*x)),k=(x*y-_*M)/b,A=(-x*_-y*M)/b,N=(x*y+_*M)/b,$=(-x*_+y*M)/b,E=k-g,q=A-v,S=N-g,j=$-v;return E*E+q*q>S*S+j*j&&(k=N,A=$),{cx:k,cy:A,x01:-l,y01:-f,x11:k*(i/w-1),y11:A*(i/w-1)}}function Ur(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Zr(t){this._context=t}function Wr(t){return new Zr(t)}function Yr(t){return t[0]}function Kr(t){return t[1]}function te(t,n){var r=Mr(!0),e=null,i=Wr,a=null,o=Vr(u);function u(u){var c,s,l,f=(u=Ur(u)).length,h=!1;for(null==e&&(a=i(l=o())),c=0;c<=f;++c)!(c<f&&r(s=u[c],c,u))===h&&((h=!h)?a.lineStart():a.lineEnd()),h&&a.point(+t(s,c,u),+n(s,c,u));if(l)return a=null,l+""||null}return t="function"==typeof t?t:void 0===t?Yr:Mr(t),n="function"==typeof n?n:void 0===n?Kr:Mr(n),u.x=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:Mr(+t),u):n},u.defined=function(t){return arguments.length?(r="function"==typeof t?t:Mr(!!t),u):r},u.curve=function(t){return arguments.length?(i=t,null!=e&&(a=i(e)),u):i},u.context=function(t){return arguments.length?(null==t?e=a=null:a=i(e=t),u):e},u}function ne(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function re(t){return t}function ee(t,n,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+r)/6)}function ie(t){this._context=t}function ae(t){return new ie(t)}Zr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}},ie.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ee(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ee(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var oe=0,ue={width:400,height:400,color:"#000",background:"#fff",title:"",xlabel:"",ylabel:""};function ce(n,r){var e,i=t({},ue,r),a=n;if(!a){a="#datly-plot-"+oe++;var o=document.createElement("div");o.id=a.replace("#",""),document.body.appendChild(o)}return(e=ct(a)).html(""),e.style("background",i.background).style("display","inline-block"),i.title&&e.append("h3").style("text-align","center").style("font-family","sans-serif").style("margin-bottom","5px").text(i.title),{svg:e.append("svg").attr("width",i.width).attr("height",i.height).style("background",i.background),config:i}}function se(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=ur().domain(mt(t)).nice().range([0,u]),l=ur().domain(mt(n)).nice().range([c,0]),f=a.append("g").attr("transform","translate(40,20)");f.selectAll("circle").data(t).enter().append("circle").attr("cx",function(n,r){return s(t[r])}).attr("cy",function(t,r){return l(n[r])}).attr("r",r.size||4).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))}var le=function(t){return"number"==typeof t&&Number.isFinite(t)},fe=function(t){return null==t||""===t?NaN:Number(t)},he=function(t){return t.reduce(function(t,n){return t.concat(n)},[])},pe=function(t){return t.map(fe).filter(function(t){return Number.isFinite(t)})},de=function(t){return Array.from(new Set(t))},me=function(t){return pe(t).reduce(function(t,n){return t+n},0)},ge=function(t){var n=pe(t),r=n.length;return r?me(n)/r:NaN},ve=function(t,n){void 0===n&&(n=!0);var r=pe(t),e=r.length;if(e<2)return NaN;var i=ge(r);return r.reduce(function(t,n){return t+Math.pow(n-i,2)},0)/(n?e-1:e)},_e=function(t,n){return void 0===n&&(n=!0),Math.sqrt(ve(t,n))},ye=function(t){return Math.min.apply(Math,pe(t))},be=function(t){return Math.max.apply(Math,pe(t))},we=function(t){var n=pe(t).sort(function(t,n){return t-n}),r=n.length;if(!r)return NaN;var e=Math.floor(r/2);return r%2?n[e]:(n[e-1]+n[e])/2},xe=function(t,n){var r=pe(t).sort(function(t,n){return t-n}),e=r.length;if(!e)return NaN;var i=(e-1)*n,a=Math.floor(i),o=i-a;return r[a]+(r[Math.min(a+1,e-1)]-r[a])*o},Me=function(t){var n=pe(t),r=n.length;if(r<3)return NaN;var e=ge(n),i=_e(n,!0);return n.reduce(function(t,n){return t+Math.pow(n-e,3)},0)/r/Math.pow(i,3)*Math.sqrt(r*(r-1))/(r-2)},ke=function(t){var n=pe(t),r=n.length;if(r<4)return NaN;var e=ge(n),i=ve(n,!0);return n.reduce(function(t,n){return t+Math.pow(n-e,4)},0)/r/Math.pow(i,2)-3},Ae=function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return NaN;for(var a=r.slice(0,i),o=e.slice(0,i),u=ge(a),c=ge(o),s=0,l=0,f=0,h=0;h<i;h++){var p=a[h]-u,d=o[h]-c;s+=p*d,l+=p*p,f+=d*d}return s/Math.sqrt(l*f)},Ne=function(t){for(var n=pe(t).map(function(t,n){return{v:t,i:n}}).sort(function(t,n){return t.v-n.v}),r=Array(t.length).fill(NaN),e=0;e<n.length;){for(var i=e;i+1<n.length&&n[i+1].v===n[e].v;)i++;for(var a=(e+i)/2+1,o=e;o<=i;o++)r[n[o].i]=a;e=i+1}return r.filter(Number.isFinite)},$e=function(t,n){return Ae(Ne(t),Ne(n))},Ee=function(t){return Math.exp(-.5*t*t)/Math.sqrt(2*Math.PI)},qe=function(t){return.5*(1+Se(t/Math.SQRT2))},Se=function(t){var n=Math.sign(t),r=1/(1+.3275911*(t=Math.abs(t)));return n*(1-((((1.061405429*r-1.453152027)*r+1.421413741)*r-.284496736)*r+.254829592)*r*Math.exp(-t*t))},je=function(t){return t<=0||t>=1?NaN:Math.SQRT2*function(t){var n=Math.log(1-t*t),r=2/(.147*Math.PI)+n/2;return Math.sign(t)*Math.sqrt(Math.sqrt(r*r-n/.147)-r)}(2*t-1)},Oe=function(t){var n=function(t){return Array.isArray(t)?t.map(n):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).map(function(t){var r=t[1];return[String(t[0]).toLowerCase(),n(r)]})):"number"==typeof t&&Number.isFinite(t)?Number(Number(t).toPrecision(12)):t},r=n(t),e=[],i=function(t,n){void 0===n&&(n=0);var r=" ".repeat(n);Array.isArray(t)?(e.push(r+"- list:"),t.forEach(function(t){return i(t,n+2)})):t&&"object"==typeof t?Object.keys(t).forEach(function(a){var o=t[a];o&&"object"==typeof o?(e.push(r+a+":"),i(o,n+2)):e.push(r+a+": "+String(o).toLowerCase())}):e.push(r+String(t).toLowerCase())};return i(r),e.join("\n")},ze=function(n,r){return Oe(t({type:n},r))},Ce=function(t,n){return Oe({type:t,error:n})},Pe=function(t){if(!Array.isArray(t)||!t.length)return Ce("describe","empty data");var n=de(he(t.map(function(t){return Object.keys(t)}))),r={type:"describe",columns:{}};return n.forEach(function(n){var e=t.map(function(t){return t[n]}),i=e.map(fe).filter(Number.isFinite),a=e.filter(function(t){return null==t||"number"==typeof t&&!Number.isFinite(t)||""===t}).length,o=i.length===e.length?"number":e.every(function(t){return"boolean"==typeof t})?"boolean":"string",u={dtype:o,count:e.length,missing:a};if("number"===o)u.mean=ge(i),u.std=_e(i),u.min=ye(i),u.q1=xe(i,.25),u.median=we(i),u.q3=xe(i,.75),u.max=be(i),u.skewness=Me(i),u.kurtosis=ke(i);else if("string"===o||"boolean"===o){var c={};e.forEach(function(t){var n=String(t);c[n]=(c[n]||0)+1});var s=Object.entries(c).sort(function(t,n){return n[1]-t[1]}).slice(0,10);u.top=s.map(function(t){return{value:t[0],freq:t[1]}}),u.unique=Object.keys(c).length}r.columns[n]=u}),Oe(r)},Te=function(t){if(!Array.isArray(t)||!t.length)return Ce("missing_report","empty data");var n=de(he(t.map(function(t){return Object.keys(t)}))).map(function(n){var r=t.map(function(t){return t[n]}),e=r.filter(function(t){return null==t||""===t}).length;return{column:n,missing:e,missing_rate:e/r.length}});return Oe({type:"missing_report",rows:n})},Re=function(t,n){void 0===n&&(n="pearson");var r=de(he(t.map(function(t){return Object.keys(t)}))).filter(function(n){return t.every(function(t){return Number.isFinite(fe(t[n]))||null==t[n]})}),e={};return r.forEach(function(i){e[i]={};var a=t.map(function(t){return fe(t[i])});r.forEach(function(r){var o=t.map(function(t){return fe(t[r])}),u="spearman"===n?$e(a,o):Ae(a,o);e[i][r]=u})}),Oe({type:"correlation_matrix",method:n,matrix:e})},Le=function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_cdf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return qe((t-n)/r)}):qe((t-n)/r)})},Ie=function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_ppf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return n+r*je(t)}):n+r*je(t)})},Fe=function(t,n){var r=n/2,e=n/(n+t*t),i=Math.pow(e,r)*Math.pow(1-e,.5)/r*function(t,n,r){for(var e,i=1,a=1,o=1,u=t+.5,c=t+1,s=t-1,l=1-u*r/c,f=1;f<=200;f++){var h=f+f,p=f*(.5-f)*r/((s+h)*(t+h)),d=o+p*i,m=l+p*a,g=m+(p=-(t+f)*(u+f)*r/((t+h)*(c+h)))*l;if(e=o,i=d/g,a=m/g,o=(d+p*o)/g,l=1,Math.abs(o-e)<3e-7*Math.abs(o))return o}return o}(r,0,e),a=.5*i;return t>=0?1-a:a},He=function(t,n){for(var r=t.length,e=n[0].length,i=n.length,a=Array(r).fill(0).map(function(){return Array(e).fill(0)}),o=0;o<r;o++)for(var u=0;u<e;u++){for(var c=0,s=0;s<i;s++)c+=t[o][s]*n[s][u];a[o][u]=c}return a},Ve=function(t,n){var r,e,i=function(t){return t.map(function(t){return[1].concat(t)})}(t),a=function(t,n){void 0===n&&(n=1e-8);for(var r=function(t){return t[0].map(function(n,r){return t.map(function(t){return t[r]})})}(t),e=He(r,t),i=e.length,a=0;a<i;a++)e[a][a]+=n;var o=function(t){for(var n=t.length,r=t.map(function(t,r){return t.concat(Array.from({length:n},function(t,n){return r===n?1:0}))}),e=0;e<n;e++){for(var i=r[e][e],a=e,o=e+1;o<n;o++)Math.abs(r[o][e])>Math.abs(i)&&(i=r[o][e],a=o);if(a!==e){var u=r[e];r[e]=r[a],r[a]=u}var c=r[e][e];if(!(Math.abs(c)<1e-12)){for(var s=0;s<2*n;s++)r[e][s]/=c;for(var l=0;l<n;l++)if(l!==e)for(var f=r[l][e],h=0;h<2*n;h++)r[l][h]-=f*r[e][h]}}return r.map(function(t){return t.slice(n)})}(e);return He(o,r)}(i),o=He(a,n.map(function(t){return[t]})).map(function(t){return t[0]}),u=t.map(function(t){return o[0]+t.reduce(function(t,n,r){return t+o[r+1]*n},0)}),c=n.map(function(t,n){return t-u[n]}),s=ge(c.map(function(t){return t*t})),l=1-me(c.map(function(t){return t*t}))/me(n.map(function(t){return Math.pow(t-ge(n),2)})),f={type:"linear_regression",weights:o,mse:s,r2:l,n:n.length,p:null!=(r=null==(e=t[0])?void 0:e.length)?r:0};return Oe(f)},Be=function(t){return 1/(1+Math.exp(-t))},De=function(t,n,r){var e,i,a,o,u;void 0===r&&(r={});for(var c=null!=(e=r.learning_rate)?e:.1,s=null!=(i=r.iterations)?i:1e3,l=null!=(a=r.l2)?a:0,f=null!=(o=null==(u=t[0])?void 0:u.length)?o:0,h=Array(f+1).fill(0),p=t.map(function(t){return[1].concat(t)}),d=0;d<s;d++){for(var m=Array(f+1).fill(0),g=function(t){for(var r=h.reduce(function(n,r,e){return n+r*p[t][e]},0),e=Be(r)-n[t],i=0;i<m.length;i++)m[i]+=e*p[t][i]},v=0;v<p.length;v++)g(v);for(var _=0;_<h.length;_++)m[_]=m[_]/p.length+l*h[_],h[_]-=c*m[_]}var y=t.map(function(t){return Be(h[0]+t.reduce(function(t,n,r){return t+h[r+1]*n},0))}),b=y.map(function(t){return t>=.5?1:0}),w=b.filter(function(t,r){return t===n[r]}).length/n.length;return Oe({type:"logistic_regression",weights:h,accuracy:w,n:n.length,p:f})},Xe=function(t,n){try{var r,e=JSON.parse(JSON.stringify(Je(t))),i=e.weights||(null==(r=e.model)?void 0:r.weights);if(!i)return Ce("predict_linear","invalid model");var a=n.map(function(t){return i[0]+t.reduce(function(t,n,r){return t+i[r+1]*n},0)});return Oe({type:"prediction",name:"linear_regression",predictions:a})}catch(t){return Ce("predict_linear","invalid model text")}},Ge=function(t,n,r){void 0===r&&(r=.5);try{var e,i=JSON.parse(JSON.stringify(Je(t))),a=i.weights||(null==(e=i.model)?void 0:e.weights);if(!a)return Ce("predict_logistic","invalid model");var o=n.map(function(t){return Be(a[0]+t.reduce(function(t,n,r){return t+a[r+1]*n},0))}),u=o.map(function(t){return t>=r?1:0});return Oe({type:"prediction",name:"logistic_regression",threshold:r,probabilities:o,classes:u})}catch(t){return Ce("predict_logistic","invalid model text")}},Je=function(t){var n=function(t){return Array.isArray(t)?t.map(n):t&&"object"==typeof t?Object.fromEntries(Object.entries(t).map(function(t){var r=t[1];return[String(t[0]).toLowerCase(),n(r)]})):t};return n(function(t){try{return"string"==typeof t?JSON.parse(t):t}catch(t){return{}}}(t))},Qe=function(t,n){for(var r=Math.min(t.length,n.length),e=0,i=0,a=0,o=0,u=0;u<r;u++)1===n[u]&&1===t[u]?e++:0===n[u]&&0===t[u]?i++:1===n[u]&&0===t[u]?a++:0===n[u]&&1===t[u]&&o++;var c=e+a?e/(e+a):0,s=e+o?e/(e+o):0;return Oe({type:"metric",name:"classification_report",confusion_matrix:{tp:e,fp:a,tn:i,fn:o},accuracy:(e+i)/r,precision:c,recall:s,f1:c+s?2*c*s/(c+s):0})},Ue=function(t,n){var r=Math.min(t.length,n.length),e=Array.from({length:r},function(r,e){return t[e]-n[e]}),i=ge(e.map(function(t){return t*t})),a=ge(e.map(function(t){return Math.abs(t)})),o=1-me(e.map(function(t){return t*t}))/me(t.map(function(n){return Math.pow(n-ge(t),2)}));return Oe({type:"metric",name:"regression_report",mse:i,mae:a,r2:o})},Ze=function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("corr_kendall","insufficient data");for(var a=0,o=0,u=0;u<i-1;u++)for(var c=u+1;c<i;c++){var s=r[c]-r[u],l=e[c]-e[u];s*l>0?a++:s*l<0&&o++}return ze("statistic",{name:"kendall_tau",value:(a-o)/(.5*i*(i-1)),concordant:a,discordant:o,n:i})},We=function(t,n){return Math.sqrt(t.reduce(function(t,r,e){return t+Math.pow(r-n[e],2)},0))},Ye=function(t,n,r){var e,i;if(void 0===r&&(r=5),t.length!==n.length)return Ce("train_knn_classifier","X and y length mismatch");var a={type:"knn_classifier",k:r,X:t,y:n,n:n.length,p:null!=(e=null==(i=t[0])?void 0:i.length)?e:0};return Oe(a)},Ke=function(t,n){try{var r=Je(t);if("knn_classifier"!==r.type)return Ce("predict_knn_classifier","invalid model type");var e=r.k,i=r.x,a=r.y,o=n.map(function(t){var n=i.map(function(n,r){return{dist:We(t,n),label:a[r]}});n.sort(function(t,n){return t.dist-n.dist});var r=n.slice(0,e),o={};r.forEach(function(t){var n=t.label;o[n]=(o[n]||0)+1});var u=Object.entries(o).sort(function(t,n){return n[1]-t[1]})[0][0];return Number(u)});return Oe({type:"prediction",name:"knn_classifier",k:e,predictions:o})}catch(t){return Ce("predict_knn_classifier","invalid model text")}},ti=function(t,n){try{var r=Je(t);if("knn_regressor"!==r.type)return Ce("predict_knn_regressor","invalid model type");var e=r.k,i=r.x,a=r.y,o=n.map(function(t){var n=i.map(function(n,r){return{dist:We(t,n),value:a[r]}});n.sort(function(t,n){return t.dist-n.dist});var r=n.slice(0,e);return ge(r.map(function(t){return t.value}))});return Oe({type:"prediction",name:"knn_regressor",k:e,predictions:o})}catch(t){return Ce("predict_knn_regressor","invalid model text")}},ni=function(t){var n={};t.forEach(function(t){n[t]=(n[t]||0)+1});var r=t.length;return 1-Object.values(n).reduce(function(t,n){return t+Math.pow(n/r,2)},0)},ri=function(t){var n=ge(t);return ge(t.map(function(t){return Math.pow(t-n,2)}))},ei=function(t,n,r,e,i,a){if(r>=e||n.length<i){var o="classification"===a?Object.entries(n.reduce(function(t,n){return t[n]=(t[n]||0)+1,t},{})).sort(function(t,n){return n[1]-t[1]})[0][0]:ge(n);return{leaf:!0,prediction:Number(o),n:n.length}}var u=function(t,n,r){void 0===r&&(r="classification");for(var e={feature:-1,threshold:0,score:Infinity},i=t[0].length,a=function(i){for(var a=de(t.map(function(t){return t[i]})).sort(function(t,n){return t-n}),o=function(){var o=(a[u]+a[u+1])/2,c=[],s=[];if(t.forEach(function(t,n){t[i]<=o?c.push(n):s.push(n)}),0===c.length||0===s.length)return 1;var l,f=c.map(function(t){return n[t]}),h=s.map(function(t){return n[t]});(l="classification"===r?f.length/n.length*ni(f)+h.length/n.length*ni(h):f.length/n.length*ri(f)+h.length/n.length*ri(h))<e.score&&(e={feature:i,threshold:o,score:l})},u=0;u<a.length-1;u++)o()},o=0;o<i;o++)a(o);return e}(t,n,a);if(-1===u.feature){var c="classification"===a?Object.entries(n.reduce(function(t,n){return t[n]=(t[n]||0)+1,t},{})).sort(function(t,n){return n[1]-t[1]})[0][0]:ge(n);return{leaf:!0,prediction:Number(c),n:n.length}}var s=[],l=[];t.forEach(function(t,n){t[u.feature]<=u.threshold?s.push(n):l.push(n)});var f=s.map(function(n){return t[n]}),h=s.map(function(t){return n[t]}),p=l.map(function(n){return t[n]}),d=l.map(function(t){return n[t]});return{leaf:!1,feature:u.feature,threshold:u.threshold,left:ei(f,h,r+1,e,i,a),right:ei(p,d,r+1,e,i,a)}},ii=function(t,n,r){var e,i,a,o;void 0===r&&(r={});var u=null!=(e=r.max_depth)?e:5,c=null!=(i=r.min_samples_split)?i:2,s={type:"decision_tree_classifier",tree:ei(t,n,0,u,c,"classification"),max_depth:u,min_samples:c,n:n.length,p:null!=(a=null==(o=t[0])?void 0:o.length)?a:0};return Oe(s)},ai=function(t,n,r){var e,i,a,o;void 0===r&&(r={});var u=null!=(e=r.max_depth)?e:5,c=null!=(i=r.min_samples_split)?i:2,s={type:"decision_tree_regressor",tree:ei(t,n,0,u,c,"regression"),max_depth:u,min_samples:c,n:n.length,p:null!=(a=null==(o=t[0])?void 0:o.length)?a:0};return Oe(s)},oi=function(t,n){return t.leaf?t.prediction:oi(n[t.feature]<=t.threshold?t.left:t.right,n)},ui=function(t,n){try{var r=Je(t),e=n.map(function(t){return oi(r.tree,t)});return Oe({type:"prediction",name:r.type,predictions:e})}catch(t){return Ce("predict_decision_tree","invalid model text")}},ci=function(t,n,r){var e=t.length,i=r,a=Array.from({length:e},function(){return Math.floor((i=(9301*i+49297)%233280)/233280*e)});return{X_boot:a.map(function(n){return t[n]}),y_boot:a.map(function(t){return n[t]})}},si=function(t,n,r){var e,i,a,o,u,c;void 0===r&&(r={});for(var s=null!=(e=r.n_estimators)?e:10,l=null!=(i=r.max_depth)?i:5,f=null!=(a=r.min_samples_split)?a:2,h=null!=(o=r.seed)?o:42,p=[],d=0;d<s;d++){var m=ci(t,n,h+d),g=Je(ii(m.X_boot,m.y_boot,{max_depth:l,min_samples:f}));p.push(g.tree)}var v={type:"random_forest_classifier",trees:p,n_trees:s,max_depth:l,min_samples:f,n:n.length,p:null!=(u=null==(c=t[0])?void 0:c.length)?u:0};return Oe(v)},li=function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.trees.map(function(n){return oi(n,t)}),e={};return n.forEach(function(t){e[t]=(e[t]||0)+1}),Number(Object.entries(e).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"prediction",name:"random_forest_classifier",n_trees:r.n_trees,predictions:e})}catch(t){return Ce("predict_random_forest_classifier","invalid model text")}},fi=function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.trees.map(function(n){return oi(n,t)});return ge(n)});return Oe({type:"prediction",name:"random_forest_regressor",n_trees:r.n_trees,predictions:e})}catch(t){return Ce("predict_random_forest_regressor","invalid model text")}},hi=function(t,n){try{var r=Je(t),e=n.map(function(t){var n={};return r.classes.forEach(function(e){var i=Math.log(r.priors[e]);r.stats[e].forEach(function(n,r){var e=(t[r]-n.mean)/n.std;i+=-.5*e*e-Math.log(n.std)-.5*Math.log(2*Math.PI)}),n[e]=i}),Number(Object.entries(n).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"prediction",name:"naive_bayes",predictions:e})}catch(t){return Ce("predict_naive_bayes","invalid model text")}},pi=function(t,n){var r=Array(n).fill(0),e=function(t,n){t.leaf||(r[t.feature]+=n,e(t.left,n),e(t.right,n))};e(t,1);var i=r.reduce(function(t,n){return t+n},0);return r.map(function(t){return i>0?t/i:0})},di={dataframe_from_json:function(t){try{var n=Array.isArray(t)?t:"object"==typeof t?[t]:[],r=de(he(n.map(function(t){return Object.keys(t)}))),e=n.map(function(t){return r.map(function(n){var r;return null!=(r=t[n])?r:null})}),i=r.map(function(t,n){var r=e.map(function(t){return t[n]}).filter(function(t){return null!=t});return r.map(fe).filter(Number.isFinite).length===r.length?"number":r.every(function(t){return"boolean"==typeof t})?"boolean":"string"});return ze("dataframe",{columns:r,n_rows:e.length,n_cols:r.length,dtypes:i,preview:n.slice(0,5)})}catch(t){return Ce("dataframe","invalid input")}},df_describe:Pe,df_missing_report:Te,df_corr:Re,eda_overview:function(t){var n,r,e,i=Je(Pe(t)),a=Je(Te(t)),o=Je(Re(t,"pearson"));return Oe({type:"eda",summary:null!=(n=i.columns)?n:i,missing:null!=(r=a.rows)?r:a,correlation:null!=(e=o.matrix)?e:o})},mean:function(t){return ze("statistic",{name:"mean",n:pe(t).length,value:ge(t)})},stddeviation:function(t,n){return void 0===n&&(n=!0),ze("statistic",{name:"std_deviation",sample:n,n:pe(t).length,value:_e(t,n)})},variance:function(t,n){return void 0===n&&(n=!0),ze("statistic",{name:"variance",sample:n,n:pe(t).length,value:ve(t,n)})},median:function(t){return ze("statistic",{name:"median",n:pe(t).length,value:we(t)})},quantile:function(t,n){return ze("statistic",{name:"quantile",q:n,n:pe(t).length,value:xe(t,n)})},minv:function(t){return ze("statistic",{name:"min",value:ye(t)})},maxv:function(t){return ze("statistic",{name:"max",value:be(t)})},skewness:function(t){return ze("statistic",{name:"skewness",value:Me(t)})},kurtosis:function(t){return ze("statistic",{name:"kurtosis",value:ke(t)})},corr_pearson:function(t,n){return ze("statistic",{name:"pearson_correlation",value:Ae(t,n)})},corr_spearman:function(t,n){return ze("statistic",{name:"spearman_correlation",value:$e(t,n)})},normal_pdf:function(t,n,r){return void 0===n&&(n=0),void 0===r&&(r=1),ze("distribution",{name:"normal_pdf",params:{mu:n,sigma:r},value:Array.isArray(t)?t.map(function(t){return Ee((t-n)/r)/r}):Ee((t-n)/r)/r})},normal_cdf:Le,normal_ppf:Ie,binomial_pmf:function(t,n,r){var e=function(t){return function(t,n){if(n<0||n>t)return 0;n=Math.min(n,t-n);for(var r=1,e=1,i=1;i<=n;i++)r*=t-(n-i),e*=i;return r/e}(n,t)*Math.pow(r,t)*Math.pow(1-r,n-t)},i=Array.isArray(t)?t.map(e):e(t);return ze("distribution",{name:"binomial_pmf",params:{n:n,p:r},value:i})},binomial_cdf:function(t,n,r){var e=function(t){for(var e=0,i=0;i<=t;i++)e+=function(t,n){if(n<0||n>t)return 0;n=Math.min(n,t-n);for(var r=1,e=1,i=1;i<=n;i++)r*=t-(n-i),e*=i;return r/e}(n,i)*Math.pow(r,i)*Math.pow(1-r,n-i);return e},i=Array.isArray(t)?t.map(e):e(t);return ze("distribution",{name:"binomial_cdf",params:{n:n,p:r},value:i})},poisson_pmf:function(t,n){var r=function(t){return Math.exp(-n)*Math.pow(n,t)/function(t){for(var n=1,r=2;r<=t;r++)n*=r;return n}(t)};return ze("distribution",{name:"poisson_pmf",params:{lambda:n},value:Array.isArray(t)?t.map(r):r(t)})},poisson_cdf:function(t,n){var r=function(t){for(var r=0,e=0;e<=t;e++)r+=Math.exp(-n)*Math.pow(n,e)/function(t){for(var n=1,r=2;r<=t;r++)n*=r;return n}(e);return r};return ze("distribution",{name:"poisson_cdf",params:{lambda:n},value:Array.isArray(t)?t.map(r):r(t)})},t_test_independent:function(t,n,r){void 0===r&&(r=!0);var e=pe(t),i=pe(n),a=e.length,o=i.length;if(a<2||o<2)return Ce("t_test_independent","insufficient data");var u,c,s=ge(e),l=ge(i),f=ve(e,!0),h=ve(i,!0);r?(c=Math.sqrt(((a-1)*f+(o-1)*h)/(a+o-2)*(1/a+1/o)),u=a+o-2):(c=Math.sqrt(f/a+h/o),u=Math.pow(f/a+h/o,2)/(Math.pow(f,2)/(Math.pow(a,2)*(a-1))+Math.pow(h,2)/(Math.pow(o,2)*(o-1))));var p=(s-l)/c,d=2*(1-Fe(Math.abs(p),u));return Oe({type:"hypothesis_test",name:"independent_t_test",statistic:p,df:u,p_value:d,means:{group_a:s,group_b:l}})},z_test_one_sample:function(t,n,r,e){void 0===n&&(n=0),void 0===r&&(r=null),void 0===e&&(e=.05);var i=pe(t),a=i.length;if(a<2)return Ce("z_test_one_sample","insufficient data");var o=ge(i),u=null!=r?r:_e(i,!0),c=u/Math.sqrt(a),s=(o-n)/c,l=2*(1-Le(Math.abs(s))),f=Ie(1-e/2)*c;return Oe({type:"hypothesis_test",name:"one_sample_z_test",statistic:s,p_value:l,ci_lower:o-f,ci_upper:o+f,confidence:1-e,extra:{sample_mean:o,hypothesized_mean:n,se:c,sigma_used:u,n:a,effect_size:(o-n)/u}})},chi_square_independence:function(t,n){void 0===n&&(n=.05);var r=t.length,e=t[0].length,i=t.map(function(t){return t.reduce(function(t,n){return t+n},0)}),a=Array(e).fill(0);t.forEach(function(t){return t.forEach(function(t,n){return a[n]+=t})});for(var o=i.reduce(function(t,n){return t+n},0),u=0,c=Array.from({length:r},function(t,n){return Array.from({length:e},function(t,r){return i[n]*a[r]/o})}),s=0;s<r;s++)for(var l=0;l<e;l++)u+=Math.pow(t[s][l]-c[s][l],2)/c[s][l];var f=(r-1)*(e-1),h=1-chi_square_cdf(u,f);return Oe({type:"hypothesis_test",name:"chi_square_independence",statistic:u,df:f,p_value:h,confidence:1-n,extra:{observed:t,expected:c,dof:f}})},anova_oneway:function(t,n){void 0===n&&(n=.05);var r=t.length,e=t.map(function(t){return pe(t).length}),i=t.map(ge),a=ge(t.flat()),o=t.reduce(function(t,n,r){return t+e[r]*Math.pow(i[r]-a,2)},0),u=t.reduce(function(t,n,r){return t+pe(n).reduce(function(t,n){return t+Math.pow(n-i[r],2)},0)},0),c=r-1,s=e.reduce(function(t,n){return t+n},0)-r,l=o/c/(u/s),f=1-f_cdf(l,c,s);return Oe({type:"hypothesis_test",name:"anova_oneway",statistic:l,df:{between:c,within:s},p_value:f,confidence:1-n,extra:{group_means:i,grand_mean:a,ssb:o,ssw:u}})},train_test_split:function(t,n,r,e){void 0===r&&(r=.2),void 0===e&&(e=42);var i=t.length,a=Array.from({length:i},function(t,n){return n}),o=e;a.sort(function(){return(o=(9301*o+49297)%233280)/233280-.5});var u=Math.max(1,Math.floor(i*r)),c=a.slice(0,u),s=a.slice(u),l=s.map(function(n){return t[n]}),f=s.map(function(t){return n[t]});c.map(function(n){return t[n]});var h=c.map(function(t){return n[t]});return Oe({type:"split",sizes:{train:f.length,test:h.length},indices:{train:s,test:c},preview:{x_train:l.slice(0,2),y_train:f.slice(0,5)}})},train_linear_regression:Ve,train_logistic_regression:De,predict_linear:Xe,predict_logistic:Ge,metrics_classification:Qe,metrics_regression:Ue,t_test_paired:function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("t_test_paired","insufficient data");var a=Array.from({length:i},function(t,n){return r[n]-e[n]}),o=ge(a),u=o/(_e(a,!0)/Math.sqrt(i)),c=i-1,s=2*(1-Fe(Math.abs(u),c));return Oe({type:"hypothesis_test",name:"paired_t_test",statistic:u,df:c,p_value:s,mean_difference:o})},t_test_one_sample:function(t,n){var r=pe(t),e=r.length;if(e<2)return Ce("t_test_one_sample","insufficient data");var i=ge(r),a=(i-n)/(_e(r,!0)/Math.sqrt(e)),o=e-1,u=2*(1-Fe(Math.abs(a),o));return Oe({type:"hypothesis_test",name:"one_sample_t_test",statistic:a,df:o,p_value:u,mean:i,hypothesized_mean:n})},shapiro_wilk:function(t){var n=pe(t).sort(function(t,n){return t-n}),r=n.length;if(r<3||r>5e3)return Ce("shapiro_wilk","sample size must be between 3 and 5000");for(var e=ge(n),i=n.reduce(function(t,n){return t+Math.pow(n-e,2)},0),a=0,o=Math.floor(r/2),u=0;u<o;u++)a+=(0===u?-2.706056/Math.sqrt(r):u===o-1&&r%2==0?2.706056/Math.sqrt(r):0)*(n[r-1-u]-n[u]);return Oe({type:"hypothesis_test",name:"shapiro_wilk",statistic:a*a/i,n:r,note:"approximation; w > 0.9 suggests normality"})},jarque_bera:function(t){var n=pe(t),r=n.length;if(r<4)return Ce("jarque_bera","insufficient data");var e=Me(n),i=ke(n);return Oe({type:"hypothesis_test",name:"jarque_bera",statistic:r/6*(e*e+i*i/4),n:r,df:2,note:"tests normality; low p-value rejects normality"})},levene_test:function(t){var n=t.length,r=t.map(we),e=t.map(function(t,n){return pe(t).map(function(t){return Math.abs(t-r[n])})}),i=he(e),a=we(i),o=e.map(function(t){return t.length}),u=o.reduce(function(t,n){return t+n},0),c=e.reduce(function(t,n,r){return t+o[r]*Math.pow(ge(n)-a,2)},0),s=e.reduce(function(t,n){return t+n.reduce(function(t,r){return t+Math.pow(r-ge(n),2)},0)},0),l=n-1,f=u-n;return Oe({type:"hypothesis_test",name:"levene_test",statistic:c/l/(s/f),df_between:l,df_within:f,note:"tests homogeneity of variance"})},kruskal_wallis:function(t){var n=he(t),r=n.length,e=Ne(n),i=0,a=12/(r*(r+1))*t.map(function(t){var n=pe(t).length,r=e.slice(i,i+n).reduce(function(t,n){return t+n},0);return i+=n,{n:n,rsum:r}}).reduce(function(t,n){var r=n.rsum;return t+r*r/n.n},0)-3*(r+1);return Oe({type:"hypothesis_test",name:"kruskal_wallis",statistic:a,df:t.length-1,note:"non-parametric alternative to anova"})},mann_whitney:function(t,n){var r=pe(t),e=pe(n),i=r.length,a=e.length;if(i<1||a<1)return Ce("mann_whitney","insufficient data");var o=r.concat(e),u=Ne(o).slice(0,i).reduce(function(t,n){return t+n},0)-i*(i+1)/2,c=Math.min(u,i*a-u),s=(c-i*a/2)/Math.sqrt(i*a*(i+a+1)/12),l=2*(1-qe(Math.abs(s)));return Oe({type:"hypothesis_test",name:"mann_whitney_u",statistic:c,z_score:s,p_value:l,note:"non-parametric alternative to t-test"})},wilcoxon_signed_rank:function(t,n){var r=pe(t),e=pe(n),i=Math.min(r.length,e.length);if(i<2)return Ce("wilcoxon_signed_rank","insufficient data");var a=Array.from({length:i},function(t,n){return r[n]-e[n]}).filter(function(t){return 0!==t}),o=a.map(Math.abs),u=Ne(o).reduce(function(t,n,r){return t+(a[r]>0?n:0)},0),c=a.length,s=(u-c*(c+1)/4)/Math.sqrt(c*(c+1)*(2*c+1)/24),l=2*(1-qe(Math.abs(s)));return Oe({type:"hypothesis_test",name:"wilcoxon_signed_rank",statistic:u,z_score:s,p_value:l,n:c})},chi_square_goodness:function(t,n,r){void 0===r&&(r=.05);for(var e=pe(t),i=pe(n),a=Math.min(e.length,i.length),o=0,u=0;u<a;u++)o+=Math.pow(e[u]-i[u],2)/i[u];var c=a-1,s=1-chi_square_cdf(o,c);return Oe({type:"hypothesis_test",name:"chi_square_goodness_of_fit",statistic:o,df:c,p_value:s,confidence:1-r,extra:{observed:e,expected:i,dof:c}})},confidence_interval_mean:function(t,n){void 0===n&&(n=.95);var r=pe(t),e=r.length;if(e<2)return Ce("confidence_interval_mean","insufficient data");var i=ge(r),a=_e(r,!0),o=je(1-(1-n)/2)*(e>30?1:1.15)*a/Math.sqrt(e);return Oe({type:"confidence_interval",parameter:"mean",confidence:n,n:e,mean:i,lower:i-o,upper:i+o,margin:o})},confidence_interval_proportion:function(t,n,r){if(void 0===r&&(r=.95),n<1)return Ce("confidence_interval_proportion","invalid sample size");var e=t/n,i=je(1-(1-r)/2)*Math.sqrt(e*(1-e)/n),a=Math.max(0,e-i),o=Math.min(1,e+i);return Oe({type:"confidence_interval",parameter:"proportion",confidence:r,n:n,proportion:e,lower:a,upper:o,margin:i})},confidence_interval_variance:function(t,n){void 0===n&&(n=.95);var r=pe(t),e=r.length;if(e<2)return Ce("confidence_interval_variance","insufficient data");var i=ve(r,!0),a=e-1,o=1-n,u=a/(1+je(1-o/2)*Math.sqrt(2/a)),c=a/(1-je(1-o/2)*Math.sqrt(2/a));return Oe({type:"confidence_interval",parameter:"variance",confidence:n,n:e,variance:i,lower:a*i/c,upper:a*i/u})},confidence_interval_difference:function(t,n,r){void 0===r&&(r=.95);var e=pe(t),i=pe(n),a=e.length,o=i.length;if(a<2||o<2)return Ce("confidence_interval_difference","insufficient data");var u=ge(e),c=ge(i),s=ve(e,!0),l=ve(i,!0),f=u-c,h=Math.sqrt(s/a+l/o),p=je(1-(1-r)/2)*h;return Oe({type:"confidence_interval",parameter:"difference_of_means",confidence:r,difference:f,lower:f-p,upper:f+p,margin:p,means:{group_a:u,group_b:c}})},corr_kendall:Ze,corr_partial:function(t,n,r){var e=Ae(t,n),i=Ae(t,r),a=Ae(n,r),o=(e-i*a)/Math.sqrt((1-i*i)*(1-a*a));return ze("statistic",{name:"partial_correlation",value:o,controlling_for:"third_variable"})},corr_matrix_all:function(t,n){var r=Je(Re(t,"pearson")).matrix,e=Je(Re(t,"spearman")).matrix,i=Object.keys(r),a={};return i.forEach(function(n){a[n]={},i.forEach(function(r){var e,i=t.map(function(t){return fe(t[n])}),o=t.map(function(t){return fe(t[r])}),u=null!=(e=Je(Ze(i,o)).value)?e:NaN;a[n][r]=u})}),Oe({type:"correlation_analysis",pearson:r,spearman:e,kendall:a})},train_knn_classifier:Ye,predict_knn_classifier:Ke,train_knn_regressor:function(t,n,r){var e,i;if(void 0===r&&(r=5),t.length!==n.length)return Ce("train_knn_regressor","X and y length mismatch");var a={type:"knn_regressor",k:r,X:t,y:n,n:n.length,p:null!=(e=null==(i=t[0])?void 0:i.length)?e:0};return Oe(a)},predict_knn_regressor:ti,train_decision_tree_classifier:ii,train_decision_tree_regressor:ai,predict_decision_tree:ui,train_random_forest_classifier:si,train_random_forest_regressor:function(t,n,r){var e,i,a,o,u,c;void 0===r&&(r={});for(var s=null!=(e=r.n_estimators)?e:10,l=null!=(i=r.max_depth)?i:5,f=null!=(a=r.min_samples_split)?a:2,h=null!=(o=r.seed)?o:42,p=[],d=0;d<s;d++){var m=ci(t,n,h+d),g=Je(ai(m.X_boot,m.y_boot,{max_depth:l,min_samples:f}));p.push(g.tree)}var v={type:"random_forest_regressor",trees:p,n_trees:s,max_depth:l,min_samples:f,n:n.length,p:null!=(u=null==(c=t[0])?void 0:c.length)?u:0};return Oe(v)},predict_random_forest_classifier:li,predict_random_forest_regressor:fi,train_naive_bayes:function(t,n){var r,e,i=de(n),a=n.length,o=null!=(r=null==(e=t[0])?void 0:e.length)?r:0,u={},c={};return i.forEach(function(r){var e=n.map(function(t,n){return t===r?n:-1}).filter(function(t){return t>=0});u[r]=e.length/a,c[r]=Array.from({length:o},function(n,r){var i=e.map(function(n){return t[n][r]});return{mean:ge(i),std:_e(i,!0)}})}),Oe({type:"naive_bayes",classes:i,priors:u,stats:c,n:a,p:o})},predict_naive_bayes:hi,standard_scaler_fit:function(t){var n,r,e=null!=(n=null==(r=t[0])?void 0:r.length)?n:0,i=Array.from({length:e},function(n,r){var e=t.map(function(t){return t[r]});return{mean:ge(e),std:_e(e,!0)}});return Oe({type:"standard_scaler",params:i,n:t.length,p:e})},standard_scaler_transform:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){return(t-r.params[n].mean)/r.params[n].std})});return Oe({type:"scaled_data",method:"standard",preview:e.slice(0,5)})}catch(t){return Ce("standard_scaler_transform","invalid scaler text")}},minmax_scaler_fit:function(t){var n,r,e=null!=(n=null==(r=t[0])?void 0:r.length)?n:0,i=Array.from({length:e},function(n,r){var e=t.map(function(t){return t[r]});return{min:ye(e),max:be(e)}});return Oe({type:"minmax_scaler",params:i,n:t.length,p:e})},minmax_scaler_transform:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){var e=r.params[n].max-r.params[n].min;return 0===e?0:(t-r.params[n].min)/e})});return Oe({type:"scaled_data",method:"minmax",preview:e.slice(0,5)})}catch(t){return Ce("minmax_scaler_transform","invalid scaler text")}},train_pca:function(t,n){var r,e;void 0===n&&(n=2);var i=t.length,a=null!=(r=null==(e=t[0])?void 0:e.length)?r:0;if(n>a)return Ce("train_pca","n_components cannot exceed number of features");for(var o=Array.from({length:a},function(n,r){return ge(t.map(function(t){return t[r]}))}),u=t.map(function(t){return t.map(function(t,n){return t-o[n]})}),c=Array.from({length:a},function(t,n){return Array.from({length:a},function(t,r){for(var e=0,a=0;a<i;a++)e+=u[a][n]*u[a][r];return e/(i-1)})}),s=[],l=function(){for(var t=Array.from({length:a},function(){return Math.random()}),n=function(){var n=Array.from({length:a},function(n,r){return c[r].reduce(function(n,r,e){return n+r*t[e]},0)}),r=Math.sqrt(n.reduce(function(t,n){return t+n*n},0));t=n.map(function(t){return t/r})},r=0;r<100;r++)n();s.push(t);for(var e=0;e<a;e++)for(var i=0;i<a;i++)c[e][i]-=t[e]*t[i]*c[e].reduce(function(n,r,e){return n+r*t[e]},0)},f=0;f<n;f++)l();return Oe({type:"pca",n_components:n,means:o,components:s,n:i,p:a})},transform_pca:function(t,n){try{var r=Je(t),e=n.map(function(t){return t.map(function(t,n){return t-r.means[n]})}).map(function(t){return r.components.map(function(n){return t.reduce(function(t,r,e){return t+r*n[e]},0)})});return Oe({type:"pca_transform",n_components:r.n_components,preview:e.slice(0,5)})}catch(t){return Ce("transform_pca","invalid model text")}},train_kmeans:function(t,n,r){var e,i,a,o;void 0===n&&(n=3),void 0===r&&(r={});for(var u=null!=(e=r.max_iterations)?e:100,c=null!=(i=r.seed)?i:42,s=t.length,l=null!=(a=null==(o=t[0])?void 0:o.length)?a:0,f=Array.from({length:n},function(){return Math.floor((c=(9301*c+49297)%233280)/233280*s)}).map(function(n){return[].concat(t[n])}),h=Array(s).fill(0),p=function(){var r=t.map(function(t){var n=f.map(function(n){return We(t,n)});return n.indexOf(Math.min.apply(Math,n))});if(h.every(function(t,n){return t===r[n]}))return 1;h=r,f=Array.from({length:n},function(n,r){var e=t.filter(function(t,n){return h[n]===r});return 0===e.length?f[r]:Array.from({length:l},function(t,n){return ge(e.map(function(t){return t[n]}))})})},d=0;d<u&&!p();d++);var m=t.reduce(function(t,n,r){return t+Math.pow(We(n,f[h[r]]),2)},0);return Oe({type:"kmeans",k:n,centroids:f,inertia:m,n:s,p:l})},predict_kmeans:function(t,n){try{var r=Je(t),e=n.map(function(t){var n=r.centroids.map(function(n){return We(t,n)});return n.indexOf(Math.min.apply(Math,n))});return Oe({type:"prediction",name:"kmeans",k:r.k,cluster_labels:e})}catch(t){return Ce("predict_kmeans","invalid model text")}},ensemble_voting_classifier:function(t,n,r){void 0===r&&(r="hard");try{var e=t.map(function(t){return Je(t)});if("hard"===r){var i=e.map(function(t){return"logistic_regression"===t.type?Je(Ge(Oe(t),n)).classes:"knn_classifier"===t.type?Je(Ke(Oe(t),n)).predictions:"decision_tree_classifier"===t.type?Je(ui(Oe(t),n)).predictions:"random_forest_classifier"===t.type?Je(li(Oe(t),n)).predictions:"naive_bayes"===t.type?Je(hi(Oe(t),n)).predictions:[]}),a=n.map(function(t,n){var r={};return i.forEach(function(t){var e=t[n];r[e]=(r[e]||0)+1}),Number(Object.entries(r).sort(function(t,n){return n[1]-t[1]})[0][0])});return Oe({type:"ensemble_prediction",method:"voting_hard",n_models:e.length,predictions:a})}return Ce("ensemble_voting_classifier","soft voting not yet implemented")}catch(t){return Ce("ensemble_voting_classifier","invalid models")}},ensemble_voting_regressor:function(t,n){try{var r=t.map(function(t){return Je(t)}),e=r.map(function(t){return"linear_regression"===t.type?Je(Xe(Oe(t),n)).predictions:"knn_regressor"===t.type?Je(ti(Oe(t),n)).predictions:"decision_tree_regressor"===t.type?Je(ui(Oe(t),n)).predictions:"random_forest_regressor"===t.type?Je(fi(Oe(t),n)).predictions:[]}),i=n.map(function(t,n){var r=e.map(function(t){return t[n]});return ge(r)});return Oe({type:"ensemble_prediction",method:"voting_average",n_models:r.length,predictions:i})}catch(t){return Ce("ensemble_voting_regressor","invalid models")}},cross_validate:function(t,n,r,e){var i;void 0===e&&(e={});for(var a=null!=(i=e.k_folds)?i:5,o=t.length,u=Math.floor(o/a),c=[],s=0;s<a;s++){var l=s*u,f=s===a-1?o:(s+1)*u,h=[].concat(t.slice(0,l),t.slice(f)),p=[].concat(n.slice(0,l),n.slice(f)),d=t.slice(l,f),m=n.slice(l,f),g=void 0;if("linear_regression"===r){g=Ve(h,p);var v=Je(Xe(g,d)),_=Je(Ue(m,v.predictions));c.push(_.r2)}else if("logistic_regression"===r){g=De(h,p,e);var y=Je(Ge(g,d)),b=Je(Qe(m,y.classes));c.push(b.accuracy)}else if("knn_classifier"===r){var w;g=Ye(h,p,null!=(w=e.k)?w:5);var x=Je(Ke(g,d)),M=Je(Qe(m,x.predictions));c.push(M.accuracy)}else if("decision_tree_classifier"===r){g=ii(h,p,e);var k=Je(ui(g,d)),A=Je(Qe(m,k.predictions));c.push(A.accuracy)}else if("random_forest_classifier"===r){g=si(h,p,e);var N=Je(li(g,d)),$=Je(Qe(m,N.predictions));c.push($.accuracy)}}return Oe({type:"cross_validation",model_type:r,k_folds:a,scores:c,mean_score:ge(c),std_score:_e(c,!0)})},feature_importance_tree:function(t){try{var n=Je(t);if("decision_tree_classifier"===n.type||"decision_tree_regressor"===n.type){var r=pi(n.tree,n.p);return Oe({type:"feature_importance",model:n.type,importance:r})}if("random_forest_classifier"===n.type||"random_forest_regressor"===n.type){var e=n.trees.map(function(t){return pi(t,n.p)}),i=Array.from({length:n.p},function(t,n){return ge(e.map(function(t){return t[n]}))});return Oe({type:"feature_importance",model:n.type,n_trees:n.n_trees,importance:i})}return Ce("feature_importance_tree","model must be tree-based")}catch(t){return Ce("feature_importance_tree","invalid model text")}},outliers_iqr:function(t){var n=pe(t),r=xe(n,.25),e=xe(n,.75),i=e-r,a=r-1.5*i,o=e+1.5*i,u=n.filter(function(t){return t<a||t>o}),c=t.map(function(t,n){return le(t)&&(t<a||t>o)?n:-1}).filter(function(t){return t>=0});return Oe({type:"outlier_detection",method:"iqr",lower_bound:a,upper_bound:o,n_outliers:u.length,outlier_indices:c,outlier_values:u})},outliers_zscore:function(t,n){void 0===n&&(n=3);var r=pe(t),e=ge(r),i=_e(r,!0),a=r.map(function(t){return Math.abs((t-e)/i)}),o=r.filter(function(t,r){return a[r]>n}),u=t.map(function(t,r){return le(t)&&Math.abs((t-e)/i)>n?r:-1}).filter(function(t){return t>=0});return Oe({type:"outlier_detection",method:"zscore",threshold:n,n_outliers:o.length,outlier_indices:u,outlier_values:o})},moving_average:function(t,n){void 0===n&&(n=3);for(var r=pe(t),e=[],i=0;i<r.length;i++){var a=Math.max(0,i-n+1),o=r.slice(a,i+1);e.push(ge(o))}return Oe({type:"time_series",method:"moving_average",window:n,values:e})},exponential_smoothing:function(t,n){void 0===n&&(n=.3);var r=pe(t);if(0===r.length)return Ce("exponential_smoothing","empty data");for(var e=[r[0]],i=1;i<r.length;i++)e.push(n*r[i]+(1-n)*e[i-1]);return Oe({type:"time_series",method:"exponential_smoothing",alpha:n,values:e})},autocorrelation:function(t,n){void 0===n&&(n=1);var r=pe(t),e=r.length;if(e<n+1)return Ce("autocorrelation","insufficient data for lag");for(var i=ge(r),a=0,o=0,u=0;u<e;u++)o+=Math.pow(r[u]-i,2),u>=n&&(a+=(r[u]-i)*(r[u-n]-i));return ze("statistic",{name:"autocorrelation",lag:n,value:a/o})},plotHistogram:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=a.width-40-20,u=a.height-20-40,c=ur().domain(mt(t)).nice().range([0,o]),s=St().domain(c.domain()).thresholds(n.bins||10)(t),l=ur().domain([0,jt(s,function(t){return t.length})]).nice().range([u,0]),f=i.append("g").attr("transform","translate(40,20)");f.selectAll("rect").data(s).enter().append("rect").attr("x",function(t){return c(t.x0)}).attr("y",function(t){return l(t.length)}).attr("width",function(t){return c(t.x1)-c(t.x0)-1}).attr("height",function(t){return u-l(t.length)}).attr("fill",a.color),f.append("g").attr("transform","translate(0,"+u+")").call(vr(c)),f.append("g").call(_r(l))},plotBoxplot:function(t,n,r){void 0===n&&(n={});var e=Array.isArray(t[0])?t:[t],i=ce(r,n),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=Ht().domain(e.map(function(t,r){return n.labels?n.labels[r]:"Group "+(r+1)})).range([0,u]).padding(.5),l=e.flat(),f=ur().domain(mt(l)).nice().range([c,0]),h=a.append("g").attr("transform","translate(40,20)");e.forEach(function(t,r){var e=[].concat(t).sort(function(t,n){return t-n}),i=Pt(e,.25),a=Pt(e,.5),u=Pt(e,.75),c=Ot(e),l=jt(e),p=s(n.labels?n.labels[r]:"Group "+(r+1))+s.bandwidth()/2,d=s.bandwidth()/2;h.append("line").attr("x1",p).attr("x2",p).attr("y1",f(c)).attr("y2",f(l)).attr("stroke",o.color),h.append("rect").attr("x",p-d/2).attr("y",f(u)).attr("width",d).attr("height",f(i)-f(u)).attr("stroke",o.color).attr("fill","none"),h.append("line").attr("x1",p-d/2).attr("x2",p+d/2).attr("y1",f(a)).attr("y2",f(a)).attr("stroke",o.color)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(f))},plotScatter:se,plotLine:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=ur().domain(mt(t)).range([0,u]),l=ur().domain(mt(n)).range([c,0]),f=a.append("g").attr("transform","translate(40,20)"),h=te().x(function(n,r){return s(t[r])}).y(function(t,r){return l(n[r])}).curve(ae);f.append("path").datum(t).attr("fill","none").attr("stroke",o.color).attr("stroke-width",r.lineWidth||2).attr("d",h),r.showPoints&&f.selectAll("circle").data(t).enter().append("circle").attr("cx",function(n,r){return s(t[r])}).attr("cy",function(t,r){return l(n[r])}).attr("r",3).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))},plotBar:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-40-20,c=o.height-20-40,s=Ht().domain(t).range([0,u]).padding(.2),l=ur().domain([0,jt(n)]).nice().range([c,0]),f=a.append("g").attr("transform","translate(40,20)");f.selectAll("rect").data(n).enter().append("rect").attr("x",function(n,r){return s(t[r])}).attr("y",function(t){return l(t)}).attr("width",s.bandwidth()).attr("height",function(t){return c-l(t)}).attr("fill",o.color),f.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),f.append("g").call(_r(l))},plotPie:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=Math.min(o.width,o.height)/2,c=a.append("g").attr("transform","translate("+o.width/2+","+o.height/2+")"),s=Ft(wr),l=function(){var t=re,n=ne,r=null,e=Mr(0),i=Mr(Cr),a=Mr(0);function o(o){var u,c,s,l,f,h=(o=Ur(o)).length,p=0,d=new Array(h),m=new Array(h),g=+e.apply(this,arguments),v=Math.min(Cr,Math.max(-Cr,i.apply(this,arguments)-g)),_=Math.min(Math.abs(v)/h,a.apply(this,arguments)),y=_*(v<0?-1:1);for(u=0;u<h;++u)(f=m[d[u]=u]=+t(o[u],u,o))>0&&(p+=f);for(null!=n?d.sort(function(t,r){return n(m[t],m[r])}):null!=r&&d.sort(function(t,n){return r(o[t],o[n])}),u=0,s=p?(v-h*y)/p:0;u<h;++u,g=l)m[c=d[u]]={data:o[c],index:u,value:f=m[c],startAngle:g,endAngle:l=g+(f>0?f*s:0)+y,padAngle:_};return m}return o.value=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),o):t},o.sortValues=function(t){return arguments.length?(n=t,r=null,o):n},o.sort=function(t){return arguments.length?(r=t,n=null,o):r},o.startAngle=function(t){return arguments.length?(e="function"==typeof t?t:Mr(+t),o):e},o.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Mr(+t),o):i},o.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:Mr(+t),o):a},o}()(n),f=function(){var t=Br,n=Dr,r=Mr(0),e=null,i=Xr,a=Gr,o=Jr,u=null,c=Vr(s);function s(){var s,l,f=+t.apply(this,arguments),h=+n.apply(this,arguments),p=i.apply(this,arguments)-zr,d=a.apply(this,arguments)-zr,m=kr(d-p),g=d>p;if(u||(u=s=c()),h<f&&(l=h,h=f,f=l),h>jr)if(m>Cr-jr)u.moveTo(h*Nr(p),h*qr(p)),u.arc(0,0,h,p,d,!g),f>jr&&(u.moveTo(f*Nr(d),f*qr(d)),u.arc(0,0,f,d,p,g));else{var v,_,y=p,b=d,w=p,x=d,M=m,k=m,A=o.apply(this,arguments)/2,N=A>jr&&(e?+e.apply(this,arguments):Sr(f*f+h*h)),$=Er(kr(h-f)/2,+r.apply(this,arguments)),E=$,q=$;if(N>jr){var S=Pr(N/f*qr(A)),j=Pr(N/h*qr(A));(M-=2*S)>jr?(w+=S*=g?1:-1,x-=S):(M=0,w=x=(p+d)/2),(k-=2*j)>jr?(y+=j*=g?1:-1,b-=j):(k=0,y=b=(p+d)/2)}var O=h*Nr(y),z=h*qr(y),C=f*Nr(x),P=f*qr(x);if($>jr){var T,R=h*Nr(b),L=h*qr(b),I=f*Nr(w),F=f*qr(w);if(m<Or)if(T=function(t,n,r,e,i,a,o,u){var c=r-t,s=e-n,l=o-i,f=u-a,h=f*c-l*s;if(!(h*h<jr))return[t+(h=(l*(n-a)-f*(t-i))/h)*c,n+h*s]}(O,z,I,F,R,L,C,P)){var H=O-T[0],V=z-T[1],B=R-T[0],D=L-T[1],X=1/qr(function(t){return t>1?0:t<-1?Or:Math.acos(t)}((H*B+V*D)/(Sr(H*H+V*V)*Sr(B*B+D*D)))/2),G=Sr(T[0]*T[0]+T[1]*T[1]);E=Er($,(f-G)/(X-1)),q=Er($,(h-G)/(X+1))}else E=q=0}k>jr?q>jr?(v=Qr(I,F,O,z,h,q,g),_=Qr(R,L,C,P,h,q,g),u.moveTo(v.cx+v.x01,v.cy+v.y01),q<$?u.arc(v.cx,v.cy,q,Ar(v.y01,v.x01),Ar(_.y01,_.x01),!g):(u.arc(v.cx,v.cy,q,Ar(v.y01,v.x01),Ar(v.y11,v.x11),!g),u.arc(0,0,h,Ar(v.cy+v.y11,v.cx+v.x11),Ar(_.cy+_.y11,_.cx+_.x11),!g),u.arc(_.cx,_.cy,q,Ar(_.y11,_.x11),Ar(_.y01,_.x01),!g))):(u.moveTo(O,z),u.arc(0,0,h,y,b,!g)):u.moveTo(O,z),f>jr&&M>jr?E>jr?(v=Qr(C,P,R,L,f,-E,g),_=Qr(O,z,I,F,f,-E,g),u.lineTo(v.cx+v.x01,v.cy+v.y01),E<$?u.arc(v.cx,v.cy,E,Ar(v.y01,v.x01),Ar(_.y01,_.x01),!g):(u.arc(v.cx,v.cy,E,Ar(v.y01,v.x01),Ar(v.y11,v.x11),!g),u.arc(0,0,f,Ar(v.cy+v.y11,v.cx+v.x11),Ar(_.cy+_.y11,_.cx+_.x11),g),u.arc(_.cx,_.cy,E,Ar(_.y11,_.x11),Ar(_.y01,_.x01),!g))):u.arc(0,0,f,x,w,g):u.lineTo(C,P)}else u.moveTo(0,0);if(u.closePath(),s)return u=null,s+""||null}return s.centroid=function(){var r=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,e=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Or/2;return[Nr(e)*r,qr(e)*r]},s.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:Mr(+n),s):t},s.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Mr(+t),s):n},s.cornerRadius=function(t){return arguments.length?(r="function"==typeof t?t:Mr(+t),s):r},s.padRadius=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:Mr(+t),s):e},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Mr(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Mr(+t),s):a},s.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Mr(+t),s):o},s.context=function(t){return arguments.length?(u=null==t?null:t,s):u},s}().innerRadius(0).outerRadius(u);c.selectAll("path").data(l).enter().append("path").attr("d",f).attr("fill",function(t,n){return s(n)}),r.showLabels&&c.selectAll("text").data(l).enter().append("text").attr("transform",function(t){return"translate("+f.centroid(t)+")"}).attr("text-anchor","middle").text(function(n,r){return t[r]})},plotHeatmap:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=n.labels||t.map(function(t,n){return"Var"+(n+1)}),u=a.width-60-20,c=a.height-40-40,s=Ht().domain(o).range([0,u]).padding(.05),l=Ht().domain(o).range([0,c]).padding(.05),f=cr(xr).domain([1,-1]),h=i.append("g").attr("transform","translate(60,40)"),p=[];t.forEach(function(t,n){t.forEach(function(t,r){return p.push({x:o[r],y:o[n],value:t})})}),h.selectAll("rect").data(p).enter().append("rect").attr("x",function(t){return s(t.x)}).attr("y",function(t){return l(t.y)}).attr("width",s.bandwidth()).attr("height",l.bandwidth()).attr("fill",function(t){return f(t.value)}),n.showValues&&h.selectAll("text").data(p).enter().append("text").attr("x",function(t){return s(t.x)+s.bandwidth()/2}).attr("y",function(t){return l(t.y)+l.bandwidth()/2}).attr("text-anchor","middle").style("font-size","10px").text(function(t){return t.value.toFixed(2)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(l))},plotViolin:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=Array.isArray(t[0])?t:[t],u=a.width-40-20,c=a.height-20-40,s=Ht().domain(o.map(function(t,r){return n.labels?n.labels[r]:"Group "+(r+1)})).range([0,u]).padding(.5),l=o.flat(),f=ur().domain(mt(l)).nice().range([c,0]),h=i.append("g").attr("transform","translate(40,20)");o.forEach(function(t,r){var e=St().domain(f.domain()).thresholds(20)(t),i=jt(e,function(t){return t.length}),o=s(n.labels?n.labels[r]:"Group "+(r+1)),u=ur().domain([0,i]).range([0,s.bandwidth()/2]),c=te().x(function(t){return u(t.length)}).y(function(t){return f((t.x0+t.x1)/2)}),l=te().x(function(t){return-u(t.length)}).y(function(t){return f((t.x0+t.x1)/2)}),p=h.append("g").attr("transform","translate("+(o+s.bandwidth()/2)+",0)");p.append("path").datum(e).attr("fill",n.color||a.color).attr("fill-opacity",.3).attr("stroke",a.color).attr("d",c),p.append("path").datum(e).attr("fill",n.color||a.color).attr("fill-opacity",.3).attr("stroke",a.color).attr("d",l)}),h.append("g").attr("transform","translate(0,"+c+")").call(vr(s)),h.append("g").call(_r(f))},plotDensity:function(t,n,r){void 0===n&&(n={});var e,i,a,o=ce(r,n),u=o.svg,c=o.config,s=c.width-40-20,l=c.height-20-40,f=ur().domain(mt(t)).nice().range([0,s]),h=(a=n.bandwidth||5,e=function(t){return t/=a,Math.abs(t)<=1?.75*(1-t*t)/a:0},i=f.ticks(50),function(t){return i.map(function(n){return[n,Tt(t,function(t){return e(n-t)})]})})(t),p=ur().domain([0,jt(h,function(t){return t[1]})]).range([l,0]),d=u.append("g").attr("transform","translate(40,20)"),m=te().curve(ae).x(function(t){return f(t[0])}).y(function(t){return p(t[1])});d.append("path").datum(h).attr("fill","none").attr("stroke",c.color).attr("stroke-width",2).attr("d",m),d.append("g").attr("transform","translate(0,"+l+")").call(vr(f)),d.append("g").call(_r(p))},plotQQ:function(t,n,r){void 0===n&&(n={});var e=[].concat(t).sort(function(t,n){return t-n}),i=e.length;se(e.map(function(t,n){return(n+.5)/i}).map(function(t){return function(t){var n,r,e=-.00778489400243029,i=-.322396458041136,a=-2.40075827716184,o=-2.54973253934373,u=4.37466414146497,c=2.93816398269878,s=.00778469570904146,l=.32246712907004,f=2.445134137143,h=3.75440866190742;return t<.02425?(((((e*(n=Math.sqrt(-2*Math.log(t)))+i)*n+a)*n+o)*n+u)*n+c)/((((s*n+l)*n+f)*n+h)*n+1):.97575<t?-(((((e*(n=Math.sqrt(-2*Math.log(1-t)))+i)*n+a)*n+o)*n+u)*n+c)/((((s*n+l)*n+f)*n+h)*n+1):(((((-39.6968302866538*(r=(n=t-.5)*n)+220.946098424521)*r-275.928510446969)*r+138.357751867269)*r-30.6647980661472)*r+2.50662827745924)*n/((((-54.4760987982241*r+161.585836858041)*r-155.698979859887)*r+66.8013118877197)*r-13.2806815528857)+1}(t)}),e,n,r)},plotParallel:function(t,n,r,e){void 0===r&&(r={});var i=ce(e,r),a=i.svg,o=i.config,u=o.width-30-30,c=o.height-30-10,s=Bt().range([0,u]).padding(1).domain(n),l={};n.forEach(function(n){l[n]=ur().domain(mt(t,function(t){return t[n]})).range([c,0])});var f=te(),h=a.append("g").attr("transform","translate(30,30)");h.selectAll("path").data(t).enter().append("path").attr("d",function(t){return f(n.map(function(n){return[s(n),l[n](t[n])]}))}).attr("fill","none").attr("stroke",function(t,n){return r.colors?r.colors[n%r.colors.length]:o.color}).attr("stroke-width",1).attr("opacity",.6),n.forEach(function(t){h.append("g").attr("transform","translate("+s(t)+",0)").call(_r(l[t])).append("text").style("text-anchor","middle").attr("y",-9).text(t)})},plotPairplot:function(t,n,r,e){void 0===r&&(r={});var i=r.size||120,a=10,o=n.length*(i+a),u=e||"#datly-plot-"+oe++,c=document.createElement("div");c.id=u.replace("#",""),document.body.appendChild(c);var s=ct(u);s.html(""),s.style("display","inline-block");var l=s.append("svg").attr("width",o).attr("height",o).style("background","#fff"),f={},h={};n.forEach(function(n){f[n]=ur().domain(mt(t,function(t){return t[n]})).range([a,i-a]),h[n]=ur().domain(mt(t,function(t){return t[n]})).range([i-a,a])}),n.forEach(function(e,o){n.forEach(function(n,u){l.append("g").attr("transform","translate("+o*(i+a)+","+u*(i+a)+")").selectAll("circle").data(t).enter().append("circle").attr("cx",function(t){return f[e](t[e])}).attr("cy",function(t){return h[n](t[n])}).attr("r",2).attr("fill",r.color||"#000")})})},plotMultiline:function(t,n,r){void 0===n&&(n={});var e=ce(r,n),i=e.svg,a=e.config,o=a.width-40-20,u=a.height-20-40,c=t.flatMap(function(t){return t.data.map(function(t){return t.x})}),s=t.flatMap(function(t){return t.data.map(function(t){return t.y})}),l=ur().domain(mt(c)).range([0,o]),f=ur().domain(mt(s)).range([u,0]),h=Ft(wr),p=i.append("g").attr("transform","translate(40,20)");if(t.forEach(function(t,n){var r=te().x(function(t){return l(t.x)}).y(function(t){return f(t.y)});p.append("path").datum(t.data).attr("fill","none").attr("stroke",h(n)).attr("stroke-width",2).attr("d",r)}),n.legend){var d=i.append("g").attr("transform","translate("+(o-100)+",20)");t.forEach(function(t,n){d.append("rect").attr("x",0).attr("y",20*n).attr("width",12).attr("height",12).attr("fill",h(n)),d.append("text").attr("x",20).attr("y",20*n+10).text(t.name).style("font-size","12px")})}p.append("g").attr("transform","translate(0,"+u+")").call(vr(l)),p.append("g").call(_r(f))}};export{di as default};
|