zen-gitsync 2.18.11 → 2.18.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -14
- package/package.json +6 -1
- package/src/ui/public/assets/AgentView-CVbcrngz.js +11 -0
- package/src/ui/public/assets/{AgentView-CbBLjlfr.css → AgentView-D6MJOrJt.css} +1 -1
- package/src/ui/public/assets/{AppVersionBadge-CrDf0lYs.js → AppVersionBadge-7gFB6t_t.js} +2 -2
- package/src/ui/public/assets/{BranchSelector-DEHLVln4.js → BranchSelector-BIRNxA6U.js} +1 -1
- package/src/ui/public/assets/{CommitForm-D2rVFZf2.js → CommitForm-CWpaazi7.js} +1 -1
- package/src/ui/public/assets/{CommonDialog-CV7T8OCb.js → CommonDialog-DrxsmpDL.js} +1 -1
- package/src/ui/public/assets/CopySessionButton-C_01fcd3.js +21 -0
- package/src/ui/public/assets/EditorView-B7Rq9QV1.css +1 -0
- package/src/ui/public/assets/EditorView-D80wG480.js +37 -0
- package/src/ui/public/assets/{FlowExecutionViewer-D7FaZSHd.js → FlowExecutionViewer-Ce4Q5ia6.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-BR3cPhyU.js → FlowOrchestrationWorkspace-Cq1zEt5K.js} +1 -1
- package/src/ui/public/assets/{LogList-D_Q3pyMF.js → LogList-DtmJG27U.js} +1 -1
- package/src/ui/public/assets/{MindmapView-A4QZ6_c3.js → MindmapView-BR2_C4Du.js} +1 -1
- package/src/ui/public/assets/{MonitorView-BljWw76B.js → MonitorView-Cs_kwPBu.js} +1 -1
- package/src/ui/public/assets/{ProjectStartupButton-Be5DovFL.js → ProjectStartupButton-BfQJ0i5X.js} +1 -1
- package/src/ui/public/assets/{RecentDirectoriesChat-DN7ruCU7.js → RecentDirectoriesChat-_gNQGqkM.js} +1 -1
- package/src/ui/public/assets/{RemoteManagerDialog-BSCNy4RC.js → RemoteManagerDialog-KY5I3Ftv.js} +1 -1
- package/src/ui/public/assets/{RemoteRepoCard-CeCRQp9p.js → RemoteRepoCard-BUgdGtwC.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-B_S-vspy.js → SourceMapView-RkGgdvnN.js} +1 -1
- package/src/ui/public/assets/{SvgIcon-9IbiSszR.js → SvgIcon-CP7WAT4C.js} +1 -1
- package/src/ui/public/assets/{UserInputNode-DASGnUCl.js → UserInputNode-CwSqPh4O.js} +1 -1
- package/src/ui/public/assets/WorkbenchView-CBfccRIP.js +320 -0
- package/src/ui/public/assets/WorkbenchView-DzBtCzay.css +1 -0
- package/src/ui/public/assets/_plugin-vue_export-helper-BY0jlMBE.js +19 -0
- package/src/ui/public/assets/{agentConversations-Cplq42kA.js → agentConversations-CC01a7SP.js} +6 -6
- package/src/ui/public/assets/{configStore-Z6Z8hVMO.js → configStore-EvRYufor.js} +1 -1
- package/src/ui/public/assets/{dagre-CiGYsZhd.js → dagre-Ct-SQ-7k.js} +3 -3
- package/src/ui/public/assets/{element-plus-CJqN49tX.js → element-plus-CDrtgG55.js} +1 -1
- package/src/ui/public/assets/{flow-mindmap-C-X_QPQI.js → flow-mindmap-C8x6ucsA.js} +1 -1
- package/src/ui/public/assets/{index-C90dYckz.js → index-CyEcaEC9.js} +46 -46
- package/src/ui/public/assets/{monaco-CbN14ZVi.js → monaco-BV4P06MT.js} +1 -1
- package/src/ui/public/assets/{office-docx-8MF5-THx.js → office-docx-B8BoOvth.js} +1 -1
- package/src/ui/public/assets/{office-excel-BTzQyK6y.js → office-excel-CFRkxKv8.js} +1 -1
- package/src/ui/public/assets/{office-pptx-DhxvWA0D.js → office-pptx-DXdbDvLM.js} +1 -1
- package/src/ui/public/assets/useOrchestrator-C8BD2JSO.js +1 -0
- package/src/ui/public/assets/{vendor-Bd8DyOF9.css → vendor-CSFGMcMB.css} +1 -1
- package/src/ui/public/assets/{vendor-Cd7TGb0b.js → vendor-DYtaPSUU.js} +4 -4
- package/src/ui/public/assets/{vue-flow-x4TlHHzT.js → vue-flow-B7Hdmt-y.js} +1 -1
- package/src/ui/public/index.html +12 -12
- package/src/ui/server/routes/fileOpen.js +85 -16
- package/src/ui/server/routes/workbench/agentChatShared.test.js +0 -1
- package/src/ui/server/routes/workbench/dispatchInstruction.js +6 -7
- package/src/ui/server/routes/workbench/dispatchInstruction.test.js +3 -19
- package/src/ui/server/routes/workbench/index.js +6 -16
- package/src/ui/server/routes/workbench/orchestratorPrompt.test.js +2 -2
- package/src/ui/server/routes/workbench/orchestratorStore.js +2 -16
- package/src/ui/server/routes/workbench/projectRegistry.test.js +1 -5
- package/src/ui/server/routes/workbench/shared.js +1 -1
- package/src/ui/public/assets/AgentView-D3I3D3YR.js +0 -11
- package/src/ui/public/assets/CopySessionButton-BbVtrOa7.js +0 -21
- package/src/ui/public/assets/EditorView-BiNRO222.css +0 -1
- package/src/ui/public/assets/EditorView-CiW0kkpS.js +0 -37
- package/src/ui/public/assets/WorkbenchView-B3v-0vWa.js +0 -305
- package/src/ui/public/assets/WorkbenchView-DO2ndsES.css +0 -1
- package/src/ui/public/assets/_plugin-vue_export-helper-zp6tdw8N.js +0 -19
- package/src/ui/public/assets/useOrchestrator-C3wjJ7p4.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$n as e,An as t,Dn as n,Dr as r,En as i,Er as a,Fn as o,Gn as s,Hn as c,Ir as l,Jn as u,Ln as d,On as f,Pn as p,Qn as m,Rn as h,Sn as g,Sr as _,Tr as v,Un as y,Vn as b,Wn as x,Xn as S,Xr as C,Yr as w,Zn as T,Zr as E,_r as D,br as O,cr as k,dr as A,er as j,fr as M,gr as N,ir as P,jn as F,kn as I,lr as L,mr as R,nr as z,or as B,pr as ee,qn as V,rr as H,sr as U,ti as te,tr as W,vr as G,wr as K,xr as q,yr as ne,zn as J}from"./element-plus-CJqN49tX.js";R(),b(),l();function re(e){return ee()?(G(e),!0):!1}function ie(e){return typeof e==`function`?e():r(e)}var ae=typeof window<`u`&&typeof document<`u`,oe=e=>e!==void 0,se=Object.prototype.toString,ce=e=>se.call(e)===`[object Object]`,le=()=>{};function ue(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}var de=e=>e();function fe(e=de){let t=q(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:O(t),pause:n,resume:r,eventFilter:(...n)=>{t.value&&e(...n)}}}function pe(e,t=!1,n=`Timeout`){return new Promise((r,i)=>{setTimeout(t?()=>i(n):r,e)})}function me(e,t,n={}){let{eventFilter:r=de,...i}=n;return U(e,ue(r,t),i)}function he(e,t,n={}){let{eventFilter:r,...i}=n,{eventFilter:a,pause:o,resume:s,isActive:c}=fe(r);return{stop:me(e,t,{...i,eventFilter:a}),pause:o,resume:s,isActive:c}}function ge(e,t={}){if(!N(e))return v(e);let n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(let r in e.value)n[r]=A(()=>({get(){return e.value[r]},set(n){if(ie(t.replaceRef)??!0){if(Array.isArray(e.value)){let t=[...e.value];t[r]=n,e.value=t}else{let t={...e.value,[r]:n};Object.setPrototypeOf(t,Object.getPrototypeOf(e.value)),e.value=t}}else e.value[r]=n}}));return n}function _e(e,t=!1){function n(n,{flush:r=`sync`,deep:i=!1,timeout:a,throwOnTimeout:o}={}){let s=null,c=[new Promise(a=>{s=U(e,e=>{n(e)!==t&&(s?.(),a(e))},{flush:r,deep:i,immediate:!0})})];return a!=null&&c.push(pe(a,o).then(()=>ie(e)).finally(()=>s?.())),Promise.race(c)}function r(r,i){if(!N(r))return n(e=>e===r,i);let{flush:a=`sync`,deep:o=!1,timeout:s,throwOnTimeout:c}=i??{},l=null,u=[new Promise(n=>{l=U([e,r],([e,r])=>{t!==(e===r)&&(l?.(),n(e))},{flush:a,deep:o,immediate:!0})})];return s!=null&&u.push(pe(s,c).then(()=>ie(e)).finally(()=>(l?.(),ie(e)))),Promise.race(u)}function i(e){return n(e=>!!e,e)}function a(e){return r(null,e)}function o(e){return r(void 0,e)}function s(e){return n(Number.isNaN,e)}function c(e,t){return n(t=>{let n=Array.from(t);return n.includes(e)||n.includes(ie(e))},t)}function l(e){return u(1,e)}function u(e=1,t){let r=-1;return n(()=>(r+=1,r>=e),t)}return Array.isArray(ie(e))?{toMatch:n,toContains:c,changed:l,changedTimes:u,get not(){return _e(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:i,toBeNull:a,toBeNaN:s,toBeUndefined:o,changed:l,changedTimes:u,get not(){return _e(e,!t)}}}function ve(e){return _e(e)}function ye(e){let t=ie(e);return t?.$el??t}var be=ae?window:void 0;function xe(...e){let t,n,r,i;if(typeof e[0]==`string`||Array.isArray(e[0])?([n,r,i]=e,t=be):[t,n,r,i]=e,!t)return le;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);let a=[],o=()=>{a.forEach(e=>e()),a.length=0},s=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),c=U(()=>[ye(t),ie(i)],([e,t])=>{if(o(),!e)return;let i=ce(t)?{...t}:t;a.push(...n.flatMap(t=>r.map(n=>s(e,t,n,i))))},{immediate:!0,flush:`post`}),l=()=>{c(),o()};return re(l),l}function Se(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ce(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]==`object`?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);let{target:i=be,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Se(t);return xe(i,a,e=>{e.repeat&&ie(s)||c(e)&&n(e)},o)}function we(e){return JSON.parse(JSON.stringify(e))}function Te(e,t,n,r={}){let{clone:a=!1,passive:o=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=h(),p=n||f?.emit||(f?.$emit)?.bind(f)||(f?.proxy?.$emit)?.bind(f?.proxy),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let g=e=>a?typeof a==`function`?a(e):we(e):e,_=()=>oe(e[t])?g(e[t]):u,v=e=>{d?d(e)&&p(m,e):p(m,e)};if(o){let n=_(),r=q(n),i=!1;return U(()=>e[t],e=>{i||(i=!0,r.value=g(e),s(()=>i=!1))}),U(r,n=>{!i&&(n!==e[t]||l)&&v(n)},{deep:l}),r}return i({get(){return _()},set(e){v(e)}})}var Ee={value:()=>{}};function De(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new Oe(n)}function Oe(e){this._=e}function ke(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Oe.prototype=De.prototype={constructor:Oe,on:function(e,t){var n=this._,r=ke(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Ae(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=je(n[i],e.name,t);else if(t==null)for(i in n)n[i]=je(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Oe(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Ae(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function je(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Ee,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Me=`http://www.w3.org/1999/xhtml`,Ne={svg:`http://www.w3.org/2000/svg`,xhtml:Me,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function Pe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ne.hasOwnProperty(t)?{space:Ne[t],local:e}:e}function Fe(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Me&&t.documentElement.namespaceURI===Me?t.createElement(e):t.createElementNS(n,e)}}function Ie(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Le(e){var t=Pe(e);return(t.local?Ie:Fe)(t)}function Re(){}function ze(e){return e==null?Re:function(){return this.querySelector(e)}}function Be(e){typeof e!=`function`&&(e=ze(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new kn(r,this._parents)}function Ve(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function He(){return[]}function Ue(e){return e==null?He:function(){return this.querySelectorAll(e)}}function We(e){return function(){return Ve(e.apply(this,arguments))}}function Ge(e){e=typeof e==`function`?We(e):Ue(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new kn(r,i)}function Ke(e){return function(){return this.matches(e)}}function qe(e){return function(t){return t.matches(e)}}var Je=Array.prototype.find;function Ye(e){return function(){return Je.call(this.children,e)}}function Xe(){return this.firstElementChild}function Ze(e){return this.select(e==null?Xe:Ye(typeof e==`function`?e:qe(e)))}var Qe=Array.prototype.filter;function $e(){return Array.from(this.children)}function et(e){return function(){return Qe.call(this.children,e)}}function tt(e){return this.selectAll(e==null?$e:et(typeof e==`function`?e:qe(e)))}function nt(e){typeof e!=`function`&&(e=Ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new kn(r,this._parents)}function rt(e){return Array(e.length)}function it(){return new kn(this._enter||this._groups.map(rt),this._parents)}function at(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}at.prototype={constructor:at,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ot(e){return function(){return e}}function st(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new at(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function ct(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new at(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function lt(e){return e.__data__}function ut(e,t){if(!arguments.length)return Array.from(this,lt);var n=t?ct:st,r=this._parents,i=this._groups;typeof e!=`function`&&(e=ot(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=dt(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new kn(o,r),o._enter=s,o._exit=c,o}function dt(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function ft(){return new kn(this._exit||this._groups.map(rt),this._parents)}function pt(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function mt(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new kn(s,this._parents)}function ht(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function gt(e){e||=_t;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new kn(i,this._parents).order()}function _t(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function yt(){return Array.from(this)}function bt(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function xt(){let e=0;for(let t of this)++e;return e}function St(){return!this.node()}function Ct(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function wt(e){return function(){this.removeAttribute(e)}}function Tt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Et(e,t){return function(){this.setAttribute(e,t)}}function Dt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Ot(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function At(e,t){var n=Pe(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Tt:wt:typeof t==`function`?n.local?kt:Ot:n.local?Dt:Et)(n,t))}function jt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Mt(e){return function(){this.style.removeProperty(e)}}function Nt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Pt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ft(e,t,n){return arguments.length>1?this.each((t==null?Mt:typeof t==`function`?Pt:Nt)(e,t,n??``)):It(this.node(),e)}function It(e,t){return e.style.getPropertyValue(t)||jt(e).getComputedStyle(e,null).getPropertyValue(t)}function Lt(e){return function(){delete this[e]}}function Rt(e,t){return function(){this[e]=t}}function zt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Bt(e,t){return arguments.length>1?this.each((t==null?Lt:typeof t==`function`?zt:Rt)(e,t)):this.node()[e]}function Vt(e){return e.trim().split(/^|\s+/)}function Ht(e){return e.classList||new Ut(e)}function Ut(e){this._node=e,this._names=Vt(e.getAttribute(`class`)||``)}Ut.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Wt(e,t){for(var n=Ht(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Gt(e,t){for(var n=Ht(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Kt(e){return function(){Wt(this,e)}}function qt(e){return function(){Gt(this,e)}}function Jt(e,t){return function(){(t.apply(this,arguments)?Wt:Gt)(this,e)}}function Yt(e,t){var n=Vt(e+``);if(arguments.length<2){for(var r=Ht(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Jt:t?Kt:qt)(n,t))}function Xt(){this.textContent=``}function Zt(e){return function(){this.textContent=e}}function Qt(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function $t(e){return arguments.length?this.each(e==null?Xt:(typeof e==`function`?Qt:Zt)(e)):this.node().textContent}function en(){this.innerHTML=``}function tn(e){return function(){this.innerHTML=e}}function nn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function rn(e){return arguments.length?this.each(e==null?en:(typeof e==`function`?nn:tn)(e)):this.node().innerHTML}function an(){this.nextSibling&&this.parentNode.appendChild(this)}function on(){return this.each(an)}function sn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function cn(){return this.each(sn)}function ln(e){var t=typeof e==`function`?e:Le(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function un(){return null}function dn(e,t){var n=typeof e==`function`?e:Le(e),r=t==null?un:typeof t==`function`?t:ze(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function fn(){var e=this.parentNode;e&&e.removeChild(this)}function pn(){return this.each(fn)}function mn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function hn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function gn(e){return this.select(e?hn:mn)}function _n(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function vn(e){return function(t){e.call(this,t,this.__data__)}}function yn(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function bn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function xn(e,t,n){return function(){var r=this.__on,i,a=vn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function Sn(e,t,n){var r=yn(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?xn:bn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Cn(e,t,n){var r=jt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function wn(e,t){return function(){return Cn(this,e,t)}}function Tn(e,t){return function(){return Cn(this,e,t.apply(this,arguments))}}function En(e,t){return this.each((typeof t==`function`?Tn:wn)(e,t))}function*Dn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var On=[null];function kn(e,t){this._groups=e,this._parents=t}function An(){return new kn([[document.documentElement]],On)}function jn(){return this}kn.prototype=An.prototype={constructor:kn,select:Be,selectAll:Ge,selectChild:Ze,selectChildren:tt,filter:nt,data:ut,enter:it,exit:ft,join:pt,merge:mt,selection:jn,order:ht,sort:gt,call:vt,nodes:yt,node:bt,size:xt,empty:St,each:Ct,attr:At,style:Ft,property:Bt,classed:Yt,text:$t,html:rn,raise:on,lower:cn,append:ln,insert:dn,remove:pn,clone:gn,datum:_n,on:Sn,dispatch:En,[Symbol.iterator]:Dn};function Mn(e){return typeof e==`string`?new kn([[document.querySelector(e)]],[document.documentElement]):new kn([[e]],On)}function Nn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Pn(e,t){if(e=Nn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Fn={passive:!1},In={capture:!0,passive:!1};function Ln(e){e.stopImmediatePropagation()}function Rn(e){e.preventDefault(),e.stopImmediatePropagation()}function zn(e){var t=e.document.documentElement,n=Mn(e).on(`dragstart.drag`,Rn,In);`onselectstart`in t?n.on(`selectstart.drag`,Rn,In):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Bn(e,t){var n=e.document.documentElement,r=Mn(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Rn,In),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Vn=e=>()=>e;function Hn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Hn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Un(e){return!e.ctrlKey&&!e.button}function Wn(){return this.parentNode}function Gn(e,t){return t??{x:e.x,y:e.y}}function Kn(){return navigator.maxTouchPoints||`ontouchstart`in this}function qn(){var e=Un,t=Wn,n=Gn,r=Kn,i={},a=De(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Fn).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!u&&e.call(this,n,r)){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Mn(n.view).on(`mousemove.drag`,m,In).on(`mouseup.drag`,h,In),zn(n.view),Ln(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Rn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Mn(e.view).on(`mousemove.drag mouseup.drag`,null),Bn(e.view,l),Rn(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(Ln(n),c(`start`,n,i[s]))}function _(e){for(var t=e.changedTouches,n=t.length,r=0,a;r<n;++r)(a=i[t[r].identifier])&&(Rn(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(Ln(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Pn(l||r,t),p,m,h;if((h=n.call(e,new Hn(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Pn(l||a,t),_=o}u.call(r,e,new Hn(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Vn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Vn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Vn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Vn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function Jn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Yn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Xn(){}var Zn=.7,Qn=1/Zn,$n=`\\s*([+-]?\\d+)\\s*`,er=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,tr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,nr=/^#([0-9a-f]{3,8})$/,rr=RegExp(`^rgb\\(${$n},${$n},${$n}\\)$`),ir=RegExp(`^rgb\\(${tr},${tr},${tr}\\)$`),ar=RegExp(`^rgba\\(${$n},${$n},${$n},${er}\\)$`),or=RegExp(`^rgba\\(${tr},${tr},${tr},${er}\\)$`),sr=RegExp(`^hsl\\(${er},${tr},${tr}\\)$`),cr=RegExp(`^hsla\\(${er},${tr},${tr},${er}\\)$`),lr={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};Jn(Xn,mr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ur,formatHex:ur,formatHex8:dr,formatHsl:fr,formatRgb:pr,toString:pr});function ur(){return this.rgb().formatHex()}function dr(){return this.rgb().formatHex8()}function fr(){return Dr(this).formatHsl()}function pr(){return this.rgb().formatRgb()}function mr(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=nr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?hr(t):n===3?new yr(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?gr(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?gr(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=rr.exec(e))?new yr(t[1],t[2],t[3],1):(t=ir.exec(e))?new yr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ar.exec(e))?gr(t[1],t[2],t[3],t[4]):(t=or.exec(e))?gr(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=sr.exec(e))?Er(t[1],t[2]/100,t[3]/100,1):(t=cr.exec(e))?Er(t[1],t[2]/100,t[3]/100,t[4]):lr.hasOwnProperty(e)?hr(lr[e]):e===`transparent`?new yr(NaN,NaN,NaN,0):null}function hr(e){return new yr(e>>16&255,e>>8&255,e&255,1)}function gr(e,t,n,r){return r<=0&&(e=t=n=NaN),new yr(e,t,n,r)}function _r(e){return e instanceof Xn||(e=mr(e)),e?(e=e.rgb(),new yr(e.r,e.g,e.b,e.opacity)):new yr}function vr(e,t,n,r){return arguments.length===1?_r(e):new yr(e,t,n,r??1)}function yr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Jn(yr,vr,Yn(Xn,{brighter(e){return e=e==null?Qn:Qn**+e,new yr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zn:Zn**+e,new yr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yr(wr(this.r),wr(this.g),wr(this.b),Cr(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:br,formatHex:br,formatHex8:xr,formatRgb:Sr,toString:Sr}));function br(){return`#${Tr(this.r)}${Tr(this.g)}${Tr(this.b)}`}function xr(){return`#${Tr(this.r)}${Tr(this.g)}${Tr(this.b)}${Tr((isNaN(this.opacity)?1:this.opacity)*255)}`}function Sr(){let e=Cr(this.opacity);return`${e===1?`rgb(`:`rgba(`}${wr(this.r)}, ${wr(this.g)}, ${wr(this.b)}${e===1?`)`:`, ${e})`}`}function Cr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function wr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Tr(e){return e=wr(e),(e<16?`0`:``)+e.toString(16)}function Er(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new kr(e,t,n,r)}function Dr(e){if(e instanceof kr)return new kr(e.h,e.s,e.l,e.opacity);if(e instanceof Xn||(e=mr(e)),!e)return new kr;if(e instanceof kr)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new kr(o,s,c,e.opacity)}function Or(e,t,n,r){return arguments.length===1?Dr(e):new kr(e,t,n,r??1)}function kr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Jn(kr,Or,Yn(Xn,{brighter(e){return e=e==null?Qn:Qn**+e,new kr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zn:Zn**+e,new kr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new yr(Mr(e>=240?e-240:e+120,i,r),Mr(e,i,r),Mr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new kr(Ar(this.h),jr(this.s),jr(this.l),Cr(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(){let e=Cr(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Ar(this.h)}, ${jr(this.s)*100}%, ${jr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Ar(e){return e=(e||0)%360,e<0?e+360:e}function jr(e){return Math.max(0,Math.min(1,e||0))}function Mr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Nr=e=>()=>e;function Pr(e,t){return function(n){return e+n*t}}function Fr(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Ir(e){return(e=+e)==1?Lr:function(t,n){return n-t?Fr(t,n,e):Nr(isNaN(t)?n:t)}}function Lr(e,t){var n=t-e;return n?Pr(e,n):Nr(isNaN(e)?t:e)}var Rr=function e(t){var n=Ir(t);function r(e,t){var r=n((e=vr(e)).r,(t=vr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Lr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r}(1);function zr(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Br(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Vr(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=Xr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Hr(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ur(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Wr(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Xr(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Gr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Kr=new RegExp(Gr.source,`g`);function qr(e){return function(){return e}}function Jr(e){return function(t){return e(t)+``}}function Yr(e,t){var n=Gr.lastIndex=Kr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Gr.exec(e))&&(i=Kr.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Ur(r,i)})),n=Kr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Jr(c[0].x):qr(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Xr(e,t){var n=typeof t,r;return t==null||n===`boolean`?Nr(t):(n===`number`?Ur:n===`string`?(r=mr(t))?(t=r,Rr):Yr:t instanceof mr?Rr:t instanceof Date?Hr:Br(t)?zr:Array.isArray(t)?Vr:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Wr:Ur)(e,t)}var Zr=180/Math.PI,Qr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function $r(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Zr,skewX:Math.atan(c)*Zr,scaleX:o,scaleY:s}}var ei;function ti(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Qr:$r(t.a,t.b,t.c,t.d,t.e,t.f)}function ni(e){return e==null||(ei||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ei.setAttribute(`transform`,e),!(e=ei.transform.baseVal.consolidate()))?Qr:(e=e.matrix,$r(e.a,e.b,e.c,e.d,e.e,e.f))}function ri(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Ur(e,i)},{i:c-2,x:Ur(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Ur(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Ur(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Ur(e,n)},{i:s-2,x:Ur(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var ii=ri(ti,`px, `,`px)`,`deg)`),ai=ri(ni,`, `,`)`,`)`),oi=1e-12;function si(e){return((e=Math.exp(e))+1/e)/2}function ci(e){return((e=Math.exp(e))-1/e)/2}function li(e){return((e=Math.exp(2*e))-1)/(e+1)}var ui=function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<oi)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=si(y),c=s/(n*g)*(i*li(t*r+y)-ci(y));return[a+c*d,o+c*f,s*i/si(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4),di=0,fi=0,pi=0,mi=1e3,hi,gi,_i=0,vi=0,yi=0,bi=typeof performance==`object`&&performance.now?performance:Date,xi=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Si(){return vi||=(xi(Ci),bi.now()+yi)}function Ci(){vi=0}function wi(){this._call=this._time=this._next=null}wi.prototype=Ti.prototype={constructor:wi,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Si():+n)+(t==null?0:+t),!this._next&&gi!==this&&(gi?gi._next=this:hi=this,gi=this),this._call=e,this._time=n,Ai()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ai())}};function Ti(e,t,n){var r=new wi;return r.restart(e,t,n),r}function Ei(){Si(),++di;for(var e=hi,t;e;)(t=vi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--di}function Di(){vi=(_i=bi.now())+yi,di=fi=0;try{Ei()}finally{di=0,ki(),vi=0}}function Oi(){var e=bi.now(),t=e-_i;t>mi&&(yi-=t,_i=e)}function ki(){for(var e,t=hi,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:hi=n);gi=e,Ai(r)}function Ai(e){di||(fi&&=clearTimeout(fi),e-vi>24?(e<1/0&&(fi=setTimeout(Di,e-bi.now()-yi)),pi&&=clearInterval(pi)):(pi||=(_i=bi.now(),setInterval(Oi,mi)),di=1,xi(Di)))}function ji(e,t,n){var r=new wi;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Mi=De(`start`,`end`,`cancel`,`interrupt`),Ni=[],Pi=0,Fi=1,Ii=2,Li=3,Ri=4,zi=5,Bi=6;function Vi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Gi(e,n,{name:t,index:r,group:i,on:Mi,tween:Ni,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Pi})}function Hi(e,t){var n=Wi(e,t);if(n.state>Pi)throw Error(`too late; already scheduled`);return n}function Ui(e,t){var n=Wi(e,t);if(n.state>Li)throw Error(`too late; already running`);return n}function Wi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Gi(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Ti(a,0,n.time);function a(e){n.state=Fi,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==Fi)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===Li)return ji(o);f.state===Ri?(f.state=Bi,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=Bi,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(ji(function(){n.state===Li&&(n.state=Ri,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=Ii,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===Ii){for(n.state=Li,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=zi,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===zi&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=Bi,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Ki(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>Ii&&r.state<zi,r.state=Bi,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function qi(e){return this.each(function(){Ki(this,e)})}function Ji(e,t){var n,r;return function(){var i=Ui(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Yi(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Ui(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Xi(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Wi(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Ji:Yi)(n,e,t))}function Zi(e,t,n){var r=e._id;return e.each(function(){var e=Ui(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Wi(e,r).value[t]}}function Qi(e,t){var n;return(typeof t==`number`?Ur:t instanceof mr?Rr:(n=mr(t))?(t=n,Rr):Yr)(e,t)}function $i(e){return function(){this.removeAttribute(e)}}function ea(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ta(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function na(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function ra(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function ia(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function aa(e,t){var n=Pe(e),r=n===`transform`?ai:Qi;return this.attrTween(e,typeof t==`function`?(n.local?ia:ra)(n,r,Zi(this,`attr.`+e,t)):t==null?(n.local?ea:$i)(n):(n.local?na:ta)(n,r,t))}function oa(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function sa(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function ca(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&sa(e,i)),n}return i._value=t,i}function la(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&oa(e,i)),n}return i._value=t,i}function ua(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=Pe(e);return this.tween(n,(r.local?ca:la)(r,t))}function da(e,t){return function(){Hi(this,e).delay=+t.apply(this,arguments)}}function fa(e,t){return t=+t,function(){Hi(this,e).delay=t}}function pa(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?da:fa)(t,e)):Wi(this.node(),t).delay}function ma(e,t){return function(){Ui(this,e).duration=+t.apply(this,arguments)}}function ha(e,t){return t=+t,function(){Ui(this,e).duration=t}}function ga(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ma:ha)(t,e)):Wi(this.node(),t).duration}function _a(e,t){if(typeof t!=`function`)throw Error();return function(){Ui(this,e).ease=t}}function va(e){var t=this._id;return arguments.length?this.each(_a(t,e)):Wi(this.node(),t).ease}function ya(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Ui(this,e).ease=n}}function ba(e){if(typeof e!=`function`)throw Error();return this.each(ya(this._id,e))}function xa(e){typeof e!=`function`&&(e=Ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new Xa(r,this._parents,this._name,this._id)}function Sa(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new Xa(o,this._parents,this._name,this._id)}function Ca(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function wa(e,t,n){var r,i,a=Ca(t)?Hi:Ui;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ta(e,t){var n=this._id;return arguments.length<2?Wi(this.node(),n).on.on(e):this.each(wa(n,e,t))}function Ea(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Da(){return this.on(`end.remove`,Ea(this._id))}function Oa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ze(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Vi(l[f],t,n,f,l,Wi(u,n)));return new Xa(a,this._parents,t,n)}function ka(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ue(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Wi(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Vi(p,t,n,h,f,m);a.push(f),o.push(u)}return new Xa(a,o,t,n)}var Aa=An.prototype.constructor;function ja(){return new Aa(this._groups,this._parents)}function Ma(e,t){var n,r,i;return function(){var a=It(this,e),o=(this.style.removeProperty(e),It(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Na(e){return function(){this.style.removeProperty(e)}}function Pa(e,t,n){var r,i=n+``,a;return function(){var o=It(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Fa(e,t,n){var r,i,a;return function(){var o=It(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),It(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Ia(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Ui(this,e),l=c.on,u=c.value[a]==null?s||=Na(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function La(e,t,n){var r=(e+=``)==`transform`?ii:Qi;return t==null?this.styleTween(e,Ma(e,r)).on(`end.style.`+e,Na(e)):typeof t==`function`?this.styleTween(e,Fa(e,r,Zi(this,`style.`+e,t))).each(Ia(this._id,e)):this.styleTween(e,Pa(e,r,t),n).on(`end.style.`+e,null)}function Ra(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function za(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Ra(e,a,n)),r}return a._value=t,a}function Ba(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,za(e,t,n??``))}function Va(e){return function(){this.textContent=e}}function Ha(e){return function(){var t=e(this);this.textContent=t??``}}function Ua(e){return this.tween(`text`,typeof e==`function`?Ha(Zi(this,`text`,e)):Va(e==null?``:e+``))}function Wa(e){return function(t){this.textContent=e.call(this,t)}}function Ga(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Wa(r)),t}return r._value=e,r}function Ka(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Ga(e))}function qa(){for(var e=this._name,t=this._id,n=Za(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Wi(c,t);Vi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Xa(r,this._parents,e,n)}function Ja(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=Ui(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Ya=0;function Xa(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Za(){return++Ya}var Qa=An.prototype;Xa.prototype={constructor:Xa,select:Oa,selectAll:ka,selectChild:Qa.selectChild,selectChildren:Qa.selectChildren,filter:xa,merge:Sa,selection:ja,transition:qa,call:Qa.call,nodes:Qa.nodes,node:Qa.node,size:Qa.size,empty:Qa.empty,each:Qa.each,on:Ta,attr:aa,attrTween:ua,style:La,styleTween:Ba,text:Ua,textTween:Ka,remove:Da,tween:Xi,delay:pa,duration:ga,ease:va,easeVarying:ba,end:Ja,[Symbol.iterator]:Qa[Symbol.iterator]};function $a(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var eo={time:null,delay:0,duration:250,ease:$a};function to(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function no(e){var t,n;e instanceof Xa?(t=e._id,e=e._name):(t=Za(),(n=eo).time=Si(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Vi(c,e,t,l,o,n||to(c,t));return new Xa(r,this._parents,e,t)}An.prototype.interrupt=qi,An.prototype.transition=no;var ro=e=>()=>e;function io(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ao(e,t,n){this.k=e,this.x=t,this.y=n}ao.prototype={constructor:ao,scale:function(e){return e===1?this:new ao(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ao(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var oo=new ao(1,0,0);ao.prototype;function so(e){e.stopImmediatePropagation()}function co(e){e.preventDefault(),e.stopImmediatePropagation()}function lo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function uo(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function fo(){return this.__zoom||oo}function po(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function mo(){return navigator.maxTouchPoints||`ontouchstart`in this}function ho(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function go(){var e=lo,t=uo,n=ho,r=po,i=mo,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ui,l=De(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,fo).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,fo),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(oo.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new ao(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new ao(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new ao(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Mn(this.that).datum();l.call(e,this.that,new io(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Pn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Ki(this),s.start();co(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Mn(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Pn(t,i),l=t.clientX,u=t.clientY;zn(t.view),so(t),a.mouse=[c,this.__zoom.invert(c)],Ki(this),a.start();function d(e){if(co(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Pn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Bn(e.view,a.moved),co(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Pn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);co(r),s>0?Mn(this).transition().duration(s).call(x,d,c,r):Mn(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(so(t),s=0;s<i;++s)c=r[s],l=Pn(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Ki(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(co(e),s=0;s<a;++s)c=i[s],l=Pn(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(so(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=Pn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Mn(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:ro(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:ro(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:ro(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:ro([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Y=(e=>(e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`,e))(Y||{}),_o=(e=>(e.Partial=`partial`,e.Full=`full`,e))(_o||{}),vo=(e=>(e.Bezier=`default`,e.SimpleBezier=`simple-bezier`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e))(vo||{}),yo=(e=>(e.Strict=`strict`,e.Loose=`loose`,e))(yo||{}),bo=(e=>(e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`,e))(bo||{}),xo=(e=>(e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(xo||{}),So=(e=>(e.TopLeft=`top-left`,e.TopCenter=`top-center`,e.TopRight=`top-right`,e.BottomLeft=`bottom-left`,e.BottomCenter=`bottom-center`,e.BottomRight=`bottom-right`,e))(So||{}),Co=[`INPUT`,`SELECT`,`TEXTAREA`],wo=typeof document<`u`?document:null;function To(e){let t=e.composedPath?.call(e)?.[0]||e.target,n=typeof t?.hasAttribute==`function`&&t.hasAttribute(`contenteditable`),r=typeof t?.closest==`function`?t.closest(`.nokey`):null;return Co.includes(t?.nodeName)||n||!!r}function Eo(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function Do(e,t,n,r){let i=t.replace(`+`,`
|
|
1
|
+
import{$n as e,An as t,Dn as n,Dr as r,En as i,Er as a,Fn as o,Gn as s,Hn as c,Ir as l,Jn as u,Ln as d,On as f,Pn as p,Qn as m,Rn as h,Sn as g,Sr as _,Tr as v,Un as y,Vn as b,Wn as x,Xn as S,Xr as C,Yr as w,Zn as T,Zr as E,_r as D,br as O,cr as k,dr as A,er as j,fr as M,gr as N,ir as P,jn as F,kn as I,lr as L,mr as R,nr as z,or as B,pr as ee,qn as V,rr as H,sr as U,ti as te,tr as W,vr as G,wr as K,xr as q,yr as ne,zn as J}from"./element-plus-CDrtgG55.js";R(),b(),l();function re(e){return ee()?(G(e),!0):!1}function ie(e){return typeof e==`function`?e():r(e)}var ae=typeof window<`u`&&typeof document<`u`,oe=e=>e!==void 0,se=Object.prototype.toString,ce=e=>se.call(e)===`[object Object]`,le=()=>{};function ue(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}var de=e=>e();function fe(e=de){let t=q(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:O(t),pause:n,resume:r,eventFilter:(...n)=>{t.value&&e(...n)}}}function pe(e,t=!1,n=`Timeout`){return new Promise((r,i)=>{setTimeout(t?()=>i(n):r,e)})}function me(e,t,n={}){let{eventFilter:r=de,...i}=n;return U(e,ue(r,t),i)}function he(e,t,n={}){let{eventFilter:r,...i}=n,{eventFilter:a,pause:o,resume:s,isActive:c}=fe(r);return{stop:me(e,t,{...i,eventFilter:a}),pause:o,resume:s,isActive:c}}function ge(e,t={}){if(!N(e))return v(e);let n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(let r in e.value)n[r]=A(()=>({get(){return e.value[r]},set(n){if(ie(t.replaceRef)??!0){if(Array.isArray(e.value)){let t=[...e.value];t[r]=n,e.value=t}else{let t={...e.value,[r]:n};Object.setPrototypeOf(t,Object.getPrototypeOf(e.value)),e.value=t}}else e.value[r]=n}}));return n}function _e(e,t=!1){function n(n,{flush:r=`sync`,deep:i=!1,timeout:a,throwOnTimeout:o}={}){let s=null,c=[new Promise(a=>{s=U(e,e=>{n(e)!==t&&(s?.(),a(e))},{flush:r,deep:i,immediate:!0})})];return a!=null&&c.push(pe(a,o).then(()=>ie(e)).finally(()=>s?.())),Promise.race(c)}function r(r,i){if(!N(r))return n(e=>e===r,i);let{flush:a=`sync`,deep:o=!1,timeout:s,throwOnTimeout:c}=i??{},l=null,u=[new Promise(n=>{l=U([e,r],([e,r])=>{t!==(e===r)&&(l?.(),n(e))},{flush:a,deep:o,immediate:!0})})];return s!=null&&u.push(pe(s,c).then(()=>ie(e)).finally(()=>(l?.(),ie(e)))),Promise.race(u)}function i(e){return n(e=>!!e,e)}function a(e){return r(null,e)}function o(e){return r(void 0,e)}function s(e){return n(Number.isNaN,e)}function c(e,t){return n(t=>{let n=Array.from(t);return n.includes(e)||n.includes(ie(e))},t)}function l(e){return u(1,e)}function u(e=1,t){let r=-1;return n(()=>(r+=1,r>=e),t)}return Array.isArray(ie(e))?{toMatch:n,toContains:c,changed:l,changedTimes:u,get not(){return _e(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:i,toBeNull:a,toBeNaN:s,toBeUndefined:o,changed:l,changedTimes:u,get not(){return _e(e,!t)}}}function ve(e){return _e(e)}function ye(e){let t=ie(e);return t?.$el??t}var be=ae?window:void 0;function xe(...e){let t,n,r,i;if(typeof e[0]==`string`||Array.isArray(e[0])?([n,r,i]=e,t=be):[t,n,r,i]=e,!t)return le;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);let a=[],o=()=>{a.forEach(e=>e()),a.length=0},s=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),c=U(()=>[ye(t),ie(i)],([e,t])=>{if(o(),!e)return;let i=ce(t)?{...t}:t;a.push(...n.flatMap(t=>r.map(n=>s(e,t,n,i))))},{immediate:!0,flush:`post`}),l=()=>{c(),o()};return re(l),l}function Se(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ce(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]==`object`?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);let{target:i=be,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Se(t);return xe(i,a,e=>{e.repeat&&ie(s)||c(e)&&n(e)},o)}function we(e){return JSON.parse(JSON.stringify(e))}function Te(e,t,n,r={}){let{clone:a=!1,passive:o=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=h(),p=n||f?.emit||(f?.$emit)?.bind(f)||(f?.proxy?.$emit)?.bind(f?.proxy),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let g=e=>a?typeof a==`function`?a(e):we(e):e,_=()=>oe(e[t])?g(e[t]):u,v=e=>{d?d(e)&&p(m,e):p(m,e)};if(o){let n=_(),r=q(n),i=!1;return U(()=>e[t],e=>{i||(i=!0,r.value=g(e),s(()=>i=!1))}),U(r,n=>{!i&&(n!==e[t]||l)&&v(n)},{deep:l}),r}return i({get(){return _()},set(e){v(e)}})}var Ee={value:()=>{}};function De(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new Oe(n)}function Oe(e){this._=e}function ke(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Oe.prototype=De.prototype={constructor:Oe,on:function(e,t){var n=this._,r=ke(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Ae(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=je(n[i],e.name,t);else if(t==null)for(i in n)n[i]=je(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Oe(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Ae(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function je(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Ee,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Me=`http://www.w3.org/1999/xhtml`,Ne={svg:`http://www.w3.org/2000/svg`,xhtml:Me,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function Pe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Ne.hasOwnProperty(t)?{space:Ne[t],local:e}:e}function Fe(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Me&&t.documentElement.namespaceURI===Me?t.createElement(e):t.createElementNS(n,e)}}function Ie(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Le(e){var t=Pe(e);return(t.local?Ie:Fe)(t)}function Re(){}function ze(e){return e==null?Re:function(){return this.querySelector(e)}}function Be(e){typeof e!=`function`&&(e=ze(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new kn(r,this._parents)}function Ve(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function He(){return[]}function Ue(e){return e==null?He:function(){return this.querySelectorAll(e)}}function We(e){return function(){return Ve(e.apply(this,arguments))}}function Ge(e){e=typeof e==`function`?We(e):Ue(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new kn(r,i)}function Ke(e){return function(){return this.matches(e)}}function qe(e){return function(t){return t.matches(e)}}var Je=Array.prototype.find;function Ye(e){return function(){return Je.call(this.children,e)}}function Xe(){return this.firstElementChild}function Ze(e){return this.select(e==null?Xe:Ye(typeof e==`function`?e:qe(e)))}var Qe=Array.prototype.filter;function $e(){return Array.from(this.children)}function et(e){return function(){return Qe.call(this.children,e)}}function tt(e){return this.selectAll(e==null?$e:et(typeof e==`function`?e:qe(e)))}function nt(e){typeof e!=`function`&&(e=Ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new kn(r,this._parents)}function rt(e){return Array(e.length)}function it(){return new kn(this._enter||this._groups.map(rt),this._parents)}function at(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}at.prototype={constructor:at,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ot(e){return function(){return e}}function st(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new at(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function ct(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new at(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function lt(e){return e.__data__}function ut(e,t){if(!arguments.length)return Array.from(this,lt);var n=t?ct:st,r=this._parents,i=this._groups;typeof e!=`function`&&(e=ot(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=dt(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new kn(o,r),o._enter=s,o._exit=c,o}function dt(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function ft(){return new kn(this._exit||this._groups.map(rt),this._parents)}function pt(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function mt(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new kn(s,this._parents)}function ht(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function gt(e){e||=_t;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new kn(i,this._parents).order()}function _t(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function yt(){return Array.from(this)}function bt(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function xt(){let e=0;for(let t of this)++e;return e}function St(){return!this.node()}function Ct(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function wt(e){return function(){this.removeAttribute(e)}}function Tt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Et(e,t){return function(){this.setAttribute(e,t)}}function Dt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Ot(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function At(e,t){var n=Pe(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Tt:wt:typeof t==`function`?n.local?kt:Ot:n.local?Dt:Et)(n,t))}function jt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Mt(e){return function(){this.style.removeProperty(e)}}function Nt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Pt(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ft(e,t,n){return arguments.length>1?this.each((t==null?Mt:typeof t==`function`?Pt:Nt)(e,t,n??``)):It(this.node(),e)}function It(e,t){return e.style.getPropertyValue(t)||jt(e).getComputedStyle(e,null).getPropertyValue(t)}function Lt(e){return function(){delete this[e]}}function Rt(e,t){return function(){this[e]=t}}function zt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Bt(e,t){return arguments.length>1?this.each((t==null?Lt:typeof t==`function`?zt:Rt)(e,t)):this.node()[e]}function Vt(e){return e.trim().split(/^|\s+/)}function Ht(e){return e.classList||new Ut(e)}function Ut(e){this._node=e,this._names=Vt(e.getAttribute(`class`)||``)}Ut.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Wt(e,t){for(var n=Ht(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Gt(e,t){for(var n=Ht(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Kt(e){return function(){Wt(this,e)}}function qt(e){return function(){Gt(this,e)}}function Jt(e,t){return function(){(t.apply(this,arguments)?Wt:Gt)(this,e)}}function Yt(e,t){var n=Vt(e+``);if(arguments.length<2){for(var r=Ht(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Jt:t?Kt:qt)(n,t))}function Xt(){this.textContent=``}function Zt(e){return function(){this.textContent=e}}function Qt(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function $t(e){return arguments.length?this.each(e==null?Xt:(typeof e==`function`?Qt:Zt)(e)):this.node().textContent}function en(){this.innerHTML=``}function tn(e){return function(){this.innerHTML=e}}function nn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function rn(e){return arguments.length?this.each(e==null?en:(typeof e==`function`?nn:tn)(e)):this.node().innerHTML}function an(){this.nextSibling&&this.parentNode.appendChild(this)}function on(){return this.each(an)}function sn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function cn(){return this.each(sn)}function ln(e){var t=typeof e==`function`?e:Le(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function un(){return null}function dn(e,t){var n=typeof e==`function`?e:Le(e),r=t==null?un:typeof t==`function`?t:ze(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function fn(){var e=this.parentNode;e&&e.removeChild(this)}function pn(){return this.each(fn)}function mn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function hn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function gn(e){return this.select(e?hn:mn)}function _n(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function vn(e){return function(t){e.call(this,t,this.__data__)}}function yn(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function bn(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function xn(e,t,n){return function(){var r=this.__on,i,a=vn(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function Sn(e,t,n){var r=yn(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?xn:bn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Cn(e,t,n){var r=jt(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function wn(e,t){return function(){return Cn(this,e,t)}}function Tn(e,t){return function(){return Cn(this,e,t.apply(this,arguments))}}function En(e,t){return this.each((typeof t==`function`?Tn:wn)(e,t))}function*Dn(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var On=[null];function kn(e,t){this._groups=e,this._parents=t}function An(){return new kn([[document.documentElement]],On)}function jn(){return this}kn.prototype=An.prototype={constructor:kn,select:Be,selectAll:Ge,selectChild:Ze,selectChildren:tt,filter:nt,data:ut,enter:it,exit:ft,join:pt,merge:mt,selection:jn,order:ht,sort:gt,call:vt,nodes:yt,node:bt,size:xt,empty:St,each:Ct,attr:At,style:Ft,property:Bt,classed:Yt,text:$t,html:rn,raise:on,lower:cn,append:ln,insert:dn,remove:pn,clone:gn,datum:_n,on:Sn,dispatch:En,[Symbol.iterator]:Dn};function Mn(e){return typeof e==`string`?new kn([[document.querySelector(e)]],[document.documentElement]):new kn([[e]],On)}function Nn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Pn(e,t){if(e=Nn(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var Fn={passive:!1},In={capture:!0,passive:!1};function Ln(e){e.stopImmediatePropagation()}function Rn(e){e.preventDefault(),e.stopImmediatePropagation()}function zn(e){var t=e.document.documentElement,n=Mn(e).on(`dragstart.drag`,Rn,In);`onselectstart`in t?n.on(`selectstart.drag`,Rn,In):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Bn(e,t){var n=e.document.documentElement,r=Mn(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Rn,In),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Vn=e=>()=>e;function Hn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}Hn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Un(e){return!e.ctrlKey&&!e.button}function Wn(){return this.parentNode}function Gn(e,t){return t??{x:e.x,y:e.y}}function Kn(){return navigator.maxTouchPoints||`ontouchstart`in this}function qn(){var e=Un,t=Wn,n=Gn,r=Kn,i={},a=De(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,Fn).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!u&&e.call(this,n,r)){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(Mn(n.view).on(`mousemove.drag`,m,In).on(`mouseup.drag`,h,In),zn(n.view),Ln(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Rn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Mn(e.view).on(`mousemove.drag mouseup.drag`,null),Bn(e.view,l),Rn(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(Ln(n),c(`start`,n,i[s]))}function _(e){for(var t=e.changedTouches,n=t.length,r=0,a;r<n;++r)(a=i[t[r].identifier])&&(Rn(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(Ln(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Pn(l||r,t),p,m,h;if((h=n.call(e,new Hn(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=Pn(l||a,t),_=o}u.call(r,e,new Hn(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Vn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Vn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Vn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Vn(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function Jn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Yn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Xn(){}var Zn=.7,Qn=1/Zn,$n=`\\s*([+-]?\\d+)\\s*`,er=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,tr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,nr=/^#([0-9a-f]{3,8})$/,rr=RegExp(`^rgb\\(${$n},${$n},${$n}\\)$`),ir=RegExp(`^rgb\\(${tr},${tr},${tr}\\)$`),ar=RegExp(`^rgba\\(${$n},${$n},${$n},${er}\\)$`),or=RegExp(`^rgba\\(${tr},${tr},${tr},${er}\\)$`),sr=RegExp(`^hsl\\(${er},${tr},${tr}\\)$`),cr=RegExp(`^hsla\\(${er},${tr},${tr},${er}\\)$`),lr={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};Jn(Xn,mr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ur,formatHex:ur,formatHex8:dr,formatHsl:fr,formatRgb:pr,toString:pr});function ur(){return this.rgb().formatHex()}function dr(){return this.rgb().formatHex8()}function fr(){return Dr(this).formatHsl()}function pr(){return this.rgb().formatRgb()}function mr(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=nr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?hr(t):n===3?new yr(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?gr(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?gr(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=rr.exec(e))?new yr(t[1],t[2],t[3],1):(t=ir.exec(e))?new yr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ar.exec(e))?gr(t[1],t[2],t[3],t[4]):(t=or.exec(e))?gr(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=sr.exec(e))?Er(t[1],t[2]/100,t[3]/100,1):(t=cr.exec(e))?Er(t[1],t[2]/100,t[3]/100,t[4]):lr.hasOwnProperty(e)?hr(lr[e]):e===`transparent`?new yr(NaN,NaN,NaN,0):null}function hr(e){return new yr(e>>16&255,e>>8&255,e&255,1)}function gr(e,t,n,r){return r<=0&&(e=t=n=NaN),new yr(e,t,n,r)}function _r(e){return e instanceof Xn||(e=mr(e)),e?(e=e.rgb(),new yr(e.r,e.g,e.b,e.opacity)):new yr}function vr(e,t,n,r){return arguments.length===1?_r(e):new yr(e,t,n,r??1)}function yr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Jn(yr,vr,Yn(Xn,{brighter(e){return e=e==null?Qn:Qn**+e,new yr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Zn:Zn**+e,new yr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yr(wr(this.r),wr(this.g),wr(this.b),Cr(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:br,formatHex:br,formatHex8:xr,formatRgb:Sr,toString:Sr}));function br(){return`#${Tr(this.r)}${Tr(this.g)}${Tr(this.b)}`}function xr(){return`#${Tr(this.r)}${Tr(this.g)}${Tr(this.b)}${Tr((isNaN(this.opacity)?1:this.opacity)*255)}`}function Sr(){let e=Cr(this.opacity);return`${e===1?`rgb(`:`rgba(`}${wr(this.r)}, ${wr(this.g)}, ${wr(this.b)}${e===1?`)`:`, ${e})`}`}function Cr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function wr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Tr(e){return e=wr(e),(e<16?`0`:``)+e.toString(16)}function Er(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new kr(e,t,n,r)}function Dr(e){if(e instanceof kr)return new kr(e.h,e.s,e.l,e.opacity);if(e instanceof Xn||(e=mr(e)),!e)return new kr;if(e instanceof kr)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new kr(o,s,c,e.opacity)}function Or(e,t,n,r){return arguments.length===1?Dr(e):new kr(e,t,n,r??1)}function kr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Jn(kr,Or,Yn(Xn,{brighter(e){return e=e==null?Qn:Qn**+e,new kr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Zn:Zn**+e,new kr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new yr(Mr(e>=240?e-240:e+120,i,r),Mr(e,i,r),Mr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new kr(Ar(this.h),jr(this.s),jr(this.l),Cr(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(){let e=Cr(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Ar(this.h)}, ${jr(this.s)*100}%, ${jr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Ar(e){return e=(e||0)%360,e<0?e+360:e}function jr(e){return Math.max(0,Math.min(1,e||0))}function Mr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var Nr=e=>()=>e;function Pr(e,t){return function(n){return e+n*t}}function Fr(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Ir(e){return(e=+e)==1?Lr:function(t,n){return n-t?Fr(t,n,e):Nr(isNaN(t)?n:t)}}function Lr(e,t){var n=t-e;return n?Pr(e,n):Nr(isNaN(e)?t:e)}var Rr=function e(t){var n=Ir(t);function r(e,t){var r=n((e=vr(e)).r,(t=vr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Lr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r}(1);function zr(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function Br(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Vr(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=Xr(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function Hr(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ur(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Wr(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Xr(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Gr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Kr=new RegExp(Gr.source,`g`);function qr(e){return function(){return e}}function Jr(e){return function(t){return e(t)+``}}function Yr(e,t){var n=Gr.lastIndex=Kr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Gr.exec(e))&&(i=Kr.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Ur(r,i)})),n=Kr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Jr(c[0].x):qr(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Xr(e,t){var n=typeof t,r;return t==null||n===`boolean`?Nr(t):(n===`number`?Ur:n===`string`?(r=mr(t))?(t=r,Rr):Yr:t instanceof mr?Rr:t instanceof Date?Hr:Br(t)?zr:Array.isArray(t)?Vr:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Wr:Ur)(e,t)}var Zr=180/Math.PI,Qr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function $r(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Zr,skewX:Math.atan(c)*Zr,scaleX:o,scaleY:s}}var ei;function ti(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Qr:$r(t.a,t.b,t.c,t.d,t.e,t.f)}function ni(e){return e==null||(ei||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ei.setAttribute(`transform`,e),!(e=ei.transform.baseVal.consolidate()))?Qr:(e=e.matrix,$r(e.a,e.b,e.c,e.d,e.e,e.f))}function ri(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:Ur(e,i)},{i:c-2,x:Ur(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:Ur(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:Ur(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:Ur(e,n)},{i:s-2,x:Ur(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var ii=ri(ti,`px, `,`px)`,`deg)`),ai=ri(ni,`, `,`)`,`)`),oi=1e-12;function si(e){return((e=Math.exp(e))+1/e)/2}function ci(e){return((e=Math.exp(e))-1/e)/2}function li(e){return((e=Math.exp(2*e))-1)/(e+1)}var ui=function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<oi)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=si(y),c=s/(n*g)*(i*li(t*r+y)-ci(y));return[a+c*d,o+c*f,s*i/si(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4),di=0,fi=0,pi=0,mi=1e3,hi,gi,_i=0,vi=0,yi=0,bi=typeof performance==`object`&&performance.now?performance:Date,xi=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Si(){return vi||=(xi(Ci),bi.now()+yi)}function Ci(){vi=0}function wi(){this._call=this._time=this._next=null}wi.prototype=Ti.prototype={constructor:wi,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Si():+n)+(t==null?0:+t),!this._next&&gi!==this&&(gi?gi._next=this:hi=this,gi=this),this._call=e,this._time=n,Ai()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ai())}};function Ti(e,t,n){var r=new wi;return r.restart(e,t,n),r}function Ei(){Si(),++di;for(var e=hi,t;e;)(t=vi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--di}function Di(){vi=(_i=bi.now())+yi,di=fi=0;try{Ei()}finally{di=0,ki(),vi=0}}function Oi(){var e=bi.now(),t=e-_i;t>mi&&(yi-=t,_i=e)}function ki(){for(var e,t=hi,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:hi=n);gi=e,Ai(r)}function Ai(e){di||(fi&&=clearTimeout(fi),e-vi>24?(e<1/0&&(fi=setTimeout(Di,e-bi.now()-yi)),pi&&=clearInterval(pi)):(pi||=(_i=bi.now(),setInterval(Oi,mi)),di=1,xi(Di)))}function ji(e,t,n){var r=new wi;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Mi=De(`start`,`end`,`cancel`,`interrupt`),Ni=[],Pi=0,Fi=1,Ii=2,Li=3,Ri=4,zi=5,Bi=6;function Vi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Gi(e,n,{name:t,index:r,group:i,on:Mi,tween:Ni,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Pi})}function Hi(e,t){var n=Wi(e,t);if(n.state>Pi)throw Error(`too late; already scheduled`);return n}function Ui(e,t){var n=Wi(e,t);if(n.state>Li)throw Error(`too late; already running`);return n}function Wi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Gi(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Ti(a,0,n.time);function a(e){n.state=Fi,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==Fi)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===Li)return ji(o);f.state===Ri?(f.state=Bi,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=Bi,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(ji(function(){n.state===Li&&(n.state=Ri,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=Ii,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===Ii){for(n.state=Li,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=zi,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===zi&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=Bi,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function Ki(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>Ii&&r.state<zi,r.state=Bi,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function qi(e){return this.each(function(){Ki(this,e)})}function Ji(e,t){var n,r;return function(){var i=Ui(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Yi(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Ui(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function Xi(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Wi(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Ji:Yi)(n,e,t))}function Zi(e,t,n){var r=e._id;return e.each(function(){var e=Ui(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Wi(e,r).value[t]}}function Qi(e,t){var n;return(typeof t==`number`?Ur:t instanceof mr?Rr:(n=mr(t))?(t=n,Rr):Yr)(e,t)}function $i(e){return function(){this.removeAttribute(e)}}function ea(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ta(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function na(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function ra(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function ia(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function aa(e,t){var n=Pe(e),r=n===`transform`?ai:Qi;return this.attrTween(e,typeof t==`function`?(n.local?ia:ra)(n,r,Zi(this,`attr.`+e,t)):t==null?(n.local?ea:$i)(n):(n.local?na:ta)(n,r,t))}function oa(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function sa(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function ca(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&sa(e,i)),n}return i._value=t,i}function la(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&oa(e,i)),n}return i._value=t,i}function ua(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=Pe(e);return this.tween(n,(r.local?ca:la)(r,t))}function da(e,t){return function(){Hi(this,e).delay=+t.apply(this,arguments)}}function fa(e,t){return t=+t,function(){Hi(this,e).delay=t}}function pa(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?da:fa)(t,e)):Wi(this.node(),t).delay}function ma(e,t){return function(){Ui(this,e).duration=+t.apply(this,arguments)}}function ha(e,t){return t=+t,function(){Ui(this,e).duration=t}}function ga(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ma:ha)(t,e)):Wi(this.node(),t).duration}function _a(e,t){if(typeof t!=`function`)throw Error();return function(){Ui(this,e).ease=t}}function va(e){var t=this._id;return arguments.length?this.each(_a(t,e)):Wi(this.node(),t).ease}function ya(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Ui(this,e).ease=n}}function ba(e){if(typeof e!=`function`)throw Error();return this.each(ya(this._id,e))}function xa(e){typeof e!=`function`&&(e=Ke(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new Xa(r,this._parents,this._name,this._id)}function Sa(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new Xa(o,this._parents,this._name,this._id)}function Ca(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function wa(e,t,n){var r,i,a=Ca(t)?Hi:Ui;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ta(e,t){var n=this._id;return arguments.length<2?Wi(this.node(),n).on.on(e):this.each(wa(n,e,t))}function Ea(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Da(){return this.on(`end.remove`,Ea(this._id))}function Oa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ze(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,Vi(l[f],t,n,f,l,Wi(u,n)));return new Xa(a,this._parents,t,n)}function ka(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Ue(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=Wi(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Vi(p,t,n,h,f,m);a.push(f),o.push(u)}return new Xa(a,o,t,n)}var Aa=An.prototype.constructor;function ja(){return new Aa(this._groups,this._parents)}function Ma(e,t){var n,r,i;return function(){var a=It(this,e),o=(this.style.removeProperty(e),It(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Na(e){return function(){this.style.removeProperty(e)}}function Pa(e,t,n){var r,i=n+``,a;return function(){var o=It(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Fa(e,t,n){var r,i,a;return function(){var o=It(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),It(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Ia(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Ui(this,e),l=c.on,u=c.value[a]==null?s||=Na(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function La(e,t,n){var r=(e+=``)==`transform`?ii:Qi;return t==null?this.styleTween(e,Ma(e,r)).on(`end.style.`+e,Na(e)):typeof t==`function`?this.styleTween(e,Fa(e,r,Zi(this,`style.`+e,t))).each(Ia(this._id,e)):this.styleTween(e,Pa(e,r,t),n).on(`end.style.`+e,null)}function Ra(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function za(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&Ra(e,a,n)),r}return a._value=t,a}function Ba(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,za(e,t,n??``))}function Va(e){return function(){this.textContent=e}}function Ha(e){return function(){var t=e(this);this.textContent=t??``}}function Ua(e){return this.tween(`text`,typeof e==`function`?Ha(Zi(this,`text`,e)):Va(e==null?``:e+``))}function Wa(e){return function(t){this.textContent=e.call(this,t)}}function Ga(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Wa(r)),t}return r._value=e,r}function Ka(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,Ga(e))}function qa(){for(var e=this._name,t=this._id,n=Za(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=Wi(c,t);Vi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Xa(r,this._parents,e,n)}function Ja(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=Ui(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var Ya=0;function Xa(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Za(){return++Ya}var Qa=An.prototype;Xa.prototype={constructor:Xa,select:Oa,selectAll:ka,selectChild:Qa.selectChild,selectChildren:Qa.selectChildren,filter:xa,merge:Sa,selection:ja,transition:qa,call:Qa.call,nodes:Qa.nodes,node:Qa.node,size:Qa.size,empty:Qa.empty,each:Qa.each,on:Ta,attr:aa,attrTween:ua,style:La,styleTween:Ba,text:Ua,textTween:Ka,remove:Da,tween:Xi,delay:pa,duration:ga,ease:va,easeVarying:ba,end:Ja,[Symbol.iterator]:Qa[Symbol.iterator]};function $a(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var eo={time:null,delay:0,duration:250,ease:$a};function to(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function no(e){var t,n;e instanceof Xa?(t=e._id,e=e._name):(t=Za(),(n=eo).time=Si(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&Vi(c,e,t,l,o,n||to(c,t));return new Xa(r,this._parents,e,t)}An.prototype.interrupt=qi,An.prototype.transition=no;var ro=e=>()=>e;function io(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ao(e,t,n){this.k=e,this.x=t,this.y=n}ao.prototype={constructor:ao,scale:function(e){return e===1?this:new ao(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ao(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var oo=new ao(1,0,0);ao.prototype;function so(e){e.stopImmediatePropagation()}function co(e){e.preventDefault(),e.stopImmediatePropagation()}function lo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function uo(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function fo(){return this.__zoom||oo}function po(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function mo(){return navigator.maxTouchPoints||`ontouchstart`in this}function ho(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function go(){var e=lo,t=uo,n=ho,r=po,i=mo,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ui,l=De(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,fo).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,fo),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(oo.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new ao(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new ao(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new ao(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=Mn(this.that).datum();l.call(e,this.that,new io(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=Pn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Ki(this),s.start();co(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Mn(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Pn(t,i),l=t.clientX,u=t.clientY;zn(t.view),so(t),a.mouse=[c,this.__zoom.invert(c)],Ki(this),a.start();function d(e){if(co(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=Pn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Bn(e.view,a.moved),co(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Pn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);co(r),s>0?Mn(this).transition().duration(s).call(x,d,c,r):Mn(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(so(t),s=0;s<i;++s)c=r[s],l=Pn(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),Ki(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(co(e),s=0;s<a;++s)c=i[s],l=Pn(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(so(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=Pn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Mn(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:ro(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:ro(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:ro(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:ro([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Y=(e=>(e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`,e))(Y||{}),_o=(e=>(e.Partial=`partial`,e.Full=`full`,e))(_o||{}),vo=(e=>(e.Bezier=`default`,e.SimpleBezier=`simple-bezier`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e))(vo||{}),yo=(e=>(e.Strict=`strict`,e.Loose=`loose`,e))(yo||{}),bo=(e=>(e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`,e))(bo||{}),xo=(e=>(e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(xo||{}),So=(e=>(e.TopLeft=`top-left`,e.TopCenter=`top-center`,e.TopRight=`top-right`,e.BottomLeft=`bottom-left`,e.BottomCenter=`bottom-center`,e.BottomRight=`bottom-right`,e))(So||{}),Co=[`INPUT`,`SELECT`,`TEXTAREA`],wo=typeof document<`u`?document:null;function To(e){let t=e.composedPath?.call(e)?.[0]||e.target,n=typeof t?.hasAttribute==`function`&&t.hasAttribute(`contenteditable`),r=typeof t?.closest==`function`?t.closest(`.nokey`):null;return Co.includes(t?.nodeName)||n||!!r}function Eo(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function Do(e,t,n,r){let i=t.replace(`+`,`
|
|
2
2
|
`).replace(`
|
|
3
3
|
|
|
4
4
|
`,`
|
package/src/ui/public/index.html
CHANGED
|
@@ -10,21 +10,21 @@
|
|
|
10
10
|
<meta name="theme-color" content="#141820" media="(prefers-color-scheme: dark)" />
|
|
11
11
|
<title>Zen GitSync</title>
|
|
12
12
|
<!-- 字体改为自托管(@font-face 见 src/main.css),不再依赖 Google Fonts 外链 -->
|
|
13
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-CyEcaEC9.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/dagre-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/element-plus-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/vendor-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/dagre-Ct-SQ-7k.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/element-plus-CDrtgG55.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/vendor-DYtaPSUU.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BY0jlMBE.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-CP7WAT4C.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/socket-io-BFqQXqAp.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/configStore-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/monaco-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/flow-mindmap-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/vue-flow-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/configStore-EvRYufor.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/monaco-BV4P06MT.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/flow-mindmap-C8x6ucsA.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-DrxsmpDL.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/vue-flow-B7Hdmt-y.js">
|
|
26
26
|
<link rel="stylesheet" crossorigin href="/assets/element-plus-D-6gla1z.css">
|
|
27
|
-
<link rel="stylesheet" crossorigin href="/assets/vendor-
|
|
27
|
+
<link rel="stylesheet" crossorigin href="/assets/vendor-CSFGMcMB.css">
|
|
28
28
|
<link rel="stylesheet" crossorigin href="/assets/SvgIcon-CDNsk4-Q.css">
|
|
29
29
|
<link rel="stylesheet" crossorigin href="/assets/monaco-B2lPvkrc.css">
|
|
30
30
|
<link rel="stylesheet" crossorigin href="/assets/flow-mindmap-DqCKZUlr.css">
|
|
@@ -523,18 +523,52 @@ async function launchOpenCode(dirPath, { permissionMode } = {}) {
|
|
|
523
523
|
}
|
|
524
524
|
|
|
525
525
|
/**
|
|
526
|
-
*
|
|
526
|
+
* codebuddy 的权限档位(`--permission-mode`,用 CLI 自己的档位名当 token)。
|
|
527
|
+
*
|
|
528
|
+
* 档位名与 claude **逐字相同**(acceptEdits / bypassPermissions),所以直接沿用
|
|
529
|
+
* claude 那套 token,不必再造一份 —— 前端两处菜单传的是同一个字符串。
|
|
527
530
|
*
|
|
528
|
-
* `--
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
+
* 'bypassPermissions' → `--permission-mode bypassPermissions`
|
|
532
|
+
* 官方档位说明原文 "Skips all permission prompts",这就是它的**完全批准**档。
|
|
533
|
+
* 实测(2026-10-14,本机 CLI)`codebuddy -p --output-format stream-json
|
|
534
|
+
* --permission-mode bypassPermissions` 的 init 事件回传
|
|
535
|
+
* `permissionMode: "bypassPermissions"` —— 档位真的生效,不是被静默忽略。
|
|
536
|
+
* `-y / --dangerously-skip-permissions` 是同一档的别名(headless 执行器走的就是
|
|
537
|
+
* -y,init 同样回传 bypassPermissions),这里用 `--permission-mode` 是因为它
|
|
538
|
+
* 是 TUI 也认的正式写法(help: "Default permission mode for this process
|
|
539
|
+
* (TUI, --serve Web, ACP)"),且与 claude 的启动参数形状一致。
|
|
540
|
+
* 'acceptEdits' → `--permission-mode acceptEdits`(自动批准文件编辑,中间档)
|
|
541
|
+
* 其余一切(undefined / 未知串 / 非字符串)→ 一个 flag 都不带,跟随 CLI 自己的配置
|
|
542
|
+
*
|
|
543
|
+
* 白名单式:只有表里这两个 token 能变成参数,不存在拼参数注入的面。
|
|
544
|
+
* 回归 `test/open-with-permission.test.mjs`。
|
|
545
|
+
*/
|
|
546
|
+
const CODEBUDDY_MODE_FLAGS = new Map([
|
|
547
|
+
['acceptEdits', ['--permission-mode', 'acceptEdits']],
|
|
548
|
+
['bypassPermissions', ['--permission-mode', 'bypassPermissions']],
|
|
549
|
+
]);
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* codebuddy 的启动参数(按权限档位)。
|
|
553
|
+
*
|
|
554
|
+
* `--port 0` 是**必须**的(与档位无关,恒定带上):CLI 每次运行都自带一个引擎服务器,
|
|
555
|
+
* 默认端口写死 62443,而 WorkBuddy 桌面版常驻占着它 —— 实测裸跑 `codebuddy`
|
|
556
|
+
* (交互也一样)直接 EADDRINUSE 退出。0 = 让 OS 选空闲端口,与 headless 执行器
|
|
531
557
|
* (taskRunner.launchCodebuddyPrint)同一个口径。
|
|
558
|
+
*/
|
|
559
|
+
export function buildCodebuddyArgs(permissionMode) {
|
|
560
|
+
return ['--port', '0', ...(CODEBUDDY_MODE_FLAGS.get(permissionMode) || [])];
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* 用 CodeBuddy Code 打开目录(交互 TUI,2026-10-12 随执行器接入一起补)。
|
|
565
|
+
* 权限档位见 buildCodebuddyArgs。
|
|
532
566
|
*
|
|
533
|
-
*
|
|
567
|
+
* 登录态来自 ~/.codebuddy:没登录过的话 TUI 里会提示 /login 扫码。
|
|
534
568
|
*/
|
|
535
|
-
async function launchCodebuddy(dirPath) {
|
|
569
|
+
async function launchCodebuddy(dirPath, { permissionMode } = {}) {
|
|
536
570
|
// CodeBuddy Code CLI - https://www.codebuddy.cn/docs/cli
|
|
537
|
-
const cliArgs =
|
|
571
|
+
const cliArgs = buildCodebuddyArgs(permissionMode);
|
|
538
572
|
if (process.platform === 'win32') {
|
|
539
573
|
return spawnDetached('cmd.exe', ['/c', 'start', '""', 'codebuddy', ...cliArgs], {
|
|
540
574
|
cwd: dirPath
|
|
@@ -592,13 +626,42 @@ export async function launchGai(dirPath, {
|
|
|
592
626
|
});
|
|
593
627
|
}
|
|
594
628
|
|
|
595
|
-
|
|
629
|
+
/**
|
|
630
|
+
* kimi 的权限档位。
|
|
631
|
+
*
|
|
632
|
+
* 'auto' | 'bypassPermissions' → `--auto`
|
|
633
|
+
* 官方 help 原文 "Start in Never Ask mode: never interrupts you; everything runs
|
|
634
|
+
* and is decided automatically" —— 这才是它的**完全批准**档。
|
|
635
|
+
* `bypassPermissions` 只是让调用方与 claude / codex / opencode 那档共用同一个
|
|
636
|
+
* 字符串,不是另一种行为。
|
|
637
|
+
* 其余一切(undefined / 未知串 / 非字符串)→ 一个 flag 都不带(默认档:该问的照问)
|
|
638
|
+
*
|
|
639
|
+
* ⚠️ 这个 `--auto` 与 opencode 的 `--auto` **同名但语义不同**:opencode 是"自动批准
|
|
640
|
+
* 未被显式拒绝的权限"(配置里 deny 的仍拦),kimi 是"从不打断"。档位 token 各按各家
|
|
641
|
+
* CLI 的叫法走,别硬凑一个公共词(同 codex 那段的取舍)。
|
|
642
|
+
* ⚠️ kimi 还有一个中间档 `-y / --yolo`(Ask When Needed:常规编辑与命令自动放行,
|
|
643
|
+
* 危险动作 / 提问 / 计划仍会问),菜单暂未暴露 —— 要加时在 KIMI_MODE_FLAGS 补一行。
|
|
644
|
+
*
|
|
645
|
+
* 白名单式:只有表里这两个 token 能变成参数。
|
|
646
|
+
* 回归 `test/open-with-permission.test.mjs`。
|
|
647
|
+
*/
|
|
648
|
+
const KIMI_MODE_FLAGS = new Map([
|
|
649
|
+
['auto', ['--auto']],
|
|
650
|
+
['bypassPermissions', ['--auto']],
|
|
651
|
+
]);
|
|
652
|
+
|
|
653
|
+
export function buildKimiArgs(permissionMode) {
|
|
654
|
+
return [...(KIMI_MODE_FLAGS.get(permissionMode) || [])];
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
async function launchKimiCode(dirPath, { permissionMode } = {}) {
|
|
658
|
+
const cliArgs = buildKimiArgs(permissionMode);
|
|
596
659
|
if (process.platform === 'win32') {
|
|
597
660
|
const executable = await findKimiExecutable();
|
|
598
661
|
if (!executable) throw new Error('未检测到 Kimi Code,请先安装 kimi CLI');
|
|
599
|
-
return spawnDetached('cmd.exe', ['/c', 'start', '""', executable], { cwd: dirPath });
|
|
662
|
+
return spawnDetached('cmd.exe', ['/c', 'start', '""', executable, ...cliArgs], { cwd: dirPath });
|
|
600
663
|
}
|
|
601
|
-
return launchInTerminal(dirPath, 'kimi');
|
|
664
|
+
return launchInTerminal(dirPath, 'kimi', cliArgs);
|
|
602
665
|
}
|
|
603
666
|
|
|
604
667
|
async function launchDsh(dirPath) {
|
|
@@ -1126,7 +1189,7 @@ export function registerFileOpenRoutes({
|
|
|
1126
1189
|
// 用 CodeBuddy Code 打开目录
|
|
1127
1190
|
app.post('/api/open-directory-with-codebuddy', asyncRoute(async (req, res) => {
|
|
1128
1191
|
try {
|
|
1129
|
-
const { path: dirPath } = req.body || {};
|
|
1192
|
+
const { path: dirPath, permissionMode } = req.body || {};
|
|
1130
1193
|
if (!dirPath) {
|
|
1131
1194
|
throw new HttpError(400, '目录路径不能为空');
|
|
1132
1195
|
}
|
|
@@ -1138,8 +1201,11 @@ export function registerFileOpenRoutes({
|
|
|
1138
1201
|
}
|
|
1139
1202
|
|
|
1140
1203
|
try {
|
|
1141
|
-
await launchCodebuddy(dirPath);
|
|
1142
|
-
|
|
1204
|
+
await launchCodebuddy(dirPath, { permissionMode });
|
|
1205
|
+
const message = CODEBUDDY_MODE_FLAGS.has(permissionMode)
|
|
1206
|
+
? `已用 CodeBuddy Code 打开目录(permission-mode=${permissionMode})`
|
|
1207
|
+
: '已用 CodeBuddy Code 打开目录';
|
|
1208
|
+
res.json({ success: true, message });
|
|
1143
1209
|
} catch (error) {
|
|
1144
1210
|
res.status(400).json({
|
|
1145
1211
|
success: false,
|
|
@@ -1181,12 +1247,15 @@ export function registerFileOpenRoutes({
|
|
|
1181
1247
|
|
|
1182
1248
|
// 用 Kimi Code 打开目录
|
|
1183
1249
|
app.post('/api/open-directory-with-kimi', asyncRoute(async (req, res) => {
|
|
1184
|
-
const { path: dirPath } = req.body || {};
|
|
1250
|
+
const { path: dirPath, permissionMode } = req.body || {};
|
|
1185
1251
|
if (!dirPath) throw new HttpError(400, '目录路径不能为空');
|
|
1186
1252
|
try {
|
|
1187
1253
|
await fs.access(dirPath);
|
|
1188
|
-
await launchKimiCode(dirPath);
|
|
1189
|
-
|
|
1254
|
+
await launchKimiCode(dirPath, { permissionMode });
|
|
1255
|
+
const message = KIMI_MODE_FLAGS.has(permissionMode)
|
|
1256
|
+
? '已用 Kimi Code 打开目录(--auto:从不打断)'
|
|
1257
|
+
: '已用 Kimi Code 打开目录';
|
|
1258
|
+
res.json({ success: true, message });
|
|
1190
1259
|
} catch (error) {
|
|
1191
1260
|
res.status(400).json({ success: false, error: error.message || '未检测到 Kimi Code,请先安装 kimi CLI' });
|
|
1192
1261
|
}
|
|
@@ -449,7 +449,6 @@ test('两块提示词都注入请求副本:g ai 默认提示词 + 派发提示
|
|
|
449
449
|
writeSandboxFile('config.json', { agentDefaultPrompt: '【g ai 默认提示词】回答用中文' })
|
|
450
450
|
writeSandboxFile('orchestrator.json', {
|
|
451
451
|
version: 1,
|
|
452
|
-
active: true,
|
|
453
452
|
defaultPrompt: '【全局派发提示词】改完就提交',
|
|
454
453
|
projectPrompts: { [projectKey]: { path: process.cwd(), prompt: '【本项目派发提示词】包管理器用 pnpm' } },
|
|
455
454
|
})
|
|
@@ -102,7 +102,7 @@ export function createDispatcher({ configManager, getCurrentProjectPath, runTask
|
|
|
102
102
|
* @param {boolean} [payload.useDefaultPrompt] 默认 true;false = 本次不附加预设提示词
|
|
103
103
|
* @param {string} [payload.executor] claude | opencode | codex;缺省走配置默认
|
|
104
104
|
* @param {Array} [payload.attachments] 暂存区附件记录 [{ id, ext, originalName }]
|
|
105
|
-
* @returns {Promise<{task: object, instruction: object, ran: boolean,
|
|
105
|
+
* @returns {Promise<{task: object, instruction: object, ran: boolean, target: object}>}
|
|
106
106
|
*/
|
|
107
107
|
async function dispatchInstruction(payload = {}) {
|
|
108
108
|
const text = typeof payload.text === 'string' ? payload.text.trim() : '';
|
|
@@ -169,10 +169,7 @@ export function createDispatcher({ configManager, getCurrentProjectPath, runTask
|
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
const autoRun = payload.autoRun !== false;
|
|
172
|
-
// 调度开关与预设提示词同在一份 state 里,只读一次:
|
|
173
|
-
// 分开读两次必然出现"读到的是两个瞬间"的窗口(改设置的同时派发)。
|
|
174
172
|
const orchestratorState = await readOrchestrator();
|
|
175
|
-
const schedulingActive = orchestratorState.active;
|
|
176
173
|
|
|
177
174
|
// 预设提示词按**落点项目**解析:全局那条对所有项目生效,项目级那条只在这个项目追加。
|
|
178
175
|
// useDefaultPrompt=false 是"这一次不附加" —— 全局提示词若没法单次关掉,
|
|
@@ -213,13 +210,15 @@ export function createDispatcher({ configManager, getCurrentProjectPath, runTask
|
|
|
213
210
|
tasks.push(task);
|
|
214
211
|
await writeJson(TASKS_FILE, { tasks });
|
|
215
212
|
|
|
216
|
-
const willRun = autoRun
|
|
213
|
+
const willRun = autoRun;
|
|
217
214
|
const record = await appendInstruction({
|
|
218
215
|
text,
|
|
219
216
|
projectPath: targetPath,
|
|
220
217
|
taskId: task.id,
|
|
221
218
|
status: willRun ? 'accepted' : 'created',
|
|
222
|
-
|
|
219
|
+
// 只建不跑(autoRun=false)时不留 reason:这不是失败,是调用方明确要的形态。
|
|
220
|
+
// 流水里的 status='created' 已经说清了,硬塞一句解释反而是替用户编话。
|
|
221
|
+
reason: '',
|
|
223
222
|
// 落点是怎么定下来的(explicit / mention / agent / default),
|
|
224
223
|
// 记下来才能在流水里回答用户那句"为什么派到这儿了"
|
|
225
224
|
targetSource: target.source,
|
|
@@ -252,7 +251,7 @@ export function createDispatcher({ configManager, getCurrentProjectPath, runTask
|
|
|
252
251
|
|
|
253
252
|
// executor 一并回给调用方:HTTP 响应与 dispatch_task 的结果文案都要说清"这条任务
|
|
254
253
|
// 交给了谁"。只建不跑时是 null —— 那时不必为它多读一次配置。
|
|
255
|
-
return { task, instruction: record, ran: willRun,
|
|
254
|
+
return { task, instruction: record, ran: willRun, target, executor };
|
|
256
255
|
}
|
|
257
256
|
|
|
258
257
|
return { dispatchInstruction };
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
// 1. 派发只有**一份实现** —— HTTP 端点与内置智能体的 dispatch_task 工具都落到这里。
|
|
20
20
|
// 本文件直接测这份实现;两个入口各自的"取字段 / 压成字符串"由
|
|
21
21
|
// agentRoutes.test.js 与 scripts/verify-workbench-agent-dispatch.mjs 覆盖。
|
|
22
|
-
// 2. 闸门语义不变:autoRun=false
|
|
22
|
+
// 2. 闸门语义不变:autoRun=false → 只建任务不执行。
|
|
23
23
|
// 3. 落点依据如实记录(explicit / mention / agent / default),
|
|
24
24
|
// 它是用户在活动流里回答"为什么派到这儿了"的唯一依据。
|
|
25
25
|
//
|
|
@@ -54,7 +54,7 @@ delete process.env.HOMEPATH;
|
|
|
54
54
|
|
|
55
55
|
const load = p => import(pathToFileURL(path.join(projectRoot, p)).href);
|
|
56
56
|
const { createDispatcher, resolveExecutor } = await load('src/ui/server/routes/workbench/dispatchInstruction.js');
|
|
57
|
-
const { readOrchestrator,
|
|
57
|
+
const { readOrchestrator, setDefaultPrompt } = await load('src/ui/server/routes/workbench/orchestratorStore.js');
|
|
58
58
|
const { readJson, TASKS_FILE, MAX_INSTRUCTION_CHARS } = await load('src/ui/server/routes/workbench/shared.js');
|
|
59
59
|
|
|
60
60
|
// 两个项目目录:proj 是"选中/当前"的落点,other 用来证明显式指定优先于默认
|
|
@@ -134,23 +134,7 @@ test('落点:没给目标时退到默认项目,依据记为 default', async
|
|
|
134
134
|
assert.equal(result.instruction.targetSource, 'default');
|
|
135
135
|
});
|
|
136
136
|
|
|
137
|
-
test('
|
|
138
|
-
const { dispatchInstruction } = makeDispatcher();
|
|
139
|
-
await setOrchestratorActive(false);
|
|
140
|
-
try {
|
|
141
|
-
const before = launched.length;
|
|
142
|
-
const result = await dispatchInstruction({ text: '暂停期间派一条', autoRun: true });
|
|
143
|
-
assert.equal(result.schedulingActive, false);
|
|
144
|
-
assert.equal(result.ran, false);
|
|
145
|
-
assert.match(result.instruction.reason, /调度已暂停/);
|
|
146
|
-
assert.equal(launched.length, before, '暂停期间不该有任何执行');
|
|
147
|
-
assert.equal(result.executor, null);
|
|
148
|
-
} finally {
|
|
149
|
-
await setOrchestratorActive(true);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
test('autoRun=true 且调度中:交给执行入口,执行器按参数 > 配置默认解析', async () => {
|
|
137
|
+
test('autoRun=true:交给执行入口,执行器按参数 > 配置默认解析', async () => {
|
|
154
138
|
const { dispatchInstruction } = makeDispatcher();
|
|
155
139
|
const explicit = await dispatchInstruction({ text: '显式指定 opencode', autoRun: true, executor: 'opencode' });
|
|
156
140
|
assert.equal(explicit.ran, true);
|