@autocode-cli/autocode 0.22.0 → 0.23.0
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{DFQ30pd7.js → 4sw7JTbp.js} +1 -1
- package/.output/public/_nuxt/{BvF9_V7p.js → B6pOO9Bz.js} +1 -1
- package/.output/public/_nuxt/{DBuWa6JT.js → BAAVMorC.js} +1 -1
- package/.output/public/_nuxt/{BBgAVlXU.js → BJ-MtkWm.js} +1 -1
- package/.output/public/_nuxt/{CWENDdnZ.js → BJz8iexS.js} +1 -1
- package/.output/public/_nuxt/{DykwyQae.js → BMCm0zjc.js} +1 -1
- package/.output/public/_nuxt/{BvUbqlcZ.js → BU6KT1Jg.js} +1 -1
- package/.output/public/_nuxt/{FIIaIpPb.js → BXorvbPI.js} +1 -1
- package/.output/public/_nuxt/{DwfwVH0w.js → BdgB0Sk8.js} +1 -1
- package/.output/public/_nuxt/{QtPIr4OQ.js → BiqphZN8.js} +1 -1
- package/.output/public/_nuxt/{Bsd2P-Xc.js → Bn2y2u4i.js} +1 -1
- package/.output/public/_nuxt/{Bu1Qq2g-.js → BtXQIoy8.js} +1 -1
- package/.output/public/_nuxt/{DRo5NaOZ.js → Byshfb8L.js} +1 -1
- package/.output/public/_nuxt/{D8RlVVzC.js → C10TWEVH.js} +1 -1
- package/.output/public/_nuxt/{DU0awelf.js → C2rmiAJ1.js} +1 -1
- package/.output/public/_nuxt/{Zzp33YZj.js → CMIuQb6D.js} +1 -1
- package/.output/public/_nuxt/{jYigECdj.js → CTbIP459.js} +1 -1
- package/.output/public/_nuxt/{D4lcVP-d.js → ClY4a-PO.js} +1 -1
- package/.output/public/_nuxt/{CjVJcaTo.js → D0HHOq4k.js} +3 -3
- package/.output/public/_nuxt/{DYYF8rpr.js → D1JH-OfY.js} +1 -1
- package/.output/public/_nuxt/{Bxcwuw3U.js → D9fas07B.js} +1 -1
- package/.output/public/_nuxt/{DaYBQX26.js → DAd8dbng.js} +1 -1
- package/.output/public/_nuxt/{iHS1jy-1.js → DNMLSDtV.js} +1 -1
- package/.output/public/_nuxt/{_HJO0SwU.js → DbZiOpag.js} +1 -1
- package/.output/public/_nuxt/{TB1o0NrH.js → DuqM_LGj.js} +1 -1
- package/.output/public/_nuxt/{CoGBQbLh.js → DxFm2Qrx.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/35ace9c2-472c-4755-ae87-74fdb84336dd.json +1 -0
- package/.output/public/_nuxt/{BZUmpBmU.js → c4NRZ8AG.js} +1 -1
- package/.output/public/_nuxt/{BthlfLoK.js → g7WOzF8b.js} +1 -1
- package/.output/public/_nuxt/{TA-NBooC.js → kNuGsBnB.js} +1 -1
- package/.output/public/_nuxt/{DNUcHFTN.js → kZiZQgsI.js} +1 -1
- package/.output/public/_nuxt/{CTV7-Iux.js → mty-mFWB.js} +1 -1
- package/.output/public/_payload.json +1 -1
- package/.output/public/fake-features/cocktail-generator/cocktails.js +541 -0
- package/.output/public/fake-features/cocktail-generator/index.html +620 -0
- package/.output/public/index.html +1 -1
- package/.output/server/chunks/build/_name_-UJA12Rs2.mjs +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/fetch-B5NxMLIO.mjs +1 -1
- package/.output/server/chunks/build/nuxt-link-Cq8xZgFP.mjs +1 -1
- package/.output/server/chunks/build/server.mjs +3 -3
- package/.output/server/chunks/build/styles.mjs +7 -7
- package/.output/server/chunks/build/usePipeline-ZPHbtOs6.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +802 -379
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/_ws.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get2.mjs +6 -2
- package/.output/server/chunks/routes/api/index.get2.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
- package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs +1 -2
- package/.output/server/chunks/routes/api/issues/_id/comments.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/comments.post.mjs +1 -2
- package/.output/server/chunks/routes/api/issues/_id/comments.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/issues/_id/full-history.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/full-terminal.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/log.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history/_sessionId/prompt.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/history.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/log.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/move.post.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/_id/next.post.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/actionable.get.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/autocomplete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/issues/graph.get.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/activate.put.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/activate.put.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version/finalize.post.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions/_version_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions.get.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name/versions.post.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/pipelines/_name_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/stats.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workflow/health.get.mjs +1 -1
- package/.output/server/chunks/routes/api/ws/status.get.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/index.mjs +1 -1
- package/.output/server/node_modules/.prisma/client/index.js +6 -3
- package/.output/server/node_modules/.prisma/client/package.json +1 -1
- package/.output/server/package.json +1 -1
- package/bin/autocode +50 -0
- package/package.json +1 -1
- package/templates/prompts/_transition-decision.en.md +69 -0
- package/templates/prompts/_transition-decision.fr.md +69 -0
- package/templates/prompts/backlog.en.md +1 -3
- package/templates/prompts/backlog.fr.md +1 -3
- package/templates/prompts/changelog.en.md +1 -4
- package/templates/prompts/changelog.fr.md +1 -4
- package/templates/prompts/deploy-prod.en.md +1 -4
- package/templates/prompts/deploy-prod.fr.md +1 -4
- package/templates/prompts/deploy-staging.en.md +1 -4
- package/templates/prompts/deploy-staging.fr.md +1 -4
- package/templates/prompts/design.en.md +1 -4
- package/templates/prompts/design.fr.md +1 -4
- package/templates/prompts/dev.en.md +1 -4
- package/templates/prompts/dev.fr.md +1 -4
- package/templates/prompts/done.en.md +2 -3
- package/templates/prompts/done.fr.md +2 -3
- package/templates/prompts/git-commit.en.md +1 -4
- package/templates/prompts/git-commit.fr.md +1 -4
- package/templates/prompts/git-push.en.md +1 -4
- package/templates/prompts/git-push.fr.md +1 -4
- package/templates/prompts/git-tag.en.md +1 -4
- package/templates/prompts/git-tag.fr.md +1 -4
- package/templates/prompts/in-progress.en.md +2 -8
- package/templates/prompts/in-progress.fr.md +1 -7
- package/templates/prompts/qualification.en.md +1 -4
- package/templates/prompts/qualification.fr.md +0 -3
- package/templates/prompts/ready.en.md +3 -6
- package/templates/prompts/ready.fr.md +3 -6
- package/templates/prompts/retest-cypress.en.md +1 -4
- package/templates/prompts/retest-cypress.fr.md +1 -4
- package/templates/prompts/retest-playwright.en.md +1 -4
- package/templates/prompts/retest-playwright.fr.md +1 -4
- package/templates/prompts/retest-unit.en.md +1 -4
- package/templates/prompts/retest-unit.fr.md +1 -4
- package/templates/prompts/retest.en.md +1 -4
- package/templates/prompts/retest.fr.md +1 -4
- package/templates/prompts/review-best-practices.en.md +1 -4
- package/templates/prompts/review-best-practices.fr.md +1 -4
- package/templates/prompts/review-code.en.md +1 -4
- package/templates/prompts/review-code.fr.md +1 -4
- package/templates/prompts/review-consistency.en.md +1 -4
- package/templates/prompts/review-consistency.fr.md +1 -4
- package/templates/prompts/review-no-duplication.en.md +1 -4
- package/templates/prompts/review-no-duplication.fr.md +1 -4
- package/templates/prompts/review-security.en.md +1 -4
- package/templates/prompts/review-security.fr.md +1 -4
- package/templates/prompts/specification.en.md +1 -4
- package/templates/prompts/specification.fr.md +1 -4
- package/templates/prompts/splitter.en.md +1 -4
- package/templates/prompts/splitter.fr.md +0 -3
- package/templates/prompts/testing-cypress.en.md +1 -4
- package/templates/prompts/testing-cypress.fr.md +1 -4
- package/templates/prompts/testing-integration.en.md +1 -4
- package/templates/prompts/testing-integration.fr.md +1 -4
- package/templates/prompts/testing-playwright.en.md +1 -4
- package/templates/prompts/testing-playwright.fr.md +1 -4
- package/templates/prompts/testing-unit.en.md +1 -4
- package/templates/prompts/testing-unit.fr.md +1 -4
- package/templates/prompts/update-docs.en.md +1 -4
- package/templates/prompts/update-docs.fr.md +1 -4
- package/templates/prompts/validate-staging.en.md +1 -4
- package/templates/prompts/validate-staging.fr.md +1 -4
- package/.output/public/_nuxt/builds/meta/83d9a3fc-c99e-4e26-adef-e7f5b329b81a.json +0 -1
- package/.output/server/chunks/_/comments.service.mjs +0 -26
- package/.output/server/chunks/_/comments.service.mjs.map +0 -1
- /package/.output/public/_i18n/{zP5M_e1m → __ad3z6g}/en/messages.json +0 -0
- /package/.output/public/_i18n/{zP5M_e1m → __ad3z6g}/fr/messages.json +0 -0
package/.output/nitro.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as n,c as o,b as t,e as l,ap as a}from"./
|
|
1
|
+
import{_ as n,c as o,b as t,e as l,ap as a}from"./D0HHOq4k.js";const d={},r={class:"landing-layout"};function g(e,s){return t(),o("div",r,[s[0]||(s[0]=l("div",{class:"bg-grid"},null,-1)),s[1]||(s[1]=l("div",{class:"bg-glow bg-glow-1"},null,-1)),s[2]||(s[2]=l("div",{class:"bg-glow bg-glow-2"},null,-1)),a(e.$slots,"default",{},void 0,!0)])}const u=n(d,[["render",g],["__scopeId","data-v-7140fa30"]]);export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as be}from"./
|
|
1
|
+
import{_ as be}from"./C2rmiAJ1.js";import{d as we,x as xe,u as Ce,r as v,o as K,y as U,a as $e,v as H,m as j,s as Ie,c as a,e as r,j as p,t as u,f as q,w as G,h as o,n as Y,F as Q,p as X,b as l,g as S,z as N,q as A,_ as De}from"./D0HHOq4k.js";import{u as Se}from"./C10TWEVH.js";import{u as Ee}from"./BiqphZN8.js";import{u as Z}from"./Byshfb8L.js";import{u as Me}from"./CMIuQb6D.js";const Le={class:"kanban-page"},Te={class:"page-header"},Re={class:"header-actions"},ze={key:0,class:"loading"},Ne={key:1,class:"error-message"},Ae={key:2,class:"board-wrapper"},Fe=["onDragover","onDrop"],Pe={class:"column-header"},Ve={class:"column-header-top"},Oe={class:"column-title"},We={class:"column-count"},Be={key:0,class:"wip-limit"},Je={class:"column-content"},Ke={key:0,class:"column-empty"},Ue=["onDragstart","onClick"],He={class:"issue-header"},je={class:"issue-key"},qe={key:0,class:"processing-indicator",title:"Claude is working..."},Ge=["onClick"],Ye={class:"issue-title"},Qe={class:"issue-meta"},Xe={key:1,class:"parent-indicator",title:"Has parent"},Ze=["onClick"],ee=5,es=we({__name:"kanban",async setup(ss){let f,x;const se=xe(),{t:C}=Ce(),{success:E,error:M}=Se(),{getErrorMessage:L}=Ee(),b=v(null),h=v(null),F=v(0);let _=!1;const te=()=>{_||!b.value||!h.value||(_=!0,h.value.scrollLeft=b.value.scrollLeft,_=!1)},ne=()=>{_||!b.value||!h.value||(_=!0,b.value.scrollLeft=h.value.scrollLeft,_=!1)},$=()=>{h.value&&(F.value=h.value.scrollWidth)};K(()=>{U($),window.addEventListener("resize",$)}),$e(()=>{window.removeEventListener("resize",$)});const P=v({}),g=v(null),m=v(null),T=v(!1),V=v(0),k=v(new Set),d=v({visible:!1,x:0,y:0,issue:null}),{data:c,status:oe,error:O}=([f,x]=H(()=>Z("/api/columns","$35IWyimU8j")),f=await f,x(),f),{data:y,status:ae,error:W,refresh:R}=([f,x]=H(()=>Z("/api/issues","$0eQrGqHYDa")),f=await f,x(),f);j(()=>c.value,()=>U($));const w=e=>y.value?y.value.filter(s=>s.column_slug===e):[],I=e=>P.value[e]??ee,re=e=>{const s=w(e),n=I(e);return s.slice(0,n)},le=e=>{const s=w(e),n=I(e);return s.length>n},ie=e=>{const s=w(e),n=I(e);return Math.max(0,s.length-n)},ue=e=>{const s=I(e);P.value[e]=s+ee},ce=e=>{const s=Date.now()-V.value;(!T.value||s<150)&&se.push(`/issue/${e}`)},de=e=>{g.value=e,V.value=Date.now(),setTimeout(()=>{g.value===e&&(T.value=!0)},100)},ve=()=>{g.value=null,m.value=null,T.value=!1},pe=e=>{m.value=e},fe=()=>{m.value=null},ge=async e=>{if(!g.value)return;const s=g.value;if(y.value?.find(t=>t.key===s)?.column_slug===e){g.value=null,m.value=null;return}try{await $fetch(`/api/issues/${s}/move`,{method:"POST",body:{column:e}}),E(C("notify.issueMoved")),R()}catch(t){M(L(t))}finally{g.value=null,m.value=null}},he=(e,s)=>{e.preventDefault(),e.stopPropagation(),d.value={visible:!0,x:e.clientX,y:e.clientY,issue:s}},D=()=>{d.value.visible=!1},ye=async()=>{if(!d.value.issue||!c.value||c.value.length===0)return;const e=d.value.issue.key,s=c.value[c.value.length-1];if(s)try{await $fetch(`/api/issues/${e}/move`,{method:"POST",body:{column:s.slug,force:!0}}),E(C("notify.issueArchived")),R()}catch(n){M(L(n))}finally{D()}},_e=async()=>{if(!d.value.issue)return;if(!confirm(C("issue.confirmDelete"))){D();return}const e=d.value.issue.key;try{await $fetch(`/api/issues/${e}/archive`,{method:"DELETE"}),E(C("notify.issueDeleted")),R()}catch(s){M(L(s))}finally{D()}},{lastMessage:me}=Me(),B=async()=>{try{const e=await $fetch("/api/issues");if(y.value&&e){const s=JSON.stringify(y.value),n=JSON.stringify(e);s!==n&&(y.value=e)}}catch{}},ke=async()=>{try{const e=await $fetch("/api/stats");e.processingIssues&&(k.value=new Set(e.processingIssues))}catch{}},J=e=>{if(!k.value.has(e)||!c.value||c.value.length<2)return!1;const s=y.value?.find(t=>t.key===e);if(!s)return!1;const n=c.value.findIndex(t=>t.slug===s.column_slug);return!(n===0||n===c.value.length-1)};return K(()=>{ke()}),j(me,e=>{if((e?.type==="refresh"||e?.type==="issue-update")&&B(),e?.type==="claude_start"&&e.issue){const s=e.issue;k.value=new Set([...k.value,s])}if(e?.type==="claude_end"&&e.issue){const s=e.issue,n=new Set(k.value);n.delete(s),k.value=n,B()}}),Ie({title:"Kanban - AutoCode"}),(e,s)=>{const n=be;return l(),a("div",Le,[r("header",Te,[r("h1",null,u(e.$t("kanban.title")),1),r("div",Re,[q(n,{to:"/issues/graph",class:"btn btn-secondary"},{default:G(()=>[S(u(e.$t("graph.title")),1)]),_:1})])]),o(oe)==="pending"||o(ae)==="pending"?(l(),a("div",ze,u(e.$t("kanban.loading")),1)):o(O)||o(W)?(l(),a("div",Ne,u(o(O)?.message||o(W)?.message),1)):(l(),a("div",Ae,[r("div",{ref_key:"scrollTopRef",ref:b,class:"scroll-top",onScroll:te},[r("div",{class:"scroll-spacer",style:Y({width:o(F)+"px"})},null,4)],544),r("div",{ref_key:"boardRef",ref:h,class:"board",onScroll:ne},[(l(!0),a(Q,null,X(o(c),t=>(l(),a("div",{key:t.slug,class:A(["board-column",{"drag-over":o(m)===t.slug}]),onDragover:N(i=>pe(t.slug),["prevent"]),onDragleave:fe,onDrop:i=>ge(t.slug)},[r("div",Pe,[r("div",Ve,[r("h2",Oe,[S(u(t.name)+" ",1),r("span",We,u(w(t.slug).length),1)]),q(n,{to:`/column/${t.slug}/prompt?name=${encodeURIComponent(t.name)}`,class:"column-action",title:"View prompt"},{default:G(()=>[...s[0]||(s[0]=[S(" 👁 ",-1)])]),_:1},8,["to"])]),t.wip_limit?(l(),a("span",Be,u(e.$t("kanban.wipLimit"))+": "+u(t.wip_limit),1)):p("",!0)]),r("div",Je,[w(t.slug).length===0?(l(),a("div",Ke,u(e.$t("kanban.noIssues")),1)):p("",!0),(l(!0),a(Q,null,X(re(t.slug),i=>(l(),a("div",{key:i.key,class:A(["issue-card",{dragging:o(g)===i.key,processing:J(i.key)}]),draggable:"true",onDragstart:z=>de(i.key),onDragend:ve,onClick:z=>ce(i.key)},[r("div",He,[r("div",je,[J(i.key)?(l(),a("span",qe,"⚙️")):p("",!0),S(" "+u(i.key),1)]),r("button",{class:"issue-menu-btn",title:"Menu",onClick:N(z=>he(z,i),["stop"])}," ☰ ",8,Ge)]),r("div",Ye,u(i.title),1),r("div",Qe,[i.priority?(l(),a("span",{key:0,class:A(["badge",`badge-${i.priority}`])},u(i.priority),3)):p("",!0),i.parent_key?(l(),a("span",Xe," ^ ")):p("",!0)])],42,Ue))),128)),le(t.slug)?(l(),a("button",{key:1,class:"load-more-btn",onClick:N(i=>ue(t.slug),["stop"])},u(e.$t("kanban.loadMore"))+" ("+u(ie(t.slug))+") ",9,Ze)):p("",!0)])],42,Fe))),128))],544)])),o(d).visible?(l(),a("div",{key:3,style:{position:"fixed",inset:"0",zIndex:99998},onClick:D})):p("",!0),o(d).visible?(l(),a("div",{key:4,style:Y({position:"fixed",top:o(d).y+"px",left:o(d).x+"px",zIndex:99999,background:"white",border:"1px solid #ddd",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0,0,0,0.15)",padding:"4px 0",minWidth:"140px"})},[o(d).issue&&o(c)&&o(d).issue.column_slug!==o(c)[o(c).length-1]?.slug?(l(),a("button",{key:0,style:{display:"block",width:"100%",padding:"10px 16px",textAlign:"left",background:"none",border:"none",cursor:"pointer",fontSize:"14px"},onClick:ye},u(e.$t("issue.archive")),1)):p("",!0),r("button",{style:{display:"block",width:"100%",padding:"10px 16px",textAlign:"left",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#ef4444"},onClick:_e},u(e.$t("common.delete")),1)],4)):p("",!0)])}}}),is=De(es,[["__scopeId","data-v-a660ac78"]]);export{is as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as D}from"./
|
|
1
|
+
import{_ as D}from"./BtXQIoy8.js";import{d as F,G as E,r as h,v,l as I,m as L,s as N,c as i,f as R,e as t,h as a,t as c,z as B,C as V,D as x,H as z,F as O,p as U,b as m,_ as W}from"./D0HHOq4k.js";import{d as j}from"./C0Rlrcoy.js";import{u as G}from"./C10TWEVH.js";import{u as J}from"./BiqphZN8.js";import{u as y}from"./Byshfb8L.js";import{u as P}from"./CMIuQb6D.js";import"./C2rmiAJ1.js";const Y={class:"issue-comments-page"},q={class:"comments-content card"},K=["placeholder"],Q=["disabled"],X={key:0,class:"loading"},Z={key:1,class:"empty"},ee={key:2,class:"comments-list"},te={class:"comment-header"},se={class:"comment-author"},oe={class:"comment-date"},ae=["innerHTML"],ne=F({__name:"comments",async setup(re){let s,l;const b=E(),{success:g,error:w}=G(),{getErrorMessage:C}=J(),u=b.params.id,o=h(""),d=h(!1),{data:n}=([s,l]=v(()=>y(`/api/issues/${u}`,"$sHdW2Rruhz")),s=await s,l(),s),$=I(()=>{if(!n.value)return null;const e={id:n.value.key,title:n.value.title,column:n.value.column_slug};return n.value.priority&&(e.priority=n.value.priority),e}),{data:p,status:k,refresh:_}=([s,l]=v(()=>y(`/api/issues/${u}/comments`,"$2TYRtwuSoA")),s=await s,l(),s),{lastMessage:S}=P();L(S,e=>{e?.type==="comment"&&e.issueId===u&&_()});const H=e=>new Date(e).toLocaleString(),M=e=>j(e),T=async()=>{if(o.value.trim()){d.value=!0;try{await fetch(`/api/issues/${u}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:o.value})}),o.value="",g("Comment added"),_()}catch(e){w(C(e,"Failed to add comment"))}finally{d.value=!1}}};return N({title:`Comments - ${u} - AutoCode`}),(e,f)=>{const A=D;return m(),i("div",Y,[R(A,{issue:a($),"active-tab":"comments"},null,8,["issue"]),t("div",q,[t("h2",null,c(e.$t("issue.comments")),1),t("form",{class:"comment-form",onSubmit:B(T,["prevent"])},[V(t("textarea",{"onUpdate:modelValue":f[0]||(f[0]=r=>z(o)?o.value=r:null),class:"form-input comment-input",placeholder:e.$t("issue.addComment"),rows:"3"},null,8,K),[[x,a(o)]]),t("button",{type:"submit",class:"btn btn-primary",disabled:!a(o).trim()||a(d)},c(e.$t("form.save")),9,Q)],32),a(k)==="pending"?(m(),i("div",X,c(e.$t("app.loading")),1)):a(p)?.length?(m(),i("ul",ee,[(m(!0),i(O,null,U(a(p),r=>(m(),i("li",{key:r.id,class:"comment"},[t("div",te,[t("span",se,c(r.author||"User"),1),t("time",oe,c(H(r.createdAt)),1)]),t("div",{class:"comment-body",innerHTML:M(r.content)},null,8,ae)]))),128))])):(m(),i("div",Z,c(e.$t("issue.noComments")),1))])])}}}),fe=W(ne,[["__scopeId","data-v-b988772a"]]);export{fe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as C}from"./
|
|
1
|
+
import{_ as C}from"./BtXQIoy8.js";import{_ as T}from"./C2rmiAJ1.js";import{d as x,G as F,v as h,l as I,s as L,c as a,f as v,e as n,h as e,j as V,t,F as D,p as B,w as H,b as i,q as S,g as X,_ as A}from"./D0HHOq4k.js";import{u as y}from"./Byshfb8L.js";const E={class:"terminal-page"},R={class:"card"},j={class:"section-header"},q={class:"session-badge"},z={key:0,class:"column-badge"},G={key:0,class:"loading"},J={key:1,class:"error-message"},O={key:2,class:"empty"},W={key:3,class:"terminal-content"},Y={class:"log-time"},K={class:"log-level"},M={class:"log-message"},P={class:"actions"},Q=x({__name:"terminal",async setup(U){let o,c;const p=F(),l=p.params.id,u=p.params.sessionId,{data:r}=([o,c]=h(()=>y(`/api/issues/${l}`,"$WXwXsy2rDm")),o=await o,c(),o),f=I(()=>{if(!r.value)return null;const s={id:r.value.key,title:r.value.title,column:r.value.column_slug};return r.value.priority&&(s.priority=r.value.priority),s}),{data:d,status:$,error:g}=([o,c]=h(()=>y(`/api/issues/${l}/history/${u}/log`,"$7VJyO-YXL0")),o=await o,c(),o),k=s=>{const m=new Date(s);return isNaN(m.getTime())?s:m.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",second:"2-digit"})};return L({title:`Terminal ${u} - ${l} - AutoCode`}),(s,m)=>{const w=C,b=T;return i(),a("div",E,[v(w,{issue:e(f),"active-tab":"history"},null,8,["issue"]),n("div",R,[n("div",j,[n("h2",null,t(s.$t("history.viewTerminal")),1),n("span",q,t(e(u)),1),e(d)?.column?(i(),a("span",z,t(e(d).column),1)):V("",!0)]),e($)==="pending"?(i(),a("div",G,t(s.$t("app.loading")),1)):e(g)?(i(),a("div",J,t(e(g).message),1)):e(d)?.logs?.length?(i(),a("div",W,[(i(!0),a(D,null,B(e(d).logs,(_,N)=>(i(),a("div",{key:N,class:S(["log-entry",`log-${_.level}`])},[n("span",Y,t(k(_.timestamp)),1),n("span",K,t(_.level),1),n("span",M,t(_.message),1)],2))),128))])):(i(),a("div",O,t(s.$t("terminal.noLogs")),1))]),n("div",P,[v(b,{to:`/issue/${e(l)}/history`,class:"btn-secondary"},{default:H(()=>[X(t(s.$t("nav.back")),1)]),_:1},8,["to"])])])}}}),os=A(Q,[["__scopeId","data-v-608b488c"]]);export{os as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as _e}from"./Bu1Qq2g-.js";import{_ as he}from"./DU0awelf.js";import{d as fe,G as ye,x as ge,u as be,r as v,v as R,l as S,m as $e,s as ke,c as n,f as K,e as t,j as C,h as s,C as T,D as O,H as A,g as Q,t as a,E as W,F as L,p as H,q as Y,w as Ce,z as we,b as r,_ as Ee}from"./CjVJcaTo.js";import{d as De}from"./C0Rlrcoy.js";import{u as Me}from"./D8RlVVzC.js";import{u as Pe}from"./QtPIr4OQ.js";import{u as q}from"./DRo5NaOZ.js";const Se={class:"issue-view-page"},Te={class:"issue-content"},Ve={class:"main-section"},Ne={class:"card title-card"},Ae={class:"title-row"},Le=["placeholder"],He=["disabled","title"],Ue={key:0,class:"spinner"},Oe={key:1,class:"sparkle"},Fe={class:"card"},Ie={class:"form-row"},Be={class:"form-group"},Je={class:"form-label",for:"edit-priority"},Re={value:""},qe={value:"low"},ze={value:"medium"},Xe={value:"high"},je={value:"critical"},Ge={class:"form-group"},Ke={class:"form-label",for:"edit-parent"},Qe=["placeholder"],We={id:"parent-suggestions"},Ye=["value"],Ze={class:"meta-badges"},xe={class:"meta-badge column-badge"},et={key:0,class:"meta-badge semver-badge"},tt={key:0,class:"card"},st={class:"labels-list"},at={class:"card"},it={class:"section-header"},ot=["innerHTML"],lt=["placeholder"],nt={class:"card"},rt={class:"section-header"},ct={key:0,class:"criteria-list"},ut={key:1,class:"empty-criteria"},dt={key:2,class:"criteria-edit"},vt=["onUpdate:modelValue","placeholder"],pt=["onClick"],mt={class:"actions-bar"},_t=["disabled"],ht=["disabled"],ft={key:2,class:"done-badge"},yt={class:"sidebar"},gt={class:"card"},bt={class:"action-buttons"},$t={class:"card"},kt={class:"metadata-list"},Ct={class:"metadata-item"},wt={class:"metadata-item"},Et={class:"metadata-item"},Dt={key:0,class:"card"},Mt={class:"modal"},Pt={class:"modal-header"},St={class:"modal-title"},Tt={class:"modal-body"},Vt=["value"],Nt={class:"modal-footer"},At=fe({__name:"index",async setup(Lt){let d,w;const Z=ye(),x=ge(),{t:_,locale:ee}=be(),{success:V,error:E}=Me(),{getErrorMessage:N}=Pe(),g=Z.params.id,D=v(!1),M=v(""),F=v(!1),U=v(!1),P=v(!1),h=v(!1),u=v(!1),c=v([]),{data:i,refresh:I}=([d,w]=R(()=>q(`/api/issues/${g}`,"$IXIJsCSqf0")),d=await d,w(),d),{data:b}=([d,w]=R(()=>q("/api/columns","$xdX8vE_27c")),d=await d,w(),d),{data:te}=([d,w]=R(()=>q("/api/issues","$81nxEVnLdN")),d=await d,w(),d),se=S(()=>(te.value||[]).filter(e=>e.key!==g).slice(0,10)),p=v(i.value?.title||""),f=v(i.value?.description||""),y=v(i.value?.priority||""),$=v(i.value?.parent_key||"");$e(i,e=>{e&&(p.value=e.title,f.value=e.description||"",y.value=e.priority||"",$.value=e.parent_key||"")});const z=S(()=>!i.value||!b.value?i.value?.column_slug||"":b.value.find(o=>o.slug===i.value?.column_slug)?.name||i.value.column_slug),B=S(()=>{if(!i.value||!b.value||b.value.length===0)return!1;const e=b.value[b.value.length-1];return i.value.column_slug===e?.slug}),ae=S(()=>{if(!i.value)return null;const e={id:i.value.key,title:p.value,column:i.value.column_slug};return i.value.priority&&(e.priority=i.value.priority),e}),X=S(()=>{if(!i.value)return!1;const e=p.value!==i.value.title,o=f.value!==(i.value.description||""),k=y.value!==(i.value.priority||""),J=$.value!==(i.value.parent_key||""),l=u.value&&JSON.stringify(c.value.filter(m=>m.trim()))!==JSON.stringify(i.value.acceptance_criteria||[]);return e||o||k||J||l}),ie=S(()=>{const e=h.value?f.value:i.value?.description||"";return e?De(e):`<span style="color: var(--text-muted)">${_("issue.noDescription")}</span>`}),j=e=>e?new Date(e).toLocaleDateString():"-",oe=()=>{h.value=!h.value},le=()=>{u.value||(c.value=[...i.value?.acceptance_criteria||[]],c.value.length===0&&(c.value=[""])),u.value=!u.value},ne=()=>{c.value.push("")},re=e=>{c.value.splice(e,1),c.value.length===0&&(c.value=[""])},ce=async()=>{if(!(!p.value.trim()||P.value)){P.value=!0;try{const e=u.value?c.value.filter(k=>k.trim()):i.value?.acceptance_criteria||[],o=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:p.value,lang:ee.value,description:f.value||void 0,priority:y.value||void 0,acceptance_criteria:e.length>0?e:void 0,parent_key:$.value||void 0}});if(o.description&&(f.value=o.description,h.value=!0),o.priority){const k={P0:"critical",P1:"high",P2:"medium",P3:"low"};y.value=k[o.priority]||o.priority}o.acceptance_criteria&&Array.isArray(o.acceptance_criteria)&&(c.value=o.acceptance_criteria.length>0?o.acceptance_criteria:[""],u.value=!0),V(_("autocomplete.rememberSave"))}catch(e){E(N(e,_("autocomplete.error")))}finally{P.value=!1}}},ue=async()=>{if(X.value){U.value=!0;try{const e={title:p.value,description:f.value,priority:y.value||void 0,parent_key:$.value||void 0};u.value&&(e.acceptance_criteria=c.value.filter(o=>o.trim())),await $fetch(`/api/issues/${g}`,{method:"PATCH",body:e}),V(_("notify.issueSaved")),h.value&&(h.value=!1),u.value&&(u.value=!1),I()}catch(e){E(N(e))}finally{U.value=!1}}},de=async()=>{F.value=!0;try{await $fetch(`/api/issues/${g}/next`,{method:"POST"}),V(_("notify.issueAdvanced")),I()}catch(e){E(N(e))}finally{F.value=!1}},ve=()=>{M.value=i.value?.column_slug||"",D.value=!0},pe=async()=>{if(!M.value){E(_("notify.error"));return}try{await $fetch(`/api/issues/${g}/move`,{method:"POST",body:{column:M.value,force:!0}}),V(_("notify.issueMoved")),D.value=!1,I()}catch(e){E(N(e))}},me=async()=>{if(confirm(_("issue.confirmArchive")))try{await $fetch(`/api/issues/${g}/archive`,{method:"DELETE"}),V(_("notify.issueArchived")),x.push("/")}catch(e){E(N(e))}};return ke({title:`${g} - AutoCode`}),(e,o)=>{const k=_e,J=he;return r(),n("div",Se,[K(k,{issue:s(ae),"active-tab":"details"},null,8,["issue"]),t("div",Te,[t("div",Ve,[t("div",Ne,[t("div",Ae,[T(t("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>A(p)?p.value=l:null),type:"text",class:"title-input",placeholder:e.$t("issue.title")},null,8,Le),[[O,s(p)]]),t("button",{type:"button",class:"btn-autocomplete",disabled:s(P)||!s(p).trim(),title:e.$t("autocomplete.tooltip"),onClick:ce},[s(P)?(r(),n("span",Ue)):(r(),n("span",Oe,"✨")),Q(" "+a(s(P)?e.$t("autocomplete.loading"):e.$t("autocomplete.button")),1)],8,He)])]),t("div",Fe,[t("h2",null,a(e.$t("issue.metadata")),1),t("div",Ie,[t("div",Be,[t("label",Je,a(e.$t("issue.priority")),1),T(t("select",{id:"edit-priority","onUpdate:modelValue":o[1]||(o[1]=l=>A(y)?y.value=l:null),class:"form-input"},[t("option",Re,a(e.$t("form.select")),1),t("option",qe,a(e.$t("priority.low")),1),t("option",ze,a(e.$t("priority.medium")),1),t("option",Xe,a(e.$t("priority.high")),1),t("option",je,a(e.$t("priority.critical")),1)],512),[[W,s(y)]])]),t("div",Ge,[t("label",Ke,a(e.$t("issue.parent")),1),T(t("input",{id:"edit-parent","onUpdate:modelValue":o[2]||(o[2]=l=>A($)?$.value=l:null),type:"text",class:"form-input",placeholder:e.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Qe),[[O,s($)]]),t("datalist",We,[(r(!0),n(L,null,H(s(se),l=>(r(),n("option",{key:l.key,value:l.key},a(l.title),9,Ye))),128))])])]),t("div",Ze,[t("span",xe,a(s(z)),1),s(i)?.semver?(r(),n("span",et,a(s(i).semver),1)):C("",!0)])]),s(i)?.labels?.length?(r(),n("div",tt,[t("h2",null,a(e.$t("issue.labels")),1),t("div",st,[(r(!0),n(L,null,H(s(i).labels,(l,m)=>(r(),n("span",{key:m,class:"label-tag"},a(l),1))),128))])])):C("",!0),t("div",at,[t("div",it,[t("h2",null,a(e.$t("issue.description")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(h)}]),onClick:oe},a(s(h)?"✓":"✏️"),3)]),s(h)?T((r(),n("textarea",{key:1,"onUpdate:modelValue":o[3]||(o[3]=l=>A(f)?f.value=l:null),class:"description-edit",placeholder:e.$t("issue.description"),rows:"10"},null,8,lt)),[[O,s(f)]]):(r(),n("div",{key:0,class:"description",innerHTML:s(ie)},null,8,ot))]),t("div",nt,[t("div",rt,[t("h2",null,a(e.$t("issue.acceptanceCriteria")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(u)}]),onClick:le},a(s(u)?"✓":"✏️"),3)]),!s(u)&&s(i)?.acceptance_criteria?.length?(r(),n("ul",ct,[(r(!0),n(L,null,H(s(i).acceptance_criteria,(l,m)=>(r(),n("li",{key:m,class:"criteria-item"},a(l),1))),128))])):s(u)?(r(),n("div",dt,[(r(!0),n(L,null,H(s(c),(l,m)=>(r(),n("div",{key:m,class:"criteria-input-row"},[T(t("input",{"onUpdate:modelValue":G=>s(c)[m]=G,type:"text",class:"form-input",placeholder:e.$t("form.criteriaPlaceholder")},null,8,vt),[[O,s(c)[m]]]),t("button",{class:"btn-icon",type:"button",onClick:G=>re(m)},"×",8,pt)]))),128)),t("button",{class:"btn btn-secondary btn-sm",type:"button",onClick:ne}," + "+a(e.$t("form.addCriteria")),1)])):(r(),n("p",ut,a(e.$t("issue.noCriteria")),1))]),t("div",mt,[t("button",{class:"btn btn-primary",disabled:s(U)||!s(X),onClick:ue},a(s(U)?e.$t("form.saving"):e.$t("form.save")),9,_t),s(B)?C("",!0):(r(),n("button",{key:0,class:"btn btn-secondary",disabled:s(F),onClick:de},a(e.$t("issue.next"))+" → ",9,ht)),s(B)?C("",!0):(r(),n("button",{key:1,class:"btn btn-danger",onClick:me},a(e.$t("issue.archive")),1)),s(B)?(r(),n("span",ft," ✓ "+a(e.$t("issue.done")),1)):C("",!0)])]),t("aside",yt,[t("div",gt,[t("h3",null,a(e.$t("issue.actions")),1),t("div",bt,[t("button",{class:"btn btn-secondary",onClick:ve},a(e.$t("issue.move")),1)])]),t("div",$t,[t("h3",null,a(e.$t("issue.details")),1),t("dl",kt,[t("div",Ct,[t("dt",null,a(e.$t("issue.status")),1),t("dd",null,a(s(z)),1)]),t("div",wt,[t("dt",null,a(e.$t("issue.created")),1),t("dd",null,a(j(s(i)?.created_at)),1)]),t("div",Et,[t("dt",null,a(e.$t("issue.updated")),1),t("dd",null,a(j(s(i)?.updated_at)),1)])])]),s(i)?.parent_key?(r(),n("div",Dt,[t("h3",null,a(e.$t("issue.parent")),1),K(J,{to:`/issue/${s(i).parent_key}`,class:"parent-link"},{default:Ce(()=>[Q(a(s(i).parent_key),1)]),_:1},8,["to"])])):C("",!0)])]),s(D)?(r(),n("div",{key:0,class:"modal-overlay active",onClick:o[7]||(o[7]=we(l=>D.value=!1,["self"]))},[t("div",Mt,[t("div",Pt,[t("h3",St,a(e.$t("issue.move")),1),t("button",{class:"modal-close",onClick:o[4]||(o[4]=l=>D.value=!1)},"×")]),t("div",Tt,[T(t("select",{"onUpdate:modelValue":o[5]||(o[5]=l=>A(M)?M.value=l:null),class:"form-input"},[(r(!0),n(L,null,H(s(b),l=>(r(),n("option",{key:l.slug,value:l.slug},a(l.name),9,Vt))),128))],512),[[W,s(M)]])]),t("div",Nt,[t("button",{class:"btn btn-secondary",onClick:o[6]||(o[6]=l=>D.value=!1)},a(e.$t("modal.cancel")),1),t("button",{class:"btn btn-primary",onClick:pe},a(e.$t("modal.confirm")),1)])])])):C("",!0)])}}}),Rt=Ee(At,[["__scopeId","data-v-07b1c9a3"]]);export{Rt as default};
|
|
1
|
+
import{_ as _e}from"./BtXQIoy8.js";import{_ as he}from"./C2rmiAJ1.js";import{d as fe,G as ye,x as ge,u as be,r as v,v as R,l as S,m as $e,s as ke,c as n,f as K,e as t,j as C,h as s,C as T,D as O,H as A,g as Q,t as a,E as W,F as L,p as H,q as Y,w as Ce,z as we,b as r,_ as Ee}from"./D0HHOq4k.js";import{d as De}from"./C0Rlrcoy.js";import{u as Me}from"./C10TWEVH.js";import{u as Pe}from"./BiqphZN8.js";import{u as q}from"./Byshfb8L.js";const Se={class:"issue-view-page"},Te={class:"issue-content"},Ve={class:"main-section"},Ne={class:"card title-card"},Ae={class:"title-row"},Le=["placeholder"],He=["disabled","title"],Ue={key:0,class:"spinner"},Oe={key:1,class:"sparkle"},Fe={class:"card"},Ie={class:"form-row"},Be={class:"form-group"},Je={class:"form-label",for:"edit-priority"},Re={value:""},qe={value:"low"},ze={value:"medium"},Xe={value:"high"},je={value:"critical"},Ge={class:"form-group"},Ke={class:"form-label",for:"edit-parent"},Qe=["placeholder"],We={id:"parent-suggestions"},Ye=["value"],Ze={class:"meta-badges"},xe={class:"meta-badge column-badge"},et={key:0,class:"meta-badge semver-badge"},tt={key:0,class:"card"},st={class:"labels-list"},at={class:"card"},it={class:"section-header"},ot=["innerHTML"],lt=["placeholder"],nt={class:"card"},rt={class:"section-header"},ct={key:0,class:"criteria-list"},ut={key:1,class:"empty-criteria"},dt={key:2,class:"criteria-edit"},vt=["onUpdate:modelValue","placeholder"],pt=["onClick"],mt={class:"actions-bar"},_t=["disabled"],ht=["disabled"],ft={key:2,class:"done-badge"},yt={class:"sidebar"},gt={class:"card"},bt={class:"action-buttons"},$t={class:"card"},kt={class:"metadata-list"},Ct={class:"metadata-item"},wt={class:"metadata-item"},Et={class:"metadata-item"},Dt={key:0,class:"card"},Mt={class:"modal"},Pt={class:"modal-header"},St={class:"modal-title"},Tt={class:"modal-body"},Vt=["value"],Nt={class:"modal-footer"},At=fe({__name:"index",async setup(Lt){let d,w;const Z=ye(),x=ge(),{t:_,locale:ee}=be(),{success:V,error:E}=Me(),{getErrorMessage:N}=Pe(),g=Z.params.id,D=v(!1),M=v(""),F=v(!1),U=v(!1),P=v(!1),h=v(!1),u=v(!1),c=v([]),{data:i,refresh:I}=([d,w]=R(()=>q(`/api/issues/${g}`,"$IXIJsCSqf0")),d=await d,w(),d),{data:b}=([d,w]=R(()=>q("/api/columns","$xdX8vE_27c")),d=await d,w(),d),{data:te}=([d,w]=R(()=>q("/api/issues","$81nxEVnLdN")),d=await d,w(),d),se=S(()=>(te.value||[]).filter(e=>e.key!==g).slice(0,10)),p=v(i.value?.title||""),f=v(i.value?.description||""),y=v(i.value?.priority||""),$=v(i.value?.parent_key||"");$e(i,e=>{e&&(p.value=e.title,f.value=e.description||"",y.value=e.priority||"",$.value=e.parent_key||"")});const z=S(()=>!i.value||!b.value?i.value?.column_slug||"":b.value.find(o=>o.slug===i.value?.column_slug)?.name||i.value.column_slug),B=S(()=>{if(!i.value||!b.value||b.value.length===0)return!1;const e=b.value[b.value.length-1];return i.value.column_slug===e?.slug}),ae=S(()=>{if(!i.value)return null;const e={id:i.value.key,title:p.value,column:i.value.column_slug};return i.value.priority&&(e.priority=i.value.priority),e}),X=S(()=>{if(!i.value)return!1;const e=p.value!==i.value.title,o=f.value!==(i.value.description||""),k=y.value!==(i.value.priority||""),J=$.value!==(i.value.parent_key||""),l=u.value&&JSON.stringify(c.value.filter(m=>m.trim()))!==JSON.stringify(i.value.acceptance_criteria||[]);return e||o||k||J||l}),ie=S(()=>{const e=h.value?f.value:i.value?.description||"";return e?De(e):`<span style="color: var(--text-muted)">${_("issue.noDescription")}</span>`}),j=e=>e?new Date(e).toLocaleDateString():"-",oe=()=>{h.value=!h.value},le=()=>{u.value||(c.value=[...i.value?.acceptance_criteria||[]],c.value.length===0&&(c.value=[""])),u.value=!u.value},ne=()=>{c.value.push("")},re=e=>{c.value.splice(e,1),c.value.length===0&&(c.value=[""])},ce=async()=>{if(!(!p.value.trim()||P.value)){P.value=!0;try{const e=u.value?c.value.filter(k=>k.trim()):i.value?.acceptance_criteria||[],o=await $fetch("/api/issues/autocomplete",{method:"POST",body:{title:p.value,lang:ee.value,description:f.value||void 0,priority:y.value||void 0,acceptance_criteria:e.length>0?e:void 0,parent_key:$.value||void 0}});if(o.description&&(f.value=o.description,h.value=!0),o.priority){const k={P0:"critical",P1:"high",P2:"medium",P3:"low"};y.value=k[o.priority]||o.priority}o.acceptance_criteria&&Array.isArray(o.acceptance_criteria)&&(c.value=o.acceptance_criteria.length>0?o.acceptance_criteria:[""],u.value=!0),V(_("autocomplete.rememberSave"))}catch(e){E(N(e,_("autocomplete.error")))}finally{P.value=!1}}},ue=async()=>{if(X.value){U.value=!0;try{const e={title:p.value,description:f.value,priority:y.value||void 0,parent_key:$.value||void 0};u.value&&(e.acceptance_criteria=c.value.filter(o=>o.trim())),await $fetch(`/api/issues/${g}`,{method:"PATCH",body:e}),V(_("notify.issueSaved")),h.value&&(h.value=!1),u.value&&(u.value=!1),I()}catch(e){E(N(e))}finally{U.value=!1}}},de=async()=>{F.value=!0;try{await $fetch(`/api/issues/${g}/next`,{method:"POST"}),V(_("notify.issueAdvanced")),I()}catch(e){E(N(e))}finally{F.value=!1}},ve=()=>{M.value=i.value?.column_slug||"",D.value=!0},pe=async()=>{if(!M.value){E(_("notify.error"));return}try{await $fetch(`/api/issues/${g}/move`,{method:"POST",body:{column:M.value,force:!0}}),V(_("notify.issueMoved")),D.value=!1,I()}catch(e){E(N(e))}},me=async()=>{if(confirm(_("issue.confirmArchive")))try{await $fetch(`/api/issues/${g}/archive`,{method:"DELETE"}),V(_("notify.issueArchived")),x.push("/")}catch(e){E(N(e))}};return ke({title:`${g} - AutoCode`}),(e,o)=>{const k=_e,J=he;return r(),n("div",Se,[K(k,{issue:s(ae),"active-tab":"details"},null,8,["issue"]),t("div",Te,[t("div",Ve,[t("div",Ne,[t("div",Ae,[T(t("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>A(p)?p.value=l:null),type:"text",class:"title-input",placeholder:e.$t("issue.title")},null,8,Le),[[O,s(p)]]),t("button",{type:"button",class:"btn-autocomplete",disabled:s(P)||!s(p).trim(),title:e.$t("autocomplete.tooltip"),onClick:ce},[s(P)?(r(),n("span",Ue)):(r(),n("span",Oe,"✨")),Q(" "+a(s(P)?e.$t("autocomplete.loading"):e.$t("autocomplete.button")),1)],8,He)])]),t("div",Fe,[t("h2",null,a(e.$t("issue.metadata")),1),t("div",Ie,[t("div",Be,[t("label",Je,a(e.$t("issue.priority")),1),T(t("select",{id:"edit-priority","onUpdate:modelValue":o[1]||(o[1]=l=>A(y)?y.value=l:null),class:"form-input"},[t("option",Re,a(e.$t("form.select")),1),t("option",qe,a(e.$t("priority.low")),1),t("option",ze,a(e.$t("priority.medium")),1),t("option",Xe,a(e.$t("priority.high")),1),t("option",je,a(e.$t("priority.critical")),1)],512),[[W,s(y)]])]),t("div",Ge,[t("label",Ke,a(e.$t("issue.parent")),1),T(t("input",{id:"edit-parent","onUpdate:modelValue":o[2]||(o[2]=l=>A($)?$.value=l:null),type:"text",class:"form-input",placeholder:e.$t("form.parentPlaceholder"),list:"parent-suggestions"},null,8,Qe),[[O,s($)]]),t("datalist",We,[(r(!0),n(L,null,H(s(se),l=>(r(),n("option",{key:l.key,value:l.key},a(l.title),9,Ye))),128))])])]),t("div",Ze,[t("span",xe,a(s(z)),1),s(i)?.semver?(r(),n("span",et,a(s(i).semver),1)):C("",!0)])]),s(i)?.labels?.length?(r(),n("div",tt,[t("h2",null,a(e.$t("issue.labels")),1),t("div",st,[(r(!0),n(L,null,H(s(i).labels,(l,m)=>(r(),n("span",{key:m,class:"label-tag"},a(l),1))),128))])])):C("",!0),t("div",at,[t("div",it,[t("h2",null,a(e.$t("issue.description")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(h)}]),onClick:oe},a(s(h)?"✓":"✏️"),3)]),s(h)?T((r(),n("textarea",{key:1,"onUpdate:modelValue":o[3]||(o[3]=l=>A(f)?f.value=l:null),class:"description-edit",placeholder:e.$t("issue.description"),rows:"10"},null,8,lt)),[[O,s(f)]]):(r(),n("div",{key:0,class:"description",innerHTML:s(ie)},null,8,ot))]),t("div",nt,[t("div",rt,[t("h2",null,a(e.$t("issue.acceptanceCriteria")),1),t("button",{class:Y(["btn-edit-toggle",{active:s(u)}]),onClick:le},a(s(u)?"✓":"✏️"),3)]),!s(u)&&s(i)?.acceptance_criteria?.length?(r(),n("ul",ct,[(r(!0),n(L,null,H(s(i).acceptance_criteria,(l,m)=>(r(),n("li",{key:m,class:"criteria-item"},a(l),1))),128))])):s(u)?(r(),n("div",dt,[(r(!0),n(L,null,H(s(c),(l,m)=>(r(),n("div",{key:m,class:"criteria-input-row"},[T(t("input",{"onUpdate:modelValue":G=>s(c)[m]=G,type:"text",class:"form-input",placeholder:e.$t("form.criteriaPlaceholder")},null,8,vt),[[O,s(c)[m]]]),t("button",{class:"btn-icon",type:"button",onClick:G=>re(m)},"×",8,pt)]))),128)),t("button",{class:"btn btn-secondary btn-sm",type:"button",onClick:ne}," + "+a(e.$t("form.addCriteria")),1)])):(r(),n("p",ut,a(e.$t("issue.noCriteria")),1))]),t("div",mt,[t("button",{class:"btn btn-primary",disabled:s(U)||!s(X),onClick:ue},a(s(U)?e.$t("form.saving"):e.$t("form.save")),9,_t),s(B)?C("",!0):(r(),n("button",{key:0,class:"btn btn-secondary",disabled:s(F),onClick:de},a(e.$t("issue.next"))+" → ",9,ht)),s(B)?C("",!0):(r(),n("button",{key:1,class:"btn btn-danger",onClick:me},a(e.$t("issue.archive")),1)),s(B)?(r(),n("span",ft," ✓ "+a(e.$t("issue.done")),1)):C("",!0)])]),t("aside",yt,[t("div",gt,[t("h3",null,a(e.$t("issue.actions")),1),t("div",bt,[t("button",{class:"btn btn-secondary",onClick:ve},a(e.$t("issue.move")),1)])]),t("div",$t,[t("h3",null,a(e.$t("issue.details")),1),t("dl",kt,[t("div",Ct,[t("dt",null,a(e.$t("issue.status")),1),t("dd",null,a(s(z)),1)]),t("div",wt,[t("dt",null,a(e.$t("issue.created")),1),t("dd",null,a(j(s(i)?.created_at)),1)]),t("div",Et,[t("dt",null,a(e.$t("issue.updated")),1),t("dd",null,a(j(s(i)?.updated_at)),1)])])]),s(i)?.parent_key?(r(),n("div",Dt,[t("h3",null,a(e.$t("issue.parent")),1),K(J,{to:`/issue/${s(i).parent_key}`,class:"parent-link"},{default:Ce(()=>[Q(a(s(i).parent_key),1)]),_:1},8,["to"])])):C("",!0)])]),s(D)?(r(),n("div",{key:0,class:"modal-overlay active",onClick:o[7]||(o[7]=we(l=>D.value=!1,["self"]))},[t("div",Mt,[t("div",Pt,[t("h3",St,a(e.$t("issue.move")),1),t("button",{class:"modal-close",onClick:o[4]||(o[4]=l=>D.value=!1)},"×")]),t("div",Tt,[T(t("select",{"onUpdate:modelValue":o[5]||(o[5]=l=>A(M)?M.value=l:null),class:"form-input"},[(r(!0),n(L,null,H(s(b),l=>(r(),n("option",{key:l.slug,value:l.slug},a(l.name),9,Vt))),128))],512),[[W,s(M)]])]),t("div",Nt,[t("button",{class:"btn btn-secondary",onClick:o[6]||(o[6]=l=>D.value=!1)},a(e.$t("modal.cancel")),1),t("button",{class:"btn btn-primary",onClick:pe},a(e.$t("modal.confirm")),1)])])])):C("",!0)])}}}),Rt=Ee(At,[["__scopeId","data-v-07b1c9a3"]]);export{Rt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as z}from"./
|
|
1
|
+
import{_ as z}from"./BtXQIoy8.js";import{d as B,G as D,r as g,v as b,l as I,m as L,o as M,y as k,s as N,c as n,f as O,e as s,h as c,t,j as $,F as v,p as C,b as r,q as P,_ as j}from"./D0HHOq4k.js";import{u as S}from"./Byshfb8L.js";import{u as q}from"./CMIuQb6D.js";import"./C2rmiAJ1.js";const E={class:"issue-terminal-page"},G={class:"terminal-content card"},W={class:"terminal-header"},X={class:"terminal-actions"},J={key:0,class:"terminal-empty"},K={class:"section-header"},Q={class:"section-icon"},U={class:"section-column"},Y={class:"section-session"},Z={key:0,class:"log-time"},x={class:"log-message"},ee=B({__name:"terminal",async setup(se){let a,u;const m=D().params.id,o=g(null),i=g(!0),{data:l}=([a,u]=b(()=>S(`/api/issues/${m}`,"$s3Vbd9k-VO")),a=await a,u(),a),H=I(()=>{if(!l.value)return null;const e={id:l.value.key,title:l.value.title,column:l.value.column_slug};return l.value.priority&&(e.priority=l.value.priority),e}),{data:f,refresh:h}=([a,u]=b(()=>S(`/api/issues/${m}/full-terminal`,"$XMztO43Pyz")),a=await a,u(),a),{lastMessage:T}=q();L(T,e=>{e?.type==="claude_end"&&e.issue===m&&h(),i.value&&k(()=>{o.value&&(o.value.scrollTop=o.value.scrollHeight)})}),M(()=>{k(()=>{o.value&&i.value&&(o.value.scrollTop=o.value.scrollHeight)})});const w=e=>{if(!e)return"";try{return new Date(e).toLocaleTimeString()}catch{return e}},V=e=>e===0?"1":String(e+1),A=()=>{i.value=!i.value};return N({title:`Terminal - ${m} - AutoCode`}),(e,y)=>{const F=z;return r(),n("div",E,[O(F,{issue:c(H),"active-tab":"terminal"},null,8,["issue"]),s("div",G,[s("div",W,[s("h2",null,t(e.$t("issue.terminal"))+" ("+t(e.$t("terminal.fullHistory"))+")",1),s("div",X,[s("button",{class:"btn btn-secondary btn-sm",onClick:A},t(c(i)?"Pause":"Resume")+" Auto-scroll ",1),s("button",{class:"btn btn-secondary btn-sm",onClick:y[0]||(y[0]=()=>c(h)())},t(e.$t("btn.refresh")),1)])]),s("div",{ref_key:"terminalRef",ref:o,class:"terminal-output"},[c(f)?.logFiles?.length?$("",!0):(r(),n("div",J,t(e.$t("terminal.noLogs")),1)),(r(!0),n(v,null,C(c(f)?.logFiles,(_,p)=>(r(),n(v,{key:p},[s("div",K,[s("span",Q,t(V(p)),1),s("span",U,t(_.column),1),s("span",Y,t(_.sessionId),1)]),(r(!0),n(v,null,C(_.logs,(d,R)=>(r(),n("div",{key:`${p}-${R}`,class:P(["log-line",`log-${d.level}`])},[d.timestamp?(r(),n("span",Z,t(w(d.timestamp)),1)):$("",!0),s("span",x,t(d.message),1)],2))),128))],64))),128))],512)])])}}}),ie=j(ee,[["__scopeId","data-v-3b499d2c"]]);export{ie as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{d as H,r as p,l as R,s as V,c,e,j as y,t as a,C as B,D as J,h as t,H as z,g as I,F as N,p as A,y as M,b as i,q as O,z as q,_ as G}from"./
|
|
1
|
+
import{d as H,r as p,l as R,s as V,c,e,j as y,t as a,C as B,D as J,h as t,H as z,g as I,F as N,p as A,y as M,b as i,q as O,z as q,_ as G}from"./D0HHOq4k.js";import{u as L}from"./C10TWEVH.js";const U={class:"autocreate-page"},W={class:"page-header"},K={class:"page-description"},Q={class:"card input-section"},X={class:"form-group"},Y={class:"form-label",for:"prompt"},Z=["placeholder"],x=["disabled"],ee={key:0,class:"card streaming-section"},se={key:0,class:"cursor"},te={key:1,class:"card error-section"},ae={class:"error-text"},oe={key:2,class:"proposals-section"},le={class:"proposals-grid"},re=["onClick"],ne={class:"proposal-header"},ce=["checked","onChange"],ie={class:"proposal-description"},ue={class:"proposal-meta"},pe={class:"badge"},de={class:"proposals-actions"},he=["disabled"],ve={key:3,class:"card results-section"},fe={class:"results-list"},_e={class:"result-icon"},ge={class:"result-name"},me={key:0,class:"result-error"},ye=H({__name:"autocreate",setup(be){const{success:F,error:C}=L(),f=p(""),_=p(!1),k=p(!1),b=p(""),$=p(null),d=p([]),n=p([]),h=p([]),g=p(""),w=R(()=>d.value.length>0&&n.value.length===d.value.length),j=async()=>{if(f.value.trim()){_.value=!0,b.value="",d.value=[],h.value=[],n.value=[],g.value="";try{const s=await fetch("/api/catalog/autocreate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:f.value})});if(!s.ok)throw new Error(`HTTP error: ${s.status}`);const o=s.body?.getReader(),l=new TextDecoder;if(o){let r="";for(;;){const{done:m,value:v}=await o.read();if(m)break;r+=l.decode(v,{stream:!0});const P=r.split(`
|
|
2
2
|
`);r=P.pop()||"";for(const S of P)if(S.startsWith("data: "))try{const u=JSON.parse(S.slice(6));u.type==="thinking"&&u.content?(b.value+=u.content,M(()=>{$.value&&($.value.scrollTop=$.value.scrollHeight)})):u.type==="proposals"&&u.proposals?(d.value=u.proposals,b.value=""):u.type==="error"&&u.message&&(g.value=u.message)}catch{}}}}catch{g.value="Failed to generate proposals. Please try again.",C("Generation failed")}finally{_.value=!1}}},T=s=>{const o=n.value.indexOf(s);o===-1?n.value.push(s):n.value.splice(o,1)},D=()=>{w.value?n.value=[]:n.value=d.value.map((s,o)=>o)},E=async()=>{if(n.value.length){k.value=!0,h.value=[];try{const s=n.value.map(v=>d.value[v]),o=await fetch("/api/catalog/autocreate/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proposals:s})});if(!o.ok)throw new Error("Failed to apply proposals");const l=await o.json();h.value=l;const r=h.value.filter(v=>v.success).length,m=h.value.filter(v=>!v.success).length;m===0?F(`Successfully applied ${r} columns`):C(`Applied ${r}, failed ${m}`)}catch{C("Failed to apply proposals")}finally{k.value=!1}}};return V({title:"Autocreate - AutoCode"}),(s,o)=>(i(),c("div",U,[e("header",W,[e("h1",null,a(s.$t("autocreate.title")),1),e("p",K,a(s.$t("autocreate.description")),1)]),e("div",Q,[e("div",X,[e("label",Y,a(s.$t("autocreate.prompt")),1),B(e("textarea",{id:"prompt","onUpdate:modelValue":o[0]||(o[0]=l=>z(f)?f.value=l:null),class:"form-input",rows:"4",placeholder:s.$t("autocreate.promptPlaceholder")},null,8,Z),[[J,t(f)]])]),e("button",{class:"btn btn-primary",disabled:!t(f).trim()||t(_),onClick:j},a(t(_)?s.$t("autocreate.generating"):s.$t("autocreate.generate")),9,x)]),t(b)||t(_)?(i(),c("div",ee,[e("h2",null,a(s.$t("autocreate.thinking")),1),e("div",{ref_key:"streamingRef",ref:$,class:"streaming-output"},[I(a(t(b))+" ",1),t(_)?(i(),c("span",se,"▊")):y("",!0)],512)])):y("",!0),t(g)?(i(),c("div",te,[e("p",ae,a(t(g)),1),e("button",{class:"btn btn-secondary",onClick:o[1]||(o[1]=l=>g.value="")},a(s.$t("form.dismiss")),1)])):y("",!0),t(d).length?(i(),c("div",oe,[e("h2",null,a(s.$t("autocreate.proposals")),1),e("div",le,[(i(!0),c(N,null,A(t(d),(l,r)=>(i(),c("div",{key:r,class:O(["proposal-card card",{selected:t(n).includes(r)}]),onClick:m=>T(r)},[e("div",ne,[e("input",{type:"checkbox",checked:t(n).includes(r),onClick:o[2]||(o[2]=q(()=>{},["stop"])),onChange:m=>T(r)},null,40,ce),e("h3",null,a(l.name),1)]),e("p",ie,a(l.description),1),e("div",ue,[e("span",pe,a(l.type),1)])],10,re))),128))]),e("div",de,[e("button",{class:"btn btn-secondary",onClick:D},a(t(w)?s.$t("autocreate.deselectAll"):s.$t("autocreate.selectAll")),1),e("button",{class:"btn btn-primary",disabled:!t(n).length||t(k),onClick:E},a(t(k)?s.$t("autocreate.applying"):s.$t("autocreate.apply"))+" ("+a(t(n).length)+") ",9,he)])])):y("",!0),t(h).length?(i(),c("div",ve,[e("h2",null,a(s.$t("autocreate.results")),1),e("ul",fe,[(i(!0),c(N,null,A(t(h),(l,r)=>(i(),c("li",{key:r,class:O({success:l.success,error:!l.success})},[e("span",_e,a(l.success?"✓":"✗"),1),e("span",ge,a(l.name),1),l.error?(i(),c("span",me,a(l.error),1)):y("",!0)],2))),128))])])):y("",!0)]))}}),Ce=G(ye,[["__scopeId","data-v-8a41c3ab"]]);export{Ce as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as fe,x as he,r as Vt,v as pe,o as de,y as _n,a as _e,m as ge,s as me,c as nt,e as j,j as gn,t as U,h as K,n as ye,q as we,b as et,_ as xe}from"./CjVJcaTo.js";import{u as ve}from"./DRo5NaOZ.js";var be={value:()=>{}};function an(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Mt(e)}function Mt(t){this._=t}function $e(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Mt.prototype=an.prototype={constructor:Mt,on:function(t,n){var e=this._,r=$e(t+"",e),i,o=-1,s=r.length;if(arguments.length<2){for(;++o<s;)if((i=(t=r[o]).type)&&(i=ke(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++o<s;)if(i=(t=r[o]).type)e[i]=mn(e[i],t.name,n);else if(n==null)for(i in e)e[i]=mn(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Mt(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,o;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};function ke(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function mn(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=be,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var Wt="http://www.w3.org/1999/xhtml";const yn={svg:"http://www.w3.org/2000/svg",xhtml:Wt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Xt(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),yn.hasOwnProperty(n)?{space:yn[n],local:t}:t}function Ae(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Wt&&n.documentElement.namespaceURI===Wt?n.createElement(t):n.createElementNS(e,t)}}function ze(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Bn(t){var n=Xt(t);return(n.local?ze:Ae)(n)}function Me(){}function un(t){return t==null?Me:function(){return this.querySelector(t)}}function Ne(t){typeof t!="function"&&(t=un(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=new Array(s),l,a,c=0;c<s;++c)(l=o[c])&&(a=t.call(l,l.__data__,c,o))&&("__data__"in l&&(a.__data__=l.__data__),u[c]=a);return new B(r,this._parents)}function Ee(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Se(){return[]}function Pn(t){return t==null?Se:function(){return this.querySelectorAll(t)}}function Te(t){return function(){return Ee(t.apply(this,arguments))}}function Ce(t){typeof t=="function"?t=Te(t):t=Pn(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var s=n[o],u=s.length,l,a=0;a<u;++a)(l=s[a])&&(r.push(t.call(l,l.__data__,a,s)),i.push(l));return new B(r,i)}function qn(t){return function(){return this.matches(t)}}function Xn(t){return function(n){return n.matches(t)}}var Re=Array.prototype.find;function Ie(t){return function(){return Re.call(this.children,t)}}function De(){return this.firstElementChild}function Be(t){return this.select(t==null?De:Ie(typeof t=="function"?t:Xn(t)))}var Pe=Array.prototype.filter;function qe(){return Array.from(this.children)}function Xe(t){return function(){return Pe.call(this.children,t)}}function He(t){return this.selectAll(t==null?qe:Xe(typeof t=="function"?t:Xn(t)))}function Fe(t){typeof t!="function"&&(t=qn(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=[],l,a=0;a<s;++a)(l=o[a])&&t.call(l,l.__data__,a,o)&&u.push(l);return new B(r,this._parents)}function Hn(t){return new Array(t.length)}function Le(){return new B(this._enter||this._groups.map(Hn),this._parents)}function Ct(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Ct.prototype={constructor:Ct,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Ve(t){return function(){return t}}function Ye(t,n,e,r,i,o){for(var s=0,u,l=n.length,a=o.length;s<a;++s)(u=n[s])?(u.__data__=o[s],r[s]=u):e[s]=new Ct(t,o[s]);for(;s<l;++s)(u=n[s])&&(i[s]=u)}function Oe(t,n,e,r,i,o,s){var u,l,a=new Map,c=n.length,p=o.length,h=new Array(c),_;for(u=0;u<c;++u)(l=n[u])&&(h[u]=_=s.call(l,l.__data__,u,n)+"",a.has(_)?i[u]=l:a.set(_,l));for(u=0;u<p;++u)_=s.call(t,o[u],u,o)+"",(l=a.get(_))?(r[u]=l,l.__data__=o[u],a.delete(_)):e[u]=new Ct(t,o[u]);for(u=0;u<c;++u)(l=n[u])&&a.get(h[u])===l&&(i[u]=l)}function Ge(t){return t.__data__}function Ue(t,n){if(!arguments.length)return Array.from(this,Ge);var e=n?Oe:Ye,r=this._parents,i=this._groups;typeof t!="function"&&(t=Ve(t));for(var o=i.length,s=new Array(o),u=new Array(o),l=new Array(o),a=0;a<o;++a){var c=r[a],p=i[a],h=p.length,_=Ke(t.call(c,c&&c.__data__,a,r)),w=_.length,x=u[a]=new Array(w),b=s[a]=new Array(w),g=l[a]=new Array(h);e(c,p,x,b,g,_,n);for(var $=0,N=0,E,C;$<w;++$)if(E=x[$]){for($>=N&&(N=$+1);!(C=b[N])&&++N<w;);E._next=C||null}}return s=new B(s,r),s._enter=u,s._exit=l,s}function Ke(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function We(){return new B(this._exit||this._groups.map(Hn),this._parents)}function Ze(t,n,e){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?o.remove():e(o),r&&i?r.merge(i).order():i}function Qe(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,s=Math.min(i,o),u=new Array(i),l=0;l<s;++l)for(var a=e[l],c=r[l],p=a.length,h=u[l]=new Array(p),_,w=0;w<p;++w)(_=a[w]||c[w])&&(h[w]=_);for(;l<i;++l)u[l]=e[l];return new B(u,this._parents)}function Je(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,o=r[i],s;--i>=0;)(s=r[i])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function je(t){t||(t=tr);function n(p,h){return p&&h?t(p.__data__,h.__data__):!p-!h}for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var s=e[o],u=s.length,l=i[o]=new Array(u),a,c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(n)}return new B(i,this._parents).order()}function tr(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function nr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function er(){return Array.from(this)}function rr(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var s=r[i];if(s)return s}return null}function ir(){let t=0;for(const n of this)++t;return t}function or(){return!this.node()}function sr(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],o=0,s=i.length,u;o<s;++o)(u=i[o])&&t.call(u,u.__data__,o,i);return this}function ar(t){return function(){this.removeAttribute(t)}}function ur(t){return function(){this.removeAttributeNS(t.space,t.local)}}function lr(t,n){return function(){this.setAttribute(t,n)}}function cr(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function fr(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function hr(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function pr(t,n){var e=Xt(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?ur:ar:typeof n=="function"?e.local?hr:fr:e.local?cr:lr)(e,n))}function Fn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function dr(t){return function(){this.style.removeProperty(t)}}function _r(t,n,e){return function(){this.style.setProperty(t,n,e)}}function gr(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function mr(t,n,e){return arguments.length>1?this.each((n==null?dr:typeof n=="function"?gr:_r)(t,n,e??"")):ct(this.node(),t)}function ct(t,n){return t.style.getPropertyValue(n)||Fn(t).getComputedStyle(t,null).getPropertyValue(n)}function yr(t){return function(){delete this[t]}}function wr(t,n){return function(){this[t]=n}}function xr(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function vr(t,n){return arguments.length>1?this.each((n==null?yr:typeof n=="function"?xr:wr)(t,n)):this.node()[t]}function Ln(t){return t.trim().split(/^|\s+/)}function ln(t){return t.classList||new Vn(t)}function Vn(t){this._node=t,this._names=Ln(t.getAttribute("class")||"")}Vn.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Yn(t,n){for(var e=ln(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function On(t,n){for(var e=ln(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function br(t){return function(){Yn(this,t)}}function $r(t){return function(){On(this,t)}}function kr(t,n){return function(){(n.apply(this,arguments)?Yn:On)(this,t)}}function Ar(t,n){var e=Ln(t+"");if(arguments.length<2){for(var r=ln(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?kr:n?br:$r)(e,n))}function zr(){this.textContent=""}function Mr(t){return function(){this.textContent=t}}function Nr(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function Er(t){return arguments.length?this.each(t==null?zr:(typeof t=="function"?Nr:Mr)(t)):this.node().textContent}function Sr(){this.innerHTML=""}function Tr(t){return function(){this.innerHTML=t}}function Cr(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function Rr(t){return arguments.length?this.each(t==null?Sr:(typeof t=="function"?Cr:Tr)(t)):this.node().innerHTML}function Ir(){this.nextSibling&&this.parentNode.appendChild(this)}function Dr(){return this.each(Ir)}function Br(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Pr(){return this.each(Br)}function qr(t){var n=typeof t=="function"?t:Bn(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function Xr(){return null}function Hr(t,n){var e=typeof t=="function"?t:Bn(t),r=n==null?Xr:typeof n=="function"?n:un(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function Fr(){var t=this.parentNode;t&&t.removeChild(this)}function Lr(){return this.each(Fr)}function Vr(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Yr(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Or(t){return this.select(t?Yr:Vr)}function Gr(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Ur(t){return function(n){t.call(this,n,this.__data__)}}function Kr(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function Wr(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,o;e<i;++e)o=n[e],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):n[++r]=o;++r?n.length=r:delete this.__on}}}function Zr(t,n,e){return function(){var r=this.__on,i,o=Ur(n);if(r){for(var s=0,u=r.length;s<u;++s)if((i=r[s]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=e),i.value=n;return}}this.addEventListener(t.type,o,e),i={type:t.type,name:t.name,value:n,listener:o,options:e},r?r.push(i):this.__on=[i]}}function Qr(t,n,e){var r=Kr(t+""),i,o=r.length,s;if(arguments.length<2){var u=this.node().__on;if(u){for(var l=0,a=u.length,c;l<a;++l)for(i=0,c=u[l];i<o;++i)if((s=r[i]).type===c.type&&s.name===c.name)return c.value}return}for(u=n?Zr:Wr,i=0;i<o;++i)this.each(u(r[i],n,e));return this}function Gn(t,n,e){var r=Fn(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Jr(t,n){return function(){return Gn(this,t,n)}}function jr(t,n){return function(){return Gn(this,t,n.apply(this,arguments))}}function ti(t,n){return this.each((typeof n=="function"?jr:Jr)(t,n))}function*ni(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length,s;i<o;++i)(s=r[i])&&(yield s)}var Un=[null];function B(t,n){this._groups=t,this._parents=n}function vt(){return new B([[document.documentElement]],Un)}function ei(){return this}B.prototype=vt.prototype={constructor:B,select:Ne,selectAll:Ce,selectChild:Be,selectChildren:He,filter:Fe,data:Ue,enter:Le,exit:We,join:Ze,merge:Qe,selection:ei,order:Je,sort:je,call:nr,nodes:er,node:rr,size:ir,empty:or,each:sr,attr:pr,style:mr,property:vr,classed:Ar,text:Er,html:Rr,raise:Dr,lower:Pr,append:qr,insert:Hr,remove:Lr,clone:Or,datum:Gr,on:Qr,dispatch:ti,[Symbol.iterator]:ni};function Z(t){return typeof t=="string"?new B([[document.querySelector(t)]],[document.documentElement]):new B([[t]],Un)}function ri(t){let n;for(;n=t.sourceEvent;)t=n;return t}function rt(t,n){if(t=ri(t),n===void 0&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}const Zt={capture:!0,passive:!1};function Qt(t){t.preventDefault(),t.stopImmediatePropagation()}function ii(t){var n=t.document.documentElement,e=Z(t).on("dragstart.drag",Qt,Zt);"onselectstart"in n?e.on("selectstart.drag",Qt,Zt):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function oi(t,n){var e=t.document.documentElement,r=Z(t).on("dragstart.drag",null);n&&(r.on("click.drag",Qt,Zt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function cn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Kn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function bt(){}var gt=.7,Rt=1/gt,lt="\\s*([+-]?\\d+)\\s*",mt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",V="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",si=/^#([0-9a-f]{3,8})$/,ai=new RegExp(`^rgb\\(${lt},${lt},${lt}\\)$`),ui=new RegExp(`^rgb\\(${V},${V},${V}\\)$`),li=new RegExp(`^rgba\\(${lt},${lt},${lt},${mt}\\)$`),ci=new RegExp(`^rgba\\(${V},${V},${V},${mt}\\)$`),fi=new RegExp(`^hsl\\(${mt},${V},${V}\\)$`),hi=new RegExp(`^hsla\\(${mt},${V},${V},${mt}\\)$`),wn={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};cn(bt,yt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:xn,formatHex:xn,formatHex8:pi,formatHsl:di,formatRgb:vn,toString:vn});function xn(){return this.rgb().formatHex()}function pi(){return this.rgb().formatHex8()}function di(){return Wn(this).formatHsl()}function vn(){return this.rgb().formatRgb()}function yt(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=si.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?bn(n):e===3?new I(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?$t(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?$t(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=ai.exec(t))?new I(n[1],n[2],n[3],1):(n=ui.exec(t))?new I(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=li.exec(t))?$t(n[1],n[2],n[3],n[4]):(n=ci.exec(t))?$t(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=fi.exec(t))?An(n[1],n[2]/100,n[3]/100,1):(n=hi.exec(t))?An(n[1],n[2]/100,n[3]/100,n[4]):wn.hasOwnProperty(t)?bn(wn[t]):t==="transparent"?new I(NaN,NaN,NaN,0):null}function bn(t){return new I(t>>16&255,t>>8&255,t&255,1)}function $t(t,n,e,r){return r<=0&&(t=n=e=NaN),new I(t,n,e,r)}function _i(t){return t instanceof bt||(t=yt(t)),t?(t=t.rgb(),new I(t.r,t.g,t.b,t.opacity)):new I}function Jt(t,n,e,r){return arguments.length===1?_i(t):new I(t,n,e,r??1)}function I(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}cn(I,Jt,Kn(bt,{brighter(t){return t=t==null?Rt:Math.pow(Rt,t),new I(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?gt:Math.pow(gt,t),new I(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new I(st(this.r),st(this.g),st(this.b),It(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:$n,formatHex:$n,formatHex8:gi,formatRgb:kn,toString:kn}));function $n(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}`}function gi(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}${ot((isNaN(this.opacity)?1:this.opacity)*255)}`}function kn(){const t=It(this.opacity);return`${t===1?"rgb(":"rgba("}${st(this.r)}, ${st(this.g)}, ${st(this.b)}${t===1?")":`, ${t})`}`}function It(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function st(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ot(t){return t=st(t),(t<16?"0":"")+t.toString(16)}function An(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new H(t,n,e,r)}function Wn(t){if(t instanceof H)return new H(t.h,t.s,t.l,t.opacity);if(t instanceof bt||(t=yt(t)),!t)return new H;if(t instanceof H)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),s=NaN,u=o-i,l=(o+i)/2;return u?(n===o?s=(e-r)/u+(e<r)*6:e===o?s=(r-n)/u+2:s=(n-e)/u+4,u/=l<.5?o+i:2-o-i,s*=60):u=l>0&&l<1?0:s,new H(s,u,l,t.opacity)}function mi(t,n,e,r){return arguments.length===1?Wn(t):new H(t,n,e,r??1)}function H(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}cn(H,mi,Kn(bt,{brighter(t){return t=t==null?Rt:Math.pow(Rt,t),new H(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?gt:Math.pow(gt,t),new H(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new I(Yt(t>=240?t-240:t+120,i,r),Yt(t,i,r),Yt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new H(zn(this.h),kt(this.s),kt(this.l),It(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=It(this.opacity);return`${t===1?"hsl(":"hsla("}${zn(this.h)}, ${kt(this.s)*100}%, ${kt(this.l)*100}%${t===1?")":`, ${t})`}`}}));function zn(t){return t=(t||0)%360,t<0?t+360:t}function kt(t){return Math.max(0,Math.min(1,t||0))}function Yt(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}const Zn=t=>()=>t;function yi(t,n){return function(e){return t+e*n}}function wi(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function xi(t){return(t=+t)==1?Qn:function(n,e){return e-n?wi(n,e,t):Zn(isNaN(n)?e:n)}}function Qn(t,n){var e=n-t;return e?yi(t,e):Zn(isNaN(t)?n:t)}const Mn=(function t(n){var e=xi(n);function r(i,o){var s=e((i=Jt(i)).r,(o=Jt(o)).r),u=e(i.g,o.g),l=e(i.b,o.b),a=Qn(i.opacity,o.opacity);return function(c){return i.r=s(c),i.g=u(c),i.b=l(c),i.opacity=a(c),i+""}}return r.gamma=t,r})(1);function tt(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var jt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ot=new RegExp(jt.source,"g");function vi(t){return function(){return t}}function bi(t){return function(n){return t(n)+""}}function $i(t,n){var e=jt.lastIndex=Ot.lastIndex=0,r,i,o,s=-1,u=[],l=[];for(t=t+"",n=n+"";(r=jt.exec(t))&&(i=Ot.exec(n));)(o=i.index)>e&&(o=n.slice(e,o),u[s]?u[s]+=o:u[++s]=o),(r=r[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,l.push({i:s,x:tt(r,i)})),e=Ot.lastIndex;return e<n.length&&(o=n.slice(e),u[s]?u[s]+=o:u[++s]=o),u.length<2?l[0]?bi(l[0].x):vi(n):(n=l.length,function(a){for(var c=0,p;c<n;++c)u[(p=l[c]).i]=p.x(a);return u.join("")})}var Nn=180/Math.PI,tn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Jn(t,n,e,r,i,o){var s,u,l;return(s=Math.sqrt(t*t+n*n))&&(t/=s,n/=s),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,l/=u),t*r<n*e&&(t=-t,n=-n,l=-l,s=-s),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Nn,skewX:Math.atan(l)*Nn,scaleX:s,scaleY:u}}var At;function ki(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?tn:Jn(n.a,n.b,n.c,n.d,n.e,n.f)}function Ai(t){return t==null||(At||(At=document.createElementNS("http://www.w3.org/2000/svg","g")),At.setAttribute("transform",t),!(t=At.transform.baseVal.consolidate()))?tn:(t=t.matrix,Jn(t.a,t.b,t.c,t.d,t.e,t.f))}function jn(t,n,e,r){function i(a){return a.length?a.pop()+" ":""}function o(a,c,p,h,_,w){if(a!==p||c!==h){var x=_.push("translate(",null,n,null,e);w.push({i:x-4,x:tt(a,p)},{i:x-2,x:tt(c,h)})}else(p||h)&&_.push("translate("+p+n+h+e)}function s(a,c,p,h){a!==c?(a-c>180?c+=360:c-a>180&&(a+=360),h.push({i:p.push(i(p)+"rotate(",null,r)-2,x:tt(a,c)})):c&&p.push(i(p)+"rotate("+c+r)}function u(a,c,p,h){a!==c?h.push({i:p.push(i(p)+"skewX(",null,r)-2,x:tt(a,c)}):c&&p.push(i(p)+"skewX("+c+r)}function l(a,c,p,h,_,w){if(a!==p||c!==h){var x=_.push(i(_)+"scale(",null,",",null,")");w.push({i:x-4,x:tt(a,p)},{i:x-2,x:tt(c,h)})}else(p!==1||h!==1)&&_.push(i(_)+"scale("+p+","+h+")")}return function(a,c){var p=[],h=[];return a=t(a),c=t(c),o(a.translateX,a.translateY,c.translateX,c.translateY,p,h),s(a.rotate,c.rotate,p,h),u(a.skewX,c.skewX,p,h),l(a.scaleX,a.scaleY,c.scaleX,c.scaleY,p,h),a=c=null,function(_){for(var w=-1,x=h.length,b;++w<x;)p[(b=h[w]).i]=b.x(_);return p.join("")}}}var zi=jn(ki,"px, ","px)","deg)"),Mi=jn(Ai,", ",")",")"),Ni=1e-12;function En(t){return((t=Math.exp(t))+1/t)/2}function Ei(t){return((t=Math.exp(t))-1/t)/2}function Si(t){return((t=Math.exp(2*t))-1)/(t+1)}const Ti=(function t(n,e,r){function i(o,s){var u=o[0],l=o[1],a=o[2],c=s[0],p=s[1],h=s[2],_=c-u,w=p-l,x=_*_+w*w,b,g;if(x<Ni)g=Math.log(h/a)/n,b=function(P){return[u+P*_,l+P*w,a*Math.exp(n*P*g)]};else{var $=Math.sqrt(x),N=(h*h-a*a+r*x)/(2*a*e*$),E=(h*h-a*a-r*x)/(2*h*e*$),C=Math.log(Math.sqrt(N*N+1)-N),R=Math.log(Math.sqrt(E*E+1)-E);g=(R-C)/n,b=function(P){var ut=P*g,z=En(C),D=a/(e*$)*(z*Si(n*ut+C)-Ei(C));return[u+D*_,l+D*w,a*z/En(n*ut+C)]}}return b.duration=g*1e3*n/Math.SQRT2,b}return i.rho=function(o){var s=Math.max(.001,+o),u=s*s,l=u*u;return t(s,u,l)},i})(Math.SQRT2,2,4);var ft=0,dt=0,ht=0,te=1e3,Dt,_t,Bt=0,at=0,Ht=0,wt=typeof performance=="object"&&performance.now?performance:Date,ne=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function fn(){return at||(ne(Ci),at=wt.now()+Ht)}function Ci(){at=0}function Pt(){this._call=this._time=this._next=null}Pt.prototype=ee.prototype={constructor:Pt,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?fn():+e)+(n==null?0:+n),!this._next&&_t!==this&&(_t?_t._next=this:Dt=this,_t=this),this._call=t,this._time=e,nn()},stop:function(){this._call&&(this._call=null,this._time=1/0,nn())}};function ee(t,n,e){var r=new Pt;return r.restart(t,n,e),r}function Ri(){fn(),++ft;for(var t=Dt,n;t;)(n=at-t._time)>=0&&t._call.call(void 0,n),t=t._next;--ft}function Sn(){at=(Bt=wt.now())+Ht,ft=dt=0;try{Ri()}finally{ft=0,Di(),at=0}}function Ii(){var t=wt.now(),n=t-Bt;n>te&&(Ht-=n,Bt=t)}function Di(){for(var t,n=Dt,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Dt=e);_t=t,nn(r)}function nn(t){if(!ft){dt&&(dt=clearTimeout(dt));var n=t-at;n>24?(t<1/0&&(dt=setTimeout(Sn,t-wt.now()-Ht)),ht&&(ht=clearInterval(ht))):(ht||(Bt=wt.now(),ht=setInterval(Ii,te)),ft=1,ne(Sn))}}function Tn(t,n,e){var r=new Pt;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}var Bi=an("start","end","cancel","interrupt"),Pi=[],re=0,Cn=1,en=2,Nt=3,Rn=4,rn=5,Et=6;function Ft(t,n,e,r,i,o){var s=t.__transition;if(!s)t.__transition={};else if(e in s)return;qi(t,e,{name:n,index:r,group:i,on:Bi,tween:Pi,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:re})}function hn(t,n){var e=F(t,n);if(e.state>re)throw new Error("too late; already scheduled");return e}function Y(t,n){var e=F(t,n);if(e.state>Nt)throw new Error("too late; already running");return e}function F(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function qi(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=ee(o,0,e.time);function o(a){e.state=Cn,e.timer.restart(s,e.delay,e.time),e.delay<=a&&s(a-e.delay)}function s(a){var c,p,h,_;if(e.state!==Cn)return l();for(c in r)if(_=r[c],_.name===e.name){if(_.state===Nt)return Tn(s);_.state===Rn?(_.state=Et,_.timer.stop(),_.on.call("interrupt",t,t.__data__,_.index,_.group),delete r[c]):+c<n&&(_.state=Et,_.timer.stop(),_.on.call("cancel",t,t.__data__,_.index,_.group),delete r[c])}if(Tn(function(){e.state===Nt&&(e.state=Rn,e.timer.restart(u,e.delay,e.time),u(a))}),e.state=en,e.on.call("start",t,t.__data__,e.index,e.group),e.state===en){for(e.state=Nt,i=new Array(h=e.tween.length),c=0,p=-1;c<h;++c)(_=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++p]=_);i.length=p+1}}function u(a){for(var c=a<e.duration?e.ease.call(null,a/e.duration):(e.timer.restart(l),e.state=rn,1),p=-1,h=i.length;++p<h;)i[p].call(t,c);e.state===rn&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){e.state=Et,e.timer.stop(),delete r[n];for(var a in r)return;delete t.__transition}}function St(t,n){var e=t.__transition,r,i,o=!0,s;if(e){n=n==null?null:n+"";for(s in e){if((r=e[s]).name!==n){o=!1;continue}i=r.state>en&&r.state<rn,r.state=Et,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[s]}o&&delete t.__transition}}function Xi(t){return this.each(function(){St(this,t)})}function Hi(t,n){var e,r;return function(){var i=Y(this,t),o=i.tween;if(o!==e){r=e=o;for(var s=0,u=r.length;s<u;++s)if(r[s].name===n){r=r.slice(),r.splice(s,1);break}}i.tween=r}}function Fi(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var o=Y(this,t),s=o.tween;if(s!==r){i=(r=s).slice();for(var u={name:n,value:e},l=0,a=i.length;l<a;++l)if(i[l].name===n){i[l]=u;break}l===a&&i.push(u)}o.tween=i}}function Li(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=F(this.node(),e).tween,i=0,o=r.length,s;i<o;++i)if((s=r[i]).name===t)return s.value;return null}return this.each((n==null?Hi:Fi)(e,t,n))}function pn(t,n,e){var r=t._id;return t.each(function(){var i=Y(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return F(i,r).value[n]}}function ie(t,n){var e;return(typeof n=="number"?tt:n instanceof yt?Mn:(e=yt(n))?(n=e,Mn):$i)(t,n)}function Vi(t){return function(){this.removeAttribute(t)}}function Yi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Oi(t,n,e){var r,i=e+"",o;return function(){var s=this.getAttribute(t);return s===i?null:s===r?o:o=n(r=s,e)}}function Gi(t,n,e){var r,i=e+"",o;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===r?o:o=n(r=s,e)}}function Ui(t,n,e){var r,i,o;return function(){var s,u=e(this),l;return u==null?void this.removeAttribute(t):(s=this.getAttribute(t),l=u+"",s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u)))}}function Ki(t,n,e){var r,i,o;return function(){var s,u=e(this),l;return u==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),l=u+"",s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u)))}}function Wi(t,n){var e=Xt(t),r=e==="transform"?Mi:ie;return this.attrTween(t,typeof n=="function"?(e.local?Ki:Ui)(e,r,pn(this,"attr."+t,n)):n==null?(e.local?Yi:Vi)(e):(e.local?Gi:Oi)(e,r,n))}function Zi(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Qi(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Ji(t,n){var e,r;function i(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&Qi(t,o)),e}return i._value=n,i}function ji(t,n){var e,r;function i(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&Zi(t,o)),e}return i._value=n,i}function to(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Xt(t);return this.tween(e,(r.local?Ji:ji)(r,n))}function no(t,n){return function(){hn(this,t).delay=+n.apply(this,arguments)}}function eo(t,n){return n=+n,function(){hn(this,t).delay=n}}function ro(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?no:eo)(n,t)):F(this.node(),n).delay}function io(t,n){return function(){Y(this,t).duration=+n.apply(this,arguments)}}function oo(t,n){return n=+n,function(){Y(this,t).duration=n}}function so(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?io:oo)(n,t)):F(this.node(),n).duration}function ao(t,n){if(typeof n!="function")throw new Error;return function(){Y(this,t).ease=n}}function uo(t){var n=this._id;return arguments.length?this.each(ao(n,t)):F(this.node(),n).ease}function lo(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;Y(this,t).ease=e}}function co(t){if(typeof t!="function")throw new Error;return this.each(lo(this._id,t))}function fo(t){typeof t!="function"&&(t=qn(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=[],l,a=0;a<s;++a)(l=o[a])&&t.call(l,l.__data__,a,o)&&u.push(l);return new J(r,this._parents,this._name,this._id)}function ho(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),s=new Array(r),u=0;u<o;++u)for(var l=n[u],a=e[u],c=l.length,p=s[u]=new Array(c),h,_=0;_<c;++_)(h=l[_]||a[_])&&(p[_]=h);for(;u<r;++u)s[u]=n[u];return new J(s,this._parents,this._name,this._id)}function po(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function _o(t,n,e){var r,i,o=po(n)?hn:Y;return function(){var s=o(this,t),u=s.on;u!==r&&(i=(r=u).copy()).on(n,e),s.on=i}}function go(t,n){var e=this._id;return arguments.length<2?F(this.node(),e).on.on(t):this.each(_o(e,t,n))}function mo(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function yo(){return this.on("end.remove",mo(this._id))}function wo(t){var n=this._name,e=this._id;typeof t!="function"&&(t=un(t));for(var r=this._groups,i=r.length,o=new Array(i),s=0;s<i;++s)for(var u=r[s],l=u.length,a=o[s]=new Array(l),c,p,h=0;h<l;++h)(c=u[h])&&(p=t.call(c,c.__data__,h,u))&&("__data__"in c&&(p.__data__=c.__data__),a[h]=p,Ft(a[h],n,e,h,a,F(c,e)));return new J(o,this._parents,n,e)}function xo(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Pn(t));for(var r=this._groups,i=r.length,o=[],s=[],u=0;u<i;++u)for(var l=r[u],a=l.length,c,p=0;p<a;++p)if(c=l[p]){for(var h=t.call(c,c.__data__,p,l),_,w=F(c,e),x=0,b=h.length;x<b;++x)(_=h[x])&&Ft(_,n,e,x,h,w);o.push(h),s.push(c)}return new J(o,s,n,e)}var vo=vt.prototype.constructor;function bo(){return new vo(this._groups,this._parents)}function $o(t,n){var e,r,i;return function(){var o=ct(this,t),s=(this.style.removeProperty(t),ct(this,t));return o===s?null:o===e&&s===r?i:i=n(e=o,r=s)}}function oe(t){return function(){this.style.removeProperty(t)}}function ko(t,n,e){var r,i=e+"",o;return function(){var s=ct(this,t);return s===i?null:s===r?o:o=n(r=s,e)}}function Ao(t,n,e){var r,i,o;return function(){var s=ct(this,t),u=e(this),l=u+"";return u==null&&(l=u=(this.style.removeProperty(t),ct(this,t))),s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u))}}function zo(t,n){var e,r,i,o="style."+n,s="end."+o,u;return function(){var l=Y(this,t),a=l.on,c=l.value[o]==null?u||(u=oe(n)):void 0;(a!==e||i!==c)&&(r=(e=a).copy()).on(s,i=c),l.on=r}}function Mo(t,n,e){var r=(t+="")=="transform"?zi:ie;return n==null?this.styleTween(t,$o(t,r)).on("end.style."+t,oe(t)):typeof n=="function"?this.styleTween(t,Ao(t,r,pn(this,"style."+t,n))).each(zo(this._id,t)):this.styleTween(t,ko(t,r,n),e).on("end.style."+t,null)}function No(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Eo(t,n,e){var r,i;function o(){var s=n.apply(this,arguments);return s!==i&&(r=(i=s)&&No(t,s,e)),r}return o._value=n,o}function So(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,Eo(t,n,e??""))}function To(t){return function(){this.textContent=t}}function Co(t){return function(){var n=t(this);this.textContent=n??""}}function Ro(t){return this.tween("text",typeof t=="function"?Co(pn(this,"text",t)):To(t==null?"":t+""))}function Io(t){return function(n){this.textContent=t.call(this,n)}}function Do(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&Io(i)),n}return r._value=t,r}function Bo(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,Do(t))}function Po(){for(var t=this._name,n=this._id,e=se(),r=this._groups,i=r.length,o=0;o<i;++o)for(var s=r[o],u=s.length,l,a=0;a<u;++a)if(l=s[a]){var c=F(l,n);Ft(l,t,e,a,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new J(r,this._parents,t,e)}function qo(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(o,s){var u={value:s},l={value:function(){--i===0&&o()}};e.each(function(){var a=Y(this,r),c=a.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(u),n._.interrupt.push(u),n._.end.push(l)),a.on=n}),i===0&&o()})}var Xo=0;function J(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function se(){return++Xo}var W=vt.prototype;J.prototype={constructor:J,select:wo,selectAll:xo,selectChild:W.selectChild,selectChildren:W.selectChildren,filter:fo,merge:ho,selection:bo,transition:Po,call:W.call,nodes:W.nodes,node:W.node,size:W.size,empty:W.empty,each:W.each,on:go,attr:Wi,attrTween:to,style:Mo,styleTween:So,text:Ro,textTween:Bo,remove:yo,tween:Li,delay:ro,duration:so,ease:uo,easeVarying:co,end:qo,[Symbol.iterator]:W[Symbol.iterator]};function Ho(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Fo={time:null,delay:0,duration:250,ease:Ho};function Lo(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Vo(t){var n,e;t instanceof J?(n=t._id,t=t._name):(n=se(),(e=Fo).time=fn(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var s=r[o],u=s.length,l,a=0;a<u;++a)(l=s[a])&&Ft(l,t,n,a,s,e||Lo(l,n));return new J(r,this._parents,t,n)}vt.prototype.interrupt=Xi;vt.prototype.transition=Vo;const on=Math.PI,sn=2*on,it=1e-6,Yo=sn-it;function ae(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Oo(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return ae;const e=10**n;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*e)/e+r[i]}}class Go{constructor(n){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=n==null?ae:Oo(n)}moveTo(n,e){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(n,e){this._append`L${this._x1=+n},${this._y1=+e}`}quadraticCurveTo(n,e,r,i){this._append`Q${+n},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(n,e,r,i,o,s){this._append`C${+n},${+e},${+r},${+i},${this._x1=+o},${this._y1=+s}`}arcTo(n,e,r,i,o){if(n=+n,e=+e,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,u=this._y1,l=r-n,a=i-e,c=s-n,p=u-e,h=c*c+p*p;if(this._x1===null)this._append`M${this._x1=n},${this._y1=e}`;else if(h>it)if(!(Math.abs(p*l-a*c)>it)||!o)this._append`L${this._x1=n},${this._y1=e}`;else{let _=r-s,w=i-u,x=l*l+a*a,b=_*_+w*w,g=Math.sqrt(x),$=Math.sqrt(h),N=o*Math.tan((on-Math.acos((x+h-b)/(2*g*$)))/2),E=N/$,C=N/g;Math.abs(E-1)>it&&this._append`L${n+E*c},${e+E*p}`,this._append`A${o},${o},0,0,${+(p*_>c*w)},${this._x1=n+C*l},${this._y1=e+C*a}`}}arc(n,e,r,i,o,s){if(n=+n,e=+e,r=+r,s=!!s,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(i),l=r*Math.sin(i),a=n+u,c=e+l,p=1^s,h=s?i-o:o-i;this._x1===null?this._append`M${a},${c}`:(Math.abs(this._x1-a)>it||Math.abs(this._y1-c)>it)&&this._append`L${a},${c}`,r&&(h<0&&(h=h%sn+sn),h>Yo?this._append`A${r},${r},0,1,${p},${n-u},${e-l}A${r},${r},0,1,${p},${this._x1=a},${this._y1=c}`:h>it&&this._append`A${r},${r},0,${+(h>=on)},${p},${this._x1=n+r*Math.cos(o)},${this._y1=e+r*Math.sin(o)}`)}rect(n,e,r,i){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function Uo(t){var n=0,e=t.children,r=e&&e.length;if(!r)n=1;else for(;--r>=0;)n+=e[r].value;t.value=n}function Ko(){return this.eachAfter(Uo)}function Wo(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this}function Zo(t,n){for(var e=this,r=[e],i,o,s=-1;e=r.pop();)if(t.call(n,e,++s,this),i=e.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function Qo(t,n){for(var e=this,r=[e],i=[],o,s,u,l=-1;e=r.pop();)if(i.push(e),o=e.children)for(s=0,u=o.length;s<u;++s)r.push(o[s]);for(;e=i.pop();)t.call(n,e,++l,this);return this}function Jo(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r}function jo(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})}function ts(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})}function ns(t){for(var n=this,e=es(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r}function es(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function rs(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n}function is(){return Array.from(this)}function os(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t}function ss(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n}function*as(){var t=this,n,e=[t],r,i,o;do for(n=e.reverse(),e=[];t=n.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)e.push(r[i]);while(e.length)}function dn(t,n){t instanceof Map?(t=[void 0,t],n===void 0&&(n=cs)):n===void 0&&(n=ls);for(var e=new xt(t),r,i=[e],o,s,u,l;r=i.pop();)if((s=n(r.data))&&(l=(s=Array.from(s)).length))for(r.children=s,u=l-1;u>=0;--u)i.push(o=s[u]=new xt(s[u])),o.parent=r,o.depth=r.depth+1;return e.eachBefore(hs)}function us(){return dn(this).eachBefore(fs)}function ls(t){return t.children}function cs(t){return Array.isArray(t)?t[1]:null}function fs(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function hs(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function xt(t){this.data=t,this.depth=this.height=0,this.parent=null}xt.prototype=dn.prototype={constructor:xt,count:Ko,each:Wo,eachAfter:Qo,eachBefore:Zo,find:Jo,sum:jo,sort:ts,path:ns,ancestors:rs,descendants:is,leaves:os,links:ss,copy:us,[Symbol.iterator]:as};function ps(t,n){return t.parent===n.parent?1:2}function Gt(t){var n=t.children;return n?n[0]:t.t}function Ut(t){var n=t.children;return n?n[n.length-1]:t.t}function ds(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function _s(t){for(var n=0,e=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=n,o.m+=n,n+=o.s+(e+=o.c)}function gs(t,n,e){return t.a.parent===n.parent?t.a:e}function Tt(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}Tt.prototype=Object.create(xt.prototype);function ms(t){for(var n=new Tt(t,0),e,r=[n],i,o,s,u;e=r.pop();)if(o=e._.children)for(e.children=new Array(u=o.length),s=u-1;s>=0;--s)r.push(i=e.children[s]=new Tt(o[s],s)),i.parent=e;return(n.parent=new Tt(null,0)).children=[n],n}function ys(){var t=ps,n=1,e=1,r=null;function i(a){var c=ms(a);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(s),r)a.eachBefore(l);else{var p=a,h=a,_=a;a.eachBefore(function($){$.x<p.x&&(p=$),$.x>h.x&&(h=$),$.depth>_.depth&&(_=$)});var w=p===h?1:t(p,h)/2,x=w-p.x,b=n/(h.x+w+x),g=e/(_.depth||1);a.eachBefore(function($){$.x=($.x+x)*b,$.y=$.depth*g})}return a}function o(a){var c=a.children,p=a.parent.children,h=a.i?p[a.i-1]:null;if(c){_s(a);var _=(c[0].z+c[c.length-1].z)/2;h?(a.z=h.z+t(a._,h._),a.m=a.z-_):a.z=_}else h&&(a.z=h.z+t(a._,h._));a.parent.A=u(a,h,a.parent.A||p[0])}function s(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function u(a,c,p){if(c){for(var h=a,_=a,w=c,x=h.parent.children[0],b=h.m,g=_.m,$=w.m,N=x.m,E;w=Ut(w),h=Gt(h),w&&h;)x=Gt(x),_=Ut(_),_.a=a,E=w.z+$-h.z-b+t(w._,h._),E>0&&(ds(gs(w,a,p),a,E),b+=E,g+=E),$+=w.m,b+=h.m,N+=x.m,g+=_.m;w&&!Ut(_)&&(_.t=w,_.m+=$-g),h&&!Gt(x)&&(x.t=h,x.m+=b-N,p=a)}return p}function l(a){a.x*=n,a.y=a.depth*e}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(r=!1,n=+a[0],e=+a[1],i):r?null:[n,e]},i.nodeSize=function(a){return arguments.length?(r=!0,n=+a[0],e=+a[1],i):r?[n,e]:null},i}function In(t){return function(){return t}}function ws(t){let n=3;return t.digits=function(e){if(!arguments.length)return n;if(e==null)n=null;else{const r=Math.floor(e);if(!(r>=0))throw new RangeError(`invalid digits: ${e}`);n=r}return t},()=>new Go(n)}var xs=Array.prototype.slice;function vs(t){return t[0]}function bs(t){return t[1]}class $s{constructor(n,e){this._context=n,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(n,e){switch(n=+n,e=+e,this._point){case 0:{this._point=1,this._line?this._context.lineTo(n,e):this._context.moveTo(n,e);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+n)/2,this._y0,this._x0,e,n,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,n,this._y0,n,e);break}}this._x0=n,this._y0=e}}function ks(t){return new $s(t,!0)}function As(t){return t.source}function zs(t){return t.target}function Ms(t){let n=As,e=zs,r=vs,i=bs,o=null,s=null,u=ws(l);function l(){let a;const c=xs.call(arguments),p=n.apply(this,c),h=e.apply(this,c);if(o==null&&(s=t(a=u())),s.lineStart(),c[0]=p,s.point(+r.apply(this,c),+i.apply(this,c)),c[0]=h,s.point(+r.apply(this,c),+i.apply(this,c)),s.lineEnd(),a)return s=null,a+""||null}return l.source=function(a){return arguments.length?(n=a,l):n},l.target=function(a){return arguments.length?(e=a,l):e},l.x=function(a){return arguments.length?(r=typeof a=="function"?a:In(+a),l):r},l.y=function(a){return arguments.length?(i=typeof a=="function"?a:In(+a),l):i},l.context=function(a){return arguments.length?(a==null?o=s=null:s=t(o=a),l):o},l}function Ns(){return Ms(ks)}const zt=t=>()=>t;function Es(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Q(t,n,e){this.k=t,this.x=n,this.y=e}Q.prototype={constructor:Q,scale:function(t){return t===1?this:new Q(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Q(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var qt=new Q(1,0,0);Q.prototype;function Kt(t){t.stopImmediatePropagation()}function pt(t){t.preventDefault(),t.stopImmediatePropagation()}function Ss(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Ts(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Dn(){return this.__zoom||qt}function Cs(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Rs(){return navigator.maxTouchPoints||"ontouchstart"in this}function Is(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],s=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function Ds(){var t=Ss,n=Ts,e=Is,r=Cs,i=Rs,o=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,l=Ti,a=an("start","zoom","end"),c,p,h,_=500,w=150,x=0,b=10;function g(f){f.property("__zoom",Dn).on("wheel.zoom",ut,{passive:!1}).on("mousedown.zoom",z).on("dblclick.zoom",D).filter(i).on("touchstart.zoom",ue).on("touchmove.zoom",le).on("touchend.zoom touchcancel.zoom",ce).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(f,m,d,y){var v=f.selection?f.selection():f;v.property("__zoom",Dn),f!==v?C(f,m,d,y):v.interrupt().each(function(){R(this,arguments).event(y).start().zoom(null,typeof m=="function"?m.apply(this,arguments):m).end()})},g.scaleBy=function(f,m,d,y){g.scaleTo(f,function(){var v=this.__zoom.k,k=typeof m=="function"?m.apply(this,arguments):m;return v*k},d,y)},g.scaleTo=function(f,m,d,y){g.transform(f,function(){var v=n.apply(this,arguments),k=this.__zoom,A=d==null?E(v):typeof d=="function"?d.apply(this,arguments):d,M=k.invert(A),S=typeof m=="function"?m.apply(this,arguments):m;return e(N($(k,S),A,M),v,s)},d,y)},g.translateBy=function(f,m,d,y){g.transform(f,function(){return e(this.__zoom.translate(typeof m=="function"?m.apply(this,arguments):m,typeof d=="function"?d.apply(this,arguments):d),n.apply(this,arguments),s)},null,y)},g.translateTo=function(f,m,d,y,v){g.transform(f,function(){var k=n.apply(this,arguments),A=this.__zoom,M=y==null?E(k):typeof y=="function"?y.apply(this,arguments):y;return e(qt.translate(M[0],M[1]).scale(A.k).translate(typeof m=="function"?-m.apply(this,arguments):-m,typeof d=="function"?-d.apply(this,arguments):-d),k,s)},y,v)};function $(f,m){return m=Math.max(o[0],Math.min(o[1],m)),m===f.k?f:new Q(m,f.x,f.y)}function N(f,m,d){var y=m[0]-d[0]*f.k,v=m[1]-d[1]*f.k;return y===f.x&&v===f.y?f:new Q(f.k,y,v)}function E(f){return[(+f[0][0]+ +f[1][0])/2,(+f[0][1]+ +f[1][1])/2]}function C(f,m,d,y){f.on("start.zoom",function(){R(this,arguments).event(y).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(y).end()}).tween("zoom",function(){var v=this,k=arguments,A=R(v,k).event(y),M=n.apply(v,k),S=d==null?E(M):typeof d=="function"?d.apply(v,k):d,L=Math.max(M[1][0]-M[0][0],M[1][1]-M[0][1]),T=v.__zoom,q=typeof m=="function"?m.apply(v,k):m,O=l(T.invert(S).concat(L/T.k),q.invert(S).concat(L/q.k));return function(X){if(X===1)X=q;else{var G=O(X),Lt=L/G[2];X=new Q(Lt,S[0]-G[0]*Lt,S[1]-G[1]*Lt)}A.zoom(null,X)}})}function R(f,m,d){return!d&&f.__zooming||new P(f,m)}function P(f,m){this.that=f,this.args=m,this.active=0,this.sourceEvent=null,this.extent=n.apply(f,m),this.taps=0}P.prototype={event:function(f){return f&&(this.sourceEvent=f),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(f,m){return this.mouse&&f!=="mouse"&&(this.mouse[1]=m.invert(this.mouse[0])),this.touch0&&f!=="touch"&&(this.touch0[1]=m.invert(this.touch0[0])),this.touch1&&f!=="touch"&&(this.touch1[1]=m.invert(this.touch1[0])),this.that.__zoom=m,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(f){var m=Z(this.that).datum();a.call(f,this.that,new Es(f,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:a}),m)}};function ut(f,...m){if(!t.apply(this,arguments))return;var d=R(this,m).event(f),y=this.__zoom,v=Math.max(o[0],Math.min(o[1],y.k*Math.pow(2,r.apply(this,arguments)))),k=rt(f);if(d.wheel)(d.mouse[0][0]!==k[0]||d.mouse[0][1]!==k[1])&&(d.mouse[1]=y.invert(d.mouse[0]=k)),clearTimeout(d.wheel);else{if(y.k===v)return;d.mouse=[k,y.invert(k)],St(this),d.start()}pt(f),d.wheel=setTimeout(A,w),d.zoom("mouse",e(N($(y,v),d.mouse[0],d.mouse[1]),d.extent,s));function A(){d.wheel=null,d.end()}}function z(f,...m){if(h||!t.apply(this,arguments))return;var d=f.currentTarget,y=R(this,m,!0).event(f),v=Z(f.view).on("mousemove.zoom",S,!0).on("mouseup.zoom",L,!0),k=rt(f,d),A=f.clientX,M=f.clientY;ii(f.view),Kt(f),y.mouse=[k,this.__zoom.invert(k)],St(this),y.start();function S(T){if(pt(T),!y.moved){var q=T.clientX-A,O=T.clientY-M;y.moved=q*q+O*O>x}y.event(T).zoom("mouse",e(N(y.that.__zoom,y.mouse[0]=rt(T,d),y.mouse[1]),y.extent,s))}function L(T){v.on("mousemove.zoom mouseup.zoom",null),oi(T.view,y.moved),pt(T),y.event(T).end()}}function D(f,...m){if(t.apply(this,arguments)){var d=this.__zoom,y=rt(f.changedTouches?f.changedTouches[0]:f,this),v=d.invert(y),k=d.k*(f.shiftKey?.5:2),A=e(N($(d,k),y,v),n.apply(this,m),s);pt(f),u>0?Z(this).transition().duration(u).call(C,A,y,f):Z(this).call(g.transform,A,y,f)}}function ue(f,...m){if(t.apply(this,arguments)){var d=f.touches,y=d.length,v=R(this,m,f.changedTouches.length===y).event(f),k,A,M,S;for(Kt(f),A=0;A<y;++A)M=d[A],S=rt(M,this),S=[S,this.__zoom.invert(S),M.identifier],v.touch0?!v.touch1&&v.touch0[2]!==S[2]&&(v.touch1=S,v.taps=0):(v.touch0=S,k=!0,v.taps=1+!!c);c&&(c=clearTimeout(c)),k&&(v.taps<2&&(p=S[0],c=setTimeout(function(){c=null},_)),St(this),v.start())}}function le(f,...m){if(this.__zooming){var d=R(this,m).event(f),y=f.changedTouches,v=y.length,k,A,M,S;for(pt(f),k=0;k<v;++k)A=y[k],M=rt(A,this),d.touch0&&d.touch0[2]===A.identifier?d.touch0[0]=M:d.touch1&&d.touch1[2]===A.identifier&&(d.touch1[0]=M);if(A=d.that.__zoom,d.touch1){var L=d.touch0[0],T=d.touch0[1],q=d.touch1[0],O=d.touch1[1],X=(X=q[0]-L[0])*X+(X=q[1]-L[1])*X,G=(G=O[0]-T[0])*G+(G=O[1]-T[1])*G;A=$(A,Math.sqrt(X/G)),M=[(L[0]+q[0])/2,(L[1]+q[1])/2],S=[(T[0]+O[0])/2,(T[1]+O[1])/2]}else if(d.touch0)M=d.touch0[0],S=d.touch0[1];else return;d.zoom("touch",e(N(A,M,S),d.extent,s))}}function ce(f,...m){if(this.__zooming){var d=R(this,m).event(f),y=f.changedTouches,v=y.length,k,A;for(Kt(f),h&&clearTimeout(h),h=setTimeout(function(){h=null},_),k=0;k<v;++k)A=y[k],d.touch0&&d.touch0[2]===A.identifier?delete d.touch0:d.touch1&&d.touch1[2]===A.identifier&&delete d.touch1;if(d.touch1&&!d.touch0&&(d.touch0=d.touch1,delete d.touch1),d.touch0)d.touch0[1]=this.__zoom.invert(d.touch0[0]);else if(d.end(),d.taps===2&&(A=rt(A,this),Math.hypot(p[0]-A[0],p[1]-A[1])<b)){var M=Z(this).on("dblclick.zoom");M&&M.apply(this,arguments)}}}return g.wheelDelta=function(f){return arguments.length?(r=typeof f=="function"?f:zt(+f),g):r},g.filter=function(f){return arguments.length?(t=typeof f=="function"?f:zt(!!f),g):t},g.touchable=function(f){return arguments.length?(i=typeof f=="function"?f:zt(!!f),g):i},g.extent=function(f){return arguments.length?(n=typeof f=="function"?f:zt([[+f[0][0],+f[0][1]],[+f[1][0],+f[1][1]]]),g):n},g.scaleExtent=function(f){return arguments.length?(o[0]=+f[0],o[1]=+f[1],g):[o[0],o[1]]},g.translateExtent=function(f){return arguments.length?(s[0][0]=+f[0][0],s[1][0]=+f[1][0],s[0][1]=+f[0][1],s[1][1]=+f[1][1],g):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},g.constrain=function(f){return arguments.length?(e=f,g):e},g.duration=function(f){return arguments.length?(u=+f,g):u},g.interpolate=function(f){return arguments.length?(l=f,g):l},g.on=function(){var f=a.on.apply(a,arguments);return f===a?g:f},g.clickDistance=function(f){return arguments.length?(x=(f=+f)*f,g):Math.sqrt(x)},g.tapDistance=function(f){return arguments.length?(b=+f,g):b},g}const Bs={class:"issue-graph-page"},Ps={class:"page-header"},qs={class:"graph-controls"},Xs={key:0,class:"loading card"},Hs={key:1,class:"empty card"},Fs={key:2,class:"graph-container card"},Ls=fe({__name:"graph",async setup(t){let n,e;const r=he(),i=Vt(null),o=Vt(null),s=Vt({left:"0px",top:"0px"});let u=null,l=null;const{data:a,status:c}=([n,e]=pe(()=>ve("/api/issues/graph","$5ObCgmYhuY")),n=await n,e(),n),p=()=>{l&&u&&l.transition().duration(300).call(u.scaleBy,1.3)},h=()=>{l&&u&&l.transition().duration(300).call(u.scaleBy,.7)},_=()=>{l&&u&&l.transition().duration(300).call(u.transform,qt)},w=b=>{switch(b){case"critical":return"#ef4444";case"high":return"#f59e0b";case"medium":return"#3b82f6";case"low":return"#22c55e";default:return"#94a3b8"}},x=()=>{if(!i.value||!a.value)return;const b=i.value.parentElement;if(!b)return;const g=b.clientWidth,$=b.clientHeight||600;Z(i.value).selectAll("*").remove(),l=Z(i.value).attr("width",g).attr("height",$);const N=l.append("g");u=Ds().scaleExtent([.1,4]).on("zoom",z=>{N.attr("transform",z.transform.toString())}),l.call(u);const E=dn(a.value),R=ys().size([$-100,g-200]).separation((z,D)=>z.parent===D.parent?1:1.5)(E);N.selectAll(".link").data(R.links()).enter().append("path").attr("class","link").attr("d",Ns().x(z=>z.y+100).y(z=>z.x+50)).attr("fill","none").attr("stroke","#cbd5e1").attr("stroke-width",2);const P=N.selectAll(".node").data(R.descendants()).enter().append("g").attr("class","node").attr("transform",z=>`translate(${(z.y??0)+100}, ${(z.x??0)+50})`).style("cursor","pointer").on("click",(z,D)=>{D.data.id&&D.data.id!=="root"&&r.push(`/issue/${D.data.id}`)}).on("mouseenter",(z,D)=>{D.data.id!=="root"&&(o.value=D.data,s.value={left:`${z.pageX+10}px`,top:`${z.pageY+10}px`})}).on("mouseleave",()=>{o.value=null});P.append("circle").attr("r",z=>z.data.id==="root"?12:8).attr("fill",z=>z.data.id==="root"?"#64748b":w(z.data.priority)).attr("stroke","#fff").attr("stroke-width",2),P.append("text").attr("dy",-15).attr("text-anchor","middle").attr("font-size","11px").attr("fill","#64748b").text(z=>z.data.id==="root"?"":z.data.id);const ut=qt.translate(50,$/2-(R.x||0)-50);l.call(u.transform,ut)};return de(()=>{_n(()=>{x()}),window.addEventListener("resize",x)}),_e(()=>{window.removeEventListener("resize",x)}),ge(a,()=>{_n(()=>{x()})}),me({title:"Issue Graph - AutoCode"}),(b,g)=>(et(),nt("div",Bs,[j("header",Ps,[j("h1",null,U(b.$t("graph.title")),1),j("div",qs,[j("button",{class:"btn btn-secondary btn-sm",onClick:p},"+ "+U(b.$t("graph.zoomIn")),1),j("button",{class:"btn btn-secondary btn-sm",onClick:h}," − "+U(b.$t("graph.zoomOut")),1),j("button",{class:"btn btn-secondary btn-sm",onClick:_},U(b.$t("graph.reset")),1)])]),K(c)==="pending"?(et(),nt("div",Xs,U(b.$t("app.loading")),1)):K(a)?.children?.length?(et(),nt("div",Fs,[(et(),nt("svg",{ref_key:"svgRef",ref:i,class:"graph-svg"},null,512))])):(et(),nt("div",Hs,U(b.$t("graph.noIssues")),1)),K(o)?(et(),nt("div",{key:3,class:"issue-tooltip",style:ye(K(s))},[j("strong",null,U(K(o).id),1),j("p",null,U(K(o).title),1),K(o).priority?(et(),nt("span",{key:0,class:we(["badge",`badge-${K(o).priority}`])},U(K(o).priority),3)):gn("",!0)],4)):gn("",!0)]))}}),Os=xe(Ls,[["__scopeId","data-v-63d9891e"]]);export{Os as default};
|
|
1
|
+
import{d as fe,x as he,r as Vt,v as pe,o as de,y as _n,a as _e,m as ge,s as me,c as nt,e as j,j as gn,t as U,h as K,n as ye,q as we,b as et,_ as xe}from"./D0HHOq4k.js";import{u as ve}from"./Byshfb8L.js";var be={value:()=>{}};function an(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Mt(e)}function Mt(t){this._=t}function $e(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Mt.prototype=an.prototype={constructor:Mt,on:function(t,n){var e=this._,r=$e(t+"",e),i,o=-1,s=r.length;if(arguments.length<2){for(;++o<s;)if((i=(t=r[o]).type)&&(i=ke(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++o<s;)if(i=(t=r[o]).type)e[i]=mn(e[i],t.name,n);else if(n==null)for(i in e)e[i]=mn(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Mt(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,o;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};function ke(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function mn(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=be,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var Wt="http://www.w3.org/1999/xhtml";const yn={svg:"http://www.w3.org/2000/svg",xhtml:Wt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Xt(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),yn.hasOwnProperty(n)?{space:yn[n],local:t}:t}function Ae(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Wt&&n.documentElement.namespaceURI===Wt?n.createElement(t):n.createElementNS(e,t)}}function ze(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Bn(t){var n=Xt(t);return(n.local?ze:Ae)(n)}function Me(){}function un(t){return t==null?Me:function(){return this.querySelector(t)}}function Ne(t){typeof t!="function"&&(t=un(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=new Array(s),l,a,c=0;c<s;++c)(l=o[c])&&(a=t.call(l,l.__data__,c,o))&&("__data__"in l&&(a.__data__=l.__data__),u[c]=a);return new B(r,this._parents)}function Ee(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Se(){return[]}function Pn(t){return t==null?Se:function(){return this.querySelectorAll(t)}}function Te(t){return function(){return Ee(t.apply(this,arguments))}}function Ce(t){typeof t=="function"?t=Te(t):t=Pn(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var s=n[o],u=s.length,l,a=0;a<u;++a)(l=s[a])&&(r.push(t.call(l,l.__data__,a,s)),i.push(l));return new B(r,i)}function qn(t){return function(){return this.matches(t)}}function Xn(t){return function(n){return n.matches(t)}}var Re=Array.prototype.find;function Ie(t){return function(){return Re.call(this.children,t)}}function De(){return this.firstElementChild}function Be(t){return this.select(t==null?De:Ie(typeof t=="function"?t:Xn(t)))}var Pe=Array.prototype.filter;function qe(){return Array.from(this.children)}function Xe(t){return function(){return Pe.call(this.children,t)}}function He(t){return this.selectAll(t==null?qe:Xe(typeof t=="function"?t:Xn(t)))}function Fe(t){typeof t!="function"&&(t=qn(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=[],l,a=0;a<s;++a)(l=o[a])&&t.call(l,l.__data__,a,o)&&u.push(l);return new B(r,this._parents)}function Hn(t){return new Array(t.length)}function Le(){return new B(this._enter||this._groups.map(Hn),this._parents)}function Ct(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Ct.prototype={constructor:Ct,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Ve(t){return function(){return t}}function Ye(t,n,e,r,i,o){for(var s=0,u,l=n.length,a=o.length;s<a;++s)(u=n[s])?(u.__data__=o[s],r[s]=u):e[s]=new Ct(t,o[s]);for(;s<l;++s)(u=n[s])&&(i[s]=u)}function Oe(t,n,e,r,i,o,s){var u,l,a=new Map,c=n.length,p=o.length,h=new Array(c),_;for(u=0;u<c;++u)(l=n[u])&&(h[u]=_=s.call(l,l.__data__,u,n)+"",a.has(_)?i[u]=l:a.set(_,l));for(u=0;u<p;++u)_=s.call(t,o[u],u,o)+"",(l=a.get(_))?(r[u]=l,l.__data__=o[u],a.delete(_)):e[u]=new Ct(t,o[u]);for(u=0;u<c;++u)(l=n[u])&&a.get(h[u])===l&&(i[u]=l)}function Ge(t){return t.__data__}function Ue(t,n){if(!arguments.length)return Array.from(this,Ge);var e=n?Oe:Ye,r=this._parents,i=this._groups;typeof t!="function"&&(t=Ve(t));for(var o=i.length,s=new Array(o),u=new Array(o),l=new Array(o),a=0;a<o;++a){var c=r[a],p=i[a],h=p.length,_=Ke(t.call(c,c&&c.__data__,a,r)),w=_.length,x=u[a]=new Array(w),b=s[a]=new Array(w),g=l[a]=new Array(h);e(c,p,x,b,g,_,n);for(var $=0,N=0,E,C;$<w;++$)if(E=x[$]){for($>=N&&(N=$+1);!(C=b[N])&&++N<w;);E._next=C||null}}return s=new B(s,r),s._enter=u,s._exit=l,s}function Ke(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function We(){return new B(this._exit||this._groups.map(Hn),this._parents)}function Ze(t,n,e){var r=this.enter(),i=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?o.remove():e(o),r&&i?r.merge(i).order():i}function Qe(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,s=Math.min(i,o),u=new Array(i),l=0;l<s;++l)for(var a=e[l],c=r[l],p=a.length,h=u[l]=new Array(p),_,w=0;w<p;++w)(_=a[w]||c[w])&&(h[w]=_);for(;l<i;++l)u[l]=e[l];return new B(u,this._parents)}function Je(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,o=r[i],s;--i>=0;)(s=r[i])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function je(t){t||(t=tr);function n(p,h){return p&&h?t(p.__data__,h.__data__):!p-!h}for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var s=e[o],u=s.length,l=i[o]=new Array(u),a,c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(n)}return new B(i,this._parents).order()}function tr(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function nr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function er(){return Array.from(this)}function rr(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var s=r[i];if(s)return s}return null}function ir(){let t=0;for(const n of this)++t;return t}function or(){return!this.node()}function sr(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],o=0,s=i.length,u;o<s;++o)(u=i[o])&&t.call(u,u.__data__,o,i);return this}function ar(t){return function(){this.removeAttribute(t)}}function ur(t){return function(){this.removeAttributeNS(t.space,t.local)}}function lr(t,n){return function(){this.setAttribute(t,n)}}function cr(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function fr(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function hr(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function pr(t,n){var e=Xt(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?ur:ar:typeof n=="function"?e.local?hr:fr:e.local?cr:lr)(e,n))}function Fn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function dr(t){return function(){this.style.removeProperty(t)}}function _r(t,n,e){return function(){this.style.setProperty(t,n,e)}}function gr(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function mr(t,n,e){return arguments.length>1?this.each((n==null?dr:typeof n=="function"?gr:_r)(t,n,e??"")):ct(this.node(),t)}function ct(t,n){return t.style.getPropertyValue(n)||Fn(t).getComputedStyle(t,null).getPropertyValue(n)}function yr(t){return function(){delete this[t]}}function wr(t,n){return function(){this[t]=n}}function xr(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function vr(t,n){return arguments.length>1?this.each((n==null?yr:typeof n=="function"?xr:wr)(t,n)):this.node()[t]}function Ln(t){return t.trim().split(/^|\s+/)}function ln(t){return t.classList||new Vn(t)}function Vn(t){this._node=t,this._names=Ln(t.getAttribute("class")||"")}Vn.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Yn(t,n){for(var e=ln(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function On(t,n){for(var e=ln(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function br(t){return function(){Yn(this,t)}}function $r(t){return function(){On(this,t)}}function kr(t,n){return function(){(n.apply(this,arguments)?Yn:On)(this,t)}}function Ar(t,n){var e=Ln(t+"");if(arguments.length<2){for(var r=ln(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?kr:n?br:$r)(e,n))}function zr(){this.textContent=""}function Mr(t){return function(){this.textContent=t}}function Nr(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function Er(t){return arguments.length?this.each(t==null?zr:(typeof t=="function"?Nr:Mr)(t)):this.node().textContent}function Sr(){this.innerHTML=""}function Tr(t){return function(){this.innerHTML=t}}function Cr(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function Rr(t){return arguments.length?this.each(t==null?Sr:(typeof t=="function"?Cr:Tr)(t)):this.node().innerHTML}function Ir(){this.nextSibling&&this.parentNode.appendChild(this)}function Dr(){return this.each(Ir)}function Br(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Pr(){return this.each(Br)}function qr(t){var n=typeof t=="function"?t:Bn(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function Xr(){return null}function Hr(t,n){var e=typeof t=="function"?t:Bn(t),r=n==null?Xr:typeof n=="function"?n:un(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function Fr(){var t=this.parentNode;t&&t.removeChild(this)}function Lr(){return this.each(Fr)}function Vr(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Yr(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Or(t){return this.select(t?Yr:Vr)}function Gr(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Ur(t){return function(n){t.call(this,n,this.__data__)}}function Kr(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function Wr(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,o;e<i;++e)o=n[e],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):n[++r]=o;++r?n.length=r:delete this.__on}}}function Zr(t,n,e){return function(){var r=this.__on,i,o=Ur(n);if(r){for(var s=0,u=r.length;s<u;++s)if((i=r[s]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=o,i.options=e),i.value=n;return}}this.addEventListener(t.type,o,e),i={type:t.type,name:t.name,value:n,listener:o,options:e},r?r.push(i):this.__on=[i]}}function Qr(t,n,e){var r=Kr(t+""),i,o=r.length,s;if(arguments.length<2){var u=this.node().__on;if(u){for(var l=0,a=u.length,c;l<a;++l)for(i=0,c=u[l];i<o;++i)if((s=r[i]).type===c.type&&s.name===c.name)return c.value}return}for(u=n?Zr:Wr,i=0;i<o;++i)this.each(u(r[i],n,e));return this}function Gn(t,n,e){var r=Fn(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Jr(t,n){return function(){return Gn(this,t,n)}}function jr(t,n){return function(){return Gn(this,t,n.apply(this,arguments))}}function ti(t,n){return this.each((typeof n=="function"?jr:Jr)(t,n))}function*ni(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length,s;i<o;++i)(s=r[i])&&(yield s)}var Un=[null];function B(t,n){this._groups=t,this._parents=n}function vt(){return new B([[document.documentElement]],Un)}function ei(){return this}B.prototype=vt.prototype={constructor:B,select:Ne,selectAll:Ce,selectChild:Be,selectChildren:He,filter:Fe,data:Ue,enter:Le,exit:We,join:Ze,merge:Qe,selection:ei,order:Je,sort:je,call:nr,nodes:er,node:rr,size:ir,empty:or,each:sr,attr:pr,style:mr,property:vr,classed:Ar,text:Er,html:Rr,raise:Dr,lower:Pr,append:qr,insert:Hr,remove:Lr,clone:Or,datum:Gr,on:Qr,dispatch:ti,[Symbol.iterator]:ni};function Z(t){return typeof t=="string"?new B([[document.querySelector(t)]],[document.documentElement]):new B([[t]],Un)}function ri(t){let n;for(;n=t.sourceEvent;)t=n;return t}function rt(t,n){if(t=ri(t),n===void 0&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}const Zt={capture:!0,passive:!1};function Qt(t){t.preventDefault(),t.stopImmediatePropagation()}function ii(t){var n=t.document.documentElement,e=Z(t).on("dragstart.drag",Qt,Zt);"onselectstart"in n?e.on("selectstart.drag",Qt,Zt):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function oi(t,n){var e=t.document.documentElement,r=Z(t).on("dragstart.drag",null);n&&(r.on("click.drag",Qt,Zt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function cn(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Kn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function bt(){}var gt=.7,Rt=1/gt,lt="\\s*([+-]?\\d+)\\s*",mt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",V="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",si=/^#([0-9a-f]{3,8})$/,ai=new RegExp(`^rgb\\(${lt},${lt},${lt}\\)$`),ui=new RegExp(`^rgb\\(${V},${V},${V}\\)$`),li=new RegExp(`^rgba\\(${lt},${lt},${lt},${mt}\\)$`),ci=new RegExp(`^rgba\\(${V},${V},${V},${mt}\\)$`),fi=new RegExp(`^hsl\\(${mt},${V},${V}\\)$`),hi=new RegExp(`^hsla\\(${mt},${V},${V},${mt}\\)$`),wn={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};cn(bt,yt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:xn,formatHex:xn,formatHex8:pi,formatHsl:di,formatRgb:vn,toString:vn});function xn(){return this.rgb().formatHex()}function pi(){return this.rgb().formatHex8()}function di(){return Wn(this).formatHsl()}function vn(){return this.rgb().formatRgb()}function yt(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=si.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?bn(n):e===3?new I(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?$t(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?$t(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=ai.exec(t))?new I(n[1],n[2],n[3],1):(n=ui.exec(t))?new I(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=li.exec(t))?$t(n[1],n[2],n[3],n[4]):(n=ci.exec(t))?$t(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=fi.exec(t))?An(n[1],n[2]/100,n[3]/100,1):(n=hi.exec(t))?An(n[1],n[2]/100,n[3]/100,n[4]):wn.hasOwnProperty(t)?bn(wn[t]):t==="transparent"?new I(NaN,NaN,NaN,0):null}function bn(t){return new I(t>>16&255,t>>8&255,t&255,1)}function $t(t,n,e,r){return r<=0&&(t=n=e=NaN),new I(t,n,e,r)}function _i(t){return t instanceof bt||(t=yt(t)),t?(t=t.rgb(),new I(t.r,t.g,t.b,t.opacity)):new I}function Jt(t,n,e,r){return arguments.length===1?_i(t):new I(t,n,e,r??1)}function I(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}cn(I,Jt,Kn(bt,{brighter(t){return t=t==null?Rt:Math.pow(Rt,t),new I(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?gt:Math.pow(gt,t),new I(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new I(st(this.r),st(this.g),st(this.b),It(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:$n,formatHex:$n,formatHex8:gi,formatRgb:kn,toString:kn}));function $n(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}`}function gi(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}${ot((isNaN(this.opacity)?1:this.opacity)*255)}`}function kn(){const t=It(this.opacity);return`${t===1?"rgb(":"rgba("}${st(this.r)}, ${st(this.g)}, ${st(this.b)}${t===1?")":`, ${t})`}`}function It(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function st(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ot(t){return t=st(t),(t<16?"0":"")+t.toString(16)}function An(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new H(t,n,e,r)}function Wn(t){if(t instanceof H)return new H(t.h,t.s,t.l,t.opacity);if(t instanceof bt||(t=yt(t)),!t)return new H;if(t instanceof H)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),s=NaN,u=o-i,l=(o+i)/2;return u?(n===o?s=(e-r)/u+(e<r)*6:e===o?s=(r-n)/u+2:s=(n-e)/u+4,u/=l<.5?o+i:2-o-i,s*=60):u=l>0&&l<1?0:s,new H(s,u,l,t.opacity)}function mi(t,n,e,r){return arguments.length===1?Wn(t):new H(t,n,e,r??1)}function H(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}cn(H,mi,Kn(bt,{brighter(t){return t=t==null?Rt:Math.pow(Rt,t),new H(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?gt:Math.pow(gt,t),new H(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new I(Yt(t>=240?t-240:t+120,i,r),Yt(t,i,r),Yt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new H(zn(this.h),kt(this.s),kt(this.l),It(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=It(this.opacity);return`${t===1?"hsl(":"hsla("}${zn(this.h)}, ${kt(this.s)*100}%, ${kt(this.l)*100}%${t===1?")":`, ${t})`}`}}));function zn(t){return t=(t||0)%360,t<0?t+360:t}function kt(t){return Math.max(0,Math.min(1,t||0))}function Yt(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}const Zn=t=>()=>t;function yi(t,n){return function(e){return t+e*n}}function wi(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function xi(t){return(t=+t)==1?Qn:function(n,e){return e-n?wi(n,e,t):Zn(isNaN(n)?e:n)}}function Qn(t,n){var e=n-t;return e?yi(t,e):Zn(isNaN(t)?n:t)}const Mn=(function t(n){var e=xi(n);function r(i,o){var s=e((i=Jt(i)).r,(o=Jt(o)).r),u=e(i.g,o.g),l=e(i.b,o.b),a=Qn(i.opacity,o.opacity);return function(c){return i.r=s(c),i.g=u(c),i.b=l(c),i.opacity=a(c),i+""}}return r.gamma=t,r})(1);function tt(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var jt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ot=new RegExp(jt.source,"g");function vi(t){return function(){return t}}function bi(t){return function(n){return t(n)+""}}function $i(t,n){var e=jt.lastIndex=Ot.lastIndex=0,r,i,o,s=-1,u=[],l=[];for(t=t+"",n=n+"";(r=jt.exec(t))&&(i=Ot.exec(n));)(o=i.index)>e&&(o=n.slice(e,o),u[s]?u[s]+=o:u[++s]=o),(r=r[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,l.push({i:s,x:tt(r,i)})),e=Ot.lastIndex;return e<n.length&&(o=n.slice(e),u[s]?u[s]+=o:u[++s]=o),u.length<2?l[0]?bi(l[0].x):vi(n):(n=l.length,function(a){for(var c=0,p;c<n;++c)u[(p=l[c]).i]=p.x(a);return u.join("")})}var Nn=180/Math.PI,tn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Jn(t,n,e,r,i,o){var s,u,l;return(s=Math.sqrt(t*t+n*n))&&(t/=s,n/=s),(l=t*e+n*r)&&(e-=t*l,r-=n*l),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,l/=u),t*r<n*e&&(t=-t,n=-n,l=-l,s=-s),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Nn,skewX:Math.atan(l)*Nn,scaleX:s,scaleY:u}}var At;function ki(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?tn:Jn(n.a,n.b,n.c,n.d,n.e,n.f)}function Ai(t){return t==null||(At||(At=document.createElementNS("http://www.w3.org/2000/svg","g")),At.setAttribute("transform",t),!(t=At.transform.baseVal.consolidate()))?tn:(t=t.matrix,Jn(t.a,t.b,t.c,t.d,t.e,t.f))}function jn(t,n,e,r){function i(a){return a.length?a.pop()+" ":""}function o(a,c,p,h,_,w){if(a!==p||c!==h){var x=_.push("translate(",null,n,null,e);w.push({i:x-4,x:tt(a,p)},{i:x-2,x:tt(c,h)})}else(p||h)&&_.push("translate("+p+n+h+e)}function s(a,c,p,h){a!==c?(a-c>180?c+=360:c-a>180&&(a+=360),h.push({i:p.push(i(p)+"rotate(",null,r)-2,x:tt(a,c)})):c&&p.push(i(p)+"rotate("+c+r)}function u(a,c,p,h){a!==c?h.push({i:p.push(i(p)+"skewX(",null,r)-2,x:tt(a,c)}):c&&p.push(i(p)+"skewX("+c+r)}function l(a,c,p,h,_,w){if(a!==p||c!==h){var x=_.push(i(_)+"scale(",null,",",null,")");w.push({i:x-4,x:tt(a,p)},{i:x-2,x:tt(c,h)})}else(p!==1||h!==1)&&_.push(i(_)+"scale("+p+","+h+")")}return function(a,c){var p=[],h=[];return a=t(a),c=t(c),o(a.translateX,a.translateY,c.translateX,c.translateY,p,h),s(a.rotate,c.rotate,p,h),u(a.skewX,c.skewX,p,h),l(a.scaleX,a.scaleY,c.scaleX,c.scaleY,p,h),a=c=null,function(_){for(var w=-1,x=h.length,b;++w<x;)p[(b=h[w]).i]=b.x(_);return p.join("")}}}var zi=jn(ki,"px, ","px)","deg)"),Mi=jn(Ai,", ",")",")"),Ni=1e-12;function En(t){return((t=Math.exp(t))+1/t)/2}function Ei(t){return((t=Math.exp(t))-1/t)/2}function Si(t){return((t=Math.exp(2*t))-1)/(t+1)}const Ti=(function t(n,e,r){function i(o,s){var u=o[0],l=o[1],a=o[2],c=s[0],p=s[1],h=s[2],_=c-u,w=p-l,x=_*_+w*w,b,g;if(x<Ni)g=Math.log(h/a)/n,b=function(P){return[u+P*_,l+P*w,a*Math.exp(n*P*g)]};else{var $=Math.sqrt(x),N=(h*h-a*a+r*x)/(2*a*e*$),E=(h*h-a*a-r*x)/(2*h*e*$),C=Math.log(Math.sqrt(N*N+1)-N),R=Math.log(Math.sqrt(E*E+1)-E);g=(R-C)/n,b=function(P){var ut=P*g,z=En(C),D=a/(e*$)*(z*Si(n*ut+C)-Ei(C));return[u+D*_,l+D*w,a*z/En(n*ut+C)]}}return b.duration=g*1e3*n/Math.SQRT2,b}return i.rho=function(o){var s=Math.max(.001,+o),u=s*s,l=u*u;return t(s,u,l)},i})(Math.SQRT2,2,4);var ft=0,dt=0,ht=0,te=1e3,Dt,_t,Bt=0,at=0,Ht=0,wt=typeof performance=="object"&&performance.now?performance:Date,ne=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function fn(){return at||(ne(Ci),at=wt.now()+Ht)}function Ci(){at=0}function Pt(){this._call=this._time=this._next=null}Pt.prototype=ee.prototype={constructor:Pt,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?fn():+e)+(n==null?0:+n),!this._next&&_t!==this&&(_t?_t._next=this:Dt=this,_t=this),this._call=t,this._time=e,nn()},stop:function(){this._call&&(this._call=null,this._time=1/0,nn())}};function ee(t,n,e){var r=new Pt;return r.restart(t,n,e),r}function Ri(){fn(),++ft;for(var t=Dt,n;t;)(n=at-t._time)>=0&&t._call.call(void 0,n),t=t._next;--ft}function Sn(){at=(Bt=wt.now())+Ht,ft=dt=0;try{Ri()}finally{ft=0,Di(),at=0}}function Ii(){var t=wt.now(),n=t-Bt;n>te&&(Ht-=n,Bt=t)}function Di(){for(var t,n=Dt,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Dt=e);_t=t,nn(r)}function nn(t){if(!ft){dt&&(dt=clearTimeout(dt));var n=t-at;n>24?(t<1/0&&(dt=setTimeout(Sn,t-wt.now()-Ht)),ht&&(ht=clearInterval(ht))):(ht||(Bt=wt.now(),ht=setInterval(Ii,te)),ft=1,ne(Sn))}}function Tn(t,n,e){var r=new Pt;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}var Bi=an("start","end","cancel","interrupt"),Pi=[],re=0,Cn=1,en=2,Nt=3,Rn=4,rn=5,Et=6;function Ft(t,n,e,r,i,o){var s=t.__transition;if(!s)t.__transition={};else if(e in s)return;qi(t,e,{name:n,index:r,group:i,on:Bi,tween:Pi,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:re})}function hn(t,n){var e=F(t,n);if(e.state>re)throw new Error("too late; already scheduled");return e}function Y(t,n){var e=F(t,n);if(e.state>Nt)throw new Error("too late; already running");return e}function F(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function qi(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=ee(o,0,e.time);function o(a){e.state=Cn,e.timer.restart(s,e.delay,e.time),e.delay<=a&&s(a-e.delay)}function s(a){var c,p,h,_;if(e.state!==Cn)return l();for(c in r)if(_=r[c],_.name===e.name){if(_.state===Nt)return Tn(s);_.state===Rn?(_.state=Et,_.timer.stop(),_.on.call("interrupt",t,t.__data__,_.index,_.group),delete r[c]):+c<n&&(_.state=Et,_.timer.stop(),_.on.call("cancel",t,t.__data__,_.index,_.group),delete r[c])}if(Tn(function(){e.state===Nt&&(e.state=Rn,e.timer.restart(u,e.delay,e.time),u(a))}),e.state=en,e.on.call("start",t,t.__data__,e.index,e.group),e.state===en){for(e.state=Nt,i=new Array(h=e.tween.length),c=0,p=-1;c<h;++c)(_=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++p]=_);i.length=p+1}}function u(a){for(var c=a<e.duration?e.ease.call(null,a/e.duration):(e.timer.restart(l),e.state=rn,1),p=-1,h=i.length;++p<h;)i[p].call(t,c);e.state===rn&&(e.on.call("end",t,t.__data__,e.index,e.group),l())}function l(){e.state=Et,e.timer.stop(),delete r[n];for(var a in r)return;delete t.__transition}}function St(t,n){var e=t.__transition,r,i,o=!0,s;if(e){n=n==null?null:n+"";for(s in e){if((r=e[s]).name!==n){o=!1;continue}i=r.state>en&&r.state<rn,r.state=Et,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[s]}o&&delete t.__transition}}function Xi(t){return this.each(function(){St(this,t)})}function Hi(t,n){var e,r;return function(){var i=Y(this,t),o=i.tween;if(o!==e){r=e=o;for(var s=0,u=r.length;s<u;++s)if(r[s].name===n){r=r.slice(),r.splice(s,1);break}}i.tween=r}}function Fi(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var o=Y(this,t),s=o.tween;if(s!==r){i=(r=s).slice();for(var u={name:n,value:e},l=0,a=i.length;l<a;++l)if(i[l].name===n){i[l]=u;break}l===a&&i.push(u)}o.tween=i}}function Li(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=F(this.node(),e).tween,i=0,o=r.length,s;i<o;++i)if((s=r[i]).name===t)return s.value;return null}return this.each((n==null?Hi:Fi)(e,t,n))}function pn(t,n,e){var r=t._id;return t.each(function(){var i=Y(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return F(i,r).value[n]}}function ie(t,n){var e;return(typeof n=="number"?tt:n instanceof yt?Mn:(e=yt(n))?(n=e,Mn):$i)(t,n)}function Vi(t){return function(){this.removeAttribute(t)}}function Yi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Oi(t,n,e){var r,i=e+"",o;return function(){var s=this.getAttribute(t);return s===i?null:s===r?o:o=n(r=s,e)}}function Gi(t,n,e){var r,i=e+"",o;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===r?o:o=n(r=s,e)}}function Ui(t,n,e){var r,i,o;return function(){var s,u=e(this),l;return u==null?void this.removeAttribute(t):(s=this.getAttribute(t),l=u+"",s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u)))}}function Ki(t,n,e){var r,i,o;return function(){var s,u=e(this),l;return u==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),l=u+"",s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u)))}}function Wi(t,n){var e=Xt(t),r=e==="transform"?Mi:ie;return this.attrTween(t,typeof n=="function"?(e.local?Ki:Ui)(e,r,pn(this,"attr."+t,n)):n==null?(e.local?Yi:Vi)(e):(e.local?Gi:Oi)(e,r,n))}function Zi(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Qi(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Ji(t,n){var e,r;function i(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&Qi(t,o)),e}return i._value=n,i}function ji(t,n){var e,r;function i(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&Zi(t,o)),e}return i._value=n,i}function to(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Xt(t);return this.tween(e,(r.local?Ji:ji)(r,n))}function no(t,n){return function(){hn(this,t).delay=+n.apply(this,arguments)}}function eo(t,n){return n=+n,function(){hn(this,t).delay=n}}function ro(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?no:eo)(n,t)):F(this.node(),n).delay}function io(t,n){return function(){Y(this,t).duration=+n.apply(this,arguments)}}function oo(t,n){return n=+n,function(){Y(this,t).duration=n}}function so(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?io:oo)(n,t)):F(this.node(),n).duration}function ao(t,n){if(typeof n!="function")throw new Error;return function(){Y(this,t).ease=n}}function uo(t){var n=this._id;return arguments.length?this.each(ao(n,t)):F(this.node(),n).ease}function lo(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;Y(this,t).ease=e}}function co(t){if(typeof t!="function")throw new Error;return this.each(lo(this._id,t))}function fo(t){typeof t!="function"&&(t=qn(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o=n[i],s=o.length,u=r[i]=[],l,a=0;a<s;++a)(l=o[a])&&t.call(l,l.__data__,a,o)&&u.push(l);return new J(r,this._parents,this._name,this._id)}function ho(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),s=new Array(r),u=0;u<o;++u)for(var l=n[u],a=e[u],c=l.length,p=s[u]=new Array(c),h,_=0;_<c;++_)(h=l[_]||a[_])&&(p[_]=h);for(;u<r;++u)s[u]=n[u];return new J(s,this._parents,this._name,this._id)}function po(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function _o(t,n,e){var r,i,o=po(n)?hn:Y;return function(){var s=o(this,t),u=s.on;u!==r&&(i=(r=u).copy()).on(n,e),s.on=i}}function go(t,n){var e=this._id;return arguments.length<2?F(this.node(),e).on.on(t):this.each(_o(e,t,n))}function mo(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function yo(){return this.on("end.remove",mo(this._id))}function wo(t){var n=this._name,e=this._id;typeof t!="function"&&(t=un(t));for(var r=this._groups,i=r.length,o=new Array(i),s=0;s<i;++s)for(var u=r[s],l=u.length,a=o[s]=new Array(l),c,p,h=0;h<l;++h)(c=u[h])&&(p=t.call(c,c.__data__,h,u))&&("__data__"in c&&(p.__data__=c.__data__),a[h]=p,Ft(a[h],n,e,h,a,F(c,e)));return new J(o,this._parents,n,e)}function xo(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Pn(t));for(var r=this._groups,i=r.length,o=[],s=[],u=0;u<i;++u)for(var l=r[u],a=l.length,c,p=0;p<a;++p)if(c=l[p]){for(var h=t.call(c,c.__data__,p,l),_,w=F(c,e),x=0,b=h.length;x<b;++x)(_=h[x])&&Ft(_,n,e,x,h,w);o.push(h),s.push(c)}return new J(o,s,n,e)}var vo=vt.prototype.constructor;function bo(){return new vo(this._groups,this._parents)}function $o(t,n){var e,r,i;return function(){var o=ct(this,t),s=(this.style.removeProperty(t),ct(this,t));return o===s?null:o===e&&s===r?i:i=n(e=o,r=s)}}function oe(t){return function(){this.style.removeProperty(t)}}function ko(t,n,e){var r,i=e+"",o;return function(){var s=ct(this,t);return s===i?null:s===r?o:o=n(r=s,e)}}function Ao(t,n,e){var r,i,o;return function(){var s=ct(this,t),u=e(this),l=u+"";return u==null&&(l=u=(this.style.removeProperty(t),ct(this,t))),s===l?null:s===r&&l===i?o:(i=l,o=n(r=s,u))}}function zo(t,n){var e,r,i,o="style."+n,s="end."+o,u;return function(){var l=Y(this,t),a=l.on,c=l.value[o]==null?u||(u=oe(n)):void 0;(a!==e||i!==c)&&(r=(e=a).copy()).on(s,i=c),l.on=r}}function Mo(t,n,e){var r=(t+="")=="transform"?zi:ie;return n==null?this.styleTween(t,$o(t,r)).on("end.style."+t,oe(t)):typeof n=="function"?this.styleTween(t,Ao(t,r,pn(this,"style."+t,n))).each(zo(this._id,t)):this.styleTween(t,ko(t,r,n),e).on("end.style."+t,null)}function No(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function Eo(t,n,e){var r,i;function o(){var s=n.apply(this,arguments);return s!==i&&(r=(i=s)&&No(t,s,e)),r}return o._value=n,o}function So(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,Eo(t,n,e??""))}function To(t){return function(){this.textContent=t}}function Co(t){return function(){var n=t(this);this.textContent=n??""}}function Ro(t){return this.tween("text",typeof t=="function"?Co(pn(this,"text",t)):To(t==null?"":t+""))}function Io(t){return function(n){this.textContent=t.call(this,n)}}function Do(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&Io(i)),n}return r._value=t,r}function Bo(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,Do(t))}function Po(){for(var t=this._name,n=this._id,e=se(),r=this._groups,i=r.length,o=0;o<i;++o)for(var s=r[o],u=s.length,l,a=0;a<u;++a)if(l=s[a]){var c=F(l,n);Ft(l,t,e,a,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new J(r,this._parents,t,e)}function qo(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(o,s){var u={value:s},l={value:function(){--i===0&&o()}};e.each(function(){var a=Y(this,r),c=a.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(u),n._.interrupt.push(u),n._.end.push(l)),a.on=n}),i===0&&o()})}var Xo=0;function J(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function se(){return++Xo}var W=vt.prototype;J.prototype={constructor:J,select:wo,selectAll:xo,selectChild:W.selectChild,selectChildren:W.selectChildren,filter:fo,merge:ho,selection:bo,transition:Po,call:W.call,nodes:W.nodes,node:W.node,size:W.size,empty:W.empty,each:W.each,on:go,attr:Wi,attrTween:to,style:Mo,styleTween:So,text:Ro,textTween:Bo,remove:yo,tween:Li,delay:ro,duration:so,ease:uo,easeVarying:co,end:qo,[Symbol.iterator]:W[Symbol.iterator]};function Ho(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Fo={time:null,delay:0,duration:250,ease:Ho};function Lo(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Vo(t){var n,e;t instanceof J?(n=t._id,t=t._name):(n=se(),(e=Fo).time=fn(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var s=r[o],u=s.length,l,a=0;a<u;++a)(l=s[a])&&Ft(l,t,n,a,s,e||Lo(l,n));return new J(r,this._parents,t,n)}vt.prototype.interrupt=Xi;vt.prototype.transition=Vo;const on=Math.PI,sn=2*on,it=1e-6,Yo=sn-it;function ae(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function Oo(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return ae;const e=10**n;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*e)/e+r[i]}}class Go{constructor(n){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=n==null?ae:Oo(n)}moveTo(n,e){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(n,e){this._append`L${this._x1=+n},${this._y1=+e}`}quadraticCurveTo(n,e,r,i){this._append`Q${+n},${+e},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(n,e,r,i,o,s){this._append`C${+n},${+e},${+r},${+i},${this._x1=+o},${this._y1=+s}`}arcTo(n,e,r,i,o){if(n=+n,e=+e,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,u=this._y1,l=r-n,a=i-e,c=s-n,p=u-e,h=c*c+p*p;if(this._x1===null)this._append`M${this._x1=n},${this._y1=e}`;else if(h>it)if(!(Math.abs(p*l-a*c)>it)||!o)this._append`L${this._x1=n},${this._y1=e}`;else{let _=r-s,w=i-u,x=l*l+a*a,b=_*_+w*w,g=Math.sqrt(x),$=Math.sqrt(h),N=o*Math.tan((on-Math.acos((x+h-b)/(2*g*$)))/2),E=N/$,C=N/g;Math.abs(E-1)>it&&this._append`L${n+E*c},${e+E*p}`,this._append`A${o},${o},0,0,${+(p*_>c*w)},${this._x1=n+C*l},${this._y1=e+C*a}`}}arc(n,e,r,i,o,s){if(n=+n,e=+e,r=+r,s=!!s,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(i),l=r*Math.sin(i),a=n+u,c=e+l,p=1^s,h=s?i-o:o-i;this._x1===null?this._append`M${a},${c}`:(Math.abs(this._x1-a)>it||Math.abs(this._y1-c)>it)&&this._append`L${a},${c}`,r&&(h<0&&(h=h%sn+sn),h>Yo?this._append`A${r},${r},0,1,${p},${n-u},${e-l}A${r},${r},0,1,${p},${this._x1=a},${this._y1=c}`:h>it&&this._append`A${r},${r},0,${+(h>=on)},${p},${this._x1=n+r*Math.cos(o)},${this._y1=e+r*Math.sin(o)}`)}rect(n,e,r,i){this._append`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function Uo(t){var n=0,e=t.children,r=e&&e.length;if(!r)n=1;else for(;--r>=0;)n+=e[r].value;t.value=n}function Ko(){return this.eachAfter(Uo)}function Wo(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this}function Zo(t,n){for(var e=this,r=[e],i,o,s=-1;e=r.pop();)if(t.call(n,e,++s,this),i=e.children)for(o=i.length-1;o>=0;--o)r.push(i[o]);return this}function Qo(t,n){for(var e=this,r=[e],i=[],o,s,u,l=-1;e=r.pop();)if(i.push(e),o=e.children)for(s=0,u=o.length;s<u;++s)r.push(o[s]);for(;e=i.pop();)t.call(n,e,++l,this);return this}function Jo(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r}function jo(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})}function ts(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})}function ns(t){for(var n=this,e=es(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r}function es(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function rs(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n}function is(){return Array.from(this)}function os(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t}function ss(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n}function*as(){var t=this,n,e=[t],r,i,o;do for(n=e.reverse(),e=[];t=n.pop();)if(yield t,r=t.children)for(i=0,o=r.length;i<o;++i)e.push(r[i]);while(e.length)}function dn(t,n){t instanceof Map?(t=[void 0,t],n===void 0&&(n=cs)):n===void 0&&(n=ls);for(var e=new xt(t),r,i=[e],o,s,u,l;r=i.pop();)if((s=n(r.data))&&(l=(s=Array.from(s)).length))for(r.children=s,u=l-1;u>=0;--u)i.push(o=s[u]=new xt(s[u])),o.parent=r,o.depth=r.depth+1;return e.eachBefore(hs)}function us(){return dn(this).eachBefore(fs)}function ls(t){return t.children}function cs(t){return Array.isArray(t)?t[1]:null}function fs(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function hs(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function xt(t){this.data=t,this.depth=this.height=0,this.parent=null}xt.prototype=dn.prototype={constructor:xt,count:Ko,each:Wo,eachAfter:Qo,eachBefore:Zo,find:Jo,sum:jo,sort:ts,path:ns,ancestors:rs,descendants:is,leaves:os,links:ss,copy:us,[Symbol.iterator]:as};function ps(t,n){return t.parent===n.parent?1:2}function Gt(t){var n=t.children;return n?n[0]:t.t}function Ut(t){var n=t.children;return n?n[n.length-1]:t.t}function ds(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function _s(t){for(var n=0,e=0,r=t.children,i=r.length,o;--i>=0;)o=r[i],o.z+=n,o.m+=n,n+=o.s+(e+=o.c)}function gs(t,n,e){return t.a.parent===n.parent?t.a:e}function Tt(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}Tt.prototype=Object.create(xt.prototype);function ms(t){for(var n=new Tt(t,0),e,r=[n],i,o,s,u;e=r.pop();)if(o=e._.children)for(e.children=new Array(u=o.length),s=u-1;s>=0;--s)r.push(i=e.children[s]=new Tt(o[s],s)),i.parent=e;return(n.parent=new Tt(null,0)).children=[n],n}function ys(){var t=ps,n=1,e=1,r=null;function i(a){var c=ms(a);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(s),r)a.eachBefore(l);else{var p=a,h=a,_=a;a.eachBefore(function($){$.x<p.x&&(p=$),$.x>h.x&&(h=$),$.depth>_.depth&&(_=$)});var w=p===h?1:t(p,h)/2,x=w-p.x,b=n/(h.x+w+x),g=e/(_.depth||1);a.eachBefore(function($){$.x=($.x+x)*b,$.y=$.depth*g})}return a}function o(a){var c=a.children,p=a.parent.children,h=a.i?p[a.i-1]:null;if(c){_s(a);var _=(c[0].z+c[c.length-1].z)/2;h?(a.z=h.z+t(a._,h._),a.m=a.z-_):a.z=_}else h&&(a.z=h.z+t(a._,h._));a.parent.A=u(a,h,a.parent.A||p[0])}function s(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function u(a,c,p){if(c){for(var h=a,_=a,w=c,x=h.parent.children[0],b=h.m,g=_.m,$=w.m,N=x.m,E;w=Ut(w),h=Gt(h),w&&h;)x=Gt(x),_=Ut(_),_.a=a,E=w.z+$-h.z-b+t(w._,h._),E>0&&(ds(gs(w,a,p),a,E),b+=E,g+=E),$+=w.m,b+=h.m,N+=x.m,g+=_.m;w&&!Ut(_)&&(_.t=w,_.m+=$-g),h&&!Gt(x)&&(x.t=h,x.m+=b-N,p=a)}return p}function l(a){a.x*=n,a.y=a.depth*e}return i.separation=function(a){return arguments.length?(t=a,i):t},i.size=function(a){return arguments.length?(r=!1,n=+a[0],e=+a[1],i):r?null:[n,e]},i.nodeSize=function(a){return arguments.length?(r=!0,n=+a[0],e=+a[1],i):r?[n,e]:null},i}function In(t){return function(){return t}}function ws(t){let n=3;return t.digits=function(e){if(!arguments.length)return n;if(e==null)n=null;else{const r=Math.floor(e);if(!(r>=0))throw new RangeError(`invalid digits: ${e}`);n=r}return t},()=>new Go(n)}var xs=Array.prototype.slice;function vs(t){return t[0]}function bs(t){return t[1]}class $s{constructor(n,e){this._context=n,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(n,e){switch(n=+n,e=+e,this._point){case 0:{this._point=1,this._line?this._context.lineTo(n,e):this._context.moveTo(n,e);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+n)/2,this._y0,this._x0,e,n,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,n,this._y0,n,e);break}}this._x0=n,this._y0=e}}function ks(t){return new $s(t,!0)}function As(t){return t.source}function zs(t){return t.target}function Ms(t){let n=As,e=zs,r=vs,i=bs,o=null,s=null,u=ws(l);function l(){let a;const c=xs.call(arguments),p=n.apply(this,c),h=e.apply(this,c);if(o==null&&(s=t(a=u())),s.lineStart(),c[0]=p,s.point(+r.apply(this,c),+i.apply(this,c)),c[0]=h,s.point(+r.apply(this,c),+i.apply(this,c)),s.lineEnd(),a)return s=null,a+""||null}return l.source=function(a){return arguments.length?(n=a,l):n},l.target=function(a){return arguments.length?(e=a,l):e},l.x=function(a){return arguments.length?(r=typeof a=="function"?a:In(+a),l):r},l.y=function(a){return arguments.length?(i=typeof a=="function"?a:In(+a),l):i},l.context=function(a){return arguments.length?(a==null?o=s=null:s=t(o=a),l):o},l}function Ns(){return Ms(ks)}const zt=t=>()=>t;function Es(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Q(t,n,e){this.k=t,this.x=n,this.y=e}Q.prototype={constructor:Q,scale:function(t){return t===1?this:new Q(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Q(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var qt=new Q(1,0,0);Q.prototype;function Kt(t){t.stopImmediatePropagation()}function pt(t){t.preventDefault(),t.stopImmediatePropagation()}function Ss(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Ts(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function Dn(){return this.__zoom||qt}function Cs(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Rs(){return navigator.maxTouchPoints||"ontouchstart"in this}function Is(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],s=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s))}function Ds(){var t=Ss,n=Ts,e=Is,r=Cs,i=Rs,o=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,l=Ti,a=an("start","zoom","end"),c,p,h,_=500,w=150,x=0,b=10;function g(f){f.property("__zoom",Dn).on("wheel.zoom",ut,{passive:!1}).on("mousedown.zoom",z).on("dblclick.zoom",D).filter(i).on("touchstart.zoom",ue).on("touchmove.zoom",le).on("touchend.zoom touchcancel.zoom",ce).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(f,m,d,y){var v=f.selection?f.selection():f;v.property("__zoom",Dn),f!==v?C(f,m,d,y):v.interrupt().each(function(){R(this,arguments).event(y).start().zoom(null,typeof m=="function"?m.apply(this,arguments):m).end()})},g.scaleBy=function(f,m,d,y){g.scaleTo(f,function(){var v=this.__zoom.k,k=typeof m=="function"?m.apply(this,arguments):m;return v*k},d,y)},g.scaleTo=function(f,m,d,y){g.transform(f,function(){var v=n.apply(this,arguments),k=this.__zoom,A=d==null?E(v):typeof d=="function"?d.apply(this,arguments):d,M=k.invert(A),S=typeof m=="function"?m.apply(this,arguments):m;return e(N($(k,S),A,M),v,s)},d,y)},g.translateBy=function(f,m,d,y){g.transform(f,function(){return e(this.__zoom.translate(typeof m=="function"?m.apply(this,arguments):m,typeof d=="function"?d.apply(this,arguments):d),n.apply(this,arguments),s)},null,y)},g.translateTo=function(f,m,d,y,v){g.transform(f,function(){var k=n.apply(this,arguments),A=this.__zoom,M=y==null?E(k):typeof y=="function"?y.apply(this,arguments):y;return e(qt.translate(M[0],M[1]).scale(A.k).translate(typeof m=="function"?-m.apply(this,arguments):-m,typeof d=="function"?-d.apply(this,arguments):-d),k,s)},y,v)};function $(f,m){return m=Math.max(o[0],Math.min(o[1],m)),m===f.k?f:new Q(m,f.x,f.y)}function N(f,m,d){var y=m[0]-d[0]*f.k,v=m[1]-d[1]*f.k;return y===f.x&&v===f.y?f:new Q(f.k,y,v)}function E(f){return[(+f[0][0]+ +f[1][0])/2,(+f[0][1]+ +f[1][1])/2]}function C(f,m,d,y){f.on("start.zoom",function(){R(this,arguments).event(y).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(y).end()}).tween("zoom",function(){var v=this,k=arguments,A=R(v,k).event(y),M=n.apply(v,k),S=d==null?E(M):typeof d=="function"?d.apply(v,k):d,L=Math.max(M[1][0]-M[0][0],M[1][1]-M[0][1]),T=v.__zoom,q=typeof m=="function"?m.apply(v,k):m,O=l(T.invert(S).concat(L/T.k),q.invert(S).concat(L/q.k));return function(X){if(X===1)X=q;else{var G=O(X),Lt=L/G[2];X=new Q(Lt,S[0]-G[0]*Lt,S[1]-G[1]*Lt)}A.zoom(null,X)}})}function R(f,m,d){return!d&&f.__zooming||new P(f,m)}function P(f,m){this.that=f,this.args=m,this.active=0,this.sourceEvent=null,this.extent=n.apply(f,m),this.taps=0}P.prototype={event:function(f){return f&&(this.sourceEvent=f),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(f,m){return this.mouse&&f!=="mouse"&&(this.mouse[1]=m.invert(this.mouse[0])),this.touch0&&f!=="touch"&&(this.touch0[1]=m.invert(this.touch0[0])),this.touch1&&f!=="touch"&&(this.touch1[1]=m.invert(this.touch1[0])),this.that.__zoom=m,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(f){var m=Z(this.that).datum();a.call(f,this.that,new Es(f,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:a}),m)}};function ut(f,...m){if(!t.apply(this,arguments))return;var d=R(this,m).event(f),y=this.__zoom,v=Math.max(o[0],Math.min(o[1],y.k*Math.pow(2,r.apply(this,arguments)))),k=rt(f);if(d.wheel)(d.mouse[0][0]!==k[0]||d.mouse[0][1]!==k[1])&&(d.mouse[1]=y.invert(d.mouse[0]=k)),clearTimeout(d.wheel);else{if(y.k===v)return;d.mouse=[k,y.invert(k)],St(this),d.start()}pt(f),d.wheel=setTimeout(A,w),d.zoom("mouse",e(N($(y,v),d.mouse[0],d.mouse[1]),d.extent,s));function A(){d.wheel=null,d.end()}}function z(f,...m){if(h||!t.apply(this,arguments))return;var d=f.currentTarget,y=R(this,m,!0).event(f),v=Z(f.view).on("mousemove.zoom",S,!0).on("mouseup.zoom",L,!0),k=rt(f,d),A=f.clientX,M=f.clientY;ii(f.view),Kt(f),y.mouse=[k,this.__zoom.invert(k)],St(this),y.start();function S(T){if(pt(T),!y.moved){var q=T.clientX-A,O=T.clientY-M;y.moved=q*q+O*O>x}y.event(T).zoom("mouse",e(N(y.that.__zoom,y.mouse[0]=rt(T,d),y.mouse[1]),y.extent,s))}function L(T){v.on("mousemove.zoom mouseup.zoom",null),oi(T.view,y.moved),pt(T),y.event(T).end()}}function D(f,...m){if(t.apply(this,arguments)){var d=this.__zoom,y=rt(f.changedTouches?f.changedTouches[0]:f,this),v=d.invert(y),k=d.k*(f.shiftKey?.5:2),A=e(N($(d,k),y,v),n.apply(this,m),s);pt(f),u>0?Z(this).transition().duration(u).call(C,A,y,f):Z(this).call(g.transform,A,y,f)}}function ue(f,...m){if(t.apply(this,arguments)){var d=f.touches,y=d.length,v=R(this,m,f.changedTouches.length===y).event(f),k,A,M,S;for(Kt(f),A=0;A<y;++A)M=d[A],S=rt(M,this),S=[S,this.__zoom.invert(S),M.identifier],v.touch0?!v.touch1&&v.touch0[2]!==S[2]&&(v.touch1=S,v.taps=0):(v.touch0=S,k=!0,v.taps=1+!!c);c&&(c=clearTimeout(c)),k&&(v.taps<2&&(p=S[0],c=setTimeout(function(){c=null},_)),St(this),v.start())}}function le(f,...m){if(this.__zooming){var d=R(this,m).event(f),y=f.changedTouches,v=y.length,k,A,M,S;for(pt(f),k=0;k<v;++k)A=y[k],M=rt(A,this),d.touch0&&d.touch0[2]===A.identifier?d.touch0[0]=M:d.touch1&&d.touch1[2]===A.identifier&&(d.touch1[0]=M);if(A=d.that.__zoom,d.touch1){var L=d.touch0[0],T=d.touch0[1],q=d.touch1[0],O=d.touch1[1],X=(X=q[0]-L[0])*X+(X=q[1]-L[1])*X,G=(G=O[0]-T[0])*G+(G=O[1]-T[1])*G;A=$(A,Math.sqrt(X/G)),M=[(L[0]+q[0])/2,(L[1]+q[1])/2],S=[(T[0]+O[0])/2,(T[1]+O[1])/2]}else if(d.touch0)M=d.touch0[0],S=d.touch0[1];else return;d.zoom("touch",e(N(A,M,S),d.extent,s))}}function ce(f,...m){if(this.__zooming){var d=R(this,m).event(f),y=f.changedTouches,v=y.length,k,A;for(Kt(f),h&&clearTimeout(h),h=setTimeout(function(){h=null},_),k=0;k<v;++k)A=y[k],d.touch0&&d.touch0[2]===A.identifier?delete d.touch0:d.touch1&&d.touch1[2]===A.identifier&&delete d.touch1;if(d.touch1&&!d.touch0&&(d.touch0=d.touch1,delete d.touch1),d.touch0)d.touch0[1]=this.__zoom.invert(d.touch0[0]);else if(d.end(),d.taps===2&&(A=rt(A,this),Math.hypot(p[0]-A[0],p[1]-A[1])<b)){var M=Z(this).on("dblclick.zoom");M&&M.apply(this,arguments)}}}return g.wheelDelta=function(f){return arguments.length?(r=typeof f=="function"?f:zt(+f),g):r},g.filter=function(f){return arguments.length?(t=typeof f=="function"?f:zt(!!f),g):t},g.touchable=function(f){return arguments.length?(i=typeof f=="function"?f:zt(!!f),g):i},g.extent=function(f){return arguments.length?(n=typeof f=="function"?f:zt([[+f[0][0],+f[0][1]],[+f[1][0],+f[1][1]]]),g):n},g.scaleExtent=function(f){return arguments.length?(o[0]=+f[0],o[1]=+f[1],g):[o[0],o[1]]},g.translateExtent=function(f){return arguments.length?(s[0][0]=+f[0][0],s[1][0]=+f[1][0],s[0][1]=+f[0][1],s[1][1]=+f[1][1],g):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},g.constrain=function(f){return arguments.length?(e=f,g):e},g.duration=function(f){return arguments.length?(u=+f,g):u},g.interpolate=function(f){return arguments.length?(l=f,g):l},g.on=function(){var f=a.on.apply(a,arguments);return f===a?g:f},g.clickDistance=function(f){return arguments.length?(x=(f=+f)*f,g):Math.sqrt(x)},g.tapDistance=function(f){return arguments.length?(b=+f,g):b},g}const Bs={class:"issue-graph-page"},Ps={class:"page-header"},qs={class:"graph-controls"},Xs={key:0,class:"loading card"},Hs={key:1,class:"empty card"},Fs={key:2,class:"graph-container card"},Ls=fe({__name:"graph",async setup(t){let n,e;const r=he(),i=Vt(null),o=Vt(null),s=Vt({left:"0px",top:"0px"});let u=null,l=null;const{data:a,status:c}=([n,e]=pe(()=>ve("/api/issues/graph","$5ObCgmYhuY")),n=await n,e(),n),p=()=>{l&&u&&l.transition().duration(300).call(u.scaleBy,1.3)},h=()=>{l&&u&&l.transition().duration(300).call(u.scaleBy,.7)},_=()=>{l&&u&&l.transition().duration(300).call(u.transform,qt)},w=b=>{switch(b){case"critical":return"#ef4444";case"high":return"#f59e0b";case"medium":return"#3b82f6";case"low":return"#22c55e";default:return"#94a3b8"}},x=()=>{if(!i.value||!a.value)return;const b=i.value.parentElement;if(!b)return;const g=b.clientWidth,$=b.clientHeight||600;Z(i.value).selectAll("*").remove(),l=Z(i.value).attr("width",g).attr("height",$);const N=l.append("g");u=Ds().scaleExtent([.1,4]).on("zoom",z=>{N.attr("transform",z.transform.toString())}),l.call(u);const E=dn(a.value),R=ys().size([$-100,g-200]).separation((z,D)=>z.parent===D.parent?1:1.5)(E);N.selectAll(".link").data(R.links()).enter().append("path").attr("class","link").attr("d",Ns().x(z=>z.y+100).y(z=>z.x+50)).attr("fill","none").attr("stroke","#cbd5e1").attr("stroke-width",2);const P=N.selectAll(".node").data(R.descendants()).enter().append("g").attr("class","node").attr("transform",z=>`translate(${(z.y??0)+100}, ${(z.x??0)+50})`).style("cursor","pointer").on("click",(z,D)=>{D.data.id&&D.data.id!=="root"&&r.push(`/issue/${D.data.id}`)}).on("mouseenter",(z,D)=>{D.data.id!=="root"&&(o.value=D.data,s.value={left:`${z.pageX+10}px`,top:`${z.pageY+10}px`})}).on("mouseleave",()=>{o.value=null});P.append("circle").attr("r",z=>z.data.id==="root"?12:8).attr("fill",z=>z.data.id==="root"?"#64748b":w(z.data.priority)).attr("stroke","#fff").attr("stroke-width",2),P.append("text").attr("dy",-15).attr("text-anchor","middle").attr("font-size","11px").attr("fill","#64748b").text(z=>z.data.id==="root"?"":z.data.id);const ut=qt.translate(50,$/2-(R.x||0)-50);l.call(u.transform,ut)};return de(()=>{_n(()=>{x()}),window.addEventListener("resize",x)}),_e(()=>{window.removeEventListener("resize",x)}),ge(a,()=>{_n(()=>{x()})}),me({title:"Issue Graph - AutoCode"}),(b,g)=>(et(),nt("div",Bs,[j("header",Ps,[j("h1",null,U(b.$t("graph.title")),1),j("div",qs,[j("button",{class:"btn btn-secondary btn-sm",onClick:p},"+ "+U(b.$t("graph.zoomIn")),1),j("button",{class:"btn btn-secondary btn-sm",onClick:h}," − "+U(b.$t("graph.zoomOut")),1),j("button",{class:"btn btn-secondary btn-sm",onClick:_},U(b.$t("graph.reset")),1)])]),K(c)==="pending"?(et(),nt("div",Xs,U(b.$t("app.loading")),1)):K(a)?.children?.length?(et(),nt("div",Fs,[(et(),nt("svg",{ref_key:"svgRef",ref:i,class:"graph-svg"},null,512))])):(et(),nt("div",Hs,U(b.$t("graph.noIssues")),1)),K(o)?(et(),nt("div",{key:3,class:"issue-tooltip",style:ye(K(s))},[j("strong",null,U(K(o).id),1),j("p",null,U(K(o).title),1),K(o).priority?(et(),nt("span",{key:0,class:we(["badge",`badge-${K(o).priority}`])},U(K(o).priority),3)):gn("",!0)],4)):gn("",!0)]))}}),Os=xe(Ls,[["__scopeId","data-v-63d9891e"]]);export{Os as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as N}from"./
|
|
1
|
+
import{_ as N}from"./C2rmiAJ1.js";import{d as P,x as V,u as B,r as c,s as D,c as u,e as s,f as _,w as m,t as o,h as e,C as f,j as S,D as h,J as T,H as v,b,g,_ as $}from"./D0HHOq4k.js";import{u as E}from"./C10TWEVH.js";import{u as H}from"./ClY4a-PO.js";const I={class:"new-pipeline-page"},K={class:"page-header card"},R={class:"header-left"},U={class:"card form-card"},j={class:"form-group"},A={class:"form-label"},F=["placeholder"],J={key:0,class:"input-hint"},L={class:"form-group"},M={class:"form-label"},O=["placeholder"],q={class:"form-actions"},z=["disabled"],G=P({__name:"new",setup(Q){const y=V(),{t}=B(),{success:w,error:x}=E(),{generateSlug:k,loadPipeline:C}=H(),a=c(""),l=c(""),i=c(!1),p=async()=>{if(!(!a.value.trim()||i.value)){i.value=!0;try{await $fetch("/api/pipelines",{method:"POST",body:{name:a.value,description:l.value}}),w(t("pipeline.pipelineCreated")),await C(a.value),y.push("/settings/pipeline")}catch{x(t("error.createFailed"))}finally{i.value=!1}}};return D({title:`${t("pipeline.new")} - AutoCode`}),(W,n)=>{const d=N;return b(),u("div",I,[s("header",K,[s("div",R,[_(d,{to:"/settings/pipeline",class:"back-link"},{default:m(()=>[g("← "+o(e(t)("nav.back")),1)]),_:1}),n[2]||(n[2]=s("span",{class:"header-separator"},"/",-1)),s("h1",null,o(e(t)("pipeline.new")),1)])]),s("div",U,[s("div",j,[s("label",A,o(e(t)("pipeline.name")),1),f(s("input",{"onUpdate:modelValue":n[0]||(n[0]=r=>v(a)?a.value=r:null),type:"text",class:"form-input",placeholder:e(t)("pipeline.namePlaceholder"),onKeyup:T(p,["enter"])},null,40,F),[[h,e(a)]]),e(a)?(b(),u("span",J," key: "+o(e(k)(e(a))),1)):S("",!0)]),s("div",L,[s("label",M,o(e(t)("pipeline.description")),1),f(s("textarea",{"onUpdate:modelValue":n[1]||(n[1]=r=>v(l)?l.value=r:null),class:"form-input",rows:"4",placeholder:e(t)("pipeline.descriptionPlaceholder")},null,8,O),[[h,e(l)]])]),s("div",q,[_(d,{to:"/settings/pipeline",class:"btn btn-secondary"},{default:m(()=>[g(o(e(t)("modal.cancel")),1)]),_:1}),s("button",{class:"btn btn-primary",disabled:!e(a).trim()||e(i),onClick:p},o(e(i)?e(t)("form.saving"):e(t)("form.create")),9,z)])])])}}}),se=$(G,[["__scopeId","data-v-123b6ad2"]]);export{se as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as o}from"./
|
|
1
|
+
import{u as o}from"./D0HHOq4k.js";const c=()=>{const{t:e}=o(),s=i=>{if(!i)return e("notify.error");const r=i.toLowerCase();if(r.includes("wip limit")){const n=i.match(/(\d+)\s+issue/),t=n?n[1]:"1";return e("apiError.wipLimit",{count:t})}return r.includes("cannot skip")||r.includes("cannot move from")?e("apiError.cannotSkip"):r.includes("acceptance criteria required")?e("apiError.acceptanceCriteriaRequired"):r.includes("not found")&&r.includes("issue")?e("apiError.issueNotFound"):r.includes("required")&&r.includes("column")?e("apiError.columnRequired"):r.includes("move")&&r.includes("failed")?e("apiError.moveFailed"):r.includes("save")&&r.includes("failed")?e("apiError.saveFailed"):r.includes("delete")&&r.includes("failed")?e("apiError.deleteFailed"):i};return{translateError:s,getErrorMessage:(i,r)=>{const n=i?.data?.message;if(n)return s(n);const t=i?.message;return t?s(t):r||e("notify.error")}}};export{c as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as d}from"./
|
|
1
|
+
import{_ as d}from"./C2rmiAJ1.js";import{u}from"./Byshfb8L.js";import{d as m,u as f,v as g,o as v,K as x,s as h,c as i,j as y,h as e,t as p,e as C,f as w,w as k,b as c,g as N,_ as V}from"./D0HHOq4k.js";const b={class:"pipeline-page"},B={key:0,class:"loading card"},I={key:1,class:"empty-state card"},$=m({__name:"index",async setup(A){let t,_;const{t:a}=f(),{data:n,pending:l}=([t,_]=g(()=>u("/api/pipelines","$p7t_x6yV7n")),t=await t,_(),t);return v(()=>{if(n.value?.length){const s=n.value.find(o=>o.active)||n.value[0];s&&x(`/settings/pipeline/${encodeURIComponent(s.name)}`,{replace:!0})}}),h({title:"Pipeline Configuration - AutoCode"}),(r,s)=>{const o=d;return c(),i("div",b,[e(l)?(c(),i("div",B,p(e(a)("app.loading")),1)):e(n)?.length?y("",!0):(c(),i("div",I,[C("p",null,p(e(a)("pipeline.noColumns")),1),w(o,{to:"/settings/pipeline/new",class:"btn btn-primary"},{default:k(()=>[N(" + "+p(e(a)("pipeline.new")),1)]),_:1})]))])}}}),E=V($,[["__scopeId","data-v-9f6aa041"]]);export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as v}from"./
|
|
1
|
+
import{_ as v}from"./C2rmiAJ1.js";import{d as f,G as $,l as y,c as d,e as a,f as c,w as n,h as m,g as i,t as e,j as _,q as u,b as r,_ as k}from"./D0HHOq4k.js";const T={class:"issue-header"},g={class:"issue-info"},N={class:"issue-title"},C={class:"issue-id"},V={class:"issue-meta"},x={class:"column-name"},B={class:"issue-tabs"},I=f({__name:"IssueHeader",props:{issue:{},activeTab:{}},setup(s){const h=s,b=$(),l=y(()=>b.path.match(/\/issue\/[^/]+\/history\/[^/]+\/(terminal|prompt)$/)?{to:`/issue/${h.issue?.id}/history`,label:"issue.history"}:{to:"/kanban",label:"nav.kanban"});return(t,j)=>{const o=v;return r(),d("div",T,[a("div",g,[c(o,{to:m(l).to,class:"back-link"},{default:n(()=>[i(" ← "+e(t.$t(m(l).label)),1)]),_:1},8,["to"]),a("h1",N,[a("span",C,e(s.issue?.id),1),i(" "+e(s.issue?.title),1)]),a("div",V,[s.issue?.priority?(r(),d("span",{key:0,class:u(["badge",`badge-${s.issue.priority}`])},e(s.issue.priority),3)):_("",!0),a("span",x,e(s.issue?.column),1)])]),a("nav",B,[c(o,{to:`/issue/${s.issue?.id}`,class:u(["tab",{active:s.activeTab==="details"}])},{default:n(()=>[i(e(t.$t("issue.details")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/comments`,class:u(["tab",{active:s.activeTab==="comments"}])},{default:n(()=>[i(e(t.$t("issue.comments")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/history`,class:u(["tab",{active:s.activeTab==="history"}])},{default:n(()=>[i(e(t.$t("issue.history")),1)]),_:1},8,["to","class"]),c(o,{to:`/issue/${s.issue?.id}/terminal`,class:u(["tab",{active:s.activeTab==="terminal"}])},{default:n(()=>[i(e(t.$t("issue.terminal")),1)]),_:1},8,["to","class"])])])}}}),L=Object.assign(k(I,[["__scopeId","data-v-242cda85"]]),{__name:"IssueHeader"});export{L as _};
|