zen-gitsync 2.18.25 → 2.18.26
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/package.json +4 -2
- package/src/cli/ai/modelSetup.js +11 -0
- package/src/cli/ai/modelSetup.test.js +4 -2
- package/src/ui/public/assets/AgentView-BgsIfH1V.js +27 -0
- package/src/ui/public/assets/{AppVersionBadge-DbFO8rLi.js → AppVersionBadge-vKeEhoxI.js} +2 -2
- package/src/ui/public/assets/{BranchSelector-DA2SwWaV.js → BranchSelector-D4Igm7sR.js} +1 -1
- package/src/ui/public/assets/{ChatSilenceBadge-DSIaadKb.js → ChatSilenceBadge-D-lbhnwH.js} +8 -8
- package/src/ui/public/assets/{CommitForm-DkxH_Ts2.js → CommitForm-CXBA-E-6.js} +3 -3
- package/src/ui/public/assets/{CommonDialog-BLNGFUbf.js → CommonDialog-DrbQC1fm.js} +1 -1
- package/src/ui/public/assets/{EditorView-zYjlwSMs.js → EditorView-CXj7-8DC.js} +1 -1
- package/src/ui/public/assets/{FlowExecutionViewer-LdVYaAwm.js → FlowExecutionViewer-CjL1DfmI.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-BB91PXml.js → FlowOrchestrationWorkspace-p7_NcaY-.js} +1 -1
- package/src/ui/public/assets/{LogList-CRZpd3FE.js → LogList-SDV2f7R6.js} +4 -4
- package/src/ui/public/assets/MindmapView-BWXQHyV7.js +35 -0
- package/src/ui/public/assets/{MonitorView-DsOy5K_F.js → MonitorView-G1MQ7M0F.js} +1 -1
- package/src/ui/public/assets/{ProjectManagerView-ZhrY5oiK.js → ProjectManagerView-Cg3GLLxQ.js} +1 -1
- package/src/ui/public/assets/{ProjectStartupButton-cLbx_jCw.js → ProjectStartupButton-DMlDI4Xn.js} +1 -1
- package/src/ui/public/assets/{RemoteManagerDialog-C7RKYhq3.js → RemoteManagerDialog-BZLYsW8E.js} +1 -1
- package/src/ui/public/assets/{RemoteRepoCard-pqs_CXmT.js → RemoteRepoCard-BqHQho7O.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-WvoQSlij.js → SourceMapView-CHl1yfAe.js} +2 -2
- package/src/ui/public/assets/{SvgIcon-Bpjn8BFa.js → SvgIcon-EoI0db7X.js} +1 -1
- package/src/ui/public/assets/TaskExecutorPicker-cEgHnI-W.js +1 -0
- package/src/ui/public/assets/{UserInputNode-BNfpIezE.js → UserInputNode-CbwrGTgh.js} +1 -1
- package/src/ui/public/assets/{WorkbenchView-_s879kev.js → WorkbenchView-hSDyngLo.js} +155 -155
- package/src/ui/public/assets/{_plugin-vue_export-helper-BFvqRHs6.js → _plugin-vue_export-helper-Birg7-Pq.js} +3 -3
- package/src/ui/public/assets/{configStore-BiJopZl2.js → configStore-DPzIt2AS.js} +1 -1
- package/src/ui/public/assets/{dagre-yiQDclZv.js → dagre-BZyAVTDj.js} +3 -3
- package/src/ui/public/assets/{element-plus-BeZBQw4X.js → element-plus-CosPN4uA.js} +1 -1
- package/src/ui/public/assets/{flow-mindmap-CGjPqCv0.js → flow-mindmap-DY6jCfqE.js} +1 -1
- package/src/ui/public/assets/index-BJJSr6Sb.css +1 -0
- package/src/ui/public/assets/{index-B85tzLZT.js → index-CUUfiQYd.js} +79 -81
- package/src/ui/public/assets/{monaco-CMQow_j-.js → monaco-CJlef6w-.js} +1 -1
- package/src/ui/public/assets/{office-docx-nuGPI15f.js → office-docx-BOLbjEIt.js} +1 -1
- package/src/ui/public/assets/{office-excel-CK-HOYi8.js → office-excel-4xPekjHL.js} +1 -1
- package/src/ui/public/assets/{office-pptx-9onMeLux.js → office-pptx-BHSdxmkd.js} +1 -1
- package/src/ui/public/assets/{relativeTime-UxtHA303.js → relativeTime-257j87Fm.js} +1 -1
- package/src/ui/public/assets/{taskExecutionExport-CXKV0l1N.js → taskExecutionExport-CplN8eIn.js} +1 -1
- package/src/ui/public/assets/{toolsStore-DTNnZxXM.js → toolsStore-BjG-9k17.js} +1 -1
- package/src/ui/public/assets/{useWorkbenchProjects-5LLBir9K.js → useWorkbenchProjects-Cj3XIq94.js} +1 -1
- package/src/ui/public/assets/vendor-2SbNafIY.css +1 -0
- package/src/ui/public/assets/{vendor-KxSgeiUX.js → vendor-DSY591Nv.js} +457 -450
- package/src/ui/public/assets/{vue-flow-BMMiguH1.js → vue-flow-CJFvg_oJ.js} +1 -1
- package/src/ui/public/index.html +14 -14
- package/src/ui/public/assets/AgentView-GLzEji4Z.js +0 -27
- package/src/ui/public/assets/MindmapView-jQuKfAL3.js +0 -35
- package/src/ui/public/assets/TaskExecutorPicker-DPrm4ld1.js +0 -1
- package/src/ui/public/assets/index-Cewm9TZ-.css +0 -1
- package/src/ui/public/assets/vendor-CAhoE06w.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$n as e,An as t,Bn as n,Cn as r,En as i,Gn as a,Gr as o,Hn as s,In as c,Jn as l,Kn as u,Kr as d,Ln as f,Mn as p,Nn as m,Pn as h,Qn as g,Rn as _,Sn as v,Sr as y,Tn as b,Un as x,Wr as S,Xn as C,Xr as w,Yn as T,Zn as E,_n as D,_r as O,br as k,cr as A,dr as j,fr as M,gr as N,hr as P,ir as F,jr as I,kn as L,lr as R,mr as ee,nr as z,or as B,pr as V,qn as H,rr as te,sr as U,tr as ne,wn as W,xn as G,xr as K,yr as q,zn as re}from"./element-plus-BeZBQw4X.js";R(),c(),I();function ie(e){return A()?(V(e),!0):!1}function ae(e){return typeof e==`function`?e():y(e)}var oe=typeof window<`u`&&typeof document<`u`,se=e=>e!==void 0,ce=Object.prototype.toString,le=e=>ce.call(e)===`[object Object]`,ue=()=>{};function de(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 fe=e=>e();function pe(e=fe){let t=N(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:P(t),pause:n,resume:r,eventFilter:(...n)=>{t.value&&e(...n)}}}function me(e,t=!1,n=`Timeout`){return new Promise((r,i)=>{setTimeout(t?()=>i(n):r,e)})}function he(e,t,n={}){let{eventFilter:r=fe,...i}=n;return z(e,de(r,t),i)}function ge(e,t,n={}){let{eventFilter:r,...i}=n,{eventFilter:a,pause:o,resume:s,isActive:c}=pe(r);return{stop:he(e,t,{...i,eventFilter:a}),pause:o,resume:s,isActive:c}}function _e(e,t={}){if(!j(e))return k(e);let n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(let r in e.value)n[r]=B(()=>({get(){return e.value[r]},set(n){if(ae(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 ve(e,t=!1){function n(n,{flush:r=`sync`,deep:i=!1,timeout:a,throwOnTimeout:o}={}){let s=null,c=[new Promise(a=>{s=z(e,e=>{n(e)!==t&&(s?.(),a(e))},{flush:r,deep:i,immediate:!0})})];return a!=null&&c.push(me(a,o).then(()=>ae(e)).finally(()=>s?.())),Promise.race(c)}function r(r,i){if(!j(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=z([e,r],([e,r])=>{t!==(e===r)&&(l?.(),n(e))},{flush:a,deep:o,immediate:!0})})];return s!=null&&u.push(me(s,c).then(()=>ae(e)).finally(()=>(l?.(),ae(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(ae(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(ae(e))?{toMatch:n,toContains:c,changed:l,changedTimes:u,get not(){return ve(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:i,toBeNull:a,toBeNaN:s,toBeUndefined:o,changed:l,changedTimes:u,get not(){return ve(e,!t)}}}function ye(e){return ve(e)}function be(e){let t=ae(e);return t?.$el??t}var xe=oe?window:void 0;function Se(...e){let t,n,r,i;if(typeof e[0]==`string`||Array.isArray(e[0])?([n,r,i]=e,t=xe):[t,n,r,i]=e,!t)return ue;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=z(()=>[be(t),ae(i)],([e,t])=>{if(o(),!e)return;let i=le(t)?{...t}:t;a.push(...n.flatMap(t=>r.map(n=>s(e,t,n,i))))},{immediate:!0,flush:`post`}),l=()=>{c(),o()};return ie(l),l}function Ce(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function we(...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=xe,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Ce(t);return Se(i,a,e=>{e.repeat&&ae(s)||c(e)&&n(e)},o)}function Te(e){return JSON.parse(JSON.stringify(e))}function Ee(e,t,r,i={}){let{clone:a=!1,passive:o=!1,eventName:s,deep:c=!1,defaultValue:l,shouldEmit:u}=i,d=m(),f=r||d?.emit||(d?.$emit)?.bind(d)||(d?.proxy?.$emit)?.bind(d?.proxy),p=s;t||=`modelValue`,p||=`update:${t.toString()}`;let h=e=>a?typeof a==`function`?a(e):Te(e):e,g=()=>se(e[t])?h(e[t]):l,_=e=>{u?u(e)&&f(p,e):f(p,e)};if(o){let r=g(),i=N(r),a=!1;return z(()=>e[t],e=>{a||(a=!0,i.value=h(e),n(()=>a=!1))}),z(i,n=>{!a&&(n!==e[t]||c)&&_(n)},{deep:c}),i}return G({get(){return g()},set(e){_(e)}})}var De={value:()=>{}};function Oe(){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 ke(n)}function ke(e){this._=e}function Ae(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}})}ke.prototype=Oe.prototype={constructor:ke,on:function(e,t){var n=this._,r=Ae(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=je(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]=Me(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Me(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 ke(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 je(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Me(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=De,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Ne=`http://www.w3.org/1999/xhtml`,Pe={svg:`http://www.w3.org/2000/svg`,xhtml:Ne,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function Fe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Pe.hasOwnProperty(t)?{space:Pe[t],local:e}:e}function Ie(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Ne&&t.documentElement.namespaceURI===Ne?t.createElement(e):t.createElementNS(n,e)}}function Le(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Re(e){var t=Fe(e);return(t.local?Le:Ie)(t)}function ze(){}function Be(e){return e==null?ze:function(){return this.querySelector(e)}}function Ve(e){typeof e!=`function`&&(e=Be(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 An(r,this._parents)}function He(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ue(){return[]}function We(e){return e==null?Ue:function(){return this.querySelectorAll(e)}}function Ge(e){return function(){return He(e.apply(this,arguments))}}function Ke(e){e=typeof e==`function`?Ge(e):We(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 An(r,i)}function qe(e){return function(){return this.matches(e)}}function Je(e){return function(t){return t.matches(e)}}var Ye=Array.prototype.find;function Xe(e){return function(){return Ye.call(this.children,e)}}function Ze(){return this.firstElementChild}function Qe(e){return this.select(e==null?Ze:Xe(typeof e==`function`?e:Je(e)))}var $e=Array.prototype.filter;function et(){return Array.from(this.children)}function tt(e){return function(){return $e.call(this.children,e)}}function nt(e){return this.selectAll(e==null?et:tt(typeof e==`function`?e:Je(e)))}function rt(e){typeof e!=`function`&&(e=qe(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 An(r,this._parents)}function it(e){return Array(e.length)}function at(){return new An(this._enter||this._groups.map(it),this._parents)}function ot(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}ot.prototype={constructor:ot,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 st(e){return function(){return e}}function ct(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 ot(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function lt(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 ot(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function ut(e){return e.__data__}function dt(e,t){if(!arguments.length)return Array.from(this,ut);var n=t?lt:ct,r=this._parents,i=this._groups;typeof e!=`function`&&(e=st(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=ft(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 An(o,r),o._enter=s,o._exit=c,o}function ft(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function pt(){return new An(this._exit||this._groups.map(it),this._parents)}function mt(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 ht(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 An(s,this._parents)}function gt(){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 _t(e){e||=vt;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 An(i,this._parents).order()}function vt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function yt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function bt(){return Array.from(this)}function xt(){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 St(){let e=0;for(let t of this)++e;return e}function Ct(){return!this.node()}function wt(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 Tt(e){return function(){this.removeAttribute(e)}}function Et(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Dt(e,t){return function(){this.setAttribute(e,t)}}function Ot(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function At(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 jt(e,t){var n=Fe(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?Et:Tt:typeof t==`function`?n.local?At:kt:n.local?Ot:Dt)(n,t))}function Mt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Nt(e){return function(){this.style.removeProperty(e)}}function Pt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ft(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function It(e,t,n){return arguments.length>1?this.each((t==null?Nt:typeof t==`function`?Ft:Pt)(e,t,n??``)):Lt(this.node(),e)}function Lt(e,t){return e.style.getPropertyValue(t)||Mt(e).getComputedStyle(e,null).getPropertyValue(t)}function Rt(e){return function(){delete this[e]}}function zt(e,t){return function(){this[e]=t}}function Bt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Vt(e,t){return arguments.length>1?this.each((t==null?Rt:typeof t==`function`?Bt:zt)(e,t)):this.node()[e]}function Ht(e){return e.trim().split(/^|\s+/)}function Ut(e){return e.classList||new Wt(e)}function Wt(e){this._node=e,this._names=Ht(e.getAttribute(`class`)||``)}Wt.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 Gt(e,t){for(var n=Ut(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Kt(e,t){for(var n=Ut(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function qt(e){return function(){Gt(this,e)}}function Jt(e){return function(){Kt(this,e)}}function Yt(e,t){return function(){(t.apply(this,arguments)?Gt:Kt)(this,e)}}function Xt(e,t){var n=Ht(e+``);if(arguments.length<2){for(var r=Ut(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Yt:t?qt:Jt)(n,t))}function Zt(){this.textContent=``}function Qt(e){return function(){this.textContent=e}}function $t(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function en(e){return arguments.length?this.each(e==null?Zt:(typeof e==`function`?$t:Qt)(e)):this.node().textContent}function tn(){this.innerHTML=``}function nn(e){return function(){this.innerHTML=e}}function rn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function an(e){return arguments.length?this.each(e==null?tn:(typeof e==`function`?rn:nn)(e)):this.node().innerHTML}function on(){this.nextSibling&&this.parentNode.appendChild(this)}function sn(){return this.each(on)}function cn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ln(){return this.each(cn)}function un(e){var t=typeof e==`function`?e:Re(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function dn(){return null}function fn(e,t){var n=typeof e==`function`?e:Re(e),r=t==null?dn:typeof t==`function`?t:Be(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function pn(){var e=this.parentNode;e&&e.removeChild(this)}function mn(){return this.each(pn)}function hn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function gn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function _n(e){return this.select(e?gn:hn)}function vn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function yn(e){return function(t){e.call(this,t,this.__data__)}}function bn(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 xn(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 Sn(e,t,n){return function(){var r=this.__on,i,a=yn(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 Cn(e,t,n){var r=bn(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?Sn:xn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function wn(e,t,n){var r=Mt(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 Tn(e,t){return function(){return wn(this,e,t)}}function En(e,t){return function(){return wn(this,e,t.apply(this,arguments))}}function Dn(e,t){return this.each((typeof t==`function`?En:Tn)(e,t))}function*On(){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 kn=[null];function An(e,t){this._groups=e,this._parents=t}function jn(){return new An([[document.documentElement]],kn)}function Mn(){return this}An.prototype=jn.prototype={constructor:An,select:Ve,selectAll:Ke,selectChild:Qe,selectChildren:nt,filter:rt,data:dt,enter:at,exit:pt,join:mt,merge:ht,selection:Mn,order:gt,sort:_t,call:yt,nodes:bt,node:xt,size:St,empty:Ct,each:wt,attr:jt,style:It,property:Vt,classed:Xt,text:en,html:an,raise:sn,lower:ln,append:un,insert:fn,remove:mn,clone:_n,datum:vn,on:Cn,dispatch:Dn,[Symbol.iterator]:On};function Nn(e){return typeof e==`string`?new An([[document.querySelector(e)]],[document.documentElement]):new An([[e]],kn)}function Pn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Fn(e,t){if(e=Pn(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 In={passive:!1},Ln={capture:!0,passive:!1};function Rn(e){e.stopImmediatePropagation()}function zn(e){e.preventDefault(),e.stopImmediatePropagation()}function Bn(e){var t=e.document.documentElement,n=Nn(e).on(`dragstart.drag`,zn,Ln);`onselectstart`in t?n.on(`selectstart.drag`,zn,Ln):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Vn(e,t){var n=e.document.documentElement,r=Nn(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,zn,Ln),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 Hn=e=>()=>e;function Un(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}})}Un.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Wn(e){return!e.ctrlKey&&!e.button}function Gn(){return this.parentNode}function Kn(e,t){return t??{x:e.x,y:e.y}}function qn(){return navigator.maxTouchPoints||`ontouchstart`in this}function Jn(){var e=Wn,t=Gn,n=Kn,r=qn,i={},a=Oe(`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`,_,In).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&&(Nn(n.view).on(`mousemove.drag`,m,Ln).on(`mouseup.drag`,h,Ln),Bn(n.view),Rn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(zn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Nn(e.view).on(`mousemove.drag mouseup.drag`,null),Vn(e.view,l),zn(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]))&&(Rn(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])&&(zn(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])&&(Rn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Fn(l||r,t),p,m,h;if((h=n.call(e,new Un(`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=Fn(l||a,t),_=o}u.call(r,e,new Un(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:Hn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Hn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Hn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Hn(!!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 Yn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Xn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Zn(){}var Qn=.7,$n=1/Qn,er=`\\s*([+-]?\\d+)\\s*`,tr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,nr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,rr=/^#([0-9a-f]{3,8})$/,ir=RegExp(`^rgb\\(${er},${er},${er}\\)$`),ar=RegExp(`^rgb\\(${nr},${nr},${nr}\\)$`),or=RegExp(`^rgba\\(${er},${er},${er},${tr}\\)$`),sr=RegExp(`^rgba\\(${nr},${nr},${nr},${tr}\\)$`),cr=RegExp(`^hsl\\(${tr},${nr},${nr}\\)$`),lr=RegExp(`^hsla\\(${tr},${nr},${nr},${tr}\\)$`),ur={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};Yn(Zn,hr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:dr,formatHex:dr,formatHex8:fr,formatHsl:pr,formatRgb:mr,toString:mr});function dr(){return this.rgb().formatHex()}function fr(){return this.rgb().formatHex8()}function pr(){return Or(this).formatHsl()}function mr(){return this.rgb().formatRgb()}function hr(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=rr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?gr(t):n===3?new br(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?_r(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?_r(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=ir.exec(e))?new br(t[1],t[2],t[3],1):(t=ar.exec(e))?new br(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=or.exec(e))?_r(t[1],t[2],t[3],t[4]):(t=sr.exec(e))?_r(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=cr.exec(e))?Dr(t[1],t[2]/100,t[3]/100,1):(t=lr.exec(e))?Dr(t[1],t[2]/100,t[3]/100,t[4]):ur.hasOwnProperty(e)?gr(ur[e]):e===`transparent`?new br(NaN,NaN,NaN,0):null}function gr(e){return new br(e>>16&255,e>>8&255,e&255,1)}function _r(e,t,n,r){return r<=0&&(e=t=n=NaN),new br(e,t,n,r)}function vr(e){return e instanceof Zn||(e=hr(e)),e?(e=e.rgb(),new br(e.r,e.g,e.b,e.opacity)):new br}function yr(e,t,n,r){return arguments.length===1?vr(e):new br(e,t,n,r??1)}function br(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Yn(br,yr,Xn(Zn,{brighter(e){return e=e==null?$n:$n**+e,new br(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Qn:Qn**+e,new br(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new br(Tr(this.r),Tr(this.g),Tr(this.b),wr(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:xr,formatHex:xr,formatHex8:Sr,formatRgb:Cr,toString:Cr}));function xr(){return`#${Er(this.r)}${Er(this.g)}${Er(this.b)}`}function Sr(){return`#${Er(this.r)}${Er(this.g)}${Er(this.b)}${Er((isNaN(this.opacity)?1:this.opacity)*255)}`}function Cr(){let e=wr(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Tr(this.r)}, ${Tr(this.g)}, ${Tr(this.b)}${e===1?`)`:`, ${e})`}`}function wr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Tr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Er(e){return e=Tr(e),(e<16?`0`:``)+e.toString(16)}function Dr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ar(e,t,n,r)}function Or(e){if(e instanceof Ar)return new Ar(e.h,e.s,e.l,e.opacity);if(e instanceof Zn||(e=hr(e)),!e)return new Ar;if(e instanceof Ar)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 Ar(o,s,c,e.opacity)}function kr(e,t,n,r){return arguments.length===1?Or(e):new Ar(e,t,n,r??1)}function Ar(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Yn(Ar,kr,Xn(Zn,{brighter(e){return e=e==null?$n:$n**+e,new Ar(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Qn:Qn**+e,new Ar(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 br(Nr(e>=240?e-240:e+120,i,r),Nr(e,i,r),Nr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Ar(jr(this.h),Mr(this.s),Mr(this.l),wr(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=wr(this.opacity);return`${e===1?`hsl(`:`hsla(`}${jr(this.h)}, ${Mr(this.s)*100}%, ${Mr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function jr(e){return e=(e||0)%360,e<0?e+360:e}function Mr(e){return Math.max(0,Math.min(1,e||0))}function Nr(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 Pr=e=>()=>e;function Fr(e,t){return function(n){return e+n*t}}function Ir(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Lr(e){return(e=+e)==1?Rr:function(t,n){return n-t?Ir(t,n,e):Pr(isNaN(t)?n:t)}}function Rr(e,t){var n=t-e;return n?Fr(e,n):Pr(isNaN(e)?t:e)}var zr=function e(t){var n=Lr(t);function r(e,t){var r=n((e=yr(e)).r,(t=yr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Rr(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 Br(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 Vr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Hr(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]=Zr(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 Ur(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Wr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Gr(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]=Zr(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Kr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,qr=new RegExp(Kr.source,`g`);function Jr(e){return function(){return e}}function Yr(e){return function(t){return e(t)+``}}function Xr(e,t){var n=Kr.lastIndex=qr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Kr.exec(e))&&(i=qr.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:Wr(r,i)})),n=qr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Yr(c[0].x):Jr(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 Zr(e,t){var n=typeof t,r;return t==null||n===`boolean`?Pr(t):(n===`number`?Wr:n===`string`?(r=hr(t))?(t=r,zr):Xr:t instanceof hr?zr:t instanceof Date?Ur:Vr(t)?Br:Array.isArray(t)?Hr:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Gr:Wr)(e,t)}var Qr=180/Math.PI,$r={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ei(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)*Qr,skewX:Math.atan(c)*Qr,scaleX:o,scaleY:s}}var ti;function ni(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?$r:ei(t.a,t.b,t.c,t.d,t.e,t.f)}function ri(e){return e==null||(ti||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ti.setAttribute(`transform`,e),!(e=ti.transform.baseVal.consolidate()))?$r:(e=e.matrix,ei(e.a,e.b,e.c,e.d,e.e,e.f))}function ii(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:Wr(e,i)},{i:c-2,x:Wr(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:Wr(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:Wr(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:Wr(e,n)},{i:s-2,x:Wr(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 ai=ii(ni,`px, `,`px)`,`deg)`),oi=ii(ri,`, `,`)`,`)`),si=1e-12;function ci(e){return((e=Math.exp(e))+1/e)/2}function li(e){return((e=Math.exp(e))-1/e)/2}function ui(e){return((e=Math.exp(2*e))-1)/(e+1)}var di=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<si)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=ci(y),c=s/(n*g)*(i*ui(t*r+y)-li(y));return[a+c*d,o+c*f,s*i/ci(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),fi=0,pi=0,mi=0,hi=1e3,gi,_i,vi=0,yi=0,bi=0,xi=typeof performance==`object`&&performance.now?performance:Date,Si=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Ci(){return yi||=(Si(wi),xi.now()+bi)}function wi(){yi=0}function Ti(){this._call=this._time=this._next=null}Ti.prototype=Ei.prototype={constructor:Ti,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Ci():+n)+(t==null?0:+t),!this._next&&_i!==this&&(_i?_i._next=this:gi=this,_i=this),this._call=e,this._time=n,ji()},stop:function(){this._call&&(this._call=null,this._time=1/0,ji())}};function Ei(e,t,n){var r=new Ti;return r.restart(e,t,n),r}function Di(){Ci(),++fi;for(var e=gi,t;e;)(t=yi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--fi}function Oi(){yi=(vi=xi.now())+bi,fi=pi=0;try{Di()}finally{fi=0,Ai(),yi=0}}function ki(){var e=xi.now(),t=e-vi;t>hi&&(bi-=t,vi=e)}function Ai(){for(var e,t=gi,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:gi=n);_i=e,ji(r)}function ji(e){fi||(pi&&=clearTimeout(pi),e-yi>24?(e<1/0&&(pi=setTimeout(Oi,e-xi.now()-bi)),mi&&=clearInterval(mi)):(mi||=(vi=xi.now(),setInterval(ki,hi)),fi=1,Si(Oi)))}function Mi(e,t,n){var r=new Ti;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Ni=Oe(`start`,`end`,`cancel`,`interrupt`),Pi=[],Fi=0,Ii=1,Li=2,Ri=3,zi=4,Bi=5,Vi=6;function Hi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Ki(e,n,{name:t,index:r,group:i,on:Ni,tween:Pi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Fi})}function Ui(e,t){var n=Gi(e,t);if(n.state>Fi)throw Error(`too late; already scheduled`);return n}function Wi(e,t){var n=Gi(e,t);if(n.state>Ri)throw Error(`too late; already running`);return n}function Gi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Ki(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Ei(a,0,n.time);function a(e){n.state=Ii,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!==Ii)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===Ri)return Mi(o);f.state===zi?(f.state=Vi,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=Vi,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Mi(function(){n.state===Ri&&(n.state=zi,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=Li,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===Li){for(n.state=Ri,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=Bi,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===Bi&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=Vi,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function qi(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>Li&&r.state<Bi,r.state=Vi,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Ji(e){return this.each(function(){qi(this,e)})}function Yi(e,t){var n,r;return function(){var i=Wi(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 Xi(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Wi(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 Zi(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Gi(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?Yi:Xi)(n,e,t))}function Qi(e,t,n){var r=e._id;return e.each(function(){var e=Wi(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Gi(e,r).value[t]}}function $i(e,t){var n;return(typeof t==`number`?Wr:t instanceof hr?zr:(n=hr(t))?(t=n,zr):Xr)(e,t)}function ea(e){return function(){this.removeAttribute(e)}}function ta(e){return function(){this.removeAttributeNS(e.space,e.local)}}function na(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 ra(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 ia(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 aa(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 oa(e,t){var n=Fe(e),r=n===`transform`?oi:$i;return this.attrTween(e,typeof t==`function`?(n.local?aa:ia)(n,r,Qi(this,`attr.`+e,t)):t==null?(n.local?ta:ea)(n):(n.local?ra:na)(n,r,t))}function sa(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function ca(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function la(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&ca(e,i)),n}return i._value=t,i}function ua(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 da(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=Fe(e);return this.tween(n,(r.local?la:ua)(r,t))}function fa(e,t){return function(){Ui(this,e).delay=+t.apply(this,arguments)}}function pa(e,t){return t=+t,function(){Ui(this,e).delay=t}}function ma(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?fa:pa)(t,e)):Gi(this.node(),t).delay}function ha(e,t){return function(){Wi(this,e).duration=+t.apply(this,arguments)}}function ga(e,t){return t=+t,function(){Wi(this,e).duration=t}}function _a(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ha:ga)(t,e)):Gi(this.node(),t).duration}function va(e,t){if(typeof t!=`function`)throw Error();return function(){Wi(this,e).ease=t}}function ya(e){var t=this._id;return arguments.length?this.each(va(t,e)):Gi(this.node(),t).ease}function ba(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Wi(this,e).ease=n}}function xa(e){if(typeof e!=`function`)throw Error();return this.each(ba(this._id,e))}function Sa(e){typeof e!=`function`&&(e=qe(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 Za(r,this._parents,this._name,this._id)}function Ca(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 Za(o,this._parents,this._name,this._id)}function wa(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 Ta(e,t,n){var r,i,a=wa(t)?Ui:Wi;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ea(e,t){var n=this._id;return arguments.length<2?Gi(this.node(),n).on.on(e):this.each(Ta(n,e,t))}function Da(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Oa(){return this.on(`end.remove`,Da(this._id))}function ka(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Be(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,Hi(l[f],t,n,f,l,Gi(u,n)));return new Za(a,this._parents,t,n)}function Aa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=We(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=Gi(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Hi(p,t,n,h,f,m);a.push(f),o.push(u)}return new Za(a,o,t,n)}var ja=jn.prototype.constructor;function Ma(){return new ja(this._groups,this._parents)}function Na(e,t){var n,r,i;return function(){var a=Lt(this,e),o=(this.style.removeProperty(e),Lt(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Pa(e){return function(){this.style.removeProperty(e)}}function Fa(e,t,n){var r,i=n+``,a;return function(){var o=Lt(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ia(e,t,n){var r,i,a;return function(){var o=Lt(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Lt(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function La(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Wi(this,e),l=c.on,u=c.value[a]==null?s||=Pa(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Ra(e,t,n){var r=(e+=``)==`transform`?ai:$i;return t==null?this.styleTween(e,Na(e,r)).on(`end.style.`+e,Pa(e)):typeof t==`function`?this.styleTween(e,Ia(e,r,Qi(this,`style.`+e,t))).each(La(this._id,e)):this.styleTween(e,Fa(e,r,t),n).on(`end.style.`+e,null)}function za(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ba(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&za(e,a,n)),r}return a._value=t,a}function Va(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,Ba(e,t,n??``))}function Ha(e){return function(){this.textContent=e}}function Ua(e){return function(){var t=e(this);this.textContent=t??``}}function Wa(e){return this.tween(`text`,typeof e==`function`?Ua(Qi(this,`text`,e)):Ha(e==null?``:e+``))}function Ga(e){return function(t){this.textContent=e.call(this,t)}}function Ka(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Ga(r)),t}return r._value=e,r}function qa(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,Ka(e))}function Ja(){for(var e=this._name,t=this._id,n=Qa(),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=Gi(c,t);Hi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Za(r,this._parents,e,n)}function Ya(){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=Wi(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 Xa=0;function Za(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Qa(){return++Xa}var $a=jn.prototype;Za.prototype={constructor:Za,select:ka,selectAll:Aa,selectChild:$a.selectChild,selectChildren:$a.selectChildren,filter:Sa,merge:Ca,selection:Ma,transition:Ja,call:$a.call,nodes:$a.nodes,node:$a.node,size:$a.size,empty:$a.empty,each:$a.each,on:Ea,attr:oa,attrTween:da,style:Ra,styleTween:Va,text:Wa,textTween:qa,remove:Oa,tween:Zi,delay:ma,duration:_a,ease:ya,easeVarying:xa,end:Ya,[Symbol.iterator]:$a[Symbol.iterator]};function eo(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var to={time:null,delay:0,duration:250,ease:eo};function no(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function ro(e){var t,n;e instanceof Za?(t=e._id,e=e._name):(t=Qa(),(n=to).time=Ci(),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])&&Hi(c,e,t,l,o,n||no(c,t));return new Za(r,this._parents,e,t)}jn.prototype.interrupt=Ji,jn.prototype.transition=ro;var io=e=>()=>e;function ao(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 oo(e,t,n){this.k=e,this.x=t,this.y=n}oo.prototype={constructor:oo,scale:function(e){return e===1?this:new oo(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new oo(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 so=new oo(1,0,0);oo.prototype;function co(e){e.stopImmediatePropagation()}function lo(e){e.preventDefault(),e.stopImmediatePropagation()}function uo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function fo(){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 po(){return this.__zoom||so}function mo(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ho(){return navigator.maxTouchPoints||`ontouchstart`in this}function go(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 _o(){var e=uo,t=fo,n=go,r=mo,i=ho,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=di,l=Oe(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,po).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`,po),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(so.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 oo(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 oo(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 oo(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=Nn(this.that).datum();l.call(e,this.that,new ao(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=Fn(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)],qi(this),s.start();lo(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=Nn(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Fn(t,i),l=t.clientX,u=t.clientY;Bn(t.view),co(t),a.mouse=[c,this.__zoom.invert(c)],qi(this),a.start();function d(e){if(lo(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]=Fn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Vn(e.view,a.moved),lo(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Fn(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);lo(r),s>0?Nn(this).transition().duration(s).call(x,d,c,r):Nn(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(co(t),s=0;s<i;++s)c=r[s],l=Fn(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)),qi(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(lo(e),s=0;s<a;++s)c=i[s],l=Fn(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(co(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=Fn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Nn(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:io(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:io(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:io(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:io([[+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 J=(e=>(e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`,e))(J||{}),vo=(e=>(e.Partial=`partial`,e.Full=`full`,e))(vo||{}),yo=(e=>(e.Bezier=`default`,e.SimpleBezier=`simple-bezier`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e))(yo||{}),bo=(e=>(e.Strict=`strict`,e.Loose=`loose`,e))(bo||{}),xo=(e=>(e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`,e))(xo||{}),So=(e=>(e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(So||{}),Co=(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))(Co||{}),wo=[`INPUT`,`SELECT`,`TEXTAREA`],To=typeof document<`u`?document:null;function Eo(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 wo.includes(t?.nodeName)||n||!!r}function Do(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function Oo(e,t,n,r){let i=t.replace(`+`,`
|
|
1
|
+
import{$n as e,An as t,Bn as n,Cn as r,En as i,Gn as a,Gr as o,Hn as s,In as c,Jn as l,Kn as u,Kr as d,Ln as f,Mn as p,Nn as m,Pn as h,Qn as g,Rn as _,Sn as v,Sr as y,Tn as b,Un as x,Wr as S,Xn as C,Xr as w,Yn as T,Zn as E,_n as D,_r as O,br as k,cr as A,dr as j,fr as M,gr as N,hr as P,ir as F,jr as I,kn as L,lr as R,mr as ee,nr as z,or as B,pr as V,qn as H,rr as te,sr as U,tr as ne,wn as W,xn as G,xr as K,yr as q,zn as re}from"./element-plus-CosPN4uA.js";R(),c(),I();function ie(e){return A()?(V(e),!0):!1}function ae(e){return typeof e==`function`?e():y(e)}var oe=typeof window<`u`&&typeof document<`u`,se=e=>e!==void 0,ce=Object.prototype.toString,le=e=>ce.call(e)===`[object Object]`,ue=()=>{};function de(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 fe=e=>e();function pe(e=fe){let t=N(!0);function n(){t.value=!1}function r(){t.value=!0}return{isActive:P(t),pause:n,resume:r,eventFilter:(...n)=>{t.value&&e(...n)}}}function me(e,t=!1,n=`Timeout`){return new Promise((r,i)=>{setTimeout(t?()=>i(n):r,e)})}function he(e,t,n={}){let{eventFilter:r=fe,...i}=n;return z(e,de(r,t),i)}function ge(e,t,n={}){let{eventFilter:r,...i}=n,{eventFilter:a,pause:o,resume:s,isActive:c}=pe(r);return{stop:he(e,t,{...i,eventFilter:a}),pause:o,resume:s,isActive:c}}function _e(e,t={}){if(!j(e))return k(e);let n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(let r in e.value)n[r]=B(()=>({get(){return e.value[r]},set(n){if(ae(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 ve(e,t=!1){function n(n,{flush:r=`sync`,deep:i=!1,timeout:a,throwOnTimeout:o}={}){let s=null,c=[new Promise(a=>{s=z(e,e=>{n(e)!==t&&(s?.(),a(e))},{flush:r,deep:i,immediate:!0})})];return a!=null&&c.push(me(a,o).then(()=>ae(e)).finally(()=>s?.())),Promise.race(c)}function r(r,i){if(!j(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=z([e,r],([e,r])=>{t!==(e===r)&&(l?.(),n(e))},{flush:a,deep:o,immediate:!0})})];return s!=null&&u.push(me(s,c).then(()=>ae(e)).finally(()=>(l?.(),ae(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(ae(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(ae(e))?{toMatch:n,toContains:c,changed:l,changedTimes:u,get not(){return ve(e,!t)}}:{toMatch:n,toBe:r,toBeTruthy:i,toBeNull:a,toBeNaN:s,toBeUndefined:o,changed:l,changedTimes:u,get not(){return ve(e,!t)}}}function ye(e){return ve(e)}function be(e){let t=ae(e);return t?.$el??t}var xe=oe?window:void 0;function Se(...e){let t,n,r,i;if(typeof e[0]==`string`||Array.isArray(e[0])?([n,r,i]=e,t=xe):[t,n,r,i]=e,!t)return ue;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=z(()=>[be(t),ae(i)],([e,t])=>{if(o(),!e)return;let i=le(t)?{...t}:t;a.push(...n.flatMap(t=>r.map(n=>s(e,t,n,i))))},{immediate:!0,flush:`post`}),l=()=>{c(),o()};return ie(l),l}function Ce(e){return typeof e==`function`?e:typeof e==`string`?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function we(...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=xe,eventName:a=`keydown`,passive:o=!1,dedupe:s=!1}=r,c=Ce(t);return Se(i,a,e=>{e.repeat&&ae(s)||c(e)&&n(e)},o)}function Te(e){return JSON.parse(JSON.stringify(e))}function Ee(e,t,r,i={}){let{clone:a=!1,passive:o=!1,eventName:s,deep:c=!1,defaultValue:l,shouldEmit:u}=i,d=m(),f=r||d?.emit||(d?.$emit)?.bind(d)||(d?.proxy?.$emit)?.bind(d?.proxy),p=s;t||=`modelValue`,p||=`update:${t.toString()}`;let h=e=>a?typeof a==`function`?a(e):Te(e):e,g=()=>se(e[t])?h(e[t]):l,_=e=>{u?u(e)&&f(p,e):f(p,e)};if(o){let r=g(),i=N(r),a=!1;return z(()=>e[t],e=>{a||(a=!0,i.value=h(e),n(()=>a=!1))}),z(i,n=>{!a&&(n!==e[t]||c)&&_(n)},{deep:c}),i}return G({get(){return g()},set(e){_(e)}})}var De={value:()=>{}};function Oe(){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 ke(n)}function ke(e){this._=e}function Ae(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}})}ke.prototype=Oe.prototype={constructor:ke,on:function(e,t){var n=this._,r=Ae(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=je(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]=Me(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Me(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 ke(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 je(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Me(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=De,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Ne=`http://www.w3.org/1999/xhtml`,Pe={svg:`http://www.w3.org/2000/svg`,xhtml:Ne,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function Fe(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),Pe.hasOwnProperty(t)?{space:Pe[t],local:e}:e}function Ie(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Ne&&t.documentElement.namespaceURI===Ne?t.createElement(e):t.createElementNS(n,e)}}function Le(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Re(e){var t=Fe(e);return(t.local?Le:Ie)(t)}function ze(){}function Be(e){return e==null?ze:function(){return this.querySelector(e)}}function Ve(e){typeof e!=`function`&&(e=Be(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 An(r,this._parents)}function He(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Ue(){return[]}function We(e){return e==null?Ue:function(){return this.querySelectorAll(e)}}function Ge(e){return function(){return He(e.apply(this,arguments))}}function Ke(e){e=typeof e==`function`?Ge(e):We(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 An(r,i)}function qe(e){return function(){return this.matches(e)}}function Je(e){return function(t){return t.matches(e)}}var Ye=Array.prototype.find;function Xe(e){return function(){return Ye.call(this.children,e)}}function Ze(){return this.firstElementChild}function Qe(e){return this.select(e==null?Ze:Xe(typeof e==`function`?e:Je(e)))}var $e=Array.prototype.filter;function et(){return Array.from(this.children)}function tt(e){return function(){return $e.call(this.children,e)}}function nt(e){return this.selectAll(e==null?et:tt(typeof e==`function`?e:Je(e)))}function rt(e){typeof e!=`function`&&(e=qe(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 An(r,this._parents)}function it(e){return Array(e.length)}function at(){return new An(this._enter||this._groups.map(it),this._parents)}function ot(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}ot.prototype={constructor:ot,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 st(e){return function(){return e}}function ct(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 ot(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function lt(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 ot(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function ut(e){return e.__data__}function dt(e,t){if(!arguments.length)return Array.from(this,ut);var n=t?lt:ct,r=this._parents,i=this._groups;typeof e!=`function`&&(e=st(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=ft(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 An(o,r),o._enter=s,o._exit=c,o}function ft(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function pt(){return new An(this._exit||this._groups.map(it),this._parents)}function mt(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 ht(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 An(s,this._parents)}function gt(){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 _t(e){e||=vt;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 An(i,this._parents).order()}function vt(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function yt(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function bt(){return Array.from(this)}function xt(){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 St(){let e=0;for(let t of this)++e;return e}function Ct(){return!this.node()}function wt(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 Tt(e){return function(){this.removeAttribute(e)}}function Et(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Dt(e,t){return function(){this.setAttribute(e,t)}}function Ot(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function kt(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function At(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 jt(e,t){var n=Fe(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?Et:Tt:typeof t==`function`?n.local?At:kt:n.local?Ot:Dt)(n,t))}function Mt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Nt(e){return function(){this.style.removeProperty(e)}}function Pt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ft(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function It(e,t,n){return arguments.length>1?this.each((t==null?Nt:typeof t==`function`?Ft:Pt)(e,t,n??``)):Lt(this.node(),e)}function Lt(e,t){return e.style.getPropertyValue(t)||Mt(e).getComputedStyle(e,null).getPropertyValue(t)}function Rt(e){return function(){delete this[e]}}function zt(e,t){return function(){this[e]=t}}function Bt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Vt(e,t){return arguments.length>1?this.each((t==null?Rt:typeof t==`function`?Bt:zt)(e,t)):this.node()[e]}function Ht(e){return e.trim().split(/^|\s+/)}function Ut(e){return e.classList||new Wt(e)}function Wt(e){this._node=e,this._names=Ht(e.getAttribute(`class`)||``)}Wt.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 Gt(e,t){for(var n=Ut(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Kt(e,t){for(var n=Ut(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function qt(e){return function(){Gt(this,e)}}function Jt(e){return function(){Kt(this,e)}}function Yt(e,t){return function(){(t.apply(this,arguments)?Gt:Kt)(this,e)}}function Xt(e,t){var n=Ht(e+``);if(arguments.length<2){for(var r=Ut(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?Yt:t?qt:Jt)(n,t))}function Zt(){this.textContent=``}function Qt(e){return function(){this.textContent=e}}function $t(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function en(e){return arguments.length?this.each(e==null?Zt:(typeof e==`function`?$t:Qt)(e)):this.node().textContent}function tn(){this.innerHTML=``}function nn(e){return function(){this.innerHTML=e}}function rn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function an(e){return arguments.length?this.each(e==null?tn:(typeof e==`function`?rn:nn)(e)):this.node().innerHTML}function on(){this.nextSibling&&this.parentNode.appendChild(this)}function sn(){return this.each(on)}function cn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ln(){return this.each(cn)}function un(e){var t=typeof e==`function`?e:Re(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function dn(){return null}function fn(e,t){var n=typeof e==`function`?e:Re(e),r=t==null?dn:typeof t==`function`?t:Be(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function pn(){var e=this.parentNode;e&&e.removeChild(this)}function mn(){return this.each(pn)}function hn(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function gn(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function _n(e){return this.select(e?gn:hn)}function vn(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function yn(e){return function(t){e.call(this,t,this.__data__)}}function bn(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 xn(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 Sn(e,t,n){return function(){var r=this.__on,i,a=yn(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 Cn(e,t,n){var r=bn(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?Sn:xn,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function wn(e,t,n){var r=Mt(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 Tn(e,t){return function(){return wn(this,e,t)}}function En(e,t){return function(){return wn(this,e,t.apply(this,arguments))}}function Dn(e,t){return this.each((typeof t==`function`?En:Tn)(e,t))}function*On(){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 kn=[null];function An(e,t){this._groups=e,this._parents=t}function jn(){return new An([[document.documentElement]],kn)}function Mn(){return this}An.prototype=jn.prototype={constructor:An,select:Ve,selectAll:Ke,selectChild:Qe,selectChildren:nt,filter:rt,data:dt,enter:at,exit:pt,join:mt,merge:ht,selection:Mn,order:gt,sort:_t,call:yt,nodes:bt,node:xt,size:St,empty:Ct,each:wt,attr:jt,style:It,property:Vt,classed:Xt,text:en,html:an,raise:sn,lower:ln,append:un,insert:fn,remove:mn,clone:_n,datum:vn,on:Cn,dispatch:Dn,[Symbol.iterator]:On};function Nn(e){return typeof e==`string`?new An([[document.querySelector(e)]],[document.documentElement]):new An([[e]],kn)}function Pn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Fn(e,t){if(e=Pn(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 In={passive:!1},Ln={capture:!0,passive:!1};function Rn(e){e.stopImmediatePropagation()}function zn(e){e.preventDefault(),e.stopImmediatePropagation()}function Bn(e){var t=e.document.documentElement,n=Nn(e).on(`dragstart.drag`,zn,Ln);`onselectstart`in t?n.on(`selectstart.drag`,zn,Ln):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Vn(e,t){var n=e.document.documentElement,r=Nn(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,zn,Ln),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 Hn=e=>()=>e;function Un(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}})}Un.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Wn(e){return!e.ctrlKey&&!e.button}function Gn(){return this.parentNode}function Kn(e,t){return t??{x:e.x,y:e.y}}function qn(){return navigator.maxTouchPoints||`ontouchstart`in this}function Jn(){var e=Wn,t=Gn,n=Kn,r=qn,i={},a=Oe(`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`,_,In).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&&(Nn(n.view).on(`mousemove.drag`,m,Ln).on(`mouseup.drag`,h,Ln),Bn(n.view),Rn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(zn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Nn(e.view).on(`mousemove.drag mouseup.drag`,null),Vn(e.view,l),zn(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]))&&(Rn(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])&&(zn(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])&&(Rn(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Fn(l||r,t),p,m,h;if((h=n.call(e,new Un(`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=Fn(l||a,t),_=o}u.call(r,e,new Un(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:Hn(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Hn(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Hn(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Hn(!!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 Yn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Xn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Zn(){}var Qn=.7,$n=1/Qn,er=`\\s*([+-]?\\d+)\\s*`,tr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,nr=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,rr=/^#([0-9a-f]{3,8})$/,ir=RegExp(`^rgb\\(${er},${er},${er}\\)$`),ar=RegExp(`^rgb\\(${nr},${nr},${nr}\\)$`),or=RegExp(`^rgba\\(${er},${er},${er},${tr}\\)$`),sr=RegExp(`^rgba\\(${nr},${nr},${nr},${tr}\\)$`),cr=RegExp(`^hsl\\(${tr},${nr},${nr}\\)$`),lr=RegExp(`^hsla\\(${tr},${nr},${nr},${tr}\\)$`),ur={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};Yn(Zn,hr,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:dr,formatHex:dr,formatHex8:fr,formatHsl:pr,formatRgb:mr,toString:mr});function dr(){return this.rgb().formatHex()}function fr(){return this.rgb().formatHex8()}function pr(){return Or(this).formatHsl()}function mr(){return this.rgb().formatRgb()}function hr(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=rr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?gr(t):n===3?new br(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?_r(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?_r(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=ir.exec(e))?new br(t[1],t[2],t[3],1):(t=ar.exec(e))?new br(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=or.exec(e))?_r(t[1],t[2],t[3],t[4]):(t=sr.exec(e))?_r(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=cr.exec(e))?Dr(t[1],t[2]/100,t[3]/100,1):(t=lr.exec(e))?Dr(t[1],t[2]/100,t[3]/100,t[4]):ur.hasOwnProperty(e)?gr(ur[e]):e===`transparent`?new br(NaN,NaN,NaN,0):null}function gr(e){return new br(e>>16&255,e>>8&255,e&255,1)}function _r(e,t,n,r){return r<=0&&(e=t=n=NaN),new br(e,t,n,r)}function vr(e){return e instanceof Zn||(e=hr(e)),e?(e=e.rgb(),new br(e.r,e.g,e.b,e.opacity)):new br}function yr(e,t,n,r){return arguments.length===1?vr(e):new br(e,t,n,r??1)}function br(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Yn(br,yr,Xn(Zn,{brighter(e){return e=e==null?$n:$n**+e,new br(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Qn:Qn**+e,new br(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new br(Tr(this.r),Tr(this.g),Tr(this.b),wr(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:xr,formatHex:xr,formatHex8:Sr,formatRgb:Cr,toString:Cr}));function xr(){return`#${Er(this.r)}${Er(this.g)}${Er(this.b)}`}function Sr(){return`#${Er(this.r)}${Er(this.g)}${Er(this.b)}${Er((isNaN(this.opacity)?1:this.opacity)*255)}`}function Cr(){let e=wr(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Tr(this.r)}, ${Tr(this.g)}, ${Tr(this.b)}${e===1?`)`:`, ${e})`}`}function wr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Tr(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Er(e){return e=Tr(e),(e<16?`0`:``)+e.toString(16)}function Dr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ar(e,t,n,r)}function Or(e){if(e instanceof Ar)return new Ar(e.h,e.s,e.l,e.opacity);if(e instanceof Zn||(e=hr(e)),!e)return new Ar;if(e instanceof Ar)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 Ar(o,s,c,e.opacity)}function kr(e,t,n,r){return arguments.length===1?Or(e):new Ar(e,t,n,r??1)}function Ar(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Yn(Ar,kr,Xn(Zn,{brighter(e){return e=e==null?$n:$n**+e,new Ar(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Qn:Qn**+e,new Ar(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 br(Nr(e>=240?e-240:e+120,i,r),Nr(e,i,r),Nr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Ar(jr(this.h),Mr(this.s),Mr(this.l),wr(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=wr(this.opacity);return`${e===1?`hsl(`:`hsla(`}${jr(this.h)}, ${Mr(this.s)*100}%, ${Mr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function jr(e){return e=(e||0)%360,e<0?e+360:e}function Mr(e){return Math.max(0,Math.min(1,e||0))}function Nr(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 Pr=e=>()=>e;function Fr(e,t){return function(n){return e+n*t}}function Ir(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Lr(e){return(e=+e)==1?Rr:function(t,n){return n-t?Ir(t,n,e):Pr(isNaN(t)?n:t)}}function Rr(e,t){var n=t-e;return n?Fr(e,n):Pr(isNaN(e)?t:e)}var zr=function e(t){var n=Lr(t);function r(e,t){var r=n((e=yr(e)).r,(t=yr(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Rr(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 Br(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 Vr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Hr(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]=Zr(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 Ur(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Wr(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Gr(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]=Zr(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Kr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,qr=new RegExp(Kr.source,`g`);function Jr(e){return function(){return e}}function Yr(e){return function(t){return e(t)+``}}function Xr(e,t){var n=Kr.lastIndex=qr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Kr.exec(e))&&(i=qr.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:Wr(r,i)})),n=qr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Yr(c[0].x):Jr(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 Zr(e,t){var n=typeof t,r;return t==null||n===`boolean`?Pr(t):(n===`number`?Wr:n===`string`?(r=hr(t))?(t=r,zr):Xr:t instanceof hr?zr:t instanceof Date?Ur:Vr(t)?Br:Array.isArray(t)?Hr:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Gr:Wr)(e,t)}var Qr=180/Math.PI,$r={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ei(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)*Qr,skewX:Math.atan(c)*Qr,scaleX:o,scaleY:s}}var ti;function ni(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?$r:ei(t.a,t.b,t.c,t.d,t.e,t.f)}function ri(e){return e==null||(ti||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),ti.setAttribute(`transform`,e),!(e=ti.transform.baseVal.consolidate()))?$r:(e=e.matrix,ei(e.a,e.b,e.c,e.d,e.e,e.f))}function ii(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:Wr(e,i)},{i:c-2,x:Wr(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:Wr(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:Wr(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:Wr(e,n)},{i:s-2,x:Wr(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 ai=ii(ni,`px, `,`px)`,`deg)`),oi=ii(ri,`, `,`)`,`)`),si=1e-12;function ci(e){return((e=Math.exp(e))+1/e)/2}function li(e){return((e=Math.exp(e))-1/e)/2}function ui(e){return((e=Math.exp(2*e))-1)/(e+1)}var di=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<si)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=ci(y),c=s/(n*g)*(i*ui(t*r+y)-li(y));return[a+c*d,o+c*f,s*i/ci(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),fi=0,pi=0,mi=0,hi=1e3,gi,_i,vi=0,yi=0,bi=0,xi=typeof performance==`object`&&performance.now?performance:Date,Si=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Ci(){return yi||=(Si(wi),xi.now()+bi)}function wi(){yi=0}function Ti(){this._call=this._time=this._next=null}Ti.prototype=Ei.prototype={constructor:Ti,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Ci():+n)+(t==null?0:+t),!this._next&&_i!==this&&(_i?_i._next=this:gi=this,_i=this),this._call=e,this._time=n,ji()},stop:function(){this._call&&(this._call=null,this._time=1/0,ji())}};function Ei(e,t,n){var r=new Ti;return r.restart(e,t,n),r}function Di(){Ci(),++fi;for(var e=gi,t;e;)(t=yi-e._time)>=0&&e._call.call(void 0,t),e=e._next;--fi}function Oi(){yi=(vi=xi.now())+bi,fi=pi=0;try{Di()}finally{fi=0,Ai(),yi=0}}function ki(){var e=xi.now(),t=e-vi;t>hi&&(bi-=t,vi=e)}function Ai(){for(var e,t=gi,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:gi=n);_i=e,ji(r)}function ji(e){fi||(pi&&=clearTimeout(pi),e-yi>24?(e<1/0&&(pi=setTimeout(Oi,e-xi.now()-bi)),mi&&=clearInterval(mi)):(mi||=(vi=xi.now(),setInterval(ki,hi)),fi=1,Si(Oi)))}function Mi(e,t,n){var r=new Ti;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Ni=Oe(`start`,`end`,`cancel`,`interrupt`),Pi=[],Fi=0,Ii=1,Li=2,Ri=3,zi=4,Bi=5,Vi=6;function Hi(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Ki(e,n,{name:t,index:r,group:i,on:Ni,tween:Pi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Fi})}function Ui(e,t){var n=Gi(e,t);if(n.state>Fi)throw Error(`too late; already scheduled`);return n}function Wi(e,t){var n=Gi(e,t);if(n.state>Ri)throw Error(`too late; already running`);return n}function Gi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Ki(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Ei(a,0,n.time);function a(e){n.state=Ii,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!==Ii)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===Ri)return Mi(o);f.state===zi?(f.state=Vi,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=Vi,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(Mi(function(){n.state===Ri&&(n.state=zi,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=Li,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===Li){for(n.state=Ri,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=Bi,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===Bi&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=Vi,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function qi(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>Li&&r.state<Bi,r.state=Vi,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Ji(e){return this.each(function(){qi(this,e)})}function Yi(e,t){var n,r;return function(){var i=Wi(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 Xi(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Wi(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 Zi(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Gi(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?Yi:Xi)(n,e,t))}function Qi(e,t,n){var r=e._id;return e.each(function(){var e=Wi(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Gi(e,r).value[t]}}function $i(e,t){var n;return(typeof t==`number`?Wr:t instanceof hr?zr:(n=hr(t))?(t=n,zr):Xr)(e,t)}function ea(e){return function(){this.removeAttribute(e)}}function ta(e){return function(){this.removeAttributeNS(e.space,e.local)}}function na(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 ra(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 ia(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 aa(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 oa(e,t){var n=Fe(e),r=n===`transform`?oi:$i;return this.attrTween(e,typeof t==`function`?(n.local?aa:ia)(n,r,Qi(this,`attr.`+e,t)):t==null?(n.local?ta:ea)(n):(n.local?ra:na)(n,r,t))}function sa(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function ca(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function la(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&ca(e,i)),n}return i._value=t,i}function ua(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 da(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=Fe(e);return this.tween(n,(r.local?la:ua)(r,t))}function fa(e,t){return function(){Ui(this,e).delay=+t.apply(this,arguments)}}function pa(e,t){return t=+t,function(){Ui(this,e).delay=t}}function ma(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?fa:pa)(t,e)):Gi(this.node(),t).delay}function ha(e,t){return function(){Wi(this,e).duration=+t.apply(this,arguments)}}function ga(e,t){return t=+t,function(){Wi(this,e).duration=t}}function _a(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?ha:ga)(t,e)):Gi(this.node(),t).duration}function va(e,t){if(typeof t!=`function`)throw Error();return function(){Wi(this,e).ease=t}}function ya(e){var t=this._id;return arguments.length?this.each(va(t,e)):Gi(this.node(),t).ease}function ba(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Wi(this,e).ease=n}}function xa(e){if(typeof e!=`function`)throw Error();return this.each(ba(this._id,e))}function Sa(e){typeof e!=`function`&&(e=qe(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 Za(r,this._parents,this._name,this._id)}function Ca(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 Za(o,this._parents,this._name,this._id)}function wa(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 Ta(e,t,n){var r,i,a=wa(t)?Ui:Wi;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Ea(e,t){var n=this._id;return arguments.length<2?Gi(this.node(),n).on.on(e):this.each(Ta(n,e,t))}function Da(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Oa(){return this.on(`end.remove`,Da(this._id))}function ka(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Be(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,Hi(l[f],t,n,f,l,Gi(u,n)));return new Za(a,this._parents,t,n)}function Aa(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=We(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=Gi(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Hi(p,t,n,h,f,m);a.push(f),o.push(u)}return new Za(a,o,t,n)}var ja=jn.prototype.constructor;function Ma(){return new ja(this._groups,this._parents)}function Na(e,t){var n,r,i;return function(){var a=Lt(this,e),o=(this.style.removeProperty(e),Lt(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Pa(e){return function(){this.style.removeProperty(e)}}function Fa(e,t,n){var r,i=n+``,a;return function(){var o=Lt(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ia(e,t,n){var r,i,a;return function(){var o=Lt(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Lt(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function La(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Wi(this,e),l=c.on,u=c.value[a]==null?s||=Pa(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Ra(e,t,n){var r=(e+=``)==`transform`?ai:$i;return t==null?this.styleTween(e,Na(e,r)).on(`end.style.`+e,Pa(e)):typeof t==`function`?this.styleTween(e,Ia(e,r,Qi(this,`style.`+e,t))).each(La(this._id,e)):this.styleTween(e,Fa(e,r,t),n).on(`end.style.`+e,null)}function za(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ba(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&za(e,a,n)),r}return a._value=t,a}function Va(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,Ba(e,t,n??``))}function Ha(e){return function(){this.textContent=e}}function Ua(e){return function(){var t=e(this);this.textContent=t??``}}function Wa(e){return this.tween(`text`,typeof e==`function`?Ua(Qi(this,`text`,e)):Ha(e==null?``:e+``))}function Ga(e){return function(t){this.textContent=e.call(this,t)}}function Ka(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Ga(r)),t}return r._value=e,r}function qa(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,Ka(e))}function Ja(){for(var e=this._name,t=this._id,n=Qa(),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=Gi(c,t);Hi(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Za(r,this._parents,e,n)}function Ya(){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=Wi(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 Xa=0;function Za(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Qa(){return++Xa}var $a=jn.prototype;Za.prototype={constructor:Za,select:ka,selectAll:Aa,selectChild:$a.selectChild,selectChildren:$a.selectChildren,filter:Sa,merge:Ca,selection:Ma,transition:Ja,call:$a.call,nodes:$a.nodes,node:$a.node,size:$a.size,empty:$a.empty,each:$a.each,on:Ea,attr:oa,attrTween:da,style:Ra,styleTween:Va,text:Wa,textTween:qa,remove:Oa,tween:Zi,delay:ma,duration:_a,ease:ya,easeVarying:xa,end:Ya,[Symbol.iterator]:$a[Symbol.iterator]};function eo(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var to={time:null,delay:0,duration:250,ease:eo};function no(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function ro(e){var t,n;e instanceof Za?(t=e._id,e=e._name):(t=Qa(),(n=to).time=Ci(),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])&&Hi(c,e,t,l,o,n||no(c,t));return new Za(r,this._parents,e,t)}jn.prototype.interrupt=Ji,jn.prototype.transition=ro;var io=e=>()=>e;function ao(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 oo(e,t,n){this.k=e,this.x=t,this.y=n}oo.prototype={constructor:oo,scale:function(e){return e===1?this:new oo(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new oo(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 so=new oo(1,0,0);oo.prototype;function co(e){e.stopImmediatePropagation()}function lo(e){e.preventDefault(),e.stopImmediatePropagation()}function uo(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function fo(){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 po(){return this.__zoom||so}function mo(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ho(){return navigator.maxTouchPoints||`ontouchstart`in this}function go(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 _o(){var e=uo,t=fo,n=go,r=mo,i=ho,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=di,l=Oe(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,po).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`,po),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(so.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 oo(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 oo(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 oo(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=Nn(this.that).datum();l.call(e,this.that,new ao(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=Fn(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)],qi(this),s.start();lo(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=Nn(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Fn(t,i),l=t.clientX,u=t.clientY;Bn(t.view),co(t),a.mouse=[c,this.__zoom.invert(c)],qi(this),a.start();function d(e){if(lo(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]=Fn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Vn(e.view,a.moved),lo(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Fn(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);lo(r),s>0?Nn(this).transition().duration(s).call(x,d,c,r):Nn(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(co(t),s=0;s<i;++s)c=r[s],l=Fn(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)),qi(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(lo(e),s=0;s<a;++s)c=i[s],l=Fn(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(co(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=Fn(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Nn(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:io(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:io(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:io(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:io([[+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 J=(e=>(e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`,e))(J||{}),vo=(e=>(e.Partial=`partial`,e.Full=`full`,e))(vo||{}),yo=(e=>(e.Bezier=`default`,e.SimpleBezier=`simple-bezier`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e))(yo||{}),bo=(e=>(e.Strict=`strict`,e.Loose=`loose`,e))(bo||{}),xo=(e=>(e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`,e))(xo||{}),So=(e=>(e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`,e))(So||{}),Co=(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))(Co||{}),wo=[`INPUT`,`SELECT`,`TEXTAREA`],To=typeof document<`u`?document:null;function Eo(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 wo.includes(t?.nodeName)||n||!!r}function Do(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function Oo(e,t,n,r){let i=t.replace(`+`,`
|
|
2
2
|
`).replace(`
|
|
3
3
|
|
|
4
4
|
`,`
|
package/src/ui/public/index.html
CHANGED
|
@@ -10,28 +10,28 @@
|
|
|
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-CUUfiQYd.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-BZyAVTDj.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/element-plus-CosPN4uA.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/vendor-DSY591Nv.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-Birg7-Pq.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/SvgIcon-EoI0db7X.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/toolsStore-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/monaco-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/flow-mindmap-
|
|
25
|
-
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/vue-flow-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/configStore-DPzIt2AS.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/toolsStore-BjG-9k17.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/monaco-CJlef6w-.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/flow-mindmap-DY6jCfqE.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/CommonDialog-DrbQC1fm.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/vue-flow-CJFvg_oJ.js">
|
|
27
27
|
<link rel="stylesheet" crossorigin href="/assets/element-plus-D-6gla1z.css">
|
|
28
|
-
<link rel="stylesheet" crossorigin href="/assets/vendor-
|
|
28
|
+
<link rel="stylesheet" crossorigin href="/assets/vendor-2SbNafIY.css">
|
|
29
29
|
<link rel="stylesheet" crossorigin href="/assets/SvgIcon-CDNsk4-Q.css">
|
|
30
30
|
<link rel="stylesheet" crossorigin href="/assets/monaco-B2lPvkrc.css">
|
|
31
31
|
<link rel="stylesheet" crossorigin href="/assets/flow-mindmap-BwYC4xxV.css">
|
|
32
32
|
<link rel="stylesheet" crossorigin href="/assets/CommonDialog-w6EmBEXv.css">
|
|
33
33
|
<link rel="stylesheet" crossorigin href="/assets/vue-flow-CavUTEzp.css">
|
|
34
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
34
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BJJSr6Sb.css">
|
|
35
35
|
</head>
|
|
36
36
|
<body>
|
|
37
37
|
<div id="app"></div>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-C0FnF6B9.js";import{An as e,Bn as t,C as n,Cn as r,Dt as i,Et as a,Ft as o,Gn as s,Gt as c,Ht as l,In as u,J as d,Kr as f,M as p,Mn as m,Pn as h,Q as g,Qn as _,Rt as v,S as y,Sn as b,Tn as x,Un as ee,Vt as te,W as S,Wr as C,Xn as w,Xr as T,Y as E,Yn as D,_n as O,a as k,ar as A,at as j,ct as M,dn as N,en as ne,et as P,fn as F,gr as I,i as L,ir as R,j as re,jr as z,kn as B,ln as ie,lr as V,m as H,mn as ae,mr as oe,nr as U,on as W,pn as G,pt as se,qn as K,r as ce,w as le,wn as q,xn as J,xt as ue,yn as de}from"./element-plus-BeZBQw4X.js";import{o as fe,t as pe}from"./vendor-KxSgeiUX.js";import{n as Y,t as me}from"./_plugin-vue_export-helper-BFvqRHs6.js";import{d as he,m as ge,t as _e,u as ve}from"./configStore-BiJopZl2.js";import{t as ye}from"./CommonDialog-BLNGFUbf.js";import{Ct as be,L as xe,_ as Se,d as Ce,f as we,ft as Te,g as Ee,h as De,m as Oe,p as ke,v as Ae,wt as je,xt as Me}from"./index-B85tzLZT.js";import{a as Ne,c as Pe,i as Fe,n as Ie,o as Le,r as Re,s as ze,t as Be}from"./ChatSilenceBadge-DSIaadKb.js";import{s as Ve}from"./taskExecutionExport-CXKV0l1N.js";import{n as X,t as He}from"./TaskExecutorPicker-DPrm4ld1.js";async function Z(e,t){let n=await fetch(e,{headers:{"Content-Type":`application/json`},...t}),r={};try{r=await n.json()}catch{}if(!n.ok||r.success===!1)throw Error(r.error||`请求失败 (${n.status})`);return r}async function Q(){let e=await Z(`/api/schedules`);return Array.isArray(e.tasks)?e.tasks:[]}async function Ue(e){return(await Z(`/api/schedules`,{method:`POST`,body:JSON.stringify(e)})).task}async function We(e,t){return(await Z(`/api/schedules/${encodeURIComponent(e)}`,{method:`PUT`,body:JSON.stringify(t)})).task}async function Ge(e){await Z(`/api/schedules/${encodeURIComponent(e)}`,{method:`DELETE`})}async function Ke(e){await Z(`/api/schedules/${encodeURIComponent(e)}/run`,{method:`POST`})}async function qe(e){await Z(`/api/schedules/${encodeURIComponent(e)}/stop`,{method:`POST`})}function Je(e){if(typeof EventSource>`u`)return()=>{};let t=new EventSource(`/api/schedules/events`);return t.onmessage=t=>{try{e(JSON.parse(t.data))}catch{}},()=>t.close()}var Ye=e=>/^\d+$/.test(e)?Number(e):null;function Xe(e){let t=String(e||``).trim(),n=t.split(/\s+/);if(n.length!==5)return{kind:`custom`,raw:t};let[r,i,a,o,s]=n,c=Ye(r),l=Ye(i);if(t===`* * * * *`)return{kind:`every-minute`,raw:t};let u=r.match(/^\*\/(\d+)$/);if(u&&i===`*`&&a===`*`&&o===`*`&&s===`*`)return{kind:`every-n-minutes`,n:Number(u[1]),raw:t};if(c!==null&&i===`*`&&a===`*`&&o===`*`&&s===`*`)return{kind:`hourly`,minute:c,raw:t};if(c!==null&&l!==null&&a===`*`&&o===`*`&&s===`*`)return{kind:`daily`,hour:l,minute:c,raw:t};let d=Ye(s);if(c!==null&&l!==null&&a===`*`&&o===`*`&&d!==null)return{kind:`weekly`,weekday:d%7,hour:l,minute:c,raw:t};let f=Ye(a);return c!==null&&l!==null&&f!==null&&o===`*`&&s===`*`?{kind:`monthly`,day:f,hour:l,minute:c,raw:t}:{kind:`custom`,raw:t}}var $=e=>String(e).padStart(2,`0`),Ze=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();function Qe(e,t=new Date){if(!e)return{kind:`none`};let n=new Date(e);if(Number.isNaN(n.getTime()))return{kind:`none`};let r=`${$(n.getHours())}:${$(n.getMinutes())}`,i=Math.round((Ze(n)-Ze(t))/864e5);return i<0?{kind:`date`,date:`${n.getMonth()+1}-${$(n.getDate())}`,time:r}:i===0?{kind:`today`,time:r}:i===1?{kind:`tomorrow`,time:r}:i<7?{kind:`weekday`,weekday:n.getDay(),time:r}:{kind:`date`,date:`${n.getMonth()+1}-${$(n.getDate())}`,time:r}}function $e(e){switch(e){case`ok`:return`ok`;case`error`:case`timed-out`:return`error`;case`skipped-busy`:case`missed`:case`cancelled`:return`skipped`;default:return`pending`}}function et(e){let t=Number(e);if(!Number.isFinite(t)||t<0)return``;if(t<1e3)return`<1s`;let n=Math.round(t/1e3);if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m${$(n%60)}s`:`${Math.floor(r/60)}h${$(r%60)}m`}function tt(e){let t=Math.min(59,Math.max(0,Math.floor(e.minute))),n=Math.min(23,Math.max(0,Math.floor(e.hour))),r=(Math.floor(e.weekday)%7+7)%7;switch(e.freq){case`minutes`:return`*/${Math.min(59,Math.max(1,Math.floor(e.everyMinutes??30)))} * * * *`;case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${r}`;case`custom`:return String(e.custom||``).trim()}}var nt=`https://cdn.simpleicons.org`;function rt(e){return`https://github.com/${e}.png?size=64`}function it(e,t){return`${nt}/${e}${t?`/E8EAED`:``}`}var at=[[/chromedevtools|chrome-dev-tools/,`avatar:ChromeDevTools`],[/googlechrome|\bchrome\b/,`googlechrome`],[/\bfirefox\b/,`firefox`],[/puppeteer/,`puppeteer`],[/playwright/,`avatar:microsoft`],[/selenium/,`selenium`],[/cypress/,`cypress`],[/appium/,`appium`],[/browserstack/,`avatar:browserstack`],[/saucelabs/,`saucelabs`],[/storybook/,`storybook`],[/\bgithub\b|githubcopilot|githubactions/,`github`],[/\bgitlab\b/,`gitlab`],[/\bbitbucket\b/,`bitbucket`],[/context7/,`avatar:upstash`],[/modelcontextprotocol/,`avatar:modelcontextprotocol`],[/claude|anthropic/,`claude`],[/\bopenai\b|chatgpt/,`avatar:openai`],[/gemini|google\s*ai\b/,`googlegemini`],[/hugging\s*face/,`huggingface`],[/\bollama\b/,`ollama`],[/\bdify\b/,`dify`],[/\bn8n\b/,`n8n`],[/langchain/,`langchain`],[/perplexity/,`avatar:perplexityai`],[/\bexa\b/,`avatar:exa-labs`],[/firecrawl/,`avatar:firecrawl`],[/\be2b\b/,`avatar:e2b-dev`],[/browserbase/,`avatar:browserbase`],[/apify/,`avatar:apify`],[/postgres|postgresql/,`postgresql`],[/\bmysql\b|mariadb/,`mysql`],[/\bsqlite\b/,`sqlite`],[/mongodb|\bmongo\b/,`mongodb`],[/\bredis\b/,`redis`],[/elasticsearch|\belastic\b/,`elasticsearch`],[/clickhouse/,`clickhouse`],[/snowflake/,`snowflake`],[/databricks/,`databricks`],[/duckdb/,`duckdb`],[/influxdb/,`influxdb`],[/neo4j/,`neo4j`],[/cassandra/,`apachecassandra`],[/rabbitmq/,`rabbitmq`],[/kafka/,`apachekafka`],[/\bqdrant\b/,`qdrant`],[/weaviate/,`weaviate`],[/pinecone/,`avatar:pinecone`],[/planetscale/,`avatar:planetscale`],[/neondatabase|\bneon\b/,`avatar:neondatabase`],[/supabase/,`supabase`],[/firebase/,`firebase`],[/\bdbt\b/,`avatar:dbt-labs`],[/airflow/,`apacheairflow`],[/dagster/,`avatar:dagster-io`],[/prefect/,`prefect`],[/\bspark\b/,`apachespark`],[/hadoop/,`apachehadoop`],[/airbyte/,`airbyte`],[/bigquery/,`googlebigquery`],[/\baws\b|amazon\s*web\s*services|amazons3|amazondynamodb/,`avatar:aws`],[/azure/,`microsoftazure`],[/google\s*cloud|\bgcp\b/,`googlecloud`],[/cloudflare/,`cloudflare`],[/vercel/,`vercel`],[/netlify/,`netlify`],[/heroku/,`heroku`],[/digitalocean/,`digitalocean`],[/\bdocker\b/,`docker`],[/kubernetes|\bk8s\b|kubectl/,`kubernetes`],[/kubeflow/,`kubeflow`],[/terraform/,`terraform`],[/jenkins/,`jenkins`],[/circleci/,`circleci`],[/\bhelm\b/,`avatar:helm`],[/argocd|argo\s*cd/,`avatar:argoproj`],[/\bnginx\b/,`nginx`],[/\bapache\b/,`apache`],[/caddy/,`caddy`],[/traefik/,`traefikproxy`],[/haproxy/,`haproxy`],[/tailscale/,`tailscale`],[/\bngrok\b/,`ngrok`],[/\bconsul\b|hashicorp/,`hashicorp`],[/vault/,`hashicorp`],[/packer/,`packer`],[/virtualbox/,`virtualbox`],[/vmware/,`vmware`],[/grafana/,`grafana`],[/prometheus/,`prometheus`],[/datadog/,`datadog`],[/\bsentry\b/,`sentry`],[/splunk/,`splunk`],[/new\s*relic/,`newrelic`],[/pagerduty/,`pagerduty`],[/opsgenie/,`opsgenie`],[/home\s*assistant/,`homeassistant`],[/obsidian/,`obsidian`],[/notion/,`notion`],[/figma/,`figma`],[/\blinear\b/,`linear`],[/atlassian/,`atlassian`],[/\bjira\b/,`jira`],[/confluence/,`confluence`],[/airtable/,`airtable`],[/clickup/,`clickup`],[/asana/,`asana`],[/trello/,`trello`],[/basecamp/,`basecamp`],[/todoist/,`todoist`],[/zapier/,`zapier`],[/hubspot/,`hubspot`],[/zendesk/,`zendesk`],[/intercom/,`intercom`],[/mailchimp/,`mailchimp`],[/salesforce/,`avatar:salesforce`],[/slack/,`avatar:slack`],[/discord/,`discord`],[/telegram/,`telegram`],[/whatsapp/,`whatsapp`],[/gmail/,`gmail`],[/google\s*drive/,`googledrive`],[/google\s*sheets/,`googlesheets`],[/google\s*docs/,`googledocs`],[/google\s*maps/,`googlemaps`],[/google\s*calendar/,`googlecalendar`],[/youtube/,`youtube`],[/spotify/,`spotify`],[/twilio/,`avatar:twilio`],[/sendgrid/,`avatar:sendgrid`],[/mailgun/,`mailgun`],[/stripe/,`stripe`],[/paypal/,`paypal`],[/shopify/,`shopify`],[/posthog/,`avatar:posthog`],[/segment\b/,`avatar:segmentio`],[/amplitude/,`avatar:amplitude`],[/mixpanel/,`avatar:mixpanel`],[/contentful/,`contentful`],[/sanity/,`sanity`],[/wordpress|\bwp\b/,`wordpress`],[/ghost\b/,`ghost`],[/webflow/,`webflow`],[/framer/,`framer`],[/bitwarden/,`bitwarden`],[/proton\s*vpn/,`protonvpn`],[/1password/,`1password`],[/auth0/,`auth0`],[/okta/,`okta`],[/keycloak/,`keycloak`],[/clerk/,`avatar:clerk`],[/brave\b/,`brave`],[/duckduckgo/,`duckduckgo`],[/openapi|swagger/,`openapiinitiative`],[/graphql/,`graphql`],[/apollo/,`apollographql`],[/postman/,`postman`],[/insomnia/,`insomnia`],[/hoppscotch/,`hoppscotch`],[/\bcurl\b/,`curl`],[/react/,`react`],[/vue/,`vuedotjs`],[/angular/,`angular`],[/svelte/,`svelte`],[/next\.?js/,`nextdotjs`],[/nuxt/,`nuxtdotjs`],[/\bastro\b/,`astro`],[/tailwind/,`tailwindcss`],[/electron/,`electron`],[/flutter/,`flutter`],[/\bswift\b/,`swift`],[/typescript/,`typescript`],[/javascript/,`javascript`],[/python/,`python`],[/node\.?js/,`nodedotjs`],[/\bdeno\b/,`deno`],[/\bbun\b/,`bun`],[/\brust\b/,`rust`],[/\bgolang\b|\bgo\b/,`go`],[/pytorch|\btorch\b/,`pytorch`],[/tensorflow/,`tensorflow`],[/scikit|sklearn/,`scikitlearn`],[/mlflow/,`mlflow`],[/\bray\b/,`ray`],[/jupyter/,`jupyter`],[/\bvite\b/,`vite`],[/vitest/,`vitest`],[/eslint/,`eslint`],[/prettier/,`prettier`],[/\bjest\b/,`jest`],[/\bnpm\b/,`npm`],[/pnpm/,`pnpm`],[/\byarn\b/,`yarn`],[/homebrew/,`homebrew`],[/docusaurus/,`docusaurus`],[/readthedocs/,`readthedocs`],[/gitbook/,`gitbook`],[/markdown/,`markdown`],[/\blinux\b/,`linux`],[/ubuntu/,`ubuntu`],[/debian/,`debian`],[/apple|macos/,`apple`],[/windows/,`windows`],[/microsoft/,`microsoft`],[/\bteams\b/,`microsoftteams`],[/onedrive/,`onedrive`],[/power\s*bi/,`powerbi`],[/bing\b/,`bing`],[/google/,`google`],[/baidu/,`baidu`],[/bilibili/,`bilibili`],[/wechat|weixin/,`wechat`],[/alibaba|aliyun/,`alibabacloud`]],ot={url:``,letter:``,hue:0};function st(e){let t=String(e||``).trim();if(!t)return``;let n=t.match(/github\.com\/([^/\s]+)/i),r=n?n[1]:t.split(`/`)[0];return/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(r)?r:``}function ct(e){let t=0;for(let n=0;n<e.length;n++)t=(t*31+e.charCodeAt(n))%36e4;return t%360}function lt(e,t=!1){let n=String(e?.name||``).trim();if(!n)return ot;let r=[...n][0]?.toUpperCase()||``,i=ct(n.toLowerCase()),a=`${n} ${e?.package||``} ${e?.repository||``}`.toLowerCase();for(let[e,n]of at)if(e.test(a))return{url:n.startsWith(`avatar:`)?rt(n.slice(7)):it(n,t),letter:r,hue:i};let o=st(e?.repository||``);return o?{url:rt(o),letter:r,hue:i}:{url:``,letter:r,hue:i}}u(),V();var ut=4e3,dt=m({__name:`MarketplacePanel`,props:{type:{type:String,required:!0}},setup(e,{expose:t}){t();let n=e,r=_e(),i=I([]),o=I([]),s=I([]),u=I(!1),d=I(``),f=I(``),p=I([]),m=I(`project`),h=I(new Set),g=I(new Set),_=I(new Set),y=J(()=>r.currentDirectory||``),{theme:b}=Te(),x=J(()=>b.value===`dark`),S=I(new Set),C=new Map;function w(e){let t=C.get(e);t&&clearTimeout(t),C.delete(e)}function T(e){let t=B(e);lt(e,x.value).url&&(w(t),C.set(t,setTimeout(()=>{C.delete(t),S.value.add(t)},ut)))}ee(()=>{for(let e of C.values())clearTimeout(e);C.clear()});function E(e){let t=lt(e,x.value);return S.value.has(B(e))?{...t,url:``}:t}function D(e){w(B(e))}function O(e){w(B(e)),S.value.add(B(e))}let k=J(()=>i.value.reduce((e,t)=>e+(t.status===`ok`?t.items.length:0),0)),A=null;async function j(){try{let e=await(await fetch(`/api/agent/marketplace/sources?type=${n.type}`)).json();e?.success&&(o.value=e.sources||[])}catch{}}let N=!1;async function F(){if(u.value){N=!0;return}u.value=!0;try{let e=new URLSearchParams({type:n.type,cwd:y.value});f.value&&e.set(`q`,f.value),p.value.length&&e.set(`sources`,p.value.join(`,`));let t=await(await fetch(`/api/agent/marketplace/catalog?${e}`)).json();if(t?.success){i.value=t.groups||[],s.value=t.installed||[];for(let e of i.value)for(let t of e.items)T(t)}else L.error(t?.error||Y(`@MKT:加载失败`))}catch{L.error(Y(`@MKT:加载失败`))}finally{u.value=!1,N&&(N=!1,F())}}U(d,e=>{A&&clearTimeout(A),A=setTimeout(()=>{f.value=e.trim(),F()},400)}),U(p,()=>F(),{deep:!0}),U(()=>n.type,()=>{p.value=[],f.value=``,d.value=``,j(),F()}),U(y,()=>F()),j(),F();let R=J(()=>{let e=y.value?y.value.split(/[\\/]/).filter(Boolean).pop():``;return m.value===`project`?e||Y(`@MKT:当前项目`):Y(`@MKT:g ai 智能体`)});function re(e){return e.stars?`${z(e.stars)} ★`:e.downloads?`${z(e.downloads)} ${Y(`@MKT:周下载`)}`:e.uses?`${z(e.uses)} ${Y(`@MKT:次使用`)}`:``}function z(e){return e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}k`:String(e)}function B(e){return`${e.id}`}function ie(e){return h.value.has(B(e))}let V=J(()=>{let e={project:[],global:[]};for(let t of s.value)(e[t.target]||=[]).push(t);return e}),H=oe({visible:!1,item:null,env:{},args:``});function ae(e){return n.type===`mcp`&&(!!e.envKeys?.length||!!e.args?.length)}function W(e){H.item=e,H.env=Object.fromEntries((e.envKeys||[]).map(e=>[e,``])),H.args=(e.args||[]).join(` `),H.visible=!0}function G(){let e=H.item;if(H.visible=!1,!e)return;let t=Object.fromEntries(Object.entries(H.env).filter(([,e])=>e.trim()!==``)),n=H.args.trim()?H.args.trim().match(/(?:[^\s"]+|"[^"]*")+/g)?.map(e=>e.replace(/^"|"$/g,``))??void 0:void 0;le(e,{env:t,...n?{args:n}:{}})}async function K(e){if(!e.installed||await q(e)){if(ae(e)){W(e);return}await le(e,{})}}async function le(e,t){let r=B(e);h.value.add(r);try{let r=await fetch(`/api/agent/marketplace/install`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({type:n.type,target:m.value,cwd:y.value,item:{...e,...t}})}),i=await r.json().catch(()=>null);if(!r.ok||!i?.success){L.error(i?.error||Y(`@MKT:安装失败`));return}i.item?.warning&&L.warning(i.item.warning),i.item?.envKeys?.length?L.warning(`${Y(`@MKT:还缺环境变量`)}: ${i.item.envKeys.join(`, `)}`):L.success(Y(`@MKT:安装成功`)),await F()}catch{L.error(Y(`@MKT:安装失败`))}finally{h.value.delete(r)}}async function q(e){try{return await ce.confirm(`${e.name} ${Y(`@MKT:已安装,要重新安装吗?`)}`,Y(`@MKT:重新安装`),{confirmButtonText:Y(`@MKT:重装`),cancelButtonText:Y(`@MKT:取消`),type:`warning`}),!0}catch{return!1}}async function de(e){let t=`${e.target}:${e.id}`;_.value.add(t);try{let t=await fetch(`/api/agent/marketplace/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({type:n.type,target:e.target,cwd:y.value,id:e.id})}),r=await t.json().catch(()=>null);(!t.ok||!r?.success)&&L.error(r?.error||Y(`@MKT:打开失败`))}catch{L.error(Y(`@MKT:打开失败`))}finally{_.value.delete(t)}}async function fe(e){try{await ce.confirm(`${Y(`@MKT:确定卸载`)} ${e.name}?`,Y(`@MKT:卸载`),{confirmButtonText:Y(`@MKT:卸载`),cancelButtonText:Y(`@MKT:取消`),type:`warning`})}catch{return}let t=`${e.target}:${e.id}`;g.value.add(t);try{let t=new URLSearchParams({target:e.target,cwd:y.value}),r=await fetch(`/api/agent/marketplace/item/${n.type}/${encodeURIComponent(e.id)}?${t}`,{method:`DELETE`}),i=await r.json().catch(()=>null);if(!r.ok||!i?.success){L.error(i?.error||Y(`@MKT:卸载失败`));return}L.success(Y(`@MKT:已卸载`)),await F()}catch{L.error(Y(`@MKT:卸载失败`))}finally{g.value.delete(t)}}let pe={props:n,configStore:r,groups:i,sources:o,installed:s,loading:u,searchInput:d,query:f,selectedSources:p,installTarget:m,installing:h,removing:g,revealing:_,cwd:y,currentTheme:b,isDark:x,ICON_FALLBACK_MS:ut,iconErrors:S,iconTimers:C,settleIconTimer:w,scheduleIconFallback:T,iconOf:E,onIconLoad:D,onIconError:O,totalCount:k,get searchTimer(){return A},set searchTimer(e){A=e},loadSources:j,get reloadQueued(){return N},set reloadQueued(e){N=e},loadCatalog:F,targetLabel:R,metricText:re,formatCount:z,cardKey:B,isBusy:ie,installedByTarget:V,configDialog:H,needsConfig:ae,openConfigDialog:W,confirmConfig:G,onInstall:K,doInstall:le,confirmReinstall:q,onReveal:de,onRemove:fe,get $t(){return Y},get Search(){return te},get Refresh(){return v},get Delete(){return M},get Link(){return a},get Check(){return P},get Select(){return l},get Star(){return c},get Download(){return se},get Warning(){return ne},get FolderOpened(){return ue},CommonDialog:ye};return Object.defineProperty(pe,"__isScriptSetup",{enumerable:!1,value:!0}),pe}});u(),z(),W();var ft={class:`marketplace-panel`},pt={class:`mp-hero`},mt={class:`mp-hero-text`},ht={class:`mp-hero-title`},gt={class:`mp-hero-sub`},_t={class:`mp-hero-count`},vt={class:`mp-toolbar`},yt={class:`mp-search`},bt=[`placeholder`],xt={class:`mp-toolbar-sub`},St={class:`mp-target-hint`},Ct={class:`mp-source-filter`},wt=[`onClick`],Tt={class:`mp-body`},Et={class:`mp-group-header`},Dt={class:`mp-group-title`},Ot={key:0,class:`mp-group-count`},kt={key:1,class:`mp-group-error`},At=[`href`,`title`],jt={key:0,class:`mp-grid`},Mt=[`src`,`alt`,`onLoad`,`onError`],Nt={key:1},Pt={class:`mp-card-main`},Ft={class:`mp-card-head`},It=[`title`],Lt={key:1,class:`mp-card-metric`},Rt=[`title`],zt={class:`mp-card-meta`},Bt=[`title`],Vt=[`title`],Ht={key:2,class:`mp-tag remote`},Ut={class:`mp-card-foot`},Wt=[`href`],Gt={key:1,class:`mp-installed-chip`},Kt=[`disabled`,`onClick`],qt={key:3,class:`mp-not-installable`},Jt={key:1,class:`mp-empty`},Yt={key:0,class:`mp-group installed`},Xt={class:`mp-group-header`},Zt={class:`mp-group-title`},Qt={class:`mp-group-count`},$t={key:0,class:`mp-installed-block`},en={class:`mp-installed-target`},tn={class:`mp-installed-list`},nn=[`title`],rn=[`title`],an={key:1,class:`mp-meta-pkg`},on={key:2,class:`mp-tag warn`},sn=[`disabled`,`title`,`onClick`],cn=[`disabled`,`onClick`],ln={key:1,class:`mp-empty all`},un={key:0,class:`mkt-form`},dn={class:`mkt-form-name`},fn=[`onUpdate:modelValue`,`placeholder`],pn={key:0,class:`mkt-field`},mn={class:`mkt-hint`};function hn(t,n,i,a,o,s){let c=d,l=re,u=p,m=S,h=k;return K(),x(`div`,ft,[q(` ── 页头 ───────────────────────────────── `),b(`header`,pt,[b(`div`,mt,[b(`h2`,ht,T(i.type===`skill`?a.$t(`@MKT:Skill 广场`):a.$t(`@MKT:MCP 广场`)),1),b(`p`,gt,T(i.type===`skill`?a.$t(`@MKT:Skill 广场副标题`):a.$t(`@MKT:MCP 广场副标题`)),1)]),b(`span`,_t,T(i.type===`skill`?a.$t(`@MKT:共 {n} 个技能`,{n:a.totalCount}):a.$t(`@MKT:共 {n} 个服务`,{n:a.totalCount})),1)]),q(` ── 工具栏 ───────────────────────────────── `),b(`div`,vt,[b(`div`,yt,[e(c,{class:`mp-search-icon`},{default:R(()=>[e(a.Search)]),_:1}),A(b(`input`,{"onUpdate:modelValue":n[0]||=e=>a.searchInput=e,class:`mp-search-input`,type:`text`,placeholder:i.type===`skill`?a.$t(`@MKT:搜索 Skill...`):a.$t(`@MKT:搜索 MCP 服务...`)},null,8,bt),[[G,a.searchInput]])]),e(u,{modelValue:a.installTarget,"onUpdate:modelValue":n[1]||=e=>a.installTarget=e,size:`small`,class:`mp-target`},{default:R(()=>[e(l,{value:`project`},{default:R(()=>[B(T(a.$t(`@MKT:当前项目`)),1)]),_:1}),e(l,{value:`global`},{default:R(()=>[B(T(a.$t(`@MKT:g ai 智能体`)),1)]),_:1})]),_:1},8,[`modelValue`]),e(m,{content:a.$t(`@MKT:刷新`),placement:`top`,"show-after":300},{default:R(()=>[b(`button`,{class:C([`mp-refresh`,{spinning:a.loading}]),onClick:a.loadCatalog},[e(c,null,{default:R(()=>[e(a.Refresh)]),_:1})],2)]),_:1},8,[`content`])]),b(`div`,xt,[b(`span`,St,[B(T(a.$t(`@MKT:安装到`))+` `,1),b(`b`,null,T(a.targetLabel),1)]),b(`div`,Ct,[(K(!0),x(O,null,D(a.sources,e=>(K(),x(`button`,{key:e.id,class:C([`mp-chip`,{active:a.selectedSources.includes(e.id)}]),onClick:()=>{let t=a.selectedSources.indexOf(e.id);t>=0?a.selectedSources.splice(t,1):a.selectedSources.push(e.id)}},T(e.label),11,wt))),128)),a.selectedSources.length?(K(),x(`button`,{key:0,class:`mp-chip clear`,onClick:n[2]||=e=>a.selectedSources=[]},T(a.$t(`@MKT:全部来源`)),1)):q(`v-if`,!0)])]),q(` ── 内容 ─────────────────────────────────── `),A((K(),x(`div`,Tt,[(K(!0),x(O,null,D(a.groups,t=>(K(),x(`section`,{key:t.id,class:`mp-group`},[b(`header`,Et,[b(`h3`,Dt,T(t.label),1),t.status===`ok`?(K(),x(`span`,Ot,T(t.items.length),1)):(K(),x(`span`,kt,[e(c,null,{default:R(()=>[e(a.Warning)]),_:1}),B(` `+T(t.error||a.$t(`@MKT:来源不可用`)),1)])),t.homepage?(K(),x(`a`,{key:2,class:`mp-group-link`,href:t.homepage,target:`_blank`,rel:`noopener noreferrer`,title:t.homepage},[e(c,null,{default:R(()=>[e(a.Link)]),_:1})],8,At)):q(`v-if`,!0)]),t.status===`ok`&&t.items.length?(K(),x(`div`,jt,[(K(!0),x(O,null,D(t.items,t=>(K(),x(`article`,{key:a.cardKey(t),class:`mp-card`},[q(` 图标:品牌 logo(simple-icons / GitHub 组织头像)→ 首字母砖兜底 `),b(`div`,{class:C([`mp-card-icon`,{tile:!a.iconOf(t).url}]),style:f({"--tile-hue":String(a.iconOf(t).hue)})},[a.iconOf(t).url?(K(),x(`img`,{key:0,src:a.iconOf(t).url,alt:t.name,draggable:`false`,onLoad:e=>a.onIconLoad(t),onError:e=>a.onIconError(t)},null,40,Mt)):(K(),x(`span`,Nt,T(a.iconOf(t).letter),1))],6),b(`div`,Pt,[b(`div`,Ft,[b(`span`,{class:`mp-card-name`,title:t.name},T(t.name),9,It),t.verified?(K(),r(c,{key:0,class:`mp-verified`,title:a.$t(`@MKT:已验证`)},{default:R(()=>[e(a.Select)]),_:1},8,[`title`])):q(`v-if`,!0),a.metricText(t)?(K(),x(`span`,Lt,[e(c,null,{default:R(()=>[t.stars?(K(),r(a.Star,{key:0})):(K(),r(a.Download,{key:1}))]),_:2},1024),B(` `+T(a.metricText(t)),1)])):q(`v-if`,!0)]),b(`p`,{class:`mp-card-desc`,title:t.description},T(t.description||a.$t(`@MKT:暂无描述`)),9,Rt),b(`div`,zt,[t.package?(K(),x(`code`,{key:0,class:`mp-meta-pkg`,title:t.package},T(t.package),9,Bt)):t.repository?(K(),x(`span`,{key:1,class:`mp-meta-repo`,title:t.repository+(t.subpath?` · `+t.subpath:``)},[B(T(t.repository),1),t.subpath?(K(),x(O,{key:0},[B(` · `+T(t.subpath),1)],64)):q(`v-if`,!0)],8,Vt)):q(`v-if`,!0),t.transport===`remote`?(K(),x(`span`,Ht,T(a.$t(`@MKT:远程服务`)),1)):q(`v-if`,!0),(K(!0),x(O,null,D((t.tags||[]).slice(0,2),e=>(K(),x(`span`,{key:e,class:`mp-tag`},T(e),1))),128))]),b(`div`,Ut,[t.upstream?(K(),x(`a`,{key:0,class:`mp-card-link`,href:t.upstream,target:`_blank`,rel:`noopener noreferrer`},T(a.$t(`@MKT:查看来源`)),9,Wt)):q(`v-if`,!0),n[6]||=b(`span`,{class:`mp-foot-spacer`},null,-1),t.installed?(K(),x(`span`,Gt,[e(c,null,{default:R(()=>[e(a.Check)]),_:1}),B(T(a.$t(`@MKT:已安装`)),1)])):t.installable===!1?(K(),x(`span`,qt,T(a.$t(`@MKT:暂不支持一键安装`)),1)):(K(),x(`button`,{key:2,class:`mp-install-btn`,disabled:a.isBusy(t),onClick:e=>a.onInstall(t)},T(a.isBusy(t)?a.$t(`@MKT:安装中...`):a.$t(`@MKT:安装`)),9,Kt))])])]))),128))])):t.status===`ok`?(K(),x(`div`,Jt,T(a.$t(`@MKT:该来源暂无结果`)),1)):q(`v-if`,!0)]))),128)),q(` ── 已安装 ─────────────────────────────── `),a.installed.length?(K(),x(`section`,Yt,[b(`header`,Xt,[b(`h3`,Zt,T(a.$t(`@MKT:已安装`)),1),b(`span`,Qt,T(a.installed.length),1)]),(K(),x(O,null,D([`project`,`global`],t=>b(`div`,{key:t},[a.installedByTarget[t]?.length?(K(),x(`div`,$t,[b(`div`,en,T(t===`project`?a.$t(`@MKT:当前项目`):a.$t(`@MKT:g ai 智能体`)),1),b(`div`,tn,[(K(!0),x(O,null,D(a.installedByTarget[t],r=>(K(),x(`div`,{key:t+r.id,class:`mp-installed-row`},[b(`span`,{class:`mp-installed-name`,title:r.name},T(r.name),9,nn),q(` 实际落盘的标识:SKILL.md 里的 name 常与仓库名不同(如仓库 taste-skill
|
|
2
|
-
里的 skill 自称 brandkit),不显示这个用户就对不上广场卡片上的名字 `),r.id&&r.id!==r.name?(K(),x(`code`,{key:0,class:`mp-installed-id`,title:r.dir||r.file||r.id},T(r.id),9,rn)):q(`v-if`,!0),r.package?(K(),x(`code`,an,T(r.package),1)):q(`v-if`,!0),r.requiredEnv?.length?(K(),x(`span`,on,T(a.$t(`@MKT:待配置`))+`: `+T(r.requiredEnv.join(`, `)),1)):q(`v-if`,!0),n[7]||=b(`span`,{class:`mp-foot-spacer`},null,-1),b(`button`,{class:`mp-reveal-btn`,disabled:a.revealing.has(t+r.id),title:r.dir||r.file||``,onClick:e=>a.onReveal(r)},[e(c,null,{default:R(()=>[e(a.FolderOpened)]),_:1}),B(` `+T(a.$t(`@MKT:打开文件夹`)),1)],8,sn),b(`button`,{class:`mp-remove-btn`,disabled:a.removing.has(t+r.id),onClick:e=>a.onRemove(r)},[e(c,null,{default:R(()=>[e(a.Delete)]),_:1}),B(` `+T(a.removing.has(t+r.id)?a.$t(`@MKT:卸载中...`):a.$t(`@MKT:卸载`)),1)],8,cn)]))),128))])])):q(`v-if`,!0)])),64))])):q(`v-if`,!0),!a.loading&&!a.groups.length?(K(),x(`div`,ln,T(a.$t(`@MKT:加载失败`)),1)):q(`v-if`,!0)])),[[h,a.loading]]),q(` ── MCP 安装前配置 ───────────────────────── `),e(a.CommonDialog,{modelValue:a.configDialog.visible,"onUpdate:modelValue":n[5]||=e=>a.configDialog.visible=e,title:a.$t(`@MKT:配置 MCP`),width:`460px`,type:`flex`,"close-on-click-modal":!1,"append-to-body":``},{footer:R(()=>[b(`button`,{class:`mkt-cancel`,onClick:n[4]||=e=>a.configDialog.visible=!1},T(a.$t(`@MKT:取消`)),1),b(`button`,{class:`mkt-confirm`,onClick:a.confirmConfig},T(a.$t(`@MKT:安装`)),1)]),default:R(()=>[a.configDialog.item?(K(),x(`div`,un,[b(`p`,dn,T(a.configDialog.item.name),1),(K(!0),x(O,null,D(Object.keys(a.configDialog.env),e=>(K(),x(`div`,{key:e,class:`mkt-field`},[b(`label`,null,T(e),1),A(b(`input`,{"onUpdate:modelValue":t=>a.configDialog.env[e]=t,type:`text`,autocomplete:`off`,placeholder:a.$t(`@MKT:环境变量值`),spellcheck:`false`},null,8,fn),[[G,a.configDialog.env[e]]])]))),128)),a.configDialog.item.args?.length?(K(),x(`div`,pn,[b(`label`,null,T(a.$t(`@MKT:启动参数`)),1),A(b(`input`,{"onUpdate:modelValue":n[3]||=e=>a.configDialog.args=e,type:`text`,autocomplete:`off`,spellcheck:`false`},null,512),[[G,a.configDialog.args]]),b(`p`,mn,T(a.$t(`@MKT:参数提示`)),1)])):q(`v-if`,!0)])):q(`v-if`,!0)]),_:1},8,[`modelValue`,`title`])])}var gn=me(dt,[[`render`,hn],[`__scopeId`,`data-v-e9f9e851`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/MarketplacePanel.vue`]]);u(),V();var _n=m({__name:`SchedulePanel`,emits:[`open-session`],setup(e,{expose:t,emit:n}){t();let r=n,i=_e(),a=I([]),o=I(!0),c=I(``),l=I({}),u=null,d=null;async function f(){try{a.value=await Q(),c.value=``}catch(e){c.value=e?.message||String(e)}finally{o.value=!1}}function p(){d===null&&(d=window.setTimeout(()=>{d=null,f()},150))}s(async()=>{await f(),u=Je(e=>{[`tasks_changed`,`task_started`,`task_finished`,`hello`].includes(e.type)&&p()})}),ee(()=>{u?.(),d!==null&&window.clearTimeout(d)});let m=J(()=>{let e=a.value.filter(e=>e.enabled).length,t=a.value.length-e;return a.value.length?Y(`@SCHED:{on} 个启用 · {off} 个停用`,{on:e,off:t}):``}),h=[`@SCHED:周日`,`@SCHED:周一`,`@SCHED:周二`,`@SCHED:周三`,`@SCHED:周四`,`@SCHED:周五`,`@SCHED:周六`];function g(e){let t=Xe(e.schedule);switch(t.kind){case`every-minute`:return Y(`@SCHED:每分钟`);case`every-n-minutes`:return Y(`@SCHED:每 {n} 分钟`,{n:t.n});case`hourly`:return Y(`@SCHED:每小时第 {minute} 分钟`,{minute:t.minute});case`daily`:return Y(`@SCHED:每天 {time}`,{time:`${String(t.hour).padStart(2,`0`)}:${String(t.minute).padStart(2,`0`)}`});case`weekly`:return Y(`@SCHED:每周 {weekday} {time}`,{weekday:Y(h[t.weekday]),time:`${String(t.hour).padStart(2,`0`)}:${String(t.minute).padStart(2,`0`)}`});case`monthly`:return Y(`@SCHED:每月 {day} 日 {time}`,{day:t.day,time:`${String(t.hour).padStart(2,`0`)}:${String(t.minute).padStart(2,`0`)}`});default:return t.raw}}function _(e){if(!e.enabled)return Y(`@SCHED:已停用`);if(e.running)return Y(`@SCHED:运行中...`);let t=Qe(e.nextRunAt);switch(t.kind){case`none`:return``;case`today`:return Y(`@SCHED:下次 今天 {time}`,{time:t.time});case`tomorrow`:return Y(`@SCHED:下次 明天 {time}`,{time:t.time});case`weekday`:return Y(`@SCHED:下次 {weekday} {time}`,{weekday:Y(h[t.weekday]),time:t.time});case`date`:return Y(`@SCHED:下次 {date} {time}`,{date:t.date,time:t.time})}}function v(e){let t=e.lastRun;if(!t)return Y(`@SCHED:还没执行过`);switch(t.status){case`ok`:return Y(`@SCHED:成功`);case`error`:return Y(`@SCHED:失败`);case`timed-out`:return Y(`@SCHED:超时中止`);case`skipped-busy`:return Y(`@SCHED:已跳过(会话忙)`);case`missed`:return Y(`@SCHED:已错过(未运行)`);case`cancelled`:return Y(`@SCHED:已停止`);default:return t.status}}function y(e){let t=e.lastRun;if(!t)return Y(`@SCHED:还没执行过`);let n=et(t.durationMs),r=Y(`@SCHED:上次 {status}`,{status:v(e)});return n?`${r} · ${n}`:r}function b(e){return e.lastRun?`is-${$e(e.lastRun.status)}`:`is-muted`}async function x(e,t){if(!l.value[e.id]){l.value={...l.value,[e.id]:!0};try{await t(),await f()}catch(e){L.error(e?.message||String(e))}finally{let t={...l.value};delete t[e.id],l.value=t}}}function te(e){return x(e,()=>We(e.id,{enabled:!e.enabled}))}function S(e){return x(e,()=>Ke(e.id))}function C(e){return x(e,()=>qe(e.id))}let w=I(!1),T=I(null);function E(e){T.value=e,w.value=!0}async function D(){let e=T.value;if(e)try{await Ge(e.id),w.value=!1,await f()}catch(e){L.error(e?.message||String(e))}}let O=I(!1),k=I(``),A=I(``),j=I(!1),M=I({name:``,freq:`daily`,everyMinutes:30,minute:0,hour:9,weekday:1,custom:``,cwd:``,prompt:``,onMissed:`run`,enabled:!0}),N=J(()=>[{value:`minutes`,label:Y(`@SCHED:每 N 分钟`)},{value:`hourly`,label:Y(`@SCHED:每小时`)},{value:`daily`,label:Y(`@SCHED:每天`)},{value:`weekly`,label:Y(`@SCHED:每周`)},{value:`custom`,label:Y(`@SCHED:自定义 cron`)}]),ne=J(()=>tt({freq:M.value.freq,everyMinutes:M.value.everyMinutes,minute:M.value.minute,hour:M.value.hour,weekday:M.value.weekday,custom:M.value.custom}));function P(){M.value={name:``,freq:`daily`,everyMinutes:30,minute:0,hour:9,weekday:1,custom:``,cwd:i.currentDirectory||``,prompt:``,onMissed:`run`,enabled:!0},A.value=``}function F(){k.value=``,P(),O.value=!0}function R(e){k.value=e.id;let t=Xe(e.schedule),n={name:e.name,freq:`custom`,everyMinutes:30,minute:0,hour:9,weekday:1,custom:e.schedule,cwd:e.cwd,prompt:e.prompt,onMissed:e.onMissed===`skip`?`skip`:`run`,enabled:e.enabled};switch(t.kind){case`every-n-minutes`:n.freq=`minutes`,n.everyMinutes=t.n;break;case`hourly`:n.freq=`hourly`,n.minute=t.minute;break;case`daily`:n.freq=`daily`,n.minute=t.minute,n.hour=t.hour;break;case`weekly`:n.freq=`weekly`,n.minute=t.minute,n.hour=t.hour,n.weekday=t.weekday;break;default:n.freq=`custom`}M.value=n,A.value=``,O.value=!0}async function re(){let e=M.value;if(!e.name.trim()){A.value=Y(`@SCHED:任务名不能为空`);return}if(!e.prompt.trim()){A.value=Y(`@SCHED:提示词不能为空`);return}let t=ne.value;if(!t){A.value=Y(`@SCHED:cron 表达式不能为空`);return}let n={name:e.name.trim(),schedule:t,cwd:e.cwd.trim(),prompt:e.prompt.trim(),enabled:e.enabled,onMissed:e.onMissed};j.value=!0;try{k.value?await We(k.value,n):await Ue(n),O.value=!1,await f()}catch(e){A.value=e?.message||String(e)}finally{j.value=!1}}let z={emit:r,configStore:i,tasks:a,loading:o,errorMsg:c,pending:l,get disposeEvents(){return u},set disposeEvents(e){u=e},get refreshTimer(){return d},set refreshTimer(e){d=e},refresh:f,scheduleRefresh:p,summaryText:m,WEEKDAY_KEYS:h,descText:g,nextText:_,lastStatusText:v,lastText:y,lastClass:b,withPending:x,toggle:te,runNow:S,stop:C,confirmVisible:w,confirmTarget:T,askRemove:E,confirmRemove:D,formVisible:O,editingId:k,formError:A,saving:j,form:M,freqOptions:N,cronPreview:ne,resetForm:P,openCreate:F,openEdit:R,submitForm:re,get $t(){return Y},CommonDialog:ye};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}});z(),u(),W();var vn={class:`schedule-panel`},yn={class:`schedule-toolbar`},bn={class:`schedule-summary`},xn={key:0,class:`schedule-error`},Sn={key:1,class:`schedule-loading`},Cn={key:2,class:`schedule-empty`},wn={class:`schedule-empty-title`},Tn={class:`schedule-empty-desc`},En={key:3,class:`schedule-list`},Dn={class:`schedule-card-body`},On={class:`schedule-card-head`},kn={class:`schedule-name`},An={key:0,class:`schedule-running`},jn=[`aria-checked`,`aria-label`,`onClick`],Mn={class:`schedule-card-sub`},Nn={class:`schedule-desc`},Pn=[`onClick`],Fn={class:`schedule-card-side`},In={class:`schedule-actions`},Ln=[`disabled`,`onClick`],Rn=[`disabled`,`onClick`],zn=[`onClick`],Bn=[`onClick`],Vn={class:`sch-form`},Hn={class:`sch-field`},Un={class:`sch-field-label`},Wn=[`placeholder`],Gn={class:`sch-field`},Kn={class:`sch-field-label`},qn={class:`sch-freq-row`},Jn=[`value`],Yn={class:`sch-inline-label`},Xn=[`value`],Zn={class:`sch-inline-label`},Qn=[`value`],$n=[`value`],er=[`value`],tr={class:`sch-inline-label`},nr=[`value`],rr={class:`sch-inline-label`},ir=[`placeholder`],ar={class:`sch-hint`},or={class:`sch-field`},sr={class:`sch-field-label`},cr=[`placeholder`],lr={class:`sch-field`},ur={class:`sch-field-label`},dr=[`placeholder`],fr={class:`sch-field`},pr={class:`sch-field-label`},mr={class:`sch-radio-row`},hr={class:`sch-radio`},gr={class:`sch-radio`},_r={class:`sch-radio`},vr={key:0,class:`sch-form-error`},yr={class:`sch-form-footer`},br=[`disabled`],xr={class:`sch-confirm-text`},Sr={class:`sch-form-footer`};function Cr(t,n,r,i,a,o){return K(),x(`div`,vn,[b(`div`,yn,[b(`span`,bn,T(i.summaryText),1),b(`button`,{type:`button`,class:`sch-btn sch-btn-primary`,onClick:i.openCreate},T(i.$t(`@SCHED:新建任务`)),1)]),i.errorMsg?(K(),x(`div`,xn,T(i.$t(`@SCHED:操作失败:{error}`,{error:i.errorMsg})),1)):q(`v-if`,!0),i.loading?(K(),x(`div`,Sn,T(i.$t(`@SCHED:加载中...`)),1)):i.tasks.length?(K(),x(`div`,En,[(K(!0),x(O,null,D(i.tasks,e=>(K(),x(`article`,{key:e.id,class:C([`schedule-card`,{"is-disabled":!e.enabled,"is-running":!!e.running}])},[b(`div`,Dn,[b(`div`,On,[b(`span`,kn,T(e.name),1),e.running?(K(),x(`span`,An,T(i.$t(`@SCHED:运行中`)),1)):q(`v-if`,!0),b(`button`,{type:`button`,class:C([`sch-switch`,{on:e.enabled}]),role:`switch`,"aria-checked":e.enabled,"aria-label":e.enabled?i.$t(`@SCHED:停用`):i.$t(`@SCHED:启用`),onClick:t=>i.toggle(e)},[...n[17]||=[b(`span`,{class:`sch-switch-knob`},null,-1)]],10,jn)]),b(`div`,Mn,[b(`span`,Nn,T(i.descText(e)),1),n[18]||=b(`span`,{class:`schedule-sep`},`·`,-1),b(`span`,{class:C([`schedule-last`,i.lastClass(e)])},T(i.lastText(e)),3),e.sessionId?(K(),x(`button`,{key:0,type:`button`,class:`sch-link`,onClick:t=>i.emit(`open-session`,e.sessionId)},T(i.$t(`@SCHED:查看会话`)),9,Pn)):q(`v-if`,!0)])]),b(`div`,Fn,[b(`div`,{class:C([`schedule-next`,{"is-muted":!e.enabled}])},T(i.nextText(e)),3),b(`div`,In,[e.running?(K(),x(`button`,{key:0,type:`button`,class:`sch-btn`,disabled:!!i.pending[e.id],onClick:t=>i.stop(e)},T(i.$t(`@SCHED:停止`)),9,Ln)):(K(),x(`button`,{key:1,type:`button`,class:`sch-btn`,disabled:!!i.pending[e.id],onClick:t=>i.runNow(e)},T(i.$t(`@SCHED:运行`)),9,Rn)),b(`button`,{type:`button`,class:`sch-btn`,onClick:t=>i.openEdit(e)},T(i.$t(`@SCHED:编辑`)),9,zn),b(`button`,{type:`button`,class:`sch-btn sch-btn-danger`,onClick:t=>i.askRemove(e)},T(i.$t(`@SCHED:删除`)),9,Bn)])])],2))),128))])):(K(),x(`div`,Cn,[b(`p`,wn,T(i.$t(`@SCHED:还没有定时任务`)),1),b(`p`,Tn,T(i.$t(`@SCHED:让 g ai 在指定时间自动做事:定时拉代码、定时巡检、定时汇总。也可以在对话里直接说「每天 9 点帮我…」,让 g ai 来创建。`)),1)])),q(` 新建 / 编辑 `),e(i.CommonDialog,{modelValue:i.formVisible,"onUpdate:modelValue":n[14]||=e=>i.formVisible=e,title:i.editingId?i.$t(`@SCHED:编辑任务`):i.$t(`@SCHED:新建任务`),"close-on-click-modal":!1,"append-to-body":!0,size:`medium`,width:`560px`,"z-index":3e6,"custom-class":`schedule-dialog`},{default:R(()=>[b(`div`,Vn,[b(`label`,Hn,[b(`span`,Un,T(i.$t(`@SCHED:任务名`)),1),A(b(`input`,{"onUpdate:modelValue":n[0]||=e=>i.form.name=e,class:`sch-input`,type:`text`,placeholder:i.$t(`@SCHED:如:每日拉代码`)},null,8,Wn),[[G,i.form.name]])]),b(`div`,Gn,[b(`span`,Kn,T(i.$t(`@SCHED:执行计划`)),1),b(`div`,qn,[A(b(`select`,{"onUpdate:modelValue":n[1]||=e=>i.form.freq=e,class:`sch-input sch-select`},[(K(!0),x(O,null,D(i.freqOptions,e=>(K(),x(`option`,{key:e.value,value:e.value},T(e.label),9,Jn))),128))],512),[[F,i.form.freq]]),i.form.freq===`minutes`?(K(),x(O,{key:0},[b(`span`,Yn,T(i.$t(`@SCHED:每`)),1),A(b(`select`,{"onUpdate:modelValue":n[2]||=e=>i.form.everyMinutes=e,class:`sch-input sch-select sch-select-sm`},[(K(),x(O,null,D([5,10,15,20,30,60],e=>b(`option`,{key:e,value:e},T(e),9,Xn)),64))],512),[[F,i.form.everyMinutes,void 0,{number:!0}]]),b(`span`,Zn,T(i.$t(`@SCHED:分钟`)),1)],64)):i.form.freq===`daily`||i.form.freq===`weekly`?(K(),x(O,{key:1},[i.form.freq===`weekly`?A((K(),x(`select`,{key:0,"onUpdate:modelValue":n[3]||=e=>i.form.weekday=e,class:`sch-input sch-select sch-select-sm`},[(K(),x(O,null,D(i.WEEKDAY_KEYS,(e,t)=>b(`option`,{key:t,value:t},T(i.$t(e)),9,Qn)),64))],512)),[[F,i.form.weekday,void 0,{number:!0}]]):q(`v-if`,!0),A(b(`select`,{"onUpdate:modelValue":n[4]||=e=>i.form.hour=e,class:`sch-input sch-select sch-select-sm`},[(K(),x(O,null,D(24,e=>b(`option`,{key:e-1,value:e-1},T(String(e-1).padStart(2,`0`)),9,$n)),64))],512),[[F,i.form.hour,void 0,{number:!0}]]),n[19]||=b(`span`,{class:`sch-inline-label`},`:`,-1),A(b(`select`,{"onUpdate:modelValue":n[5]||=e=>i.form.minute=e,class:`sch-input sch-select sch-select-sm`},[(K(),x(O,null,D(60,e=>b(`option`,{key:e-1,value:e-1},T(String(e-1).padStart(2,`0`)),9,er)),64))],512),[[F,i.form.minute,void 0,{number:!0}]])],64)):i.form.freq===`hourly`?(K(),x(O,{key:2},[b(`span`,tr,T(i.$t(`@SCHED:第`)),1),A(b(`select`,{"onUpdate:modelValue":n[6]||=e=>i.form.minute=e,class:`sch-input sch-select sch-select-sm`},[(K(),x(O,null,D(60,e=>b(`option`,{key:e-1,value:e-1},T(String(e-1).padStart(2,`0`)),9,nr)),64))],512),[[F,i.form.minute,void 0,{number:!0}]]),b(`span`,rr,T(i.$t(`@SCHED:分钟`)),1)],64)):A((K(),x(`input`,{key:3,"onUpdate:modelValue":n[7]||=e=>i.form.custom=e,class:`sch-input sch-input-cron`,type:`text`,spellcheck:`false`,placeholder:i.$t(`@SCHED:如:0 9 * * 1-5`)},null,8,ir)),[[G,i.form.custom]])]),b(`span`,ar,T(i.$t(`@SCHED:cron:{cron}(分 时 日 月 周,本地时间)`,{cron:i.cronPreview||`—`})),1)]),b(`label`,or,[b(`span`,sr,T(i.$t(`@SCHED:项目目录`)),1),A(b(`input`,{"onUpdate:modelValue":n[8]||=e=>i.form.cwd=e,class:`sch-input`,type:`text`,spellcheck:`false`,placeholder:i.$t(`@SCHED:任务在该目录下执行(默认当前项目)`)},null,8,cr),[[G,i.form.cwd]])]),b(`label`,lr,[b(`span`,ur,T(i.$t(`@SCHED:提示词`)),1),A(b(`textarea`,{"onUpdate:modelValue":n[9]||=e=>i.form.prompt=e,class:`sch-input sch-textarea`,rows:`4`,placeholder:i.$t(`@SCHED:到点后发给 g ai 的完整指令,例如:检查所有仓库远端更新,有变更就 pull;写成一次自足的请求(未来那一轮没有现在的上下文)`)},null,8,dr),[[G,i.form.prompt]])]),b(`div`,fr,[b(`span`,pr,T(i.$t(`@SCHED:错过补偿`)),1),b(`div`,mr,[b(`label`,hr,[A(b(`input`,{"onUpdate:modelValue":n[10]||=e=>i.form.onMissed=e,type:`radio`,value:`run`},null,512),[[N,i.form.onMissed]]),b(`span`,null,T(i.$t(`@SCHED:补跑一次(g ui 重新运行后)`)),1)]),b(`label`,gr,[A(b(`input`,{"onUpdate:modelValue":n[11]||=e=>i.form.onMissed=e,type:`radio`,value:`skip`},null,512),[[N,i.form.onMissed]]),b(`span`,null,T(i.$t(`@SCHED:跳过`)),1)]),b(`label`,_r,[A(b(`input`,{"onUpdate:modelValue":n[12]||=e=>i.form.enabled=e,type:`checkbox`},null,512),[[ie,i.form.enabled]]),b(`span`,null,T(i.$t(`@SCHED:创建后启用`)),1)])])]),i.formError?(K(),x(`p`,vr,T(i.formError),1)):q(`v-if`,!0)]),b(`div`,yr,[b(`button`,{type:`button`,class:`sch-btn`,onClick:n[13]||=e=>i.formVisible=!1},T(i.$t(`@SCHED:取消`)),1),b(`button`,{type:`button`,class:`sch-btn sch-btn-primary`,disabled:i.saving,onClick:i.submitForm},T(i.saving?i.$t(`@SCHED:保存中...`):i.$t(`@SCHED:保存`)),9,br)])]),_:1},8,[`modelValue`,`title`]),q(` 删除确认 `),e(i.CommonDialog,{modelValue:i.confirmVisible,"onUpdate:modelValue":n[16]||=e=>i.confirmVisible=e,title:i.$t(`@SCHED:删除任务`),"close-on-click-modal":!1,"append-to-body":!0,size:`small`,width:`400px`,"z-index":3e6,"custom-class":`schedule-dialog-confirm`},{default:R(()=>[b(`p`,xr,T(i.$t(`@SCHED:确定删除「{name}」吗?已产生的会话会保留,但任务不再执行。`,{name:i.confirmTarget?.name||``})),1),b(`div`,Sr,[b(`button`,{type:`button`,class:`sch-btn`,onClick:n[15]||=e=>i.confirmVisible=!1},T(i.$t(`@SCHED:取消`)),1),b(`button`,{type:`button`,class:`sch-btn sch-btn-danger`,onClick:i.confirmRemove},T(i.$t(`@SCHED:删除`)),1)])]),_:1},8,[`modelValue`,`title`])])}var wr=me(_n,[[`render`,Cr],[`__scopeId`,`data-v-63dc658b`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/SchedulePanel.vue`]]);u(),V();var Tr=4e3,Er=m({__name:`AgentPromptSettings`,setup(e,{expose:t}){t();let n=_e(),{defaultPrompt:r,projectPrompts:i,loadOrchestrator:a,saveDefaultPrompt:o,saveProjectPrompt:c}=X(),l=I(``),u=I(!1),d=I(!1),f=J(()=>n.agentDefaultPrompt||``),p=J(()=>l.value.trim()!==f.value.trim());async function m(){if(!u.value&&p.value){u.value=!0;try{await n.saveAiSettings({agentDefaultPrompt:l.value})&&(l.value=f.value,d.value=!0,L.success(Y(`@AGENT:已保存 g ai 默认提示词`)))}finally{u.value=!1}}}let h=J(()=>n.currentDirectory||``),g=J(()=>je(h.value)||h.value),_=J(()=>{let e=be(h.value);return e&&i.value?.[e]?.prompt||``}),v=I(``),y=I(``),b=I(!1),x=I(!1),ee=I(!1),te=J(()=>v.value.trim()!==(r.value||``).trim()||!!h.value&&y.value.trim()!==_.value.trim());function S(){v.value=r.value||``,y.value=_.value}s(async()=>{l.value=f.value,S();let e=await a(!0);ee.value=!e,e&&S()});async function C(){if(!b.value&&te.value){b.value=!0;try{let e=!0,t=v.value.trim();t!==(r.value||``).trim()&&(e=await o(t));let n=y.value.trim();e&&h.value&&n!==_.value.trim()&&(e=await c(h.value,n)),e&&(S(),x.value=!0)}finally{b.value=!1}}}let w={configStore:n,defaultPrompt:r,projectPrompts:i,loadOrchestrator:a,saveDefaultPrompt:o,saveProjectPrompt:c,MAX_CHARS:Tr,gaiDraft:l,savingGai:u,gaiSaved:d,gaiStored:f,gaiDirty:p,saveGai:m,projectPath:h,projectName:g,projectPrompt:_,globalDraft:v,projectDraft:y,savingDispatch:b,dispatchSaved:x,dispatchLoadFailed:ee,dispatchDirty:te,syncDispatchDraft:S,saveDispatch:C,get $t(){return Y}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}});z(),u(),W();var Dr={class:`aps`},Or={class:`aps__scroll`},kr={class:`aps__head`},Ar={class:`aps__title`},jr={class:`aps__intro`},Mr={class:`aps__card aps__card--gai`},Nr={class:`aps__card-head`},Pr={class:`aps__card-title`},Fr={class:`aps__count`},Ir={class:`aps__hint`},Lr=[`placeholder`],Rr={class:`aps__foot`},zr={key:0,class:`aps__saved`},Br=[`disabled`],Vr={class:`aps__card aps__card--dispatch`},Hr={class:`aps__card-head`},Ur={class:`aps__card-title`},Wr={class:`aps__hint`},Gr={class:`aps__field`},Kr={class:`aps__card-head`},qr={class:`aps__label`,for:`aps-global`},Jr={class:`aps__count`},Yr=[`placeholder`],Xr={class:`aps__field`},Zr={class:`aps__card-head`},Qr={class:`aps__label`,for:`aps-project`},$r={key:0,class:`aps__count`},ei=[`disabled`,`placeholder`],ti={class:`aps__hint`},ni={class:`aps__foot`},ri={key:0,class:`aps__saved`},ii={key:1,class:`aps__saved`},ai=[`disabled`];function oi(e,t,n,r,i,a){return K(),x(`div`,Dr,[b(`div`,Or,[b(`header`,kr,[b(`h3`,Ar,T(r.$t(`@AGENT:提示词设置`)),1),b(`p`,jr,T(r.$t(`@AGENT:这里配的两块提示词,和 g ai 对话时每一轮都会自动带上。改完下一次发消息就生效,不用新开会话。`)),1)]),q(` ── ① g ai 智能体的默认提示词 ── `),b(`section`,Mr,[b(`div`,Nr,[b(`h4`,Pr,T(r.$t(`@AGENT:g ai 智能体的默认提示词`)),1),b(`span`,Fr,T(r.gaiDraft.length)+` / `+T(r.MAX_CHARS),1)]),b(`p`,Ir,T(r.$t(`@AGENT:只作用于 g ai 自己:每次对话都会带上(定时任务也一样)。派发出去的任务读不到这一段。`)),1),A(b(`textarea`,{id:`aps-gai`,"onUpdate:modelValue":t[0]||=e=>r.gaiDraft=e,class:`aps__area`,rows:`6`,maxlength:r.MAX_CHARS,placeholder:r.$t(`@AGENT:例如:回答用中文;改完代码先跑一遍验证再汇报;不要动 dist 目录`)},null,8,Lr),[[G,r.gaiDraft]]),b(`div`,Rr,[r.gaiSaved&&!r.gaiDirty?(K(),x(`span`,zr,T(r.$t(`@AGENT:已保存`)),1)):q(`v-if`,!0),t[3]||=b(`span`,{class:`aps__spacer`},null,-1),b(`button`,{type:`button`,class:`aps__btn aps__btn--primary`,disabled:r.savingGai||!r.gaiDirty,onClick:r.saveGai},T(r.savingGai?r.$t(`@AGENT:保存中…`):r.$t(`@AGENT:保存`)),9,Br)])]),q(` ── ② 派发任务的提示词 ── `),b(`section`,Vr,[b(`div`,Hr,[b(`h4`,Ur,T(r.$t(`@AGENT:派发任务的提示词`)),1)]),b(`p`,Wr,T(r.$t(`@AGENT:与工作台「预设提示词」是同一份设置,在哪边改都一样。派发任务时附加在指令之前,和 g ai 对话时也会带上。`)),1),b(`div`,Gr,[b(`div`,Kr,[b(`label`,qr,T(r.$t(`@AGENT:全局提示词`)),1),b(`span`,Jr,T(r.globalDraft.length)+` / `+T(r.MAX_CHARS),1)]),A(b(`textarea`,{id:`aps-global`,"onUpdate:modelValue":t[1]||=e=>r.globalDraft=e,class:`aps__area`,rows:`5`,maxlength:r.MAX_CHARS,placeholder:r.$t(`@AGENT:对所有项目生效。例如:回答用中文;改完代码必须跑一遍测试;不要动 dist 目录`)},null,8,Yr),[[G,r.globalDraft]])]),b(`div`,Xr,[b(`div`,Zr,[b(`label`,Qr,T(r.projectPath?r.$t(`@AGENT:「{name}」的项目提示词`,{name:r.projectName}):r.$t(`@AGENT:项目提示词`)),1),r.projectPath?(K(),x(`span`,$r,T(r.projectDraft.length)+` / `+T(r.MAX_CHARS),1)):q(`v-if`,!0)]),A(b(`textarea`,{id:`aps-project`,"onUpdate:modelValue":t[2]||=e=>r.projectDraft=e,class:`aps__area`,rows:`5`,maxlength:r.MAX_CHARS,disabled:!r.projectPath,placeholder:r.projectPath?r.$t(`@AGENT:只在这个项目派发/对话时附加。例如:包管理器用 pnpm;改动集中在 src/ui 下`):r.$t(`@AGENT:当前没有打开项目,项目级提示词暂时不能设置`)},null,8,ei),[[G,r.projectDraft]]),b(`p`,ti,T(r.projectPath?r.$t(`@AGENT:项目提示词追加在全局提示词之后(不覆盖全局),在「{name}」里派发或对话时一起带上`,{name:r.projectName}):r.$t(`@AGENT:先在左上角切到一个项目,才能设置它的提示词`)),1)]),b(`div`,ni,[r.dispatchSaved&&!r.dispatchDirty?(K(),x(`span`,ri,T(r.$t(`@AGENT:已保存`)),1)):r.dispatchLoadFailed?(K(),x(`span`,ii,T(r.$t(`@AGENT:读取设置失败,请稍后重试`)),1)):q(`v-if`,!0),t[4]||=b(`span`,{class:`aps__spacer`},null,-1),b(`button`,{type:`button`,class:`aps__btn aps__btn--primary`,disabled:r.savingDispatch||!r.dispatchDirty,onClick:r.saveDispatch},T(r.savingDispatch?r.$t(`@AGENT:保存中…`):r.$t(`@AGENT:保存`)),9,ai)])]),q(` 宿主追加的设置块(派发设置)。放在**同一个滚动容器**里:再开一个
|
|
3
|
-
flex:1 的兄弟节点会在窄面板里各分一半高度、各滚各的。 `),w(e.$slots,`default`,{},void 0,!0)])])}var si=me(Er,[[`render`,oi],[`__scopeId`,`data-v-f9ada51b`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/AgentPromptSettings.vue`]]);u();var ci=m({__name:`DispatchSettings`,setup(e,{expose:t}){t();let n=_e(),{availability:r,dispatchTarget:i,executorModelText:a,executorModelTitle:s}=Ve(),c=J(()=>n.ui.dispatchExecutorPriority),l=J(()=>n.ui.agentProactiveDispatch),u=J(()=>he.some(e=>!c.value.includes(e.id)));function d(e){n.saveDispatchSettings({dispatchExecutorPriority:e})}function f(e,t){let n=[...c.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],d(n))}function p(e){d(c.value.filter(t=>t!==e))}function m(e){typeof e==`string`&&(c.value.includes(e)||d([...c.value,e]))}function h(e){n.saveDispatchSettings({agentProactiveDispatch:e})}let _={configStore:n,availability:r,dispatchTarget:i,executorModelText:a,executorModelTitle:s,list:c,proactive:l,canAdd:u,persist:d,move:f,remove:p,add:m,toggleProactive:h,targetName:J(()=>ge(i.value)),get $t(){return Y},get ArrowUp(){return g},get ArrowDown(){return E},get Close(){return j},get Plus(){return o},get TASK_EXECUTOR_OPTIONS(){return he},get taskExecutorName(){return ge},TaskExecutorIcon:xe};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}});z(),u();var li={class:`dps`},ui={class:`dps__head`},di={class:`dps__title`},fi={class:`dps__intro`},pi={class:`dps__row dps__row--switch`},mi={class:`dps__row-main`},hi={class:`dps__row-name`},gi={class:`dps__row-hint`},_i={class:`dps__block`},vi={class:`dps__block-head`},yi={class:`dps__row-name`},bi={key:0,class:`dps__target`},xi={key:0,class:`dps__empty`},Si={key:1,class:`dps__list`},Ci={class:`dps__order`},wi={class:`dps__name`},Ti=[`title`],Ei={key:1,class:`dps__missing`},Di={class:`dps__actions`},Oi=[`disabled`,`title`,`aria-label`,`onClick`],ki=[`disabled`,`title`,`aria-label`,`onClick`],Ai=[`title`,`aria-label`,`onClick`],ji={type:`button`,class:`dps__add-btn`},Mi={class:`dps__add-item`},Ni={key:0,class:`dps__missing`},Pi={class:`dps__foot`};function Fi(t,i,a,o,s,c){let l=H,u=d,f=n,p=le,m=y;return K(),x(`section`,li,[b(`header`,ui,[b(`h3`,di,T(o.$t(`@AGENT:派发设置`)),1),b(`p`,fi,T(o.$t(`@AGENT:g ai 可以把活派给本地 CLI 执行器去做 —— 它们的 token 通常比主 agent 便宜。`)),1)]),q(` ① 主动派活 `),b(`div`,pi,[b(`div`,mi,[b(`span`,hi,T(o.$t(`@AGENT:让 g ai 主动派活`)),1),b(`span`,gi,T(o.$t(`@AGENT:遇到要改多个文件、跑构建测试这类活,它直接派出去,不再自己从头做;问答与单文件小改仍自己做。`)),1)]),e(l,{"model-value":o.proactive,class:`dps__switch`,"onUpdate:modelValue":o.toggleProactive},null,8,[`model-value`])]),q(` ② 执行器优先级 `),b(`div`,_i,[b(`div`,vi,[b(`span`,yi,T(o.$t(`@AGENT:派活执行器优先级`)),1),o.list.length?(K(),x(`span`,bi,T(o.$t(`@AGENT:当前会用:{name}`,{name:o.targetName})),1)):q(`v-if`,!0)]),o.list.length?(K(),x(`ul`,Si,[(K(!0),x(O,null,D(o.list,(t,n)=>(K(),x(`li`,{key:t,class:`dps__item`},[b(`span`,Ci,T(n+1),1),e(o.TaskExecutorIcon,{executor:t,class:`dps__icon`},null,8,[`executor`]),b(`span`,wi,T(o.taskExecutorName(t)),1),o.executorModelText(t)?(K(),x(`span`,{key:0,class:`dps__model`,title:o.executorModelTitle(t)},T(o.executorModelText(t)),9,Ti)):q(`v-if`,!0),o.availability[t]?q(`v-if`,!0):(K(),x(`span`,Ei,T(o.$t(`@42BB9:未安装`)),1)),b(`span`,Di,[b(`button`,{type:`button`,class:`dps__act`,disabled:n===0,title:o.$t(`@AGENT:往前挪一位`),"aria-label":o.$t(`@AGENT:往前挪一位`),onClick:e=>o.move(n,-1)},[e(u,null,{default:R(()=>[e(o.ArrowUp)]),_:1})],8,Oi),b(`button`,{type:`button`,class:`dps__act`,disabled:n===o.list.length-1,title:o.$t(`@AGENT:往后挪一位`),"aria-label":o.$t(`@AGENT:往后挪一位`),onClick:e=>o.move(n,1)},[e(u,null,{default:R(()=>[e(o.ArrowDown)]),_:1})],8,ki),b(`button`,{type:`button`,class:`dps__act dps__act--danger`,title:o.$t(`@AGENT:移出优先级`),"aria-label":o.$t(`@AGENT:移出优先级`),onClick:e=>o.remove(t)},[e(u,null,{default:R(()=>[e(o.Close)]),_:1})],8,Ai)])]))),128))])):(K(),x(`p`,xi,T(o.$t(`@AGENT:还没排优先级 —— 派活沿用下拉里选中的那个执行器。`)),1)),o.canAdd?(K(),r(m,{key:2,trigger:`click`,class:`dps__add`,onCommand:o.add},{dropdown:R(()=>[e(p,null,{default:R(()=>[(K(!0),x(O,null,D(o.TASK_EXECUTOR_OPTIONS.filter(e=>!o.list.includes(e.id)),t=>(K(),r(f,{key:t.id,command:t.id},{default:R(()=>[b(`span`,Mi,[e(o.TaskExecutorIcon,{executor:t.id,class:`dps__icon`},null,8,[`executor`]),b(`span`,null,T(t.name),1),o.availability[t.id]?q(`v-if`,!0):(K(),x(`span`,Ni,T(o.$t(`@42BB9:未安装`)),1))])]),_:2},1032,[`command`]))),128))]),_:1})]),default:R(()=>[b(`button`,ji,[e(u,null,{default:R(()=>[e(o.Plus)]),_:1}),b(`span`,null,T(o.$t(`@AGENT:添加执行器`)),1)])]),_:1})):q(`v-if`,!0),b(`p`,Pi,T(o.$t(`@AGENT:派活时从列表头开始,挑第一个本机已安装的执行器;一个都没装就沿用下拉里的选择。`)),1)])])}var Ii=me(ci,[[`render`,Fi],[`__scopeId`,`data-v-b4be44c7`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/components/DispatchSettings.vue`]]);u(),V();var Li=1100,Ri=640,zi=40,Bi=m({__name:`AgentView`,props:{contextFilePath:{type:String,required:!1},contextFileName:{type:String,required:!1},contextNote:{type:String,required:!1},forceNarrow:{type:Boolean,required:!1},view:{type:String,required:!1}},setup(e,{expose:n}){let r=e,a=_e(),o=Me(),{dispatchTarget:c,hasPriority:l,priority:u}=Ve(),f=J(()=>u.value.map(e=>ge(e)).join(` → `)),p=I(null),{width:g,narrow:_}=Ne(p),v=J(()=>r.forceNarrow===!0||_.value),y=J(()=>g.value>0&&g.value<Ri),b=I(`chat`),x=I(`chat`),te=J(()=>x.value===`mcp`?`mcp`:`skill`),S=(...e)=>m({render:()=>h(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},e.map(e=>h(`path`,{d:e})))}),C=J(()=>[{id:`chat`,label:Y(`@AGENT:对话`),icon:S(`M12 11v.01`,`M8 11v.01`,`M16 11v.01`,`M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3h-5l-5 3v-3h-2a3 3 0 0 1-3-3v-8a3 3 0 0 1 3-3l12 0`)},{id:`schedule`,label:Y(`@AGENT:定时任务`),icon:S(`M5 13a7 7 0 1 0 14 0a7 7 0 0 0-14 0`,`M14.5 10.5l-2.5 2.5`,`M17 8l1-1`,`M14 3h-4`)},{id:`skill`,label:Y(`@AGENT:Skill 广场`),icon:S(`M6.331 8h11.339a2 2 0 0 1 1.977 2.304l-1.255 8.152a3 3 0 0 1-2.966 2.544h-6.852a3 3 0 0 1-2.965-2.544l-1.255-8.152a2 2 0 0 1 1.977-2.304`,`M9 11v-5a3 3 0 0 1 6 0v5`)},{id:`mcp`,label:Y(`@AGENT:MCP 广场`),icon:S(`M7 12l5 5l-1.5 1.5a3.536 3.536 0 1 1-5-5l1.5-1.5`,`M17 12l-5-5l1.5-1.5a3.536 3.536 0 1 1 5 5l-1.5 1.5`,`M3 21l2.5-2.5`,`M18.5 5.5l2.5-2.5`,`M10 11l-2 2`,`M13 14l-2 2`)},{id:`settings`,label:Y(`@AGENT:设置`),icon:S(`M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065`,`M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0`)}]),{sessions:w,sessionsLoading:T,currentSessionId:E,messages:D,displayMessages:O,isStreaming:k,sessionLoading:A,loadSessions:j,loadSession:M,deleteSession:N,renameSession:ne,newSession:P,sendMessage:F,retryTurn:L,questionPanel:R,answeringQuestion:re,answerQuestion:z,isSessionGenerating:B,currentEngine:ie,pendingEngine:V,isEngineLocked:H,pickEngine:ae,stop:oe,inputContextUsage:W,queuedMessages:G,queuePaused:se,removeQueuedMessage:K,flushQueued:ce,silentMs:le}=ze(),q=J(()=>H.value?ie.value:V.value),ue=J(()=>q.value!==`gai`);function de(e){H.value||ae(e)}let me=J(()=>{let e=a.theme;return e===`dark`||e===`auto`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}),he=J(()=>{let e=a.models.find(e=>e.isDefault);return e&&(e.name||e.model)||``}),ye=J(()=>Ae(w.value,B)),be=De(),xe=J(()=>ye.value.find(e=>e.id===E.value)?.title||Y(`@AGENT:对话`)),Te={"--welcome-avatar":`url("${Ce}")`},je=I(null),X=I(null),Z=I(!1),Q=null,Ue=J(()=>!!r.contextFileName&&!Z.value);function We(e){return Array.from(e.children).find(e=>e.classList?.contains(`acu-input-attachments`))??null}function Ge(){let e=je.value?.querySelector(`.acu-input-wrap`);if(!e)return;let n=e.querySelector(`.agent-context-slot`);if(!Ue.value){if(!n)return;X.value=null,t(()=>n.remove());return}let r=X.value&&e.contains(X.value)?X.value:n;r||(r=document.createElement(`div`),r.className=`agent-context-slot`);let i=We(e),a=i??e;r.parentElement!==a&&a.insertBefore(r,i?i.firstChild:e.firstChild),X.value=r}function Ke(){let e=je.value;!e||typeof MutationObserver>`u`||(Q?.disconnect(),Q=new MutationObserver(()=>Ge()),Q.observe(e,{childList:!0,subtree:!0}))}s(()=>{t(()=>{Ge(),Ke()})}),ee(()=>{Q?.disconnect(),Q=null,X.value=null}),U(()=>r.contextFilePath,()=>{Z.value=!1}),U(Ue,e=>{e&&t(Ge)});let qe=J(()=>ve(a.agentPresetPrompts,r.view,a.agentPresetPromptsByView));async function Ye(e){let n=Z.value?void 0:r.contextFilePath||void 0,i=Z.value?void 0:r.contextNote||void 0,a={...n?{openFilePath:n}:{},...i?{docNote:i}:{},...ue.value?{}:{allowDispatch:!0,dispatchExecutor:c.value,dispatchUseDefaultPrompt:!0}};await F(e.text,e.files,Object.keys(a).length?a:void 0),await t(),$e()}async function Xe(e){await F(e.prompt),await t(),$e()}let $=Ee(),Ze=I(null),Qe=Se();function $e(e=!0){Ze.value?.scrollToBottom(e)}U(()=>D.value.length,()=>{t(()=>$e(!1))});function et(e){M(e),b.value=`chat`}function tt(e){e&&(x.value=`chat`,et(e))}function nt(){P(),b.value=`chat`}let rt=I(280),it=I(!1),{convListCollapsed:at,setConvListCollapsed:ot}=Fe();function st(e){if(at.value)return;it.value=!0;let t=e.clientX,n=rt.value,r=e=>{let r=e.clientX-t,i=Math.max(200,Math.min(500,n+r));rt.value=i},i=()=>{it.value=!1,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}U(v,e=>{e||(b.value=`chat`)}),U(()=>[a.currentDirectory,k.value],async([e,t],n)=>{let r=!n||e!==n[0],i=!!n&&n[1]===!0&&!t;(r||i)&&await j(),E.value&&!k.value&&!w.value.some(e=>e.sessionId===E.value)&&P()},{immediate:!0});let ct=null;s(()=>{ct=Je(e=>{e.type===`task_finished`&&j().catch(()=>{})})}),ee(()=>{ct?.(),ct=null}),n({async askQuestion(e,n){x.value=`chat`,b.value=`chat`,await F(e,[],n?{engine:`gai`,dirStatus:n.dirStatus,dirSummary:n.dirSummary}:void 0),await t(),$e()}});let lt={props:r,configStore:a,gitStore:o,dispatchTarget:c,hasPriority:l,priority:u,priorityChainTitle:f,rootRef:p,width:g,measuredNarrow:_,narrow:v,TABS_SILENCE_MIN_WIDTH:Li,TABS_COMPACT_MAX_WIDTH:Ri,tabsCompact:y,chatPage:b,activeTab:x,marketplaceType:te,tablerIcon:S,tabs:C,sessions:w,sessionsLoading:T,currentSessionId:E,messages:D,displayMessages:O,isStreaming:k,sessionLoading:A,loadSessions:j,loadSession:M,deleteSession:N,renameSession:ne,newSession:P,sendMessage:F,retryTurn:L,questionPanel:R,answeringQuestion:re,answerQuestion:z,isSessionGenerating:B,currentEngine:ie,pendingEngine:V,isEngineLocked:H,pickEngine:ae,stop:oe,inputContextUsage:W,queuedMessages:G,queuePaused:se,removeQueuedMessage:K,flushQueued:ce,silentMs:le,displayEngine:q,engineCantDispatch:ue,handleEngineSelect:de,chatTheme:me,inputModelName:he,conversationItems:ye,conversationLabels:be,currentSessionTitle:xe,welcomeAvatarStyle:Te,chatHostRef:je,contextSlot:X,contextDismissed:Z,get slotObserver(){return Q},set slotObserver(e){Q=e},showContextCard:Ue,findAttachmentsHost:We,syncContextSlot:Ge,watchChatDom:Ke,presetQuestions:qe,onSend:Ye,onSelectPreset:Xe,questionLabels:$,chatContainerRef:Ze,queueLabels:Qe,scrollToBottom:$e,selectSession:et,handleScheduleOpenSession:tt,handleNewSession:nt,sidebarWidth:rt,isResizing:it,convListCollapsed:at,setConvListCollapsed:ot,CONV_RAIL_WIDTH:zi,startResize:st,get disposeScheduleEvents(){return ct},set disposeScheduleEvents(e){ct=e},get $t(){return Y},get ElIcon(){return d},get Loading(){return i},get ChatContainer(){return fe},get ConversationList(){return pe},get AGENT_UPLOAD_ACCEPT(){return Le},get AGENT_ASSISTANT_NAME(){return we},get AGENT_ASSISTANT_AVATAR(){return Ce},get MESSAGE_RAIL_CONFIG(){return Oe},get MESSAGE_META_CONFIG(){return ke},get agentEngineName(){return Pe},MarketplacePanel:gn,SchedulePanel:wr,AgentPromptSettings:si,DispatchSettings:Ii,AgentEngineSelector:Re,TaskExecutorPicker:He,CopySessionButton:Ie,ChatSilenceBadge:Be};return Object.defineProperty(lt,"__isScriptSetup",{enumerable:!1,value:!0}),lt}});u(),W(),z();var Vi={ref:`rootRef`,class:`agent-view`},Hi={class:`agent-chat-area`},Ui={class:`agent-tabs`,role:`tablist`},Wi=[`aria-selected`,`title`,`aria-label`,`onClick`],Gi={key:0},Ki={class:`agent-tab-body`},qi={key:0,class:`agent-chat-pane`},Ji={key:0,class:`agent-list-page`},Yi={key:0,class:`agent-page-bar`},Xi=[`title`,`aria-label`],Zi={class:`agent-page-title`},Qi={key:0,class:`chat-loading`},$i=[`title`],ea={class:`agent-context-att-name`},ta=[`title`,`aria-label`],na={class:`agent-dispatch-foot`},ra={key:0,class:`agent-dispatch-notice`},ia={class:`agent-dispatch-label`},aa={class:`agent-dispatch-hint`};function oa(t,n,i,a,o,s){return K(),x(`div`,Vi,[q(` ═══ 宽屏:左侧会话列表(只在「对话」Tab 显示)═══
|
|
4
|
-
窄屏时这一整块不渲染,会话列表改成 body 里的一个整页(见 .agent-list-page)。
|
|
5
|
-
v-show 而非 v-if:切到定时/广场再回来,列表的滚动位置不丢(display:none
|
|
6
|
-
不占 flex 空间,布局与 v-if 逐像素一致)。 `),A(b(`aside`,{class:C([`agent-sidebar`,{"is-convs-collapsed":a.convListCollapsed}]),style:f({width:(a.convListCollapsed?a.CONV_RAIL_WIDTH:a.sidebarWidth)+`px`})},[q(` 会话列表:UI 与交互都在组件库的 ConversationList 里(含收起 / 展开) `),e(a.ConversationList,{class:`agent-conversations`,items:a.conversationItems,"active-id":a.currentSessionId,loading:a.sessionsLoading,labels:a.conversationLabels,collapsible:``,collapsed:a.convListCollapsed,"onUpdate:collapsed":a.setConvListCollapsed,onSelect:a.selectSession,onNew:a.handleNewSession,onRename:a.renameSession,onDelete:a.deleteSession},null,8,[`items`,`active-id`,`loading`,`labels`,`collapsed`,`onUpdate:collapsed`,`onRename`,`onDelete`])],6),[[ae,a.activeTab===`chat`&&!a.narrow]]),q(` 拖拽分隔条(收起时藏起来:40px 的收纳条没有可拖的余地) `),A(b(`div`,{class:C([`sidebar-resizer`,{active:a.isResizing}]),onMousedown:a.startResize},null,34),[[ae,a.activeTab===`chat`&&!a.narrow&&!a.convListCollapsed]]),q(` ═══ 右侧:Tab 栏 + 内容区 ═══ `),b(`main`,Hi,[b(`nav`,Ui,[(K(!0),x(O,null,D(a.tabs,t=>(K(),x(`button`,{key:t.id,type:`button`,class:C([`agent-tab`,{active:a.activeTab===t.id}]),role:`tab`,"aria-selected":a.activeTab===t.id,title:t.label,"aria-label":t.label,onClick:e=>a.activeTab=t.id},[e(a.ElIcon,null,{default:R(()=>[(K(),r(_(t.icon)))]),_:2},1024),q(` 紧凑态(dock 默认 560px 面板)只留图标,文字进 tooltip;
|
|
7
|
-
最大化后宽度 ≥680,恢复完整文字 tab `),a.tabsCompact?q(`v-if`,!0):(K(),x(`span`,Gi,T(t.label),1))],10,Wi))),128)),q(` ═══ 引擎选择器 ═══
|
|
8
|
-
与工作台执行器下拉同一套交互(点击展开、未安装标出来、点了直接开安装弹窗)。
|
|
9
|
-
下拉本体收口在 AgentEngineSelector,文件空间 g ai 面板复用同一份实现。
|
|
10
|
-
会话一旦落盘就置灰:引擎在会话建立时锁定(三家续聊标识互不通用),要换请新建。 `),a.activeTab===`chat`?(K(),r(a.AgentEngineSelector,{key:0,class:`agent-engine`,engine:a.displayEngine,locked:a.isEngineLocked,onSelect:a.handleEngineSelect},null,8,[`engine`,`locked`])):q(`v-if`,!0),q(` 复制整条会话(默认精简范围,小箭头可选全量)——与工作台的「复制执行内容」同一套口径 `),a.activeTab===`chat`&&!a.tabsCompact?(K(),r(a.CopySessionButton,{key:1,class:`agent-copy`,messages:a.messages,title:a.currentSessionTitle,engine:a.agentEngineName(a.displayEngine)},null,8,[`messages`,`title`,`engine`])):q(`v-if`,!0),q(` 本轮静默:挂在 Tab 行最右端(与引擎 / 复制同一条右对齐线)。
|
|
11
|
-
等回答时不算静默 —— 那一轮挂着是在等用户点选项(见 ChatSilenceBadge 文件头)。
|
|
12
|
-
紧凑态(dock 默认 560px 面板)也显示:图标行的剩余宽度放得下这枚 ~90px
|
|
13
|
-
徽标,而「静默 N 秒」正是用户盯着面板时最需要的信号;TABS_SILENCE_MIN_WIDTH
|
|
14
|
-
那条 1100px 门槛是给整行文字 tab 定的,紧凑行不适用。 `),a.activeTab===`chat`&&(a.tabsCompact||a.width>=a.TABS_SILENCE_MIN_WIDTH)?(K(),r(a.ChatSilenceBadge,{key:2,class:`agent-silence`,"silent-ms":a.silentMs,streaming:a.isStreaming&&!a.questionPanel},null,8,[`silent-ms`,`streaming`])):q(`v-if`,!0)]),b(`div`,Ki,[q(` ── 对话 ── `),a.activeTab===`chat`?(K(),x(`div`,qi,[q(` 窄屏 · 会话列表页:列表独占整页 `),a.narrow&&a.chatPage===`list`?(K(),x(`div`,Ji,[e(a.ConversationList,{class:`agent-conversations`,items:a.conversationItems,"active-id":a.currentSessionId,loading:a.sessionsLoading,labels:a.conversationLabels,onSelect:a.selectSession,onNew:a.handleNewSession,onRename:a.renameSession,onDelete:a.deleteSession},null,8,[`items`,`active-id`,`loading`,`labels`,`onRename`,`onDelete`])])):(K(),x(O,{key:1},[q(` 对话页(窄屏时顶上多一条返回条;宽屏左侧就摆着列表,不需要) `),a.narrow?(K(),x(`div`,Yi,[b(`button`,{type:`button`,class:`agent-page-back`,title:a.$t(`@AGENT:返回会话列表`),"aria-label":a.$t(`@AGENT:返回会话列表`),onClick:n[0]||=e=>a.chatPage=`list`},[...n[2]||=[b(`svg`,{viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[b(`line`,{x1:`19`,y1:`12`,x2:`5`,y2:`12`}),b(`polyline`,{points:`12 19 5 12 12 5`})],-1)]],8,Xi),b(`span`,Zi,T(a.currentSessionTitle),1)])):q(`v-if`,!0),q(`
|
|
15
|
-
对话宿主:单独开一层裁剪边界。
|
|
16
|
-
欢迎页在矮/窄窗口里会比可用高度还高,而它是垂直居中的 —— 溢出的部分
|
|
17
|
-
会**向上**跑出 .acu-chat,盖到刚加的返回条上(把返回条的点击也一起吃掉,
|
|
18
|
-
e2e 实测就是这个症状)。宿主的 overflow:hidden 把它裁在自己这一格里。
|
|
19
|
-
`),b(`div`,{class:`agent-chat-host`,ref:`chatHostRef`,style:a.welcomeAvatarStyle},[q(` 加载中 `),a.sessionLoading?(K(),x(`div`,Qi,[e(a.ElIcon,{class:`is-loading`,size:32},{default:R(()=>[e(a.Loading)]),_:1}),b(`span`,null,T(a.$t(`@AGENT:加载会话中...`)),1)])):(K(),x(O,{key:1},[q(` ChatContainer `),e(a.ChatContainer,{ref:`chatContainerRef`,messages:a.displayMessages,"preset-questions":a.presetQuestions,"welcome-title":a.$t(`@AGENT:智能体助手`),"welcome-description":a.$t(`@AGENT:我可以帮你阅读代码、执行命令、修改文件。选择下方话题或直接输入你的问题。`),"assistant-name":a.AGENT_ASSISTANT_NAME,"assistant-avatar":a.AGENT_ASSISTANT_AVATAR,theme:a.chatTheme,generating:a.isStreaming,"allow-queue":!0,queued:a.queuedMessages,"queue-paused":a.queuePaused,"queue-labels":a.queueLabels,"upload-config":{accept:a.AGENT_UPLOAD_ACCEPT},"context-usage":a.inputContextUsage,"git-branch":a.gitStore.currentBranch||void 0,model:a.inputModelName||void 0,placeholder:a.isStreaming?a.$t(`@AGENT:生成中,发送后会排队,等本轮跑完自动接上…`):a.$t(`@AGENT:输入消息,Enter 发送`),question:a.questionPanel,"question-submitting":a.answeringQuestion,"question-labels":a.questionLabels,"plan-config":{labels:{title:a.$t(`@AGENT:计划`),raw:a.$t(`@AGENT:原始参数`)}},"message-rail-config":a.MESSAGE_RAIL_CONFIG,"message-meta-config":a.MESSAGE_META_CONFIG,onSend:a.onSend,onSelect:a.onSelectPreset,onStop:a.stop,onUnqueue:a.removeQueuedMessage,onFlushQueued:a.flushQueued,onAnswer:a.answerQuestion,onRetry:a.retryTurn},null,8,`messages.preset-questions.welcome-title.welcome-description.assistant-name.assistant-avatar.theme.generating.queued.queue-paused.queue-labels.upload-config.context-usage.git-branch.model.placeholder.question.question-submitting.question-labels.plan-config.message-rail-config.message-meta-config.onStop.onUnqueue.onFlushQueued.onAnswer.onRetry`.split(`.`))],2112))],512)],64)),q(`
|
|
20
|
-
当前文档上下文卡:与添加的附件同处一行、同一副样子。
|
|
21
|
-
组件库的 ChatContainer / ChatInput 没有任何插槽,只能往 \`.acu-input-wrap\`
|
|
22
|
-
插一个锚点(syncContextSlot 负责),再把卡片 Teleport 进去;
|
|
23
|
-
有附件行时锚点住进它内部,卡片就是那一行的 flex item(详见 script 里那段)。
|
|
24
|
-
`),a.contextSlot?(K(),r(de,{key:2,to:a.contextSlot},[a.showContextCard?(K(),x(`div`,{key:0,class:`agent-context-att`,title:a.props.contextFilePath||``},[n[4]||=b(`svg`,{class:`agent-context-att-icon`,viewBox:`0 0 24 24`,width:`14`,height:`14`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.7`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[b(`path`,{d:`M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z`}),b(`polyline`,{points:`14 3 14 8 19 8`})],-1),b(`span`,ea,T(a.props.contextFileName),1),b(`button`,{type:`button`,class:`agent-context-att-remove`,title:a.$t(`@EDITOR:不引用当前文档`),"aria-label":a.$t(`@EDITOR:不引用当前文档`),onClick:n[1]||=e=>a.contextDismissed=!0},[...n[3]||=[b(`svg`,{viewBox:`0 0 24 24`,width:`10`,height:`10`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`,"stroke-linecap":`round`,"aria-hidden":`true`},[b(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),b(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,ta)],8,$i)):q(`v-if`,!0)],8,[`to`])):q(`v-if`,!0),q(` 派发执行器:dock 的对话就是"主 Agent"—— 聊着聊着可以直接把活派到看板
|
|
25
|
-
(服务端按请求里的 allowDispatch 注入 dispatch_task)。这一行交代"派出去的
|
|
26
|
-
活谁跑",与工作台指令栏共用同一份全局选择;外部 CLI 引擎不认识这个工具,
|
|
27
|
-
换成一句提示。 `),b(`div`,na,[a.engineCantDispatch?(K(),x(`p`,ra,T(a.$t(`@WORKBENCH:当前引擎「{name}」只能对话,不能派发任务 —— 切到内置 g ai 才能派活`,{name:a.agentEngineName(a.displayEngine)})),1)):(K(),x(O,{key:1},[b(`span`,ia,T(a.$t(`@WORKBENCH:派发执行器`)),1),e(a.TaskExecutorPicker,{readonly:a.hasPriority,value:a.dispatchTarget,title:a.hasPriority?a.$t(`@AGENT:按派发优先级挑选({chain})`,{chain:a.priorityChainTitle}):a.$t(`@WORKBENCH:它派出去的任务由这个执行器跑(与执行按钮的临时切换共用)`)},null,8,[`readonly`,`value`,`title`]),b(`span`,aa,T(a.hasPriority?a.$t(`@AGENT:按优先级挑,去「设置」里调整`):a.$t(`@WORKBENCH:任务会落到看板,跑完有完成提示`)),1)],64))])])):a.activeTab===`schedule`?(K(),x(O,{key:1},[q(` ── 定时任务 ── `),e(a.SchedulePanel,{onOpenSession:a.handleScheduleOpenSession})],2112)):a.activeTab===`skill`||a.activeTab===`mcp`?(K(),x(O,{key:2},[q(` ── Skill 广场 / MCP 广场 ── `),e(a.MarketplacePanel,{type:a.marketplaceType},null,8,[`type`])],2112)):(K(),x(O,{key:3},[q(` ── 设置(提示词设置)── `),e(a.AgentPromptSettings,null,{default:R(()=>[e(a.DispatchSettings)]),_:1})],2112))])])],512)}var sa=me(Bi,[[`render`,oa],[`__scopeId`,`data-v-bd681ddd`],[`__file`,`D:/workspace/github_workspace/zen-gitsync/src/ui/client/src/views/AgentView.vue`]]);export{sa as default};
|