Files
lcp-visualizer/blocks/bar-graph/build/index.js
2025-01-15 03:00:49 -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,b=n.range(),x=+b[0]+s,C=+b[b.length-1]+s,k=(n.bandwidth?d:p)(n.copy(),s),j=h.selection?h.selection():h,M=j.selectAll(".domain").data([null]),N=j.selectAll(".tick").data(f,n).order(),A=N.exit(),S=N.enter().append("g").attr("class","tick"),E=N.select("line"),$=N.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),N=N.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),N=N.transition(h),E=E.transition(h),$=$.transition(h),A=A.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)}))),A.remove(),M.attr("d",4===t||2===t?a?"M"+m*a+","+x+"H"+s+"V"+C+"H"+m*a:"M"+s+","+x+"V"+C:a?"M"+x+","+m*a+"V"+s+"H"+C+"V"+m*a:"M"+x+","+s+"H"+C),N.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 b(){return[]}function x(t){return null==t?b: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 N=Array.prototype.filter;function A(){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 F(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 D(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 H(t){return function(){this.style.removeProperty(t)}}function Y(t,n,e){return function(){this.style.setProperty(t,n,e)}}function G(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=F(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 bt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function xt(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 Nt=[null];function At(t,n){this._groups=t,this._parents=n}function St(){return new At([[document.documentElement]],Nt)}At.prototype=St.prototype={constructor:At,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 At(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):x(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 At(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?A:function(t){return function(){return N.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 At(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,b=0;_<g;++_)if(y=m[_]){for(_>=b&&(b=_+1);!(w=v[b])&&++b<g;);y._next=w||null}}return(l=new At(l,i))._enter=s,l._exit=u,l},enter:function(){return new At(this._enter||this._groups.map(S),this._parents)},exit:function(){return new At(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 At(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 At(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=F(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:D:"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?H:"function"==typeof n?G:Y)(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?bt:_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:xt,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,Ft,Dt=0,Vt=0,Xt=0,It=0,Ut=0,qt=0,zt="object"==typeof performance&&performance.now?performance:Date,Ht="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Yt(){return Ut||(Ht(Gt),Ut=zt.now()+qt)}function Gt(){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,Dt=Vt=0;try{!function(){Yt(),++Dt;for(var t,n=Lt;n;)(t=Ut-n._time)>=0&&n._call.call(void 0,t),n=n._next;--Dt}()}finally{Dt=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);Ft=t,Qt(r)}(),Ut=0}}function Zt(){var t=zt.now(),n=t-It;n>1e3&&(qt-=n,It=t)}function Qt(t){Dt||(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)),Dt=1,Ht(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?Yt():+e)+(null==n?0:+n),this._next||Ft===this||(Ft?Ft._next=this:Lt=this,Ft=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 bn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function xn(){}var Cn=.7,kn=1/Cn,jn="\\s*([+-]?\\d+)\\s*",Mn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Nn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",An=/^#([0-9a-f]{3,8})$/,Sn=new RegExp(`^rgb\\(${jn},${jn},${jn}\\)$`),En=new RegExp(`^rgb\\(${Nn},${Nn},${Nn}\\)$`),$n=new RegExp(`^rgba\\(${jn},${jn},${jn},${Mn}\\)$`),On=new RegExp(`^rgba\\(${Nn},${Nn},${Nn},${Mn}\\)$`),Pn=new RegExp(`^hsl\\(${Mn},${Nn},${Nn}\\)$`),Tn=new RegExp(`^hsla\\(${Mn},${Nn},${Nn},${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 Fn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=An.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?Dn(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))?Gn(n[1],n[2]/100,n[3]/100,1):(n=Tn.exec(t))?Gn(n[1],n[2]/100,n[3]/100,n[4]):Bn.hasOwnProperty(t)?Dn(Bn[t]):"transparent"===t?new In(NaN,NaN,NaN,0):null}function Dn(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 xn||(i=Fn(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`#${Yn(this.r)}${Yn(this.g)}${Yn(this.b)}`}function qn(){const t=zn(this.opacity);return`${1===t?"rgb(":"rgba("}${Hn(this.r)}, ${Hn(this.g)}, ${Hn(this.b)}${1===t?")":`, ${t})`}`}function zn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Hn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Yn(t){return((t=Hn(t))<16?"0":"")+t.toString(16)}function Gn(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 xn||(t=Fn(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(xn,Fn,{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,bn(xn,{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(Hn(this.r),Hn(this.g),Hn(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`#${Yn(this.r)}${Yn(this.g)}${Yn(this.b)}${Yn(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)}),bn(xn,{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 Fn?re:(e=Fn(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 be=Et.prototype.constructor;function xe(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=x(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 be(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=F(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=F(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,xe(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=xe(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 Ne={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Ae(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=Ne).time=Yt(),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||Ae(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 Fe(){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 Fe(n,e).unknown(r)},Pe.apply(i,arguments),i}function De(){var t,n,e=Fe().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 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 He(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function Ye(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===He?t:Ge,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 Ge(){return 0}const We=Ye(ze),Je=We.right,Ke=(We.left,Ye((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=Fn(n))?(n=e,re):le:n instanceof Fn?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,br,xr=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),br(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 At([[document.querySelector(t)]],[document.documentElement]):new At([[t]],Nt)}function Nr(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=xr.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]}))}}(xr.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:"",b=vr[y],x=/[defgprs%]/.test(y);function C(t){var i,o,s,f=w,C=_;if("c"===y)C=b(t)+C,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:b(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?")":""),x)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,br=wr.formatPrefix,Nr.prototype={constructor:Nr,scale:function(t){return 1===t?this:new Nr(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Nr(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 Nr(1,0,0),Nr.prototype;const Ar=({data:t,width:n="100%",height:e="400px",backgroundColor:r,title:a,showGridX:l,showGridY:u,gridColor:c,gridWidth:h,showBarValues:f,xAxisLabel:p,yAxisLabel:d,colorSource:g,defaultBarColor:m,customColors:w,barOpacity:_})=>{const b=(0,i.useRef)(),x=(0,i.useRef)();return(0,i.useEffect)((()=>{if(!t||!b.current||!x.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=x.current.clientWidth,r=x.current.clientHeight,i=a?40:20,o=d?60:40,C=e-o-20,k=r-i-(p?50:30),j=Mr(b.current).attr("width",e).attr("height",r);a&&j.append("text").attr("x",e/2).attr("y",20).attr("text-anchor","middle").style("font-size","16px").text(a);const M=j.append("g").attr("transform",`translate(${o},${i})`),N=De().domain(n.map((t=>t.label))).range([0,C]).padding(.1),A=jr().domain([0,s(n,(t=>t.value))]).range([k,0]);l&&M.append("g").attr("class","grid x-grid").attr("transform",`translate(0,${k})`).call(v(N).tickSize(-k).tickFormat("")).call((t=>t.selectAll(".tick line").attr("stroke",c).attr("stroke-width",h).attr("opacity",.5))),u&&M.append("g").attr("class","grid y-grid").call(y(A).tickSize(-C).tickFormat("")).call((t=>t.selectAll(".tick line").attr("stroke",c).attr("stroke-width",h).attr("opacity",.5))),M.selectAll("rect").data(n).enter().append("rect").attr("x",(t=>N(t.label))).attr("y",(t=>A(t.value))).attr("width",N.bandwidth()).attr("height",(t=>k-A(t.value))).attr("fill",(t=>(t=>{switch(g){case"singleColor":return m;case"customColors":const n=w.find((n=>n.dataset===t.dataset&&n.label===t.label));return n?n.color:t.color;default:return t.color}})(t))).style("opacity",_),f&&M.selectAll(".bar-value").data(n).enter().append("text").attr("class","bar-value").attr("x",(t=>N(t.label)+N.bandwidth()/2)).attr("y",(t=>A(t.value)-5)).attr("text-anchor","middle").text((t=>t.value)),M.append("g").attr("transform",`translate(0,${k})`).call(v(N)),M.append("g").call(y(A)),p&&M.append("text").attr("class","x-axis-label").attr("x",C/2).attr("y",k+40).attr("text-anchor","middle").style("font-size","12px").text(p),d&&M.append("text").attr("class","y-axis-label").attr("transform","rotate(-90)").attr("x",-k/2).attr("y",-45).attr("text-anchor","middle").style("font-size","12px").text(d)}),[t,n,e,a,l,u,c,h,f,p,d,g,m,w,_]),(0,o.jsx)("div",{ref:x,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,gridColor:d,chartData:g,dataSource:m,displayChartTitle:v,chartTitle:y,allowDownload:w,downloadMaxWidth:_,showSorting:b,showFiltering:x,showBarValues:C,showGridX:k,gridWidth:j,xAxisLabel:M,yAxisLabel:N,chartColorSource:A,chartCustomColors:S}=t,E=(0,e.useBlockProps)(),$=t=>{console.log("New data:",t),a({chartData:t})},O=t=>{a({dataSource:t,chartData:{}})},P=(t,n,e)=>{const r=[...S],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})},[T,B]=(0,i.useState)(!1),R=()=>{B(!T)},[L,F]=(0,i.useState)(!1),D=()=>{F(!L)};return console.log("Chart data:",g),(0,o.jsxs)("div",{...E,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:g,onChange:$,dataSource:m,onDataSourceChange:O})}),(0,o.jsxs)(r.PanelBody,{title:"Chart Settings",children:[(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Display Chart Title","lcp"),checked:v,onChange:t=>a({displayChartTitle:t})}),v&&(0,o.jsx)(r.TextControl,{label:(0,n.__)("Chart Title","lcp"),value:y,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:"grid-color-row",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},children:[(0,o.jsx)("span",{children:"Grid Color"}),(0,o.jsx)(r.Button,{className:"grid-color-button",onClick:R,style:{backgroundColor:d,width:"26px",height:"26px",borderRadius:"50%",border:"none"}}),T&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:R,children:(0,o.jsx)(r.ColorPicker,{color:d,onChangeComplete:t=>{return n=t.hex,void a({gridColor:n});var n}})})]}),(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:D,style:{backgroundColor:f,width:"26px",height:"26px",borderRadius:"50%",border:"1px solid #ccc"}}),L&&(0,o.jsx)(r.Popover,{position:"bottom center",onClose:D,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:g,colorSource:A,singleColor:c,customColors:S,onColorSourceChange:t=>a({chartColorSource:t}),onSingleColorChange:t=>a({barColor:t}),onCustomColorChange:P}),(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.jsxs)("div",{className:"components-base-control",children:[(0,o.jsx)("label",{className:"components-base-control__label",children:(0,n.__)("Background Color","lcp")}),(0,o.jsx)(r.ColorPicker,{color:f,onChangeComplete:t=>a({backgroundColor:t.hex})})]}),(0,o.jsx)(r.ToggleControl,{label:(0,n.__)("Show Bar Values","lcp"),checked:C,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:M,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:k,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})}),(k||p)&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"components-base-control",children:[(0,o.jsx)("label",{className:"components-base-control__label",children:(0,n.__)("Grid Color","lcp")}),(0,o.jsx)(r.ColorPicker,{color:d,onChangeComplete:t=>a({gridColor:t.hex})})]}),(0,o.jsx)(r.RangeControl,{label:(0,n.__)("Grid Width","lcp"),value:j,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:w,onChange:t=>a({allowDownload:t})}),w&&(0,o.jsx)(r.TextControl,{type:"number",label:(0,n.__)("Max Download Width (px)","lcp"),value:parseInt(_),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:x,onChange:t=>a({showFiltering:t})})]}):void 0})}),w&&(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")})}),g&&Object.keys(g).length>0?(0,o.jsx)(Ar,{data:g,height:s,width:u,backgroundColor:f,defaultBarColor:c,barOpacity:h,showGridX:k,showGridY:p,gridColor:d,gridWidth:j,title:v?y:"",showSorting:b,showFiltering:x,showBarValues:C,xAxisLabel:M,yAxisLabel:N,colorSource:A,customColors:S}):(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)})();