Files
lcp-visualizer/blocks/bar-graph/build/index.js
2025-01-15 03:26:50 -08:00

1 line
68 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(()=>{"use strict";var t,n={934:()=>{const t=window.wp.blocks,n=window.wp.i18n,e=window.wp.blockEditor,r=window.wp.components,i=window.wp.element,o=window.ReactJSXRuntime,a=["#FF6384","#36A2EB","#FFCE56","#4BC0C0","#9966FF","#FF9F40","#FF6384","#C9CBCF","#4BC0C0","#FF9F40"],l=({value:t,onChange:l,dataSource:s,onDataSourceChange:u})=>{const[c,h]=(0,i.useState)(""),[f,p]=(0,i.useState)(""),[d,g]=(0,i.useState)("");(0,i.useEffect)((()=>{if(t&&Object.keys(t).length>0)if("manual_json"===s)p(JSON.stringify(t,null,2));else if("csv_url"===s){const n=t[Object.keys(t)[0]]?.[0]?.sourceUrl;n&&h(n)}}),[]);const m=[{label:(0,n.__)("Manual JSON","lcp"),value:"manual_json"},{label:(0,n.__)("CSV Upload","lcp"),value:"csv_upload"},{label:(0,n.__)("CSV URL","lcp"),value:"csv_url"}],v=(t,n="")=>{try{const e=t.split("\n");if(e.length<2)throw new Error("CSV must have at least a header row and one data row");const r=e[0].split(",").map((t=>t.trim()));if(!r.includes("label")||!r.includes("value"))throw new Error('CSV must have "label" and "value" columns');const i={"Dataset 1":e.slice(1).filter((t=>t.trim())).map(((t,e)=>{const i=t.split(",").map((t=>t.trim())),o={};return r.forEach(((t,n)=>{"color"!==t||i[n]?o[t]=i[n]:o[t]=a[e%a.length]})),n&&(o.sourceUrl=n),o}))};return g(""),i}catch(t){return g("Error parsing CSV: "+t.message),null}};return(0,o.jsxs)("div",{className:"lcp-data-selector",children:[(0,o.jsx)(r.SelectControl,{label:(0,n.__)("Data Source","lcp"),value:s,options:m,onChange:u}),"manual_json"===s&&(0,o.jsx)(r.TextareaControl,{label:(0,n.__)("JSON Data","lcp"),help:(0,n.__)("Enter datasets with arrays containing objects with label and value properties. Color is optional.","lcp"),value:f,onChange:t=>{p(t);const n=(t=>{try{const n=JSON.parse(t);if("object"!=typeof n||Array.isArray(n))throw new Error("Data must be an object with dataset names as keys");return Object.entries(n).forEach((([t,n])=>{if(!Array.isArray(n))throw new Error(`Dataset "${t}" must be an array`);n.forEach(((n,e)=>{if(!n.label||!n.value)throw new Error(`Item at index ${e} in dataset "${t}" is missing required fields (label or value)`);n.color||(n.color=a[e%a.length])}))})),g(""),n}catch(t){return g(t.message),null}})(t);n&&l(n)},placeholder:'{\n "Dataset 1": [\n {\n "label": "Label 1",\n "value": 100,\n "color": "red"\n },\n {\n "label": "Label 2",\n "value": 200\n }\n ],\n "Dataset 2": [\n {\n "label": "Label 3",\n "value": 300,\n "color": "green"\n }\n ]\n}'}),"csv_upload"===s&&(0,o.jsx)(e.MediaUploadCheck,{children:(0,o.jsx)(e.MediaUpload,{onSelect:t=>{const n=t.url;fetch(t.url).then((t=>t.text())).then((t=>{const e=v(t,n);e&&l(e)})).catch((t=>{g("Error reading CSV file: "+t.message)}))},allowedTypes:["text/csv"],render:({open:e})=>(0,o.jsxs)("div",{children:[(0,o.jsx)(r.Button,{onClick:e,isPrimary:!0,children:(0,n.__)("Upload CSV File","lcp")}),t&&Object.keys(t).length>0&&t[Object.keys(t)[0]]?.[0]?.sourceUrl&&(0,o.jsxs)("div",{className:"current-file",style:{marginTop:"10px"},children:[(0,n.__)("Current file:","lcp")," ",t[Object.keys(t)[0]][0].sourceUrl.split("/").pop()]})]})})}),"csv_url"===s&&(0,o.jsx)(r.TextControl,{label:(0,n.__)("CSV URL","lcp"),value:c,onChange:t=>{h(t),t&&fetch(t).then((t=>t.text())).then((n=>{const e=v(n,t);e&&l(e)})).catch((t=>{g("Error fetching CSV file: "+t.message)}))},help:(0,n.__)("Enter URL of a CSV file with label and value columns. Color column is optional.","lcp")}),d&&(0,o.jsx)("div",{className:"lcp-data-selector-error",style:{color:"red",marginTop:"10px"},children:d}),t&&Object.keys(t).length>0&&(0,o.jsxs)("div",{className:"data-preview",style:{marginTop:"15px"},children:[(0,o.jsx)("h4",{children:(0,n.__)("Current Data Preview:","lcp")}),(0,o.jsx)("div",{style:{fontSize:"12px",color:"#666"},children:Object.entries(t).map((([t,e])=>(0,o.jsxs)("div",{children:[t,": ",e.length," ",(0,n.__)("data points","lcp")]},t)))})]})]})};function s(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}function u(t){return t}var c=1e-6;function h(t){return"translate("+t+",0)"}function f(t){return"translate(0,"+t+")"}function p(t){return n=>+t(n)}function d(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function g(){return!this.__axis}function m(t,n){var e=[],r=null,i=null,o=6,a=6,l=3,s="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,m=1===t||4===t?-1:1,v=4===t||2===t?"x":"y",y=1===t||3===t?h:f;function w(h){var f=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,w=null==i?n.tickFormat?n.tickFormat.apply(n,e):u:i,_=Math.max(o,0)+l,x=n.range(),b=+x[0]+s,C=+x[x.length-1]+s,k=(n.bandwidth?d:p)(n.copy(),s),j=h.selection?h.selection():h,M=j.selectAll(".domain").data([null]),A=j.selectAll(".tick").data(f,n).order(),N=A.exit(),S=A.enter().append("g").attr("class","tick"),E=A.select("line"),$=A.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),A=A.merge(S),E=E.merge(S.append("line").attr("stroke","currentColor").attr(v+"2",m*o)),$=$.merge(S.append("text").attr("fill","currentColor").attr(v,m*_).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==j&&(M=M.transition(h),A=A.transition(h),E=E.transition(h),$=$.transition(h),N=N.transition(h).attr("opacity",c).attr("transform",(function(t){return isFinite(t=k(t))?y(t+s):this.getAttribute("transform")})),S.attr("opacity",c).attr("transform",(function(t){var n=this.parentNode.__axis;return y((n&&isFinite(n=n(t))?n:k(t))+s)}))),N.remove(),M.attr("d",4===t||2===t?a?"M"+m*a+","+b+"H"+s+"V"+C+"H"+m*a:"M"+s+","+b+"V"+C:a?"M"+b+","+m*a+"V"+s+"H"+C+"V"+m*a:"M"+b+","+s+"H"+C),A.attr("opacity",1).attr("transform",(function(t){return y(k(t)+s)})),E.attr(v+"2",m*o),$.attr(v,m*_).text(w),j.filter(g).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),j.each((function(){this.__axis=k}))}return w.scale=function(t){return arguments.length?(n=t,w):n},w.ticks=function(){return e=Array.from(arguments),w},w.tickArguments=function(t){return arguments.length?(e=null==t?[]:Array.from(t),w):e.slice()},w.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),w):r&&r.slice()},w.tickFormat=function(t){return arguments.length?(i=t,w):i},w.tickSize=function(t){return arguments.length?(o=a=+t,w):o},w.tickSizeInner=function(t){return arguments.length?(o=+t,w):o},w.tickSizeOuter=function(t){return arguments.length?(a=+t,w):a},w.tickPadding=function(t){return arguments.length?(l=+t,w):l},w.offset=function(t){return arguments.length?(s=+t,w):s},w}function v(t){return m(3,t)}function y(t){return m(4,t)}function w(){}function _(t){return null==t?w:function(){return this.querySelector(t)}}function x(){return[]}function b(t){return null==t?x:function(){return this.querySelectorAll(t)}}function C(t){return function(){return this.matches(t)}}function k(t){return function(n){return n.matches(t)}}var j=Array.prototype.find;function M(){return this.firstElementChild}var A=Array.prototype.filter;function N(){return Array.from(this.children)}function S(t){return new Array(t.length)}function E(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function $(t,n,e,r,i,o){for(var a,l=0,s=n.length,u=o.length;l<u;++l)(a=n[l])?(a.__data__=o[l],r[l]=a):e[l]=new E(t,o[l]);for(;l<s;++l)(a=n[l])&&(i[l]=a)}function O(t,n,e,r,i,o,a){var l,s,u,c=new Map,h=n.length,f=o.length,p=new Array(h);for(l=0;l<h;++l)(s=n[l])&&(p[l]=u=a.call(s,s.__data__,l,n)+"",c.has(u)?i[l]=s:c.set(u,s));for(l=0;l<f;++l)u=a.call(t,o[l],l,o)+"",(s=c.get(u))?(r[l]=s,s.__data__=o[l],c.delete(u)):e[l]=new E(t,o[l]);for(l=0;l<h;++l)(s=n[l])&&c.get(p[l])===s&&(i[l]=s)}function P(t){return t.__data__}function T(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function B(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}E.prototype={constructor:E,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)}};var R="http://www.w3.org/1999/xhtml";const F={svg:"http://www.w3.org/2000/svg",xhtml:R,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function L(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),F.hasOwnProperty(n)?{space:F[n],local:t}:t}function D(t){return function(){this.removeAttribute(t)}}function G(t){return function(){this.removeAttributeNS(t.space,t.local)}}function V(t,n){return function(){this.setAttribute(t,n)}}function X(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function I(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function U(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function q(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function z(t){return function(){this.style.removeProperty(t)}}function H(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Y(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function W(t,n){return t.style.getPropertyValue(n)||q(t).getComputedStyle(t,null).getPropertyValue(n)}function J(t){return function(){delete this[t]}}function K(t,n){return function(){this[t]=n}}function Z(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function Q(t){return t.trim().split(/^|\s+/)}function tt(t){return t.classList||new nt(t)}function nt(t){this._node=t,this._names=Q(t.getAttribute("class")||"")}function et(t,n){for(var e=tt(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function rt(t,n){for(var e=tt(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function it(t){return function(){et(this,t)}}function ot(t){return function(){rt(this,t)}}function at(t,n){return function(){(n.apply(this,arguments)?et:rt)(this,t)}}function lt(){this.textContent=""}function st(t){return function(){this.textContent=t}}function ut(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function ct(){this.innerHTML=""}function ht(t){return function(){this.innerHTML=t}}function ft(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function pt(){this.nextSibling&&this.parentNode.appendChild(this)}function dt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function gt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===R&&n.documentElement.namespaceURI===R?n.createElement(t):n.createElementNS(e,t)}}function mt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function vt(t){var n=L(t);return(n.local?mt:gt)(n)}function yt(){return null}function wt(){var t=this.parentNode;t&&t.removeChild(this)}function _t(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function xt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function bt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function Ct(t,n,e){return function(){var r,i=this.__on,o=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(i)for(var a=0,l=i.length;a<l;++a)if((r=i[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function kt(t,n,e){var r=q(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function jt(t,n){return function(){return kt(this,t,n)}}function Mt(t,n){return function(){return kt(this,t,n.apply(this,arguments))}}nt.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 At=[null];function Nt(t,n){this._groups=t,this._parents=n}function St(){return new Nt([[document.documentElement]],At)}Nt.prototype=St.prototype={constructor:Nt,select:function(t){"function"!=typeof t&&(t=_(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,l=n[i],s=l.length,u=r[i]=new Array(s),c=0;c<s;++c)(o=l[c])&&(a=t.call(o,o.__data__,c,l))&&("__data__"in o&&(a.__data__=o.__data__),u[c]=a);return new Nt(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return null==(n=t.apply(this,arguments))?[]:Array.isArray(n)?n:Array.from(n);var n}}(t):b(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,l=n[o],s=l.length,u=0;u<s;++u)(a=l[u])&&(r.push(t.call(a,a.__data__,u,l)),i.push(a));return new Nt(r,i)},selectChild:function(t){return this.select(null==t?M:function(t){return function(){return j.call(this.children,t)}}("function"==typeof t?t:k(t)))},selectChildren:function(t){return this.selectAll(null==t?N:function(t){return function(){return A.call(this.children,t)}}("function"==typeof t?t:k(t)))},filter:function(t){"function"!=typeof t&&(t=C(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,s=r[i]=[],u=0;u<l;++u)(o=a[u])&&t.call(o,o.__data__,u,a)&&s.push(o);return new Nt(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,P);var e,r=n?O:$,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,l=new Array(a),s=new Array(a),u=new Array(a),c=0;c<a;++c){var h=i[c],f=o[c],p=f.length,d=T(t.call(h,h&&h.__data__,c,i)),g=d.length,m=s[c]=new Array(g),v=l[c]=new Array(g);r(h,f,m,v,u[c]=new Array(p),d,n);for(var y,w,_=0,x=0;_<g;++_)if(y=m[_]){for(_>=x&&(x=_+1);!(w=v[x])&&++x<g;);y._next=w||null}}return(l=new Nt(l,i))._enter=s,l._exit=u,l},enter:function(){return new Nt(this._enter||this._groups.map(S),this._parents)},exit:function(){return new Nt(this._exit||this._groups.map(S),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),l=new Array(i),s=0;s<a;++s)for(var u,c=e[s],h=r[s],f=c.length,p=l[s]=new Array(f),d=0;d<f;++d)(u=c[d]||h[d])&&(p[d]=u);for(;s<i;++s)l[s]=e[s];return new Nt(l,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=B);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,l=e[o],s=l.length,u=i[o]=new Array(s),c=0;c<s;++c)(a=l[c])&&(u[c]=a);u.sort(n)}return new Nt(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,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}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,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,l=o.length;a<l;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=L(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?G:D:"function"==typeof n?e.local?U:I:e.local?X:V)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?z:"function"==typeof n?Y:H)(t,n,null==e?"":e)):W(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?J:"function"==typeof n?Z:K)(t,n)):this.node()[t]},classed:function(t,n){var e=Q(t+"");if(arguments.length<2){for(var r=tt(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?at:n?it:ot)(e,n))},text:function(t){return arguments.length?this.each(null==t?lt:("function"==typeof t?ut:st)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ct:("function"==typeof t?ft:ht)(t)):this.node().innerHTML},raise:function(){return this.each(pt)},lower:function(){return this.each(dt)},append:function(t){var n="function"==typeof t?t:vt(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:vt(t),r=null==n?yt:"function"==typeof n?n:_(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(wt)},clone:function(t){return this.select(t?xt:_t)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(l=n?Ct:bt,r=0;r<a;++r)this.each(l(o[r],n,e));return this}var l=this.node().__on;if(l)for(var s,u=0,c=l.length;u<c;++u)for(r=0,s=l[u];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value},dispatch:function(t,n){return this.each(("function"==typeof n?Mt:jt)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};const Et=St;var $t={value:()=>{}};function Ot(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Pt(r)}function Pt(t){this._=t}function Tt(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function Bt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=$t,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}Pt.prototype=Ot.prototype={constructor:Pt,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),a=-1,l=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<l;)if(e=(t=o[a]).type)i[e]=Bt(i[e],t.name,n);else if(null==n)for(e in i)i[e]=Bt(i[e],t.name,null);return this}for(;++a<l;)if((e=(t=o[a]).type)&&(e=Tt(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Pt(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};const Rt=Ot;var Ft,Lt,Dt=0,Gt=0,Vt=0,Xt=0,It=0,Ut=0,qt="object"==typeof performance&&performance.now?performance:Date,zt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ht(){return It||(zt(Yt),It=qt.now()+Ut)}function Yt(){It=0}function Wt(){this._call=this._time=this._next=null}function Jt(t,n,e){var r=new Wt;return r.restart(t,n,e),r}function Kt(){It=(Xt=qt.now())+Ut,Dt=Gt=0;try{!function(){Ht(),++Dt;for(var t,n=Ft;n;)(t=It-n._time)>=0&&n._call.call(void 0,t),n=n._next;--Dt}()}finally{Dt=0,function(){for(var t,n,e=Ft,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Ft=n);Lt=t,Qt(r)}(),It=0}}function Zt(){var t=qt.now(),n=t-Xt;n>1e3&&(Ut-=n,Xt=t)}function Qt(t){Dt||(Gt&&(Gt=clearTimeout(Gt)),t-It>24?(t<1/0&&(Gt=setTimeout(Kt,t-qt.now()-Ut)),Vt&&(Vt=clearInterval(Vt))):(Vt||(Xt=qt.now(),Vt=setInterval(Zt,1e3)),Dt=1,zt(Kt)))}function tn(t,n,e){var r=new Wt;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}Wt.prototype=Jt.prototype={constructor:Wt,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Ht():+e)+(null==n?0:+n),this._next||Lt===this||(Lt?Lt._next=this:Ft=this,Lt=this),this._call=t,this._time=e,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var nn=Rt("start","end","cancel","interrupt"),en=[];function rn(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(s){var u,c,h,f;if(1!==e.state)return l();for(u in i)if((f=i[u]).name===e.name){if(3===f.state)return tn(o);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[u]):+u<n&&(f.state=6,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[u])}if(tn((function(){3===e.state&&(e.state=4,e.timer.restart(a,e.delay,e.time),a(s))})),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(e.state=3,r=new Array(h=e.tween.length),u=0,c=-1;u<h;++u)(f=e.tween[u].value.call(t,t.__data__,e.index,e.group))&&(r[++c]=f);r.length=c+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(l),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=Jt((function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)}),0,e.time)}(t,e,{name:n,index:r,group:i,on:nn,tween:en,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function on(t,n){var e=ln(t,n);if(e.state>0)throw new Error("too late; already scheduled");return e}function an(t,n){var e=ln(t,n);if(e.state>3)throw new Error("too late; already running");return e}function ln(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function sn(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var un,cn=180/Math.PI,hn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fn(t,n,e,r,i,o){var a,l,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(l=Math.sqrt(e*e+r*r))&&(e/=l,r/=l,s/=l),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*cn,skewX:Math.atan(s)*cn,scaleX:a,scaleY:l}}function pn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var l=[],s=[];return o=t(o),a=t(a),function(t,r,i,o,a,l){if(t!==i||r!==o){var s=a.push("translate(",null,n,null,e);l.push({i:s-4,x:sn(t,i)},{i:s-2,x:sn(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,l,s),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:sn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,l,s),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:sn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,l,s),function(t,n,e,r,o,a){if(t!==e||n!==r){var l=o.push(i(o)+"scale(",null,",",null,")");a.push({i:l-4,x:sn(t,e)},{i:l-2,x:sn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,l,s),o=a=null,function(t){for(var n,e=-1,r=s.length;++e<r;)l[(n=s[e]).i]=n.x(t);return l.join("")}}}var dn=pn((function(t){const n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?hn:fn(n.a,n.b,n.c,n.d,n.e,n.f)}),"px, ","px)","deg)"),gn=pn((function(t){return null==t?hn:(un||(un=document.createElementNS("http://www.w3.org/2000/svg","g")),un.setAttribute("transform",t),(t=un.transform.baseVal.consolidate())?fn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):hn)}),", ",")",")");function mn(t,n){var e,r;return function(){var i=an(this,t),o=i.tween;if(o!==e)for(var a=0,l=(r=e=o).length;a<l;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}function vn(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=an(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var l={name:n,value:e},s=0,u=i.length;s<u;++s)if(i[s].name===n){i[s]=l;break}s===u&&i.push(l)}o.tween=i}}function yn(t,n,e){var r=t._id;return t.each((function(){var t=an(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return ln(t,r).value[n]}}function wn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function xn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function bn(){}var Cn=.7,kn=1/Cn,jn="\\s*([+-]?\\d+)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",An="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Nn=/^#([0-9a-f]{3,8})$/,Sn=new RegExp(`^rgb\\(${jn},${jn},${jn}\\)$`),En=new RegExp(`^rgb\\(${An},${An},${An}\\)$`),$n=new RegExp(`^rgba\\(${jn},${jn},${jn},${Mn}\\)$`),On=new RegExp(`^rgba\\(${An},${An},${An},${Mn}\\)$`),Pn=new RegExp(`^hsl\\(${Mn},${An},${An}\\)$`),Tn=new RegExp(`^hsla\\(${Mn},${An},${An},${Mn}\\)$`),Bn={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 Rn(){return this.rgb().formatHex()}function Fn(){return this.rgb().formatRgb()}function Ln(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Nn.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?Dn(n):3===e?new Xn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Gn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Gn(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=Sn.exec(t))?new Xn(n[1],n[2],n[3],1):(n=En.exec(t))?new Xn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=$n.exec(t))?Gn(n[1],n[2],n[3],n[4]):(n=On.exec(t))?Gn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Pn.exec(t))?Yn(n[1],n[2]/100,n[3]/100,1):(n=Tn.exec(t))?Yn(n[1],n[2]/100,n[3]/100,n[4]):Bn.hasOwnProperty(t)?Dn(Bn[t]):"transparent"===t?new Xn(NaN,NaN,NaN,0):null}function Dn(t){return new Xn(t>>16&255,t>>8&255,255&t,1)}function Gn(t,n,e,r){return r<=0&&(t=n=e=NaN),new Xn(t,n,e,r)}function Vn(t,n,e,r){return 1===arguments.length?((i=t)instanceof bn||(i=Ln(i)),i?new Xn((i=i.rgb()).r,i.g,i.b,i.opacity):new Xn):new Xn(t,n,e,null==r?1:r);var i}function Xn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function In(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}`}function Un(){const t=qn(this.opacity);return`${1===t?"rgb(":"rgba("}${zn(this.r)}, ${zn(this.g)}, ${zn(this.b)}${1===t?")":`, ${t})`}`}function qn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function zn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Hn(t){return((t=zn(t))<16?"0":"")+t.toString(16)}function Yn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Jn(t,n,e,r)}function Wn(t){if(t instanceof Jn)return new Jn(t.h,t.s,t.l,t.opacity);if(t instanceof bn||(t=Ln(t)),!t)return new Jn;if(t instanceof Jn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,l=o-i,s=(o+i)/2;return l?(a=n===o?(e-r)/l+6*(e<r):e===o?(r-n)/l+2:(n-e)/l+4,l/=s<.5?o+i:2-o-i,a*=60):l=s>0&&s<1?0:a,new Jn(a,l,s,t.opacity)}function Jn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Kn(t){return(t=(t||0)%360)<0?t+360:t}function Zn(t){return Math.max(0,Math.min(1,t||0))}function Qn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function te(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}wn(bn,Ln,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Rn,formatHex:Rn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Wn(this).formatHsl()},formatRgb:Fn,toString:Fn}),wn(Xn,Vn,xn(bn,{brighter(t){return t=null==t?kn:Math.pow(kn,t),new Xn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Cn:Math.pow(Cn,t),new Xn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Xn(zn(this.r),zn(this.g),zn(this.b),qn(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:In,formatHex:In,formatHex8:function(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}${Hn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Un,toString:Un})),wn(Jn,(function(t,n,e,r){return 1===arguments.length?Wn(t):new Jn(t,n,e,null==r?1:r)}),xn(bn,{brighter(t){return t=null==t?kn:Math.pow(kn,t),new Jn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Cn:Math.pow(Cn,t),new Jn(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,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Xn(Qn(t>=240?t-240:t+120,i,r),Qn(t,i,r),Qn(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Jn(Kn(this.h),Zn(this.s),Zn(this.l),qn(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=qn(this.opacity);return`${1===t?"hsl(":"hsla("}${Kn(this.h)}, ${100*Zn(this.s)}%, ${100*Zn(this.l)}%${1===t?")":`, ${t})`}`}}));const ne=t=>()=>t;function ee(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):ne(isNaN(t)?n:t)}const re=function t(n){var e=function(t){return 1==(t=+t)?ee:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):ne(isNaN(n)?e:n)}}(n);function r(t,n){var r=e((t=Vn(t)).r,(n=Vn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=ee(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function ie(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),l=new Array(i);for(e=0;e<i;++e)r=Vn(n[e]),o[e]=r.r||0,a[e]=r.g||0,l[e]=r.b||0;return o=t(o),a=t(a),l=t(l),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=l(t),r+""}}}ie((function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,l=r<n-1?t[r+2]:2*o-i;return te((e-r/n)*n,a,i,o,l)}})),ie((function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],l=t[(r+2)%n];return te((e-r/n)*n,i,o,a,l)}}));var oe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ae=new RegExp(oe.source,"g");function le(t,n){var e,r,i,o=oe.lastIndex=ae.lastIndex=0,a=-1,l=[],s=[];for(t+="",n+="";(e=oe.exec(t))&&(r=ae.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),l[a]?l[a]+=i:l[++a]=i),(e=e[0])===(r=r[0])?l[a]?l[a]+=r:l[++a]=r:(l[++a]=null,s.push({i:a,x:sn(e,r)})),o=ae.lastIndex;return o<n.length&&(i=n.slice(o),l[a]?l[a]+=i:l[++a]=i),l.length<2?s[0]?function(t){return function(n){return t(n)+""}}(s[0].x):function(t){return function(){return t}}(n):(n=s.length,function(t){for(var e,r=0;r<n;++r)l[(e=s[r]).i]=e.x(t);return l.join("")})}function se(t,n){var e;return("number"==typeof n?sn:n instanceof Ln?re:(e=Ln(n))?(n=e,re):le)(t,n)}function ue(t){return function(){this.removeAttribute(t)}}function ce(t){return function(){this.removeAttributeNS(t.space,t.local)}}function he(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}}function fe(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}function pe(t,n,e){var r,i,o;return function(){var a,l,s=e(this);if(null!=s)return(a=this.getAttribute(t))===(l=s+"")?null:a===r&&l===i?o:(i=l,o=n(r=a,s));this.removeAttribute(t)}}function de(t,n,e){var r,i,o;return function(){var a,l,s=e(this);if(null!=s)return(a=this.getAttributeNS(t.space,t.local))===(l=s+"")?null:a===r&&l===i?o:(i=l,o=n(r=a,s));this.removeAttributeNS(t.space,t.local)}}function ge(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}(t,i)),e}return i._value=n,i}function me(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}(t,i)),e}return i._value=n,i}function ve(t,n){return function(){on(this,t).delay=+n.apply(this,arguments)}}function ye(t,n){return n=+n,function(){on(this,t).delay=n}}function we(t,n){return function(){an(this,t).duration=+n.apply(this,arguments)}}function _e(t,n){return n=+n,function(){an(this,t).duration=n}}var xe=Et.prototype.constructor;function be(t){return function(){this.style.removeProperty(t)}}var Ce=0;function ke(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function je(){return++Ce}var Me=Et.prototype;ke.prototype=function(t){return Et().transition(t)}.prototype={constructor:ke,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=_(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var l,s,u=r[a],c=u.length,h=o[a]=new Array(c),f=0;f<c;++f)(l=u[f])&&(s=t.call(l,l.__data__,f,u))&&("__data__"in l&&(s.__data__=l.__data__),h[f]=s,rn(h[f],n,e,f,h,ln(l,e)));return new ke(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=b(t));for(var r=this._groups,i=r.length,o=[],a=[],l=0;l<i;++l)for(var s,u=r[l],c=u.length,h=0;h<c;++h)if(s=u[h]){for(var f,p=t.call(s,s.__data__,h,u),d=ln(s,e),g=0,m=p.length;g<m;++g)(f=p[g])&&rn(f,n,e,g,p,d);o.push(p),a.push(s)}return new ke(o,a,n,e)},selectChild:Me.selectChild,selectChildren:Me.selectChildren,filter:function(t){"function"!=typeof t&&(t=C(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],l=a.length,s=r[i]=[],u=0;u<l;++u)(o=a[u])&&t.call(o,o.__data__,u,a)&&s.push(o);return new ke(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),l=0;l<o;++l)for(var s,u=n[l],c=e[l],h=u.length,f=a[l]=new Array(h),p=0;p<h;++p)(s=u[p]||c[p])&&(f[p]=s);for(;l<r;++l)a[l]=n[l];return new ke(a,this._parents,this._name,this._id)},selection:function(){return new xe(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=je(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,l=r[o],s=l.length,u=0;u<s;++u)if(a=l[u]){var c=ln(a,n);rn(a,t,e,u,l,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new ke(r,this._parents,t,e)},call:Me.call,nodes:Me.nodes,node:Me.node,size:Me.size,empty:Me.empty,each:Me.each,on:function(t,n){var e=this._id;return arguments.length<2?ln(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?on:an;return function(){var a=o(this,t),l=a.on;l!==r&&(i=(r=l).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=L(t),r="transform"===e?gn:se;return this.attrTween(t,"function"==typeof n?(e.local?de:pe)(e,r,yn(this,"attr."+t,n)):null==n?(e.local?ce:ue)(e):(e.local?fe:he)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=L(t);return this.tween(e,(r.local?ge:me)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?dn:se;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=W(this,t),a=(this.style.removeProperty(t),W(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,be(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=W(this,t),l=e(this),s=l+"";return null==l&&(this.style.removeProperty(t),s=l=W(this,t)),a===s?null:a===r&&s===i?o:(i=s,o=n(r=a,l))}}(t,r,yn(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,l="end."+a;return function(){var s=an(this,t),u=s.on,c=null==s.value[a]?o||(o=be(n)):void 0;u===e&&i===c||(r=(e=u).copy()).on(l,i=c),s.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=W(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}(t,o,e)),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(yn(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=ln(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?mn:vn)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?ve:ye)(n,t)):ln(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?we:_e)(n,t)):ln(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){an(this,t).ease=n}}(n,t)):ln(this.node(),n).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,n){return function(){var e=n.apply(this,arguments);if("function"!=typeof e)throw new Error;an(this,t).ease=e}}(this._id,t))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,a){var l={value:a},s={value:function(){0==--i&&o()}};e.each((function(){var e=an(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(l),n._.interrupt.push(l),n._.end.push(s)),e.on=n})),0===i&&o()}))},[Symbol.iterator]:Me[Symbol.iterator]};var Ae={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Ne(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}Et.prototype.interrupt=function(t){return this.each((function(){!function(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}(this,t)}))},Et.prototype.transition=function(t){var n,e;t instanceof ke?(n=t._id,t=t._name):(n=je(),(e=Ae).time=Ht(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,l=r[o],s=l.length,u=0;u<s;++u)(a=l[u])&&rn(a,t,n,u,l,e||Ne(a,n));return new ke(r,this._parents,t,n)};const{abs:Se,max:Ee,min:$e}=Math;function Oe(t){return{type:t}}function Pe(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}["w","e"].map(Oe),["n","s"].map(Oe),["n","w","e","s","nw","ne","sw","se"].map(Oe);class Te extends Map{constructor(t,n=Re){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(Be(this,t))}has(t){return super.has(Be(this,t))}set(t,n){return super.set(function({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}(this,t),n)}delete(t){return super.delete(function({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(r),t.delete(r)),e}(this,t))}}function Be({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function Re(t){return null!==t&&"object"==typeof t?t.valueOf():t}Set;const Fe=Symbol("implicit");function Le(){var t=new Te,n=[],e=[],r=Fe;function i(i){let o=t.get(i);if(void 0===o){if(r!==Fe)return r;t.set(i,o=n.push(i)-1)}return e[o%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Te;for(const r of e)t.has(r)||t.set(r,n.push(r)-1);return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return Le(n,e).unknown(r)},Pe.apply(i,arguments),i}function De(){var t,n,e=Le().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,l=!1,s=0,u=0,c=.5;function h(){var e=r().length,h=a<o,f=h?a:o,p=h?o:a;t=(p-f)/Math.max(1,e-s+2*u),l&&(t=Math.floor(t)),f+=(p-f-t*(e-s))*c,n=t*(1-s),l&&(f=Math.round(f),n=Math.round(n));var d=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}(e).map((function(n){return f+t*n}));return i(h?d.reverse():d)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),h()):r()},e.range=function(t){return arguments.length?([o,a]=t,o=+o,a=+a,h()):[o,a]},e.rangeRound=function(t){return[o,a]=t,o=+o,a=+a,l=!0,h()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(l=!!t,h()):l},e.padding=function(t){return arguments.length?(s=Math.min(1,u=+t),h()):s},e.paddingInner=function(t){return arguments.length?(s=Math.min(1,t),h()):s},e.paddingOuter=function(t){return arguments.length?(u=+t,h()):u},e.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),h()):c},e.copy=function(){return De(r(),[o,a]).round(l).paddingInner(s).paddingOuter(u).align(c)},Pe.apply(h(),arguments)}const Ge=Math.sqrt(50),Ve=Math.sqrt(10),Xe=Math.sqrt(2);function Ie(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=Ge?10:o>=Ve?5:o>=Xe?2:1;let l,s,u;return i<0?(u=Math.pow(10,-i)/a,l=Math.round(t*u),s=Math.round(n*u),l/u<t&&++l,s/u>n&&--s,u=-u):(u=Math.pow(10,i)*a,l=Math.round(t/u),s=Math.round(n/u),l*u<t&&++l,s*u>n&&--s),s<l&&.5<=e&&e<2?Ie(t,n,2*e):[l,s,u]}function Ue(t,n,e){return Ie(t=+t,n=+n,e=+e)[2]}function qe(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function ze(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function He(t){let n,e,r;function i(t,r,i=0,o=t.length){if(i<o){if(0!==n(r,r))return o;do{const n=i+o>>>1;e(t[n],r)<0?i=n+1:o=n}while(i<o)}return i}return 2!==t.length?(n=qe,e=(n,e)=>qe(t(n),e),r=(n,e)=>t(n)-e):(n=t===qe||t===ze?t:Ye,e=t,r=t),{left:i,center:function(t,n,e=0,o=t.length){const a=i(t,n,e,o-1);return a>e&&r(t[a-1],n)>-r(t[a],n)?a-1:a},right:function(t,r,i=0,o=t.length){if(i<o){if(0!==n(r,r))return o;do{const n=i+o>>>1;e(t[n],r)<=0?i=n+1:o=n}while(i<o)}return i}}}function Ye(){return 0}const We=He(qe),Je=We.right,Ke=(We.left,He((function(t){return null===t?NaN:+t})).center,Je);function Ze(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=er(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function Qe(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function tr(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=er(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}function nr(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}}function er(t,n){var e,r,i=typeof n;return null==n||"boolean"===i?ne(n):("number"===i?sn:"string"===i?(e=Ln(n))?(n=e,re):le:n instanceof Ln?re:n instanceof Date?Qe:(r=n,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(n)?Ze:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?tr:sn:nr))(t,n)}function rr(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}function ir(t){return+t}var or=[0,1];function ar(t){return t}function lr(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e});var e}function sr(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i<r?(r=lr(i,r),o=e(a,o)):(r=lr(r,i),o=e(o,a)),function(t){return o(r(t))}}function ur(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<r;)i[a]=lr(t[a],t[a+1]),o[a]=e(n[a],n[a+1]);return function(n){var e=Ke(t,n,1,r)-1;return o[e](i[e](n))}}var cr,hr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function fr(t){if(!(n=hr.exec(t)))throw new Error("invalid format: "+t);var n;return new pr({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 pr(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 dr(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function gr(t){return(t=dr(Math.abs(t)))?t[1]:NaN}function mr(t,n){var e=dr(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}fr.prototype=pr.prototype,pr.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};const vr={"%":(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)=>mr(100*t,n),r:mr,s:function(t,n){var e=dr(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(cr=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+dr(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function yr(t){return t}var wr,_r,xr,br=Array.prototype.map,Cr=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function kr(t){var n=t.domain;return t.ticks=function(t){var e=n();return function(t,n,e){if(!((e=+e)>0))return[];if((t=+t)==(n=+n))return[t];const r=n<t,[i,o,a]=r?Ie(n,t,e):Ie(t,n,e);if(!(o>=i))return[];const l=o-i+1,s=new Array(l);if(r)if(a<0)for(let t=0;t<l;++t)s[t]=(o-t)/-a;else for(let t=0;t<l;++t)s[t]=(o-t)*a;else if(a<0)for(let t=0;t<l;++t)s[t]=(i+t)/-a;else for(let t=0;t<l;++t)s[t]=(i+t)*a;return s}(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return function(t,n,e,r){var i,o=function(t,n,e){e=+e;const r=(n=+n)<(t=+t),i=r?Ue(n,t,e):Ue(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}(t,n,e);switch((r=fr(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(gr(n)/3)))-gr(Math.abs(t)))}(o,a))||(r.precision=i),xr(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,gr(n)-gr(t))+1}(o,Math.max(Math.abs(t),Math.abs(n))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-gr(Math.abs(t)))}(o))||(r.precision=i-2*("%"===r.type))}return _r(r)}(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,l=o.length-1,s=o[a],u=o[l],c=10;for(u<s&&(i=s,s=u,u=i,i=a,a=l,l=i);c-- >0;){if((i=Ue(s,u,e))===r)return o[a]=s,o[l]=u,n(o);if(i>0)s=Math.floor(s/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;s=Math.ceil(s*i)/i,u=Math.floor(u*i)/i}r=i}return t},t}function jr(){var t=function(){var t,n,e,r,i,o,a=or,l=or,s=er,u=ar;function c(){var t,n,e,s=Math.min(a.length,l.length);return u!==ar&&(t=a[0],n=a[s-1],t>n&&(e=t,t=n,n=e),u=function(e){return Math.max(t,Math.min(n,e))}),r=s>2?ur:sr,i=o=null,h}function h(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),l,s)))(t(u(n)))}return h.invert=function(e){return u(n((o||(o=r(l,a.map(t),sn)))(e)))},h.domain=function(t){return arguments.length?(a=Array.from(t,ir),c()):a.slice()},h.range=function(t){return arguments.length?(l=Array.from(t),c()):l.slice()},h.rangeRound=function(t){return l=Array.from(t),s=rr,c()},h.clamp=function(t){return arguments.length?(u=!!t||ar,c()):u!==ar},h.interpolate=function(t){return arguments.length?(s=t,c()):s},h.unknown=function(t){return arguments.length?(e=t,h):e},function(e,r){return t=e,n=r,c()}}()(ar,ar);return t.copy=function(){return n=t,jr().domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown());var n},Pe.apply(t,arguments),kr(t)}function Mr(t){return"string"==typeof t?new Nt([[document.querySelector(t)]],[document.documentElement]):new Nt([[t]],At)}function Ar(t,n,e){this.k=t,this.x=n,this.y=e}wr=function(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?yr:(n=br.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,l=n[0],s=0;i>0&&l>0&&(s+l+1>r&&(l=Math.max(1,r-s)),o.push(t.substring(i-=l,i+l)),!((s+=l+1)>r));)l=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",l=void 0===t.numerals?yr:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(br.call(t.numerals,String)),s=void 0===t.percent?"%":t.percent+"",u=void 0===t.minus?"":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function h(t){var n=(t=fr(t)).fill,e=t.align,h=t.sign,f=t.symbol,p=t.zero,d=t.width,g=t.comma,m=t.precision,v=t.trim,y=t.type;"n"===y?(g=!0,y="g"):vr[y]||(void 0===m&&(m=12),v=!0,y="g"),(p||"0"===n&&"="===e)&&(p=!0,n="0",e="=");var w="$"===f?i:"#"===f&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",_="$"===f?o:/[%p]/.test(y)?s:"",x=vr[y],b=/[defgprs%]/.test(y);function C(t){var i,o,s,f=w,C=_;if("c"===y)C=x(t)+C,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:x(Math.abs(t),m),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),k&&0==+t&&"+"!==h&&(k=!1),f=(k?"("===h?h:u:"-"===h||"("===h?"":h)+f,C=("s"===y?Cr[8+cr/3]:"")+C+(k&&"("===h?")":""),b)for(i=-1,o=t.length;++i<o;)if(48>(s=t.charCodeAt(i))||s>57){C=(46===s?a+t.slice(i+1):t.slice(i))+C,t=t.slice(0,i);break}}g&&!p&&(t=r(t,1/0));var j=f.length+t.length+C.length,M=j<d?new Array(d-j+1).join(n):"";switch(g&&p&&(t=r(M+t,M.length?d-C.length:1/0),M=""),e){case"<":t=f+t+C+M;break;case"=":t=f+M+t+C;break;case"^":t=M.slice(0,j=M.length>>1)+f+t+C+M.slice(j);break;default:t=M+f+t+C}return l(t)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),C.toString=function(){return t+""},C}return{format:h,formatPrefix:function(t,n){var e=h(((t=fr(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(gr(n)/3))),i=Math.pow(10,-r),o=Cr[8+r/3];return function(t){return e(i*t)+o}}}}({thousands:",",grouping:[3],currency:["$",""]}),_r=wr.format,xr=wr.formatPrefix,Ar.prototype={constructor:Ar,scale:function(t){return 1===t?this:new Ar(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ar(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new Ar(1,0,0),Ar.prototype;const Nr=({data:t,width:n="100%",height:e="400px",backgroundColor:r,title:a,showGridX:l,showGridY:u,xGridColor:c,yGridColor:h,xGridWidth:f,yGridWidth:p,showBarValues:d,xAxisLabel:g,yAxisLabel:m,colorSource:w,defaultBarColor:_,customColors:x,barOpacity:b})=>{const C=(0,i.useRef)(),k=(0,i.useRef)();return(0,i.useEffect)((()=>{if(!t||!C.current||!k.current)return;Mr(C.current).selectAll("*").remove();const n=[];for(const[e,r]of Object.entries(t))for(const t of r)n.push({dataset:e,label:t.label,value:parseInt(t.value,10),color:t.color||"#FF6384"});const e=k.current.clientWidth,r=k.current.clientHeight,i=a?40:20,o=m?60:40,j=e-o-20,M=r-i-(g?50:30),A=Mr(C.current).attr("width",e).attr("height",r);a&&A.append("text").attr("x",e/2).attr("y",20).attr("text-anchor","middle").style("font-size","16px").text(a);const N=A.append("g").attr("transform",`translate(${o},${i})`),S=De().domain(n.map((t=>t.label))).range([0,j]).padding(.1),E=jr().domain([0,s(n,(t=>t.value))]).range([M,0]);l&&N.append("g").attr("class","grid x-grid").attr("transform",`translate(0,${M})`).style("color",c).style("stroke-width",f).call(v(S).tickSize(-M).tickFormat("")),u&&N.append("g").attr("class","grid y-grid").style("color",h).style("stroke-width",p).call(y(E).tickSize(-j).tickFormat("")),N.selectAll("rect").data(n).enter().append("rect").attr("x",(t=>S(t.label))).attr("y",(t=>E(t.value))).attr("width",S.bandwidth()).attr("height",(t=>M-E(t.value))).attr("fill",(t=>(t=>{switch(w){case"singleColor":return _;case"customColors":const n=x.find((n=>n.dataset===t.dataset&&n.label===t.label));return n?n.color:t.color;default:return t.color}})(t))).style("opacity",b),d&&N.selectAll(".bar-value").data(n).enter().append("text").attr("class","bar-value").attr("x",(t=>S(t.label)+S.bandwidth()/2)).attr("y",(t=>E(t.value)-5)).attr("text-anchor","middle").text((t=>t.value)),N.append("g").attr("transform",`translate(0,${M})`).call(v(S)),N.append("g").call(y(E)),g&&N.append("text").attr("class","x-axis-label").attr("x",j/2).attr("y",M+40).attr("text-anchor","middle").style("font-size","12px").text(g),m&&N.append("text").attr("class","y-axis-label").attr("transform","rotate(-90)").attr("x",-M/2).attr("y",-45).attr("text-anchor","middle").style("font-size","12px").text(m)}),[t,n,e,a,l,u,c,h,f,p,d,g,m,w,_,x,b]),(0,o.jsx)("div",{ref:k,className:"bar-graph",style:{width:n,height:e,backgroundColor:r,position:"relative"},children:(0,o.jsx)("svg",{ref:C})})},Sr=({label:t,value:n,onChange:e})=>{const{number:i,unit:a}=(t=>{const n=t?.match(/^(\d+)(.*)$/);return n?{number:parseInt(n[1],10),unit:n[2]||"px"}:{number:300,unit:"px"}})(n);return(0,o.jsxs)("div",{className:"lcp-dimension-control",children:[(0,o.jsx)("label",{className:"components-base-control__label",children:t}),(0,o.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"flex-start"},children:[(0,o.jsx)(r.TextControl,{type:"number",value:i,onChange:t=>{e(`${t}${a}`)},min:0,style:{width:"80px"}}),(0,o.jsx)(r.SelectControl,{value:a,options:[{label:"Pixels (px)",value:"px"},{label:"Percentage (%)",value:"%"},{label:"Viewport Width (vw)",value:"vw"},{label:"Viewport Height (vh)",value:"vh"}],onChange:t=>{e(`${i}${t}`)},style:{minWidth:"100px"}})]})]})},Er=({data:t,colorSource:e,singleColor:a,customColors:l,onColorSourceChange:s,onSingleColorChange:u,onCustomColorChange:c})=>{const[h,f]=(0,i.useState)(null),p=(t,n)=>{const e=l.find((e=>e.dataset===t&&e.label===n));return e?e.color:"#FF6384"};return(0,o.jsxs)("div",{className:"lcp-color-controls",children:[(0,o.jsx)(r.SelectControl,{label:(0,n.__)("Color Source","lcp"),value:e,options:[{label:(0,n.__)("Default Colors","lcp"),value:"default"},{label:(0,n.__)("Single Color","lcp"),value:"singleColor"},{label:(0,n.__)("Custom Colors","lcp"),value:"customColors"}],onChange:s}),"singleColor"===e&&(0,o.jsxs)("div",{className:"components-base-control",children:[(0,o.jsx)("label",{className:"components-base-control__label",children:(0,n.__)("Bar Color","lcp")}),(0,o.jsx)(r.ColorPicker,{color:a,onChangeComplete:t=>u(t.hex)})]}),"customColors"===e&&(0,o.jsx)("div",{className:"custom-colors-grid",style:{marginTop:"10px"},children:(()=>{const n=[];return Object.entries(t).forEach((([t,e])=>{e.forEach((e=>{n.push({dataset:t,label:e.label,value:e.value})}))})),n})().map(((t,n)=>(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"8px",gap:"8px"},children:[(0,o.jsx)("span",{style:{flex:1},children:t.label}),(0,o.jsx)(r.Button,{onClick:()=>f(n),style:{backgroundColor:p(t.dataset,t.label),width:"24px",height:"24px",borderRadius:"50%",padding:0,border:"1px solid #ddd"}}),h===n&&(0,o.jsx)(r.Popover,{onClose:()=>f(null),children:(0,o.jsx)("div",{style:{padding:"12px"},children:(0,o.jsx)(r.ColorPicker,{color:p(t.dataset,t.label),onChangeComplete:n=>{c(t.dataset,t.label,n.hex)}})})})]},`${t.dataset}-${t.label}`)))})]})},$r=JSON.parse('{"UU":"lcp/bar-graph"}');(0,t.registerBlockType)($r.UU,{edit:function({attributes:t,setAttributes:a}){const{chartHeight:s,chartWidth:u,barColor:c,barOpacity:h,backgroundColor:f,showGridY:p,yGridColor:d,xGridColor:g,xGridWidth:m,yGridWidth:v,chartData:y,dataSource:w,displayChartTitle:_,chartTitle:x,allowDownload:b,downloadMaxWidth:C,showSorting:k,showFiltering:j,showBarValues:M,showGridX:A,xAxisLabel:N,yAxisLabel:S,chartColorSource:E,chartCustomColors:$}=t,O=(0,e.useBlockProps)(),P=t=>{console.log("New data:",t),a({chartData:t})},T=t=>{a({dataSource:t,chartData:{}})},B=(t,n,e)=>{const r=[...$],i=r.findIndex((e=>e.dataset===t&&e.label===n));i>=0?r[i].color=e:r.push({dataset:t,label:n,color:e}),a({chartCustomColors:r})},[R,F]=(0,i.useState)(!1),[L,D]=(0,i.useState)(!1),G=()=>{F(!R)},V=()=>{D(!L)},[X,I]=(0,i.useState)(!1),U=()=>{I(!X)};return console.log("Chart data:",y),(0,o.jsxs)("div",{...O,children:[(0,o.jsx)(e.InspectorControls,{children:(0,o.jsx)(r.TabPanel,{className:"lcp-tab-panel",activeClass:"active-tab",tabs:[{name:"data",title:(0,n.__)("Data Settings","lcp"),className:"tab-data"},{name:"appearance",title:(0,n.__)("Appearance","lcp"),className:"tab-appearance"},{name:"tools",title:(0,n.__)("Tools Settings","lcp"),className:"tab-tools"}],children:t=>"data"===t.name?(0,o.jsxs)(r.Panel,{children:[(0,o.jsx)(r.PanelBody,{title:"Data Settings",children:(0,o.jsx)(l,{value:y,onChange:P,dataSource:w,onDataSourceChange:T})}),(0,o.jsxs)(r.PanelBody,{title:"Chart Settings",children:[(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Display Chart Title","lcp"),checked:_,onChange:t=>a({displayChartTitle:t})}),_&&(0,o.jsx)(r.TextControl,{label:(0,n.__)("Chart Title","lcp"),value:x,onChange:t=>a({chartTitle:t})}),(0,o.jsx)(Sr,{label:(0,n.__)("Chart Width","lcp"),value:u,onChange:t=>a({chartWidth:t})}),(0,o.jsx)(Sr,{label:(0,n.__)("Chart Height","lcp"),value:s,onChange:t=>a({chartHeight:t})})]}),(0,o.jsxs)(r.PanelBody,{title:"Appearance",children:[(0,o.jsxs)("div",{className:"background-color-row",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},children:[(0,o.jsx)("span",{children:"Background Color"}),(0,o.jsx)(r.Button,{className:"background-color-button",onClick:U,style:{backgroundColor:f,width:"26px",height:"26px",borderRadius:"50%",border:"1px solid #ccc"}}),X&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:U,children:(0,o.jsx)(r.ColorPicker,{color:f,onChangeComplete:t=>{return n=t.hex,void a({backgroundColor:n});var n}})})]}),(0,o.jsx)(Er,{data:y,colorSource:E,singleColor:c,customColors:$,onColorSourceChange:t=>a({chartColorSource:t}),onSingleColorChange:t=>a({barColor:t}),onCustomColorChange:B}),(0,o.jsx)(r.RangeControl,{label:(0,n.__)("Bar Opacity","lcp"),value:h,onChange:t=>a({barOpacity:t}),min:0,max:1,step:.1}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Bar Values","lcp"),checked:M,onChange:t=>a({showBarValues:t})})]}),(0,o.jsxs)(r.PanelBody,{title:"Grid Settings",children:[(0,o.jsx)(r.TextControl,{label:(0,n.__)("X-Axis Label","lcp"),value:N,onChange:t=>a({xAxisLabel:t})}),(0,o.jsx)(r.TextControl,{label:(0,n.__)("Y-Axis Label","lcp"),value:S,onChange:t=>a({yAxisLabel:t})}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show X-Axis Grid","lcp"),checked:A,onChange:t=>a({showGridX:t})}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Y-Axis Grid","lcp"),checked:p,onChange:t=>a({showGridY:t})}),p&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"y-grid-color-row",style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"},children:[(0,o.jsx)("span",{children:"Y-Axis Grid Color"}),(0,o.jsx)(r.Button,{className:"grid-color-button",onClick:G,style:{backgroundColor:d,width:"26px",height:"26px",borderRadius:"50%",border:"1px solid #ccc"}}),R&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:G,children:(0,o.jsx)(r.ColorPicker,{color:d,onChangeComplete:t=>{return n=t.hex,void a({yGridColor:n});var n}})})]}),(0,o.jsx)(r.RangeControl,{label:(0,n.__)("Y-Axis Grid Width","lcp"),value:v,onChange:t=>a({yGridWidth:t}),min:1,max:5,step:1})]}),A&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"x-grid-color-row",style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"},children:[(0,o.jsx)("span",{children:"X-Axis Grid Color"}),(0,o.jsx)(r.Button,{className:"grid-color-button",onClick:V,style:{backgroundColor:g,width:"26px",height:"26px",borderRadius:"50%",border:"1px solid #ccc"}}),L&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:V,children:(0,o.jsx)(r.ColorPicker,{color:g,onChangeComplete:t=>{return n=t.hex,void a({xGridColor:n});var n}})})]}),(0,o.jsx)(r.RangeControl,{label:(0,n.__)("X-Axis Grid Width","lcp"),value:m,onChange:t=>a({xGridWidth:t}),min:1,max:5,step:1})]})]})]}):"appearance"===t.name?(0,o.jsx)(r.PanelBody,{}):"tools"===t.name?(0,o.jsxs)(r.PanelBody,{children:[(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Allow Download","lcp"),checked:b,onChange:t=>a({allowDownload:t})}),b&&(0,o.jsx)(r.TextControl,{type:"number",label:(0,n.__)("Max Download Width (px)","lcp"),value:parseInt(C),onChange:t=>a({downloadMaxWidth:`${t}px`}),min:100,max:5e3}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Sorting Options","lcp"),checked:k,onChange:t=>a({showSorting:t})}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Filtering Options","lcp"),checked:j,onChange:t=>a({showFiltering:t})})]}):void 0})}),b&&(0,o.jsx)("div",{className:"lcp-bar-graph-toolbar",children:(0,o.jsx)(r.Button,{isPrimary:!0,onClick:()=>{const t=document.querySelector(".bar-graph svg");if(!t)return;const n=document.createElement("canvas"),e=(new XMLSerializer).serializeToString(t),r=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),i=window.URL||window.webkitURL||window,o=i.createObjectURL(r),a=new Image;a.onload=()=>{n.width=t.width.baseVal.value,n.height=t.height.baseVal.value;const e=n.getContext("2d");e.fillStyle=f,e.fillRect(0,0,n.width,n.height),e.drawImage(a,0,0),n.toBlob((t=>{const n=URL.createObjectURL(t),e=document.createElement("a");e.href=n,e.download="bar-graph.png",document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(n),i.revokeObjectURL(o)}),"image/png")},a.src=o},icon:"download",children:(0,n.__)("Download Graph","lcp")})}),y&&Object.keys(y).length>0?(0,o.jsx)(Nr,{data:y,height:s,width:u,backgroundColor:f,defaultBarColor:c,barOpacity:h,showGridX:A,showGridY:p,yGridColor:d,xGridColor:g,xGridWidth:m,yGridWidth:v,title:_?x:"",showSorting:k,showFiltering:j,showBarValues:M,xAxisLabel:N,yAxisLabel:S,colorSource:E,customColors:$}):(0,o.jsx)("div",{className:"lcp-bar-graph-placeholder",style:{height:s,width:u,backgroundColor:f,display:"flex",alignItems:"center",justifyContent:"center",border:"2px dashed #ccc",borderRadius:"4px",color:"#666"},children:(0,n.__)("Please add data using the Data Settings panel","lcp")})]})},save:function({attributes:t}){const{chartHeight:n,backgroundColor:r}=t;return(0,o.jsx)("div",{...e.useBlockProps.save(),children:(0,o.jsx)("div",{className:"lcp-bar-graph",style:{height:n,backgroundColor:r}})})}})}},e={};function r(t){var i=e[t];if(void 0!==i)return i.exports;var o=e[t]={exports:{}};return n[t](o,o.exports,r),o.exports}r.m=n,t=[],r.O=(n,e,i,o)=>{if(!e){var a=1/0;for(c=0;c<t.length;c++){for(var[e,i,o]=t[c],l=!0,s=0;s<e.length;s++)(!1&o||a>=o)&&Object.keys(r.O).every((t=>r.O[t](e[s])))?e.splice(s--,1):(l=!1,o<a&&(a=o));if(l){t.splice(c--,1);var u=i();void 0!==u&&(n=u)}}return n}o=o||0;for(var c=t.length;c>0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[e,i,o]},r.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),(()=>{var t={57:0,350:0};r.O.j=n=>0===t[n];var n=(n,e)=>{var i,o,[a,l,s]=e,u=0;if(a.some((n=>0!==t[n]))){for(i in l)r.o(l,i)&&(r.m[i]=l[i]);if(s)var c=s(r)}for(n&&n(e);u<a.length;u++)o=a[u],r.o(t,o)&&t[o]&&t[o][0](),t[o]=0;return r.O(c)},e=globalThis.webpackChunklcp_bar_graph=globalThis.webpackChunklcp_bar_graph||[];e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))})();var i=r.O(void 0,[350],(()=>r(934)));i=r.O(i)})();