1 line
68 KiB
JavaScript
1 line
68 KiB
JavaScript
(()=>{"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 L={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 D(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),L.hasOwnProperty(n)?{space:L[n],local:t}:t}function F(t){return function(){this.removeAttribute(t)}}function V(t){return function(){this.removeAttributeNS(t.space,t.local)}}function X(t,n){return function(){this.setAttribute(t,n)}}function I(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function U(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function q(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 z(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function G(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)||z(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=D(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=z(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=D(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?V:F:"function"==typeof n?e.local?q:U:e.local?I:X)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?G:"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 Lt,Dt,Ft=0,Vt=0,Xt=0,It=0,Ut=0,qt=0,zt="object"==typeof performance&&performance.now?performance:Date,Gt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ht(){return Ut||(Gt(Yt),Ut=zt.now()+qt)}function Yt(){Ut=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(){Ut=(It=zt.now())+qt,Ft=Vt=0;try{!function(){Ht(),++Ft;for(var t,n=Lt;n;)(t=Ut-n._time)>=0&&n._call.call(void 0,t),n=n._next;--Ft}()}finally{Ft=0,function(){for(var t,n,e=Lt,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:Lt=n);Dt=t,Qt(r)}(),Ut=0}}function Zt(){var t=zt.now(),n=t-It;n>1e3&&(qt-=n,It=t)}function Qt(t){Ft||(Vt&&(Vt=clearTimeout(Vt)),t-Ut>24?(t<1/0&&(Vt=setTimeout(Kt,t-zt.now()-qt)),Xt&&(Xt=clearInterval(Xt))):(Xt||(It=zt.now(),Xt=setInterval(Zt,1e3)),Ft=1,Gt(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||Dt===this||(Dt?Dt._next=this:Lt=this,Dt=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 Ln(){return this.rgb().formatRgb()}function Dn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Nn.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?Fn(n):3===e?new In(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Vn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Vn(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 In(n[1],n[2],n[3],1):(n=En.exec(t))?new In(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=$n.exec(t))?Vn(n[1],n[2],n[3],n[4]):(n=On.exec(t))?Vn(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)?Fn(Bn[t]):"transparent"===t?new In(NaN,NaN,NaN,0):null}function Fn(t){return new In(t>>16&255,t>>8&255,255&t,1)}function Vn(t,n,e,r){return r<=0&&(t=n=e=NaN),new In(t,n,e,r)}function Xn(t,n,e,r){return 1===arguments.length?((i=t)instanceof bn||(i=Dn(i)),i?new In((i=i.rgb()).r,i.g,i.b,i.opacity):new In):new In(t,n,e,null==r?1:r);var i}function In(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Un(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}`}function qn(){const t=zn(this.opacity);return`${1===t?"rgb(":"rgba("}${Gn(this.r)}, ${Gn(this.g)}, ${Gn(this.b)}${1===t?")":`, ${t})`}`}function zn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Gn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Hn(t){return((t=Gn(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=Dn(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,Dn,{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:Ln,toString:Ln}),wn(In,Xn,xn(bn,{brighter(t){return t=null==t?kn:Math.pow(kn,t),new In(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Cn:Math.pow(Cn,t),new In(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new In(Gn(this.r),Gn(this.g),Gn(this.b),zn(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:Un,formatHex:Un,formatHex8:function(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}${Hn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:qn,toString:qn})),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 In(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),zn(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=zn(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=Xn(t)).r,(n=Xn(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=Xn(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 Dn?re:(e=Dn(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=D(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=D(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 Le=Symbol("implicit");function De(){var t=new Te,n=[],e=[],r=Le;function i(i){let o=t.get(i);if(void 0===o){if(r!==Le)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 De(n,e).unknown(r)},Pe.apply(i,arguments),i}function Fe(){var t,n,e=De().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 Fe(r(),[o,a]).round(l).paddingInner(s).paddingOuter(u).align(c)},Pe.apply(h(),arguments)}const Ve=Math.sqrt(50),Xe=Math.sqrt(10),Ie=Math.sqrt(2);function Ue(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>=Ve?10:o>=Xe?5:o>=Ie?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?Ue(t,n,2*e):[l,s,u]}function qe(t,n,e){return Ue(t=+t,n=+n,e=+e)[2]}function ze(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function Ge(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=ze,e=(n,e)=>ze(t(n),e),r=(n,e)=>t(n)-e):(n=t===ze||t===Ge?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(ze),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=Dn(n))?(n=e,re):le:n instanceof Dn?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?Ue(n,t,e):Ue(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?qe(n,t,e):qe(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=qe(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,gridWidth:f,showBarValues:p,xAxisLabel:d,yAxisLabel:g,colorSource:m,defaultBarColor:w,customColors:_,barOpacity:x})=>{const b=(0,i.useRef)(),C=(0,i.useRef)();return(0,i.useEffect)((()=>{if(!t||!b.current||!C.current)return;Mr(b.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=C.current.clientWidth,r=C.current.clientHeight,i=a?40:20,o=g?60:40,k=e-o-20,j=r-i-(d?50:30),M=Mr(b.current).attr("width",e).attr("height",r);a&&M.append("text").attr("x",e/2).attr("y",20).attr("text-anchor","middle").style("font-size","16px").text(a);const A=M.append("g").attr("transform",`translate(${o},${i})`),N=Fe().domain(n.map((t=>t.label))).range([0,k]).padding(.1),S=jr().domain([0,s(n,(t=>t.value))]).range([j,0]);l&&A.append("g").attr("class","grid x-grid").attr("transform",`translate(0,${j})`).style("color",c).style("stroke-width",f).call(v(N).tickSize(-j).tickFormat("")),u&&A.append("g").attr("class","grid y-grid").style("color",h).style("stroke-width",f).call(y(S).tickSize(-k).tickFormat("")),A.selectAll("rect").data(n).enter().append("rect").attr("x",(t=>N(t.label))).attr("y",(t=>S(t.value))).attr("width",N.bandwidth()).attr("height",(t=>j-S(t.value))).attr("fill",(t=>(t=>{switch(m){case"singleColor":return w;case"customColors":const n=_.find((n=>n.dataset===t.dataset&&n.label===t.label));return n?n.color:t.color;default:return t.color}})(t))).style("opacity",x),p&&A.selectAll(".bar-value").data(n).enter().append("text").attr("class","bar-value").attr("x",(t=>N(t.label)+N.bandwidth()/2)).attr("y",(t=>S(t.value)-5)).attr("text-anchor","middle").text((t=>t.value)),A.append("g").attr("transform",`translate(0,${j})`).call(v(N)),A.append("g").call(y(S)),d&&A.append("text").attr("class","x-axis-label").attr("x",k/2).attr("y",j+40).attr("text-anchor","middle").style("font-size","12px").text(d),g&&A.append("text").attr("class","y-axis-label").attr("transform","rotate(-90)").attr("x",-j/2).attr("y",-45).attr("text-anchor","middle").style("font-size","12px").text(g)}),[t,n,e,a,l,u,c,h,f,p,d,g,m,w,_,x]),(0,o.jsx)("div",{ref:C,className:"bar-graph",style:{width:n,height:e,backgroundColor:r,position:"relative"},children:(0,o.jsx)("svg",{ref:b})})},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,chartData:m,dataSource:v,displayChartTitle:y,chartTitle:w,allowDownload:_,downloadMaxWidth:x,showSorting:b,showFiltering:C,showBarValues:k,showGridX:j,gridWidth:M,xAxisLabel:A,yAxisLabel:N,chartColorSource:S,chartCustomColors:E}=t,$=(0,e.useBlockProps)(),O=t=>{console.log("New data:",t),a({chartData:t})},P=t=>{a({dataSource:t,chartData:{}})},T=(t,n,e)=>{const r=[...E],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})},[B,R]=(0,i.useState)(!1),[L,D]=(0,i.useState)(!1),F=()=>{R(!B)},V=()=>{D(!L)},[X,I]=(0,i.useState)(!1),U=()=>{I(!X)};return console.log("Chart data:",m),(0,o.jsxs)("div",{...$,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:m,onChange:O,dataSource:v,onDataSourceChange:P})}),(0,o.jsxs)(r.PanelBody,{title:"Chart Settings",children:[(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Display Chart Title","lcp"),checked:y,onChange:t=>a({displayChartTitle:t})}),y&&(0,o.jsx)(r.TextControl,{label:(0,n.__)("Chart Title","lcp"),value:w,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:m,colorSource:S,singleColor:c,customColors:E,onColorSourceChange:t=>a({chartColorSource:t}),onSingleColorChange:t=>a({barColor:t}),onCustomColorChange:T}),(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:k,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:A,onChange:t=>a({xAxisLabel:t})}),(0,o.jsx)(r.TextControl,{label:(0,n.__)("Y-Axis Label","lcp"),value:N,onChange:t=>a({yAxisLabel:t})}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show X-Axis Grid","lcp"),checked:j,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)("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:F,style:{backgroundColor:d,width:"26px",height:"26px",borderRadius:"50%",border:"1px solid #ccc"}}),B&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:F,children:(0,o.jsx)(r.ColorPicker,{color:d,onChangeComplete:t=>{return n=t.hex,void a({yGridColor:n});var n}})})]}),j&&(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}})})]}),(j||p)&&(0,o.jsx)(r.RangeControl,{label:(0,n.__)("Grid Width","lcp"),value:M,onChange:t=>a({gridWidth: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:_,onChange:t=>a({allowDownload:t})}),_&&(0,o.jsx)(r.TextControl,{type:"number",label:(0,n.__)("Max Download Width (px)","lcp"),value:parseInt(x),onChange:t=>a({downloadMaxWidth:`${t}px`}),min:100,max:5e3}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Sorting Options","lcp"),checked:b,onChange:t=>a({showSorting:t})}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Filtering Options","lcp"),checked:C,onChange:t=>a({showFiltering:t})})]}):void 0})}),_&&(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")})}),m&&Object.keys(m).length>0?(0,o.jsx)(Nr,{data:m,height:s,width:u,backgroundColor:f,defaultBarColor:c,barOpacity:h,showGridX:j,showGridY:p,yGridColor:d,xGridColor:g,gridWidth:M,title:y?w:"",showSorting:b,showFiltering:C,showBarValues:k,xAxisLabel:A,yAxisLabel:N,colorSource:S,customColors:E}):(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)})(); |