@autocode-cli/autocode 0.28.1 → 0.36.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.
Files changed (194) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_i18n/Ld0h1Adq/en/messages.json +1 -0
  3. package/.output/public/_i18n/Ld0h1Adq/fr/messages.json +1 -0
  4. package/.output/public/_nuxt/00BWY9Ij.js +10 -0
  5. package/.output/public/_nuxt/{DqQxVbWA.js → 48RFRq_I.js} +1 -1
  6. package/.output/public/_nuxt/{AM5G3Gb5.js → 6gOFoOBv.js} +1 -1
  7. package/.output/public/_nuxt/7sR_btEk.js +1 -0
  8. package/.output/public/_nuxt/{DVrAHktU.js → Amqf1SBE.js} +1 -1
  9. package/.output/public/_nuxt/{B2zBdK3d.js → B0yQK1au.js} +1 -1
  10. package/.output/public/_nuxt/{DDhcSt_S.js → B3JaNZxX.js} +1 -1
  11. package/.output/public/_nuxt/{BHVpJd4P.js → BAAiS_qy.js} +1 -1
  12. package/.output/public/_nuxt/{hAo59O9E.js → BAOdxXv4.js} +1 -1
  13. package/.output/public/_nuxt/BGJFtQgK.js +1 -0
  14. package/.output/public/_nuxt/BMQOAvhP.js +1 -0
  15. package/.output/public/_nuxt/{CebUck3P.js → BPxDXB13.js} +1 -1
  16. package/.output/public/_nuxt/{Cm0Kz8KR.js → BQMX0Vtg.js} +1 -1
  17. package/.output/public/_nuxt/{H1ZdG1j9.js → BQPgjGfs.js} +1 -1
  18. package/.output/public/_nuxt/{BQNoAdwZ.js → BRNVrR0Q.js} +1 -1
  19. package/.output/public/_nuxt/{DUmRoRZn.js → BRR7H4VZ.js} +1 -1
  20. package/.output/public/_nuxt/{CPo_B76D.js → BStRXLlp.js} +1 -1
  21. package/.output/public/_nuxt/{D1bOowq2.js → BTUypKON.js} +1 -1
  22. package/.output/public/_nuxt/{Dg0UerBw.js → BZ5eH4oZ.js} +1 -1
  23. package/.output/public/_nuxt/{CTBcrkyt.js → BcjH67ba.js} +1 -1
  24. package/.output/public/_nuxt/{BeGyjVK0.js → BrtBSWOq.js} +1 -1
  25. package/.output/public/_nuxt/{E6PL7Nzd.js → C0Gbbife.js} +1 -1
  26. package/.output/public/_nuxt/{DrakT86i.js → C9P-GWig.js} +1 -1
  27. package/.output/public/_nuxt/{xpS189GL.js → C9Q_XE2y.js} +1 -1
  28. package/.output/public/_nuxt/{BPzjv_6i.js → CCEPkO9Q.js} +1 -1
  29. package/.output/public/_nuxt/{Dh-Zeb3O.js → CFJDHFu0.js} +1 -1
  30. package/.output/public/_nuxt/{Bpmmm66_.js → CFQXrjRh.js} +1 -1
  31. package/.output/public/_nuxt/{sXDQPz8X.js → CGNl3nJG.js} +1 -1
  32. package/.output/public/_nuxt/{Cx_L8WQj.js → CKjR6Oik.js} +1 -1
  33. package/.output/public/_nuxt/{B9C0HWuW.js → CTLXeCVr.js} +1 -1
  34. package/.output/public/_nuxt/{BWz5jw0L.js → CXfoqgHV.js} +1 -1
  35. package/.output/public/_nuxt/{5FWvGp_V.js → CZAptABr.js} +1 -1
  36. package/.output/public/_nuxt/{DGllJptg.js → CaT6Gmvd.js} +1 -1
  37. package/.output/public/_nuxt/{C2GaASXz.js → CeKi_uUO.js} +1 -1
  38. package/.output/public/_nuxt/CercIbuG.js +1 -0
  39. package/.output/public/_nuxt/{D8OjLiok.js → CgTGeNUg.js} +1 -1
  40. package/.output/public/_nuxt/{Dk0kqhok.js → ChtvGXKc.js} +1 -1
  41. package/.output/public/_nuxt/{Dn7Pqpyg.js → CkQJAsUV.js} +1 -1
  42. package/.output/public/_nuxt/{DBPjp5rm.js → CnBvzpvA.js} +1 -1
  43. package/.output/public/_nuxt/{D5ooCSL9.js → Co4zaoac.js} +1 -1
  44. package/.output/public/_nuxt/CouFgKW5.js +1 -0
  45. package/.output/public/_nuxt/{Ch6U-XfV.js → CpoLuEmz.js} +1 -1
  46. package/.output/public/_nuxt/{xPRPCEbj.js → Cpxhv8Qg.js} +1 -1
  47. package/.output/public/_nuxt/{BVJEdOBz.js → D45sR6CZ.js} +1 -1
  48. package/.output/public/_nuxt/{Dq2LFE1d.js → DAGJ7zg9.js} +1 -1
  49. package/.output/public/_nuxt/{CEVkryQZ.js → DAlNcmKB.js} +1 -1
  50. package/.output/public/_nuxt/{C6NP8L7w.js → DDNH3Fq2.js} +1 -1
  51. package/.output/public/_nuxt/{C7oKuzsd.js → DQwsIvTZ.js} +1 -1
  52. package/.output/public/_nuxt/{CKs1TwM-.js → DRMwpGCv.js} +1 -1
  53. package/.output/public/_nuxt/{7OrNJZ8q.js → DYqWq1Vn.js} +1 -1
  54. package/.output/public/_nuxt/Dfr112Jw.js +1 -0
  55. package/.output/public/_nuxt/{D2RHUlLB.js → DkJTip7e.js} +1 -1
  56. package/.output/public/_nuxt/{BTpkhX3G.js → Dob4oaN0.js} +1 -1
  57. package/.output/public/_nuxt/{B1Etvs3c.js → DpYdB9MN.js} +1 -1
  58. package/.output/public/_nuxt/{DDBIX1Ge.js → DxNPZ1bU.js} +1 -1
  59. package/.output/public/_nuxt/{BsL_VgkM.js → I5zwxUB4.js} +1 -1
  60. package/.output/public/_nuxt/{DHK6Urm7.js → NIeoUmDE.js} +1 -1
  61. package/.output/public/_nuxt/{DadxcRMs.js → NVsyChWu.js} +1 -1
  62. package/.output/public/_nuxt/SK7I1OsC.js +1 -0
  63. package/.output/public/_nuxt/{CBV4OF4H.js → Wm7exVxY.js} +1 -1
  64. package/.output/public/_nuxt/{CWOdQCPj.js → _hRtkQ2r.js} +1 -1
  65. package/.output/public/_nuxt/builds/latest.json +1 -1
  66. package/.output/public/_nuxt/builds/meta/eddd3f97-dfcd-4aa3-a8e7-9f432f427e6d.json +1 -0
  67. package/.output/public/_nuxt/cIYz9vRR.js +1 -0
  68. package/.output/public/_nuxt/cli.D68WAxVv.css +1 -0
  69. package/.output/public/_nuxt/{2UKQ6Srj.js → ge5HoFHn.js} +3 -3
  70. package/.output/public/_nuxt/{index.Dndk3KN9.css → index.B-MCQhP8.css} +1 -1
  71. package/.output/public/_nuxt/index.CPvzWVwd.css +1 -0
  72. package/.output/public/_nuxt/{BZwqSlWD.js → ivFMXWZI.js} +1 -1
  73. package/.output/public/_nuxt/kdqZYFE6.js +1 -0
  74. package/.output/public/_nuxt/{Dye3__N7.js → nSLZfjDc.js} +3 -3
  75. package/.output/public/_nuxt/new.84MgEEsd.css +1 -0
  76. package/.output/public/_nuxt/prompt.CNw9EZnJ.css +1 -0
  77. package/.output/public/_nuxt/{CGLkc3In.js → t7k_e5FQ.js} +1 -1
  78. package/.output/public/_nuxt/{CNa2gyMe.js → uL1fX62J.js} +1 -1
  79. package/.output/public/_payload.json +1 -1
  80. package/.output/public/api/_openapi.json +1 -1
  81. package/.output/public/docs/api/_payload.json +1 -1
  82. package/.output/public/docs/api/index.html +8 -4
  83. package/.output/public/docs/cli/_payload.json +1 -1
  84. package/.output/public/docs/cli/index.html +13 -13
  85. package/.output/public/index.html +1 -1
  86. package/.output/server/chunks/_/en.mjs +5 -1
  87. package/.output/server/chunks/_/en.mjs.map +1 -1
  88. package/.output/server/chunks/_/fr.mjs +5 -1
  89. package/.output/server/chunks/_/fr.mjs.map +1 -1
  90. package/.output/server/chunks/build/LandingFooter-styles.CudcJSR4.mjs +8 -0
  91. package/.output/server/chunks/build/LandingFooter-styles.CudcJSR4.mjs.map +1 -0
  92. package/.output/server/chunks/build/{cli-CZwbcgW5.mjs → cli-S2geGQoF.mjs} +27 -14
  93. package/.output/server/chunks/build/cli-S2geGQoF.mjs.map +1 -0
  94. package/.output/server/chunks/build/cli-styles.BonhH80m.mjs +8 -0
  95. package/.output/server/chunks/build/cli-styles.BonhH80m.mjs.map +1 -0
  96. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  97. package/.output/server/chunks/build/{en-BwRtQJL1.mjs → en-BhagfGAQ.mjs} +6 -2
  98. package/.output/server/chunks/build/{en-BwRtQJL1.mjs.map → en-BhagfGAQ.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{fr-BAbxj8tA.mjs → fr-12bubW4G.mjs} +6 -2
  100. package/.output/server/chunks/build/{fr-BAbxj8tA.mjs.map → fr-12bubW4G.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{index-CKZ58Ox2.mjs → index-BZJzUQ3B.mjs} +27 -17
  102. package/.output/server/chunks/build/index-BZJzUQ3B.mjs.map +1 -0
  103. package/.output/server/chunks/build/index-styles.BP9liX_F.mjs +8 -0
  104. package/.output/server/chunks/build/index-styles.BP9liX_F.mjs.map +1 -0
  105. package/.output/server/chunks/build/{index-3KvoAMZW.mjs → index-tBZcd_Xi.mjs} +78 -182
  106. package/.output/server/chunks/build/index-tBZcd_Xi.mjs.map +1 -0
  107. package/.output/server/chunks/build/{new-BI12IpeK.mjs → new-BqYiaSD7.mjs} +19 -19
  108. package/.output/server/chunks/build/{new-BI12IpeK.mjs.map → new-BqYiaSD7.mjs.map} +1 -1
  109. package/.output/server/chunks/build/new-styles.BPjkN6Iy.mjs +8 -0
  110. package/.output/server/chunks/build/new-styles.BPjkN6Iy.mjs.map +1 -0
  111. package/.output/server/chunks/build/{prompt-BjvwrM-J.mjs → prompt-D-xu1MtO.mjs} +41 -12
  112. package/.output/server/chunks/build/prompt-D-xu1MtO.mjs.map +1 -0
  113. package/.output/server/chunks/build/prompt-styles.Dvlc6Xra.mjs +8 -0
  114. package/.output/server/chunks/build/prompt-styles.Dvlc6Xra.mjs.map +1 -0
  115. package/.output/server/chunks/build/server.mjs +9 -9
  116. package/.output/server/chunks/build/styles.mjs +15 -21
  117. package/.output/server/chunks/nitro/nitro.mjs +545 -515
  118. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  119. package/.output/server/chunks/routes/.well-known/appspecific/_...path_.mjs +34 -0
  120. package/.output/server/chunks/routes/.well-known/appspecific/_...path_.mjs.map +1 -0
  121. package/.output/server/chunks/routes/api/issues/_id/history.get.mjs +3 -2
  122. package/.output/server/chunks/routes/api/issues/_id/history.get.mjs.map +1 -1
  123. package/.output/server/node_modules/.prisma/client/index.js +4 -3
  124. package/.output/server/node_modules/.prisma/client/package.json +1 -1
  125. package/.output/server/package.json +1 -1
  126. package/bin/autocode +176 -4
  127. package/package.json +5 -6
  128. package/prisma/migrations/20260104173538_init/migration.sql +142 -0
  129. package/prisma/migrations/20260104180000_pipeline_versioning/migration.sql +216 -0
  130. package/prisma/migrations/20260104190638_add_column_prompts/migration.sql +50 -0
  131. package/prisma/migrations/20260105120000_remove_column_prompts/migration.sql +3 -0
  132. package/prisma/migrations/20260105150000_normalize_pipeline_names/migration.sql +37 -0
  133. package/prisma/migrations/20260105170000_remove_slug_prefixes/migration.sql +16 -0
  134. package/prisma/migrations/migration_lock.toml +3 -0
  135. package/prisma/schema.prisma +185 -0
  136. package/templates/prompts/_transition-decision.en.md +41 -25
  137. package/templates/prompts/_transition-decision.fr.md +28 -11
  138. package/templates/prompts/design.en.md +31 -9
  139. package/templates/prompts/design.fr.md +31 -9
  140. package/templates/prompts/git-tag.en.md +47 -11
  141. package/templates/prompts/git-tag.fr.md +47 -11
  142. package/templates/prompts/in-progress.en.md +43 -9
  143. package/templates/prompts/in-progress.fr.md +44 -10
  144. package/templates/prompts/qualification.en.md +48 -17
  145. package/templates/prompts/qualification.fr.md +48 -17
  146. package/templates/prompts/retest-cypress.en.md +14 -3
  147. package/templates/prompts/retest-cypress.fr.md +14 -3
  148. package/templates/prompts/review-security.en.md +35 -6
  149. package/templates/prompts/review-security.fr.md +35 -6
  150. package/templates/prompts/specification.en.md +29 -7
  151. package/templates/prompts/specification.fr.md +29 -7
  152. package/templates/prompts/splitter.en.md +50 -28
  153. package/templates/prompts/splitter.fr.md +52 -31
  154. package/templates/prompts/testing-cypress.en.md +14 -4
  155. package/templates/prompts/testing-cypress.fr.md +14 -4
  156. package/templates/prompts/testing-integration.en.md +39 -3
  157. package/templates/prompts/testing-integration.fr.md +39 -3
  158. package/.output/public/_i18n/1tr7GMXh/en/messages.json +0 -1
  159. package/.output/public/_i18n/1tr7GMXh/fr/messages.json +0 -1
  160. package/.output/public/_nuxt/BLgRKHG3.js +0 -1
  161. package/.output/public/_nuxt/Bn3kTsBm.js +0 -1
  162. package/.output/public/_nuxt/D1HszwGo.js +0 -1
  163. package/.output/public/_nuxt/D3gNfEFX.js +0 -1
  164. package/.output/public/_nuxt/DYSILRDe.js +0 -1
  165. package/.output/public/_nuxt/F0VLILv_.js +0 -1
  166. package/.output/public/_nuxt/_bAHEawb.js +0 -1
  167. package/.output/public/_nuxt/builds/meta/869ae272-5034-4cd9-bcf3-c435cd504497.json +0 -1
  168. package/.output/public/_nuxt/cli.e1u7fwy6.css +0 -1
  169. package/.output/public/_nuxt/eYN6S-_a.js +0 -1
  170. package/.output/public/_nuxt/index.COVdL_Kx.css +0 -1
  171. package/.output/public/_nuxt/new.BFERdqdm.css +0 -1
  172. package/.output/public/_nuxt/prompt.DZ0wdOji.css +0 -1
  173. package/.output/public/_nuxt/x-ybRJG0.js +0 -10
  174. package/.output/public/_nuxt/xFbyDfcC.js +0 -1
  175. package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs +0 -8
  176. package/.output/server/chunks/build/LandingArchitecture-styles.Don6ug3a.mjs.map +0 -1
  177. package/.output/server/chunks/build/LandingDocs-styles.FyNL7DNS.mjs +0 -8
  178. package/.output/server/chunks/build/LandingDocs-styles.FyNL7DNS.mjs.map +0 -1
  179. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs +0 -8
  180. package/.output/server/chunks/build/LandingFooter-styles.sSpn5cgM.mjs.map +0 -1
  181. package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs +0 -8
  182. package/.output/server/chunks/build/LandingRoadmap-styles.DX5EsTsx.mjs.map +0 -1
  183. package/.output/server/chunks/build/cli-CZwbcgW5.mjs.map +0 -1
  184. package/.output/server/chunks/build/cli-styles.CSdcLhw8.mjs +0 -8
  185. package/.output/server/chunks/build/cli-styles.CSdcLhw8.mjs.map +0 -1
  186. package/.output/server/chunks/build/index-3KvoAMZW.mjs.map +0 -1
  187. package/.output/server/chunks/build/index-CKZ58Ox2.mjs.map +0 -1
  188. package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs +0 -8
  189. package/.output/server/chunks/build/index-styles.BJ7kZO7q.mjs.map +0 -1
  190. package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs +0 -8
  191. package/.output/server/chunks/build/new-styles.Chk5u_6M.mjs.map +0 -1
  192. package/.output/server/chunks/build/prompt-BjvwrM-J.mjs.map +0 -1
  193. package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs +0 -8
  194. package/.output/server/chunks/build/prompt-styles.DWfublIG.mjs.map +0 -1
@@ -1 +1 @@
1
- import{b as w}from"./sXDQPz8X.js";import{r as b,T as k,as as y,av as _,N as C,d as z,g as B}from"./2UKQ6Srj.js";import{d as g,r as h,n as E,z as I,c as m,b as s,e as o,j as u,k as c,w as f,f as p,h as l,F as V}from"./Dye3__N7.js";import"./92s3wAHG.js";import"./xpS189GL.js";import"./BeGyjVK0.js";import"./DDBIX1Ge.js";const N={class:"flex h-full w-full flex-col gap-2 pt-8"},F={class:"flex min-h-8 items-center justify-between gap-2 pl-1.5"},j={class:"has-[:focus-visible]:bg-b-1 group relative z-1 flex flex-col rounded-lg"},D={class:"flex h-full min-h-[calc(1rem*4)] flex-col"},M={key:1,class:"text-c-3 flex h-full items-center justify-center rounded-lg border p-4"},P=g({__name:"MarkdownInput",props:{modelValue:{},environment:{},envVariables:{},workspace:{}},emits:["update:modelValue"],setup(x,{emit:n}){const d=n,t=h("preview"),r=h(null);E(t,a=>{a==="edit"&&I(()=>{r.value?.focus()})});const v=()=>{requestAnimationFrame(()=>{t.value="preview"})};return(a,e)=>(s(),m("div",N,[o("div",F,[e[5]||(e[5]=o("h3",{class:"font-bold"},"Description",-1)),t.value==="preview"?(s(),u(l(k),{key:0,class:"text-c-2 hover:text-c-1 flex items-center gap-2",size:"sm",type:"button",variant:"outlined",onClick:e[0]||(e[0]=i=>t.value="edit")},{default:f(()=>[p(l(b),{icon:"Pencil",size:"sm",thickness:"1.5"}),e[4]||(e[4]=o("span",null,"Edit",-1))]),_:1})):c("",!0)]),o("div",j,[o("div",D,[t.value==="preview"?(s(),m(V,{key:0},[a.modelValue&&a.modelValue.trim().length?(s(),m(V,{key:0},[a.modelValue?(s(),u(l(y),{key:0,class:"h-full flex-1 rounded border border-transparent p-1.5 hover:border-(--scalar-background-3)",value:a.modelValue,withImages:"",onDblclick:e[1]||(e[1]=i=>t.value="edit")},null,8,["value"])):c("",!0),e[6]||(e[6]=o("div",{class:"brightness-lifted bg-b-1 absolute inset-0 -z-1 hidden rounded group-hover:block group-has-[:focus-visible]:hidden"},null,-1))],64)):(s(),m("div",M,[p(l(k),{class:"hover:bg-b-2 hover:text-c-1 text-c-2 flex items-center gap-2",size:"sm",variant:"ghost",onClick:e[2]||(e[2]=i=>t.value="edit")},{default:f(()=>[p(l(b),{icon:"Pencil",size:"sm",thickness:"1.5"}),e[7]||(e[7]=o("span",null,"Write a description",-1))]),_:1})]))],64)):c("",!0),t.value==="edit"?(s(),u(_,{key:1,ref_key:"codeInputRef",ref:r,class:"h-full flex-1 border px-0.5 py-0",envVariables:a.envVariables,environment:a.environment,modelValue:a.modelValue,workspace:a.workspace,onBlur:v,"onUpdate:modelValue":e[3]||(e[3]=i=>d("update:modelValue",i))},null,8,["envVariables","environment","modelValue","workspace"])):c("",!0)])])]))}}),T=C(P,[["__scopeId","data-v-5997a667"]]),S=g({__name:"CollectionOverview",setup(x){const{activeCollection:n,activeEnvironment:d,activeEnvVariables:t,activeWorkspace:r}=z(),{collectionMutators:v}=B(),a=e=>{n.value&&v.edit(n.value.uid,"info.description",e)};return(e,i)=>(s(),u(w,null,{default:f(()=>[l(d)&&l(r)?(s(),u(T,{key:0,envVariables:l(t),environment:l(d),modelValue:l(n)?.info?.description??"",workspace:l(r),"onUpdate:modelValue":a},null,8,["envVariables","environment","modelValue","workspace"])):c("",!0)]),_:1}))}});export{S as default};
1
+ import{b as w}from"./CGNl3nJG.js";import{r as b,T as k,as as y,av as _,N as C,d as z,g as B}from"./ge5HoFHn.js";import{d as g,r as h,n as E,z as I,c as m,b as s,e as o,j as u,k as c,w as f,f as p,h as l,F as V}from"./nSLZfjDc.js";import"./92s3wAHG.js";import"./C9Q_XE2y.js";import"./BrtBSWOq.js";import"./DxNPZ1bU.js";const N={class:"flex h-full w-full flex-col gap-2 pt-8"},F={class:"flex min-h-8 items-center justify-between gap-2 pl-1.5"},j={class:"has-[:focus-visible]:bg-b-1 group relative z-1 flex flex-col rounded-lg"},D={class:"flex h-full min-h-[calc(1rem*4)] flex-col"},M={key:1,class:"text-c-3 flex h-full items-center justify-center rounded-lg border p-4"},P=g({__name:"MarkdownInput",props:{modelValue:{},environment:{},envVariables:{},workspace:{}},emits:["update:modelValue"],setup(x,{emit:n}){const d=n,t=h("preview"),r=h(null);E(t,a=>{a==="edit"&&I(()=>{r.value?.focus()})});const v=()=>{requestAnimationFrame(()=>{t.value="preview"})};return(a,e)=>(s(),m("div",N,[o("div",F,[e[5]||(e[5]=o("h3",{class:"font-bold"},"Description",-1)),t.value==="preview"?(s(),u(l(k),{key:0,class:"text-c-2 hover:text-c-1 flex items-center gap-2",size:"sm",type:"button",variant:"outlined",onClick:e[0]||(e[0]=i=>t.value="edit")},{default:f(()=>[p(l(b),{icon:"Pencil",size:"sm",thickness:"1.5"}),e[4]||(e[4]=o("span",null,"Edit",-1))]),_:1})):c("",!0)]),o("div",j,[o("div",D,[t.value==="preview"?(s(),m(V,{key:0},[a.modelValue&&a.modelValue.trim().length?(s(),m(V,{key:0},[a.modelValue?(s(),u(l(y),{key:0,class:"h-full flex-1 rounded border border-transparent p-1.5 hover:border-(--scalar-background-3)",value:a.modelValue,withImages:"",onDblclick:e[1]||(e[1]=i=>t.value="edit")},null,8,["value"])):c("",!0),e[6]||(e[6]=o("div",{class:"brightness-lifted bg-b-1 absolute inset-0 -z-1 hidden rounded group-hover:block group-has-[:focus-visible]:hidden"},null,-1))],64)):(s(),m("div",M,[p(l(k),{class:"hover:bg-b-2 hover:text-c-1 text-c-2 flex items-center gap-2",size:"sm",variant:"ghost",onClick:e[2]||(e[2]=i=>t.value="edit")},{default:f(()=>[p(l(b),{icon:"Pencil",size:"sm",thickness:"1.5"}),e[7]||(e[7]=o("span",null,"Write a description",-1))]),_:1})]))],64)):c("",!0),t.value==="edit"?(s(),u(_,{key:1,ref_key:"codeInputRef",ref:r,class:"h-full flex-1 border px-0.5 py-0",envVariables:a.envVariables,environment:a.environment,modelValue:a.modelValue,workspace:a.workspace,onBlur:v,"onUpdate:modelValue":e[3]||(e[3]=i=>d("update:modelValue",i))},null,8,["envVariables","environment","modelValue","workspace"])):c("",!0)])])]))}}),T=C(P,[["__scopeId","data-v-5997a667"]]),S=g({__name:"CollectionOverview",setup(x){const{activeCollection:n,activeEnvironment:d,activeEnvVariables:t,activeWorkspace:r}=z(),{collectionMutators:v}=B(),a=e=>{n.value&&v.edit(n.value.uid,"info.description",e)};return(e,i)=>(s(),u(w,null,{default:f(()=>[l(d)&&l(r)?(s(),u(T,{key:0,envVariables:l(t),environment:l(d),modelValue:l(n)?.info?.description??"",workspace:l(r),"onUpdate:modelValue":a},null,8,["envVariables","environment","modelValue","workspace"])):c("",!0)]),_:1}))}});export{S as default};
@@ -1 +1 @@
1
- import{_ as h}from"./DVrAHktU.js";import{_ as C}from"./DrakT86i.js";import{d as g,r as x,H as y,n as w,o as N,a as I,c as _,b as l,e as n,f as a,w as u,s as f,h as i,F as $,q as k,g as A,t as d,_ as v,j as E,b0 as L,ag as O,al as B}from"./Dye3__N7.js";import{u as H}from"./BeGyjVK0.js";const j={class:"app-header"},S={class:"header-content"},T={class:"header-actions"},V={class:"btn-text"},F=["aria-label"],M=g({__name:"AppHeader",setup(m){const t=x(!1),c=[{to:"/kanban",label:"nav.kanban"},{to:"/stats",label:"nav.stats"},{to:"/changelog",label:"nav.changelog"},{to:"/settings/pipeline",label:"nav.settings"}],r=y();return w(()=>r.path,()=>{t.value=!1}),N(()=>{const o=e=>{e.key==="Escape"&&(t.value=!1)};document.addEventListener("keydown",o),I(()=>{document.removeEventListener("keydown",o)})}),(o,e)=>{const s=h,b=C;return l(),_("header",j,[n("div",S,[a(s,{to:"/",class:"logo"},{default:u(()=>[...e[2]||(e[2]=[n("span",{class:"logo-icon"},"⚡",-1),n("span",{class:"logo-text"},"AutoCode",-1)])]),_:1}),n("nav",{class:f(["main-nav",{open:i(t)}])},[(l(),_($,null,k(c,p=>a(s,{key:p.to,to:p.to,class:"nav-link",onClick:e[0]||(e[0]=W=>t.value=!1)},{default:u(()=>[A(d(o.$t(p.label)),1)]),_:2},1032,["to"])),64))],2),n("div",T,[a(s,{to:"/issue/new",class:"btn btn-primary new-issue-btn"},{default:u(()=>[e[3]||(e[3]=n("span",{class:"btn-icon"},"+",-1)),n("span",V,d(o.$t("nav.newIssue")),1)]),_:1}),a(b),n("button",{class:"mobile-menu-btn","aria-label":i(t)?"Close menu":"Open menu",onClick:e[1]||(e[1]=p=>t.value=!i(t))},[n("span",{class:f(["hamburger",{open:i(t)}])},[...e[4]||(e[4]=[n("span",null,null,-1),n("span",null,null,-1),n("span",null,null,-1)])],2)],8,F)])])])}}}),q=Object.assign(v(M,[["__scopeId","data-v-055d7a5c"]]),{__name:"AppHeader"}),z={class:"notification-container"},D={class:"notification-icon"},G={class:"notification-message"},K=["onClick"],R=g({__name:"NotificationContainer",setup(m){const{notifications:t,remove:c}=H(),r=o=>({success:"OK",error:"X",warning:"!",info:"i"})[o]||"i";return(o,e)=>(l(),E(O,{to:"body"},[n("div",z,[a(L,{name:"notification"},{default:u(()=>[(l(!0),_($,null,k(i(t),s=>(l(),_("div",{key:s.id,class:f(["notification",`notification-${s.type}`])},[n("span",D,d(r(s.type)),1),n("span",G,d(s.message),1),n("button",{class:"notification-close",onClick:b=>i(c)(s.id)},"x",8,K)],2))),128))]),_:1})])]))}}),U=Object.assign(v(R,[["__scopeId","data-v-87475ab3"]]),{__name:"NotificationContainer"}),X={},J={class:"app-layout"},P={class:"app-main"};function Q(m,t){const c=q,r=U;return l(),_("div",J,[a(c),n("main",P,[B(m.$slots,"default",{},void 0,!0)]),t[0]||(t[0]=n("footer",{class:"app-footer"},[n("p",null,"AutoCode v0.3.0")],-1)),a(r)])}const tn=v(X,[["render",Q],["__scopeId","data-v-157bd0ef"]]);export{tn as default};
1
+ import{_ as h}from"./Amqf1SBE.js";import{_ as C}from"./C9P-GWig.js";import{d as g,r as x,H as y,n as w,o as N,a as I,c as _,b as l,e as n,f as a,w as u,s as f,h as i,F as $,q as k,g as A,t as d,_ as v,j as E,b0 as L,ag as O,al as B}from"./nSLZfjDc.js";import{u as H}from"./BrtBSWOq.js";const j={class:"app-header"},S={class:"header-content"},T={class:"header-actions"},V={class:"btn-text"},F=["aria-label"],M=g({__name:"AppHeader",setup(m){const t=x(!1),c=[{to:"/kanban",label:"nav.kanban"},{to:"/stats",label:"nav.stats"},{to:"/changelog",label:"nav.changelog"},{to:"/settings/pipeline",label:"nav.settings"}],r=y();return w(()=>r.path,()=>{t.value=!1}),N(()=>{const o=e=>{e.key==="Escape"&&(t.value=!1)};document.addEventListener("keydown",o),I(()=>{document.removeEventListener("keydown",o)})}),(o,e)=>{const s=h,b=C;return l(),_("header",j,[n("div",S,[a(s,{to:"/",class:"logo"},{default:u(()=>[...e[2]||(e[2]=[n("span",{class:"logo-icon"},"⚡",-1),n("span",{class:"logo-text"},"AutoCode",-1)])]),_:1}),n("nav",{class:f(["main-nav",{open:i(t)}])},[(l(),_($,null,k(c,p=>a(s,{key:p.to,to:p.to,class:"nav-link",onClick:e[0]||(e[0]=W=>t.value=!1)},{default:u(()=>[A(d(o.$t(p.label)),1)]),_:2},1032,["to"])),64))],2),n("div",T,[a(s,{to:"/issue/new",class:"btn btn-primary new-issue-btn"},{default:u(()=>[e[3]||(e[3]=n("span",{class:"btn-icon"},"+",-1)),n("span",V,d(o.$t("nav.newIssue")),1)]),_:1}),a(b),n("button",{class:"mobile-menu-btn","aria-label":i(t)?"Close menu":"Open menu",onClick:e[1]||(e[1]=p=>t.value=!i(t))},[n("span",{class:f(["hamburger",{open:i(t)}])},[...e[4]||(e[4]=[n("span",null,null,-1),n("span",null,null,-1),n("span",null,null,-1)])],2)],8,F)])])])}}}),q=Object.assign(v(M,[["__scopeId","data-v-055d7a5c"]]),{__name:"AppHeader"}),z={class:"notification-container"},D={class:"notification-icon"},G={class:"notification-message"},K=["onClick"],R=g({__name:"NotificationContainer",setup(m){const{notifications:t,remove:c}=H(),r=o=>({success:"OK",error:"X",warning:"!",info:"i"})[o]||"i";return(o,e)=>(l(),E(O,{to:"body"},[n("div",z,[a(L,{name:"notification"},{default:u(()=>[(l(!0),_($,null,k(i(t),s=>(l(),_("div",{key:s.id,class:f(["notification",`notification-${s.type}`])},[n("span",D,d(r(s.type)),1),n("span",G,d(s.message),1),n("button",{class:"notification-close",onClick:b=>i(c)(s.id)},"x",8,K)],2))),128))]),_:1})])]))}}),U=Object.assign(v(R,[["__scopeId","data-v-87475ab3"]]),{__name:"NotificationContainer"}),X={},J={class:"app-layout"},P={class:"app-main"};function Q(m,t){const c=q,r=U;return l(),_("div",J,[a(c),n("main",P,[B(m.$slots,"default",{},void 0,!0)]),t[0]||(t[0]=n("footer",{class:"app-footer"},[n("p",null,"AutoCode v0.3.0")],-1)),a(r)])}const tn=v(X,[["render",Q],["__scopeId","data-v-157bd0ef"]]);export{tn as default};
@@ -1 +1 @@
1
- import{_ as F}from"./CGLkc3In.js";import{_ as T}from"./DVrAHktU.js";import{d as b,H as C,x as h,m as H,v as L,c as n,f as v,e as a,h as o,t as e,F as S,q as A,w as B,b as i,s as I,g as V,_ as D}from"./Dye3__N7.js";import{u as y}from"./xpS189GL.js";const E={class:"terminal-page"},R={class:"card"},U={class:"section-header"},j={class:"column-badge"},q={key:0,class:"loading"},z={key:1,class:"error-message"},M={key:2,class:"empty"},O={key:3,class:"terminal-content"},G={class:"log-time"},J={class:"log-level"},K={class:"log-message"},P={class:"actions"},Q=b({__name:"terminal",async setup(W){let t,c;const m=C(),l=m.params.id,d=m.params.column,{data:r}=([t,c]=h(()=>y(`/api/issues/${l}`,"$kO2jumUF-U")),t=await t,c(),t),f=H(()=>{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:p,status:$,error:g}=([t,c]=h(()=>y(`/api/issues/${l}/${d}/log`,"$kN3ufMrA3g")),t=await t,c(),t),k=s=>{const _=new Date(s);return isNaN(_.getTime())?s:_.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",second:"2-digit"})};return L({title:`Terminal ${d} - ${l} - AutoCode`}),(s,_)=>{const w=F,N=T;return i(),n("div",E,[v(w,{issue:o(f),"active-tab":"history"},null,8,["issue"]),a("div",R,[a("div",U,[a("h2",null,e(s.$t("history.viewTerminal")),1),a("span",j,e(o(d)),1)]),o($)==="pending"?(i(),n("div",q,e(s.$t("app.loading")),1)):o(g)?(i(),n("div",z,e(o(g).message),1)):o(p)?.length?(i(),n("div",O,[(i(!0),n(S,null,A(o(p),(u,x)=>(i(),n("div",{key:x,class:I(["log-entry",`log-${u.level}`])},[a("span",G,e(k(u.timestamp)),1),a("span",J,e(u.level),1),a("span",K,e(u.message),1)],2))),128))])):(i(),n("div",M,e(s.$t("terminal.noLogs")),1))]),a("div",P,[v(N,{to:`/issue/${o(l)}/history`,class:"btn-secondary"},{default:B(()=>[V(e(s.$t("nav.back")),1)]),_:1},8,["to"])])])}}}),es=D(Q,[["__scopeId","data-v-8427ea96"]]);export{es as default};
1
+ import{_ as F}from"./t7k_e5FQ.js";import{_ as T}from"./Amqf1SBE.js";import{d as b,H as C,x as h,m as H,v as L,c as n,f as v,e as a,h as o,t as e,F as S,q as A,w as B,b as i,s as I,g as V,_ as D}from"./nSLZfjDc.js";import{u as y}from"./C9Q_XE2y.js";const E={class:"terminal-page"},R={class:"card"},U={class:"section-header"},j={class:"column-badge"},q={key:0,class:"loading"},z={key:1,class:"error-message"},M={key:2,class:"empty"},O={key:3,class:"terminal-content"},G={class:"log-time"},J={class:"log-level"},K={class:"log-message"},P={class:"actions"},Q=b({__name:"terminal",async setup(W){let t,c;const m=C(),l=m.params.id,d=m.params.column,{data:r}=([t,c]=h(()=>y(`/api/issues/${l}`,"$kO2jumUF-U")),t=await t,c(),t),f=H(()=>{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:p,status:$,error:g}=([t,c]=h(()=>y(`/api/issues/${l}/${d}/log`,"$kN3ufMrA3g")),t=await t,c(),t),k=s=>{const _=new Date(s);return isNaN(_.getTime())?s:_.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",second:"2-digit"})};return L({title:`Terminal ${d} - ${l} - AutoCode`}),(s,_)=>{const w=F,N=T;return i(),n("div",E,[v(w,{issue:o(f),"active-tab":"history"},null,8,["issue"]),a("div",R,[a("div",U,[a("h2",null,e(s.$t("history.viewTerminal")),1),a("span",j,e(o(d)),1)]),o($)==="pending"?(i(),n("div",q,e(s.$t("app.loading")),1)):o(g)?(i(),n("div",z,e(o(g).message),1)):o(p)?.length?(i(),n("div",O,[(i(!0),n(S,null,A(o(p),(u,x)=>(i(),n("div",{key:x,class:I(["log-entry",`log-${u.level}`])},[a("span",G,e(k(u.timestamp)),1),a("span",J,e(u.level),1),a("span",K,e(u.message),1)],2))),128))])):(i(),n("div",M,e(s.$t("terminal.noLogs")),1))]),a("div",P,[v(N,{to:`/issue/${o(l)}/history`,class:"btn-secondary"},{default:B(()=>[V(e(s.$t("nav.back")),1)]),_:1},8,["to"])])])}}}),es=D(Q,[["__scopeId","data-v-8427ea96"]]);export{es as default};
@@ -1 +1 @@
1
- import{d as k,g as y,M as C,bs as N,r as m,T as U,L as V,t as p,N as M}from"./2UKQ6Srj.js";import{d as T,aF as _,c as i,b as r,e,f as o,h as a,F as d,g as f,t as $,w as h}from"./Dye3__N7.js";import{w as D}from"./BHVpJd4P.js";import"./92s3wAHG.js";import"./xpS189GL.js";import"./BeGyjVK0.js";import"./DDBIX1Ge.js";const B={class:"flex h-full w-full flex-col gap-12 px-1.5 pt-8"},L={class:"flex flex-col gap-2"},W={class:"bg-b-2 rounded-lg border text-sm"},A={class:"bg-b-1 flex items-center justify-between gap-4 rounded-t-lg p-3"},F={class:"text-c-1 flex items-center overflow-x-auto border-t py-1.5 whitespace-nowrap"},I={class:"flex items-center"},O=["href"],E={class:"flex flex-col gap-4"},P={class:"flex items-center justify-between rounded-lg border p-3 text-sm"},R=T({__name:"CollectionSettings",setup(S){const{activeCollection:t,activeWorkspace:n,activeWorkspaceCollections:v}=k(),{collectionMutators:u}=y(),{replace:x}=_(),s=C();function g(){t.value&&t.value?.documentUrl&&u.edit(t.value.uid,"watchMode",!t.value?.watchMode)}function w(){if(!t.value||!n.value)return;u.delete(t.value,n.value);const c=v.value[0];c&&x({name:"collection",params:{[p.Workspace]:n.value.uid,[p.Collection]:c.uid}}),s.hide()}return(c,l)=>(r(),i(d,null,[e("div",B,[e("div",L,[l[5]||(l[5]=e("div",{class:"flex h-8 items-center"},[e("h3",{class:"font-bold"},"Features")],-1)),e("div",W,[e("div",A,[l[2]||(l[2]=e("div",null,[e("h4",null,"Watch Mode"),e("p",{class:"text-c-2 mt-1"}," When enabled, the OpenAPI document will be polled for changes. The collection will be updated automatically. ")],-1)),o(a(N),{class:"w-4",disabled:!a(t)?.documentUrl,modelValue:a(t)?.watchMode??!1,"onUpdate:modelValue":g},null,8,["disabled","modelValue"])]),e("div",F,[e("div",I,[a(t)?.documentUrl?(r(),i(d,{key:0},[l[3]||(l[3]=e("span",{class:"bg-b-2 sticky left-0 pr-2 pl-3"},"Source",-1)),e("a",{class:"text-c-2 group rounded pr-3 no-underline hover:underline",href:a(t).documentUrl,target:"_blank"},[f($(a(t).documentUrl)+" ",1),o(a(m),{class:"ml-1 hidden w-2.5 group-hover:inline",icon:"ExternalLink"})],8,O)],64)):(r(),i(d,{key:1},[o(a(m),{class:"text-c-2 mr-2 ml-3 w-4",icon:"NotAllowed",size:"sm"}),l[4]||(l[4]=e("span",{class:"text-c-2 pr-3"}," No URL configured. Try importing an OpenAPI document from an URL. ",-1))],64))])])])]),e("div",E,[l[8]||(l[8]=e("h3",{class:"font-bold"},"Danger Zone",-1)),e("div",P,[l[7]||(l[7]=e("div",null,[e("h4",null,"Delete Collection"),e("p",{class:"text-c-2 mt-1"}," Be careful, my friend. Once deleted, there is no way to recover the collection. ")],-1)),o(a(U),{class:"custom-scroll h-8 gap-1.5 px-2.5 font-medium whitespace-nowrap shadow-none focus:outline-none",variant:"danger",onClick:l[0]||(l[0]=b=>a(s).show())},{default:h(()=>[...l[6]||(l[6]=[f(" Delete Collection ",-1)])]),_:1})])])]),o(a(V),{size:"xxs",state:a(s),title:`Delete ${a(t)?.info?.title}`},{default:h(()=>[o(D,{variableName:a(t)?.info?.title??"",warningMessage:"This action cannot be undone.",onClose:l[1]||(l[1]=b=>a(s).hide()),onDelete:w},null,8,["variableName"])]),_:1},8,["state","title"])],64))}}),K=M(R,[["__scopeId","data-v-f353959a"]]);export{K as default};
1
+ import{d as k,g as y,M as C,bs as N,r as m,T as U,L as V,t as p,N as M}from"./ge5HoFHn.js";import{d as T,aF as _,c as i,b as r,e,f as o,h as a,F as d,g as f,t as $,w as h}from"./nSLZfjDc.js";import{w as D}from"./BAAiS_qy.js";import"./92s3wAHG.js";import"./C9Q_XE2y.js";import"./BrtBSWOq.js";import"./DxNPZ1bU.js";const B={class:"flex h-full w-full flex-col gap-12 px-1.5 pt-8"},L={class:"flex flex-col gap-2"},W={class:"bg-b-2 rounded-lg border text-sm"},A={class:"bg-b-1 flex items-center justify-between gap-4 rounded-t-lg p-3"},F={class:"text-c-1 flex items-center overflow-x-auto border-t py-1.5 whitespace-nowrap"},I={class:"flex items-center"},O=["href"],E={class:"flex flex-col gap-4"},P={class:"flex items-center justify-between rounded-lg border p-3 text-sm"},R=T({__name:"CollectionSettings",setup(S){const{activeCollection:t,activeWorkspace:n,activeWorkspaceCollections:v}=k(),{collectionMutators:u}=y(),{replace:x}=_(),s=C();function g(){t.value&&t.value?.documentUrl&&u.edit(t.value.uid,"watchMode",!t.value?.watchMode)}function w(){if(!t.value||!n.value)return;u.delete(t.value,n.value);const c=v.value[0];c&&x({name:"collection",params:{[p.Workspace]:n.value.uid,[p.Collection]:c.uid}}),s.hide()}return(c,l)=>(r(),i(d,null,[e("div",B,[e("div",L,[l[5]||(l[5]=e("div",{class:"flex h-8 items-center"},[e("h3",{class:"font-bold"},"Features")],-1)),e("div",W,[e("div",A,[l[2]||(l[2]=e("div",null,[e("h4",null,"Watch Mode"),e("p",{class:"text-c-2 mt-1"}," When enabled, the OpenAPI document will be polled for changes. The collection will be updated automatically. ")],-1)),o(a(N),{class:"w-4",disabled:!a(t)?.documentUrl,modelValue:a(t)?.watchMode??!1,"onUpdate:modelValue":g},null,8,["disabled","modelValue"])]),e("div",F,[e("div",I,[a(t)?.documentUrl?(r(),i(d,{key:0},[l[3]||(l[3]=e("span",{class:"bg-b-2 sticky left-0 pr-2 pl-3"},"Source",-1)),e("a",{class:"text-c-2 group rounded pr-3 no-underline hover:underline",href:a(t).documentUrl,target:"_blank"},[f($(a(t).documentUrl)+" ",1),o(a(m),{class:"ml-1 hidden w-2.5 group-hover:inline",icon:"ExternalLink"})],8,O)],64)):(r(),i(d,{key:1},[o(a(m),{class:"text-c-2 mr-2 ml-3 w-4",icon:"NotAllowed",size:"sm"}),l[4]||(l[4]=e("span",{class:"text-c-2 pr-3"}," No URL configured. Try importing an OpenAPI document from an URL. ",-1))],64))])])])]),e("div",E,[l[8]||(l[8]=e("h3",{class:"font-bold"},"Danger Zone",-1)),e("div",P,[l[7]||(l[7]=e("div",null,[e("h4",null,"Delete Collection"),e("p",{class:"text-c-2 mt-1"}," Be careful, my friend. Once deleted, there is no way to recover the collection. ")],-1)),o(a(U),{class:"custom-scroll h-8 gap-1.5 px-2.5 font-medium whitespace-nowrap shadow-none focus:outline-none",variant:"danger",onClick:l[0]||(l[0]=b=>a(s).show())},{default:h(()=>[...l[6]||(l[6]=[f(" Delete Collection ",-1)])]),_:1})])])]),o(a(V),{size:"xxs",state:a(s),title:`Delete ${a(t)?.info?.title}`},{default:h(()=>[o(D,{variableName:a(t)?.info?.title??"",warningMessage:"This action cannot be undone.",onClose:l[1]||(l[1]=b=>a(s).hide()),onDelete:w},null,8,["variableName"])]),_:1},8,["state","title"])],64))}}),K=M(R,[["__scopeId","data-v-f353959a"]]);export{K as default};
@@ -0,0 +1 @@
1
+ import{b as t}from"./CGNl3nJG.js";import{d as e,j as r,b as i,w as m,g as p}from"./nSLZfjDc.js";import"./ge5HoFHn.js";import"./92s3wAHG.js";import"./C9Q_XE2y.js";import"./BrtBSWOq.js";import"./DxNPZ1bU.js";const u=e({__name:"CollectionCookies",setup(a){return(s,o)=>(i(),r(t,null,{title:m(()=>[...o[0]||(o[0]=[p("Cookies",-1)])]),_:1}))}});export{u as default};
@@ -1 +1 @@
1
- import{d as fe,y as he,r as Vt,x as pe,o as de,z as _n,a as _e,n as ge,v as me,c as nt,e as j,k as gn,t as U,h as K,p as ye,s as we,b as et,_ as xe}from"./Dye3__N7.js";import{u as ve}from"./xpS189GL.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 qt(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=qt(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 Xn(t){return function(){return this.matches(t)}}function qn(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:qn(t)))}var Pe=Array.prototype.filter;function Xe(){return Array.from(this.children)}function qe(t){return function(){return Pe.call(this.children,t)}}function He(t){return this.selectAll(t==null?Xe:qe(typeof t=="function"?t:qn(t)))}function Fe(t){typeof t!="function"&&(t=Xn(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=qt(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 Xr(t){var n=typeof t=="function"?t:Bn(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function qr(){return null}function Hr(t,n){var e=typeof t=="function"?t:Bn(t),r=n==null?qr: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:Xr,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;Xi(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 Xi(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 qi(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=qt(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=qt(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=Xn(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 Xo(){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 qo=0;function J(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function se(){return++qo}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:Xo,[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=qi;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 Xt=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||Xt}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(Xt.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,X=typeof m=="function"?m.apply(v,k):m,O=l(T.invert(S).concat(L/T.k),X.invert(S).concat(L/X.k));return function(q){if(q===1)q=X;else{var G=O(q),Lt=L/G[2];q=new Q(Lt,S[0]-G[0]*Lt,S[1]-G[1]*Lt)}A.zoom(null,q)}})}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 X=T.clientX-A,O=T.clientY-M;y.moved=X*X+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],X=d.touch1[0],O=d.touch1[1],q=(q=X[0]-L[0])*q+(q=X[1]-L[1])*q,G=(G=O[0]-T[0])*G+(G=O[1]-T[1])*G;A=$(A,Math.sqrt(q/G)),M=[(L[0]+X[0])/2,(L[1]+X[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"},Xs={class:"graph-controls"},qs={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,Xt)},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=Xt.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",Xs,[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",qs,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,y as he,r as Vt,x as pe,o as de,z as _n,a as _e,n as ge,v as me,c as nt,e as j,k as gn,t as U,h as K,p as ye,s as we,b as et,_ as xe}from"./nSLZfjDc.js";import{u as ve}from"./C9Q_XE2y.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 qt(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=qt(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 Xn(t){return function(){return this.matches(t)}}function qn(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:qn(t)))}var Pe=Array.prototype.filter;function Xe(){return Array.from(this.children)}function qe(t){return function(){return Pe.call(this.children,t)}}function He(t){return this.selectAll(t==null?Xe:qe(typeof t=="function"?t:qn(t)))}function Fe(t){typeof t!="function"&&(t=Xn(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=qt(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 Xr(t){var n=typeof t=="function"?t:Bn(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function qr(){return null}function Hr(t,n){var e=typeof t=="function"?t:Bn(t),r=n==null?qr: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:Xr,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;Xi(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 Xi(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 qi(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=qt(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=qt(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=Xn(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 Xo(){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 qo=0;function J(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function se(){return++qo}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:Xo,[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=qi;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 Xt=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||Xt}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(Xt.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,X=typeof m=="function"?m.apply(v,k):m,O=l(T.invert(S).concat(L/T.k),X.invert(S).concat(L/X.k));return function(q){if(q===1)q=X;else{var G=O(q),Lt=L/G[2];q=new Q(Lt,S[0]-G[0]*Lt,S[1]-G[1]*Lt)}A.zoom(null,q)}})}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 X=T.clientX-A,O=T.clientY-M;y.moved=X*X+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],X=d.touch1[0],O=d.touch1[1],q=(q=X[0]-L[0])*q+(q=X[1]-L[1])*q,G=(G=O[0]-T[0])*G+(G=O[1]-T[1])*G;A=$(A,Math.sqrt(q/G)),M=[(L[0]+X[0])/2,(L[1]+X[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"},Xs={class:"graph-controls"},qs={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,Xt)},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=Xt.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",Xs,[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",qs,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{d as f,c as x,b,e as d,al as i,aj as w,an as g,h as p,f as y,w as V,g as k,A as m,J as u,r as B,o as C,z as D,m as _,D as $,E,ak as A}from"./Dye3__N7.js";import{u as K,T as P}from"./2UKQ6Srj.js";const T={class:"flex gap-2"},z={class:"flex max-h-8 flex-1"},j=f({__name:"CommandActionForm",props:{loader:{},disabled:{type:Boolean,default:!1}},emits:["submit","cancel","back"],setup(c){const{cx:l}=K();return(a,t)=>(b(),x("form",{class:"flex w-full flex-col gap-3",onKeydown:t[0]||(t[0]=u(m(()=>{},["stop"]),["enter"])),onSubmit:t[1]||(t[1]=m(n=>!a.disabled&&a.$emit("submit"),["prevent","stop"]))},[d("div",w(g(p(l)("relative flex min-h-20 flex-col rounded"))),[i(a.$slots,"default")],16),d("div",T,[d("div",z,[i(a.$slots,"options")]),y(p(P),{class:"max-h-8 px-3 text-xs",disabled:a.disabled,loader:a.loader,type:"submit"},{default:V(()=>[i(a.$slots,"submit",{},()=>[t[2]||(t[2]=k("Continue",-1))])]),_:3},8,["disabled","loader"])])],32))}}),M=["placeholder"],F=f({inheritAttrs:!1,__name:"CommandActionInput",props:{modelValue:{},placeholder:{},autofocus:{type:Boolean}},emits:["update:modelValue","onDelete"],setup(c,{emit:l}){const a=c,t=l,n=B(null);C(()=>D(()=>{a.autofocus||n.value?.focus()}));const r=_({get:()=>a.modelValue??"",set:e=>t("update:modelValue",e)});function h(e){if(e.shiftKey||!e.target)return;e.preventDefault();const o=e.target,s=new Event("submit",{cancelable:!0});o.form?.dispatchEvent(s)}function v(e){r.value===""&&(e.preventDefault(),e.stopPropagation(),t("onDelete",e))}return(e,o)=>$((b(),x("textarea",A({id:"command-action-input",ref_key:"input",ref:n,"onUpdate:modelValue":o[0]||(o[0]=s=>r.value=s),class:"min-h-8 w-full flex-1 resize-none border border-transparent py-1.5 pl-8.5 text-sm outline-none focus:border-b-1",placeholder:a.placeholder??"",wrap:"hard"},e.$attrs,{onKeydown:[o[1]||(o[1]=u(s=>v(s),["delete"])),o[2]||(o[2]=u(s=>h(s),["enter"]))]}),null,16,M)),[[E,r.value]])}});export{F as E,j as h};
1
+ import{d as f,c as x,b,e as d,al as i,aj as w,an as g,h as p,f as y,w as V,g as k,A as m,J as u,r as B,o as C,z as D,m as _,D as $,E,ak as A}from"./nSLZfjDc.js";import{u as K,T as P}from"./ge5HoFHn.js";const T={class:"flex gap-2"},z={class:"flex max-h-8 flex-1"},j=f({__name:"CommandActionForm",props:{loader:{},disabled:{type:Boolean,default:!1}},emits:["submit","cancel","back"],setup(c){const{cx:l}=K();return(a,t)=>(b(),x("form",{class:"flex w-full flex-col gap-3",onKeydown:t[0]||(t[0]=u(m(()=>{},["stop"]),["enter"])),onSubmit:t[1]||(t[1]=m(n=>!a.disabled&&a.$emit("submit"),["prevent","stop"]))},[d("div",w(g(p(l)("relative flex min-h-20 flex-col rounded"))),[i(a.$slots,"default")],16),d("div",T,[d("div",z,[i(a.$slots,"options")]),y(p(P),{class:"max-h-8 px-3 text-xs",disabled:a.disabled,loader:a.loader,type:"submit"},{default:V(()=>[i(a.$slots,"submit",{},()=>[t[2]||(t[2]=k("Continue",-1))])]),_:3},8,["disabled","loader"])])],32))}}),M=["placeholder"],F=f({inheritAttrs:!1,__name:"CommandActionInput",props:{modelValue:{},placeholder:{},autofocus:{type:Boolean}},emits:["update:modelValue","onDelete"],setup(c,{emit:l}){const a=c,t=l,n=B(null);C(()=>D(()=>{a.autofocus||n.value?.focus()}));const r=_({get:()=>a.modelValue??"",set:e=>t("update:modelValue",e)});function h(e){if(e.shiftKey||!e.target)return;e.preventDefault();const o=e.target,s=new Event("submit",{cancelable:!0});o.form?.dispatchEvent(s)}function v(e){r.value===""&&(e.preventDefault(),e.stopPropagation(),t("onDelete",e))}return(e,o)=>$((b(),x("textarea",A({id:"command-action-input",ref_key:"input",ref:n,"onUpdate:modelValue":o[0]||(o[0]=s=>r.value=s),class:"min-h-8 w-full flex-1 resize-none border border-transparent py-1.5 pl-8.5 text-sm outline-none focus:border-b-1",placeholder:a.placeholder??"",wrap:"hard"},e.$attrs,{onKeydown:[o[1]||(o[1]=u(s=>v(s),["delete"])),o[2]||(o[2]=u(s=>h(s),["enter"]))]}),null,16,M)),[[E,r.value]])}});export{F as E,j as h};
@@ -1 +1 @@
1
- import{g as P,aA as q,ay as K,av as L,T,aC as Q,aD as ne,N as te,d as oe,M as O,r as se,L as H}from"./2UKQ6Srj.js";import{m as ie}from"./H1ZdG1j9.js";import{w as re}from"./BHVpJd4P.js";import{C as ce}from"./D8OjLiok.js";import{b as ue}from"./sXDQPz8X.js";import{J as ve,M as de}from"./Bpmmm66_.js";import{d as X,r as V,m as W,n as R,j as $,o as me,b as g,w as f,f as u,c as Y,g as U,F as Z,q as ee,s as fe,ay as pe,h as n,k as ae,A as he,z as J,e as p,p as be,t as ke}from"./Dye3__N7.js";import{x as G,H as ye}from"./BWz5jw0L.js";import"./92s3wAHG.js";import"./xpS189GL.js";import"./BeGyjVK0.js";import"./DDBIX1Ge.js";import"./BTpkhX3G.js";const xe=X({__name:"EnvironmentForm",props:{collection:{},environment:{},workspace:{},envVariables:{}},setup(r){const{collectionMutators:t}=P(),s=V([]),z=V(new Set),k=V(new Map),h=V(!1),_=W(()=>{if(!r.environment?.value)return[{key:"",value:""}];try{const e=JSON.parse(r.environment.value),l=Object.entries(e).map(([o,a])=>({key:o,value:String(a)}));return l.length===0?[{key:"",value:""}]:l}catch{return[{key:"",value:""}]}}),F=W(()=>{const e=s.value[s.value.length-1];return e?e.key||e.value?[...s.value,{key:"",value:""}]:s.value:[{key:"",value:""}]}),w=W(()=>{const e=new Map;return s.value.forEach((l,o)=>{if(l.key){const a=e.get(l.key)||[];a.push(o),e.set(l.key,a)}}),k.value.forEach((l,o)=>{if(l){const a=e.get(l)||[];a.push(o),e.set(l,a)}}),Array.from(e.values()).filter(l=>l.length>1).flat()});R(_,e=>{s.value=[...e],z.value=new Set(e.map(l=>l.key).filter(Boolean))},{immediate:!0});const M=async(e,l,o)=>{if(!h.value){if(l==="key"){k.value.set(e,o);const a=new Set(z.value),d=s.value[e];if(d&&a.delete(d.key),a.has(o))return}h.value=!0;try{const a=[...s.value],d=a[e];if(!d)return;a[e]={key:l==="key"?o:d.key,value:l==="value"?o:d.value},!a[e].key&&!a[e].value&&e!==a.length-1&&a.splice(e,1);const S=a.reduce((b,{key:B,value:D})=>((B||D)&&(b[B]=D),b),{});if(r.collection){const b={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:S}};await t.edit(r.collection.uid,"x-scalar-environments",b)}if(e===s.value.length-1){const b=a[a.length-1];b&&(b.key||b.value)&&await v()}await J(),s.value=a,l==="key"&&(z.value=new Set(a.map(b=>b.key).filter(Boolean)),k.value.delete(e))}finally{h.value=!1}}},v=async()=>{if(!h.value){h.value=!0;try{const e=[...s.value,{key:"",value:""}],l=e.reduce((o,{key:a,value:d})=>((a||d)&&(o[a]=d),o),{});if(r.collection){const o={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:l}};await t.edit(r.collection.uid,"x-scalar-environments",o)}await J(),s.value=e}finally{h.value=!1}}},E=async e=>{if(!h.value){h.value=!0;try{const l=[...s.value];l.splice(e,1);const o=l.reduce((a,{key:d,value:S})=>((d||S)&&(a[d]=S),a),{});if(r.collection){const a={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:o}};await t.edit(r.collection.uid,"x-scalar-environments",a)}await J(),s.value=l}finally{h.value=!1}}},A=async()=>{if(s.value.length===0)await v();else if(s.value.length>=1){const e=s.value[s.value.length-1];e&&(e.key||e.value)&&await v()}};return me(()=>{A()}),R(()=>s.value,()=>{A()}),(e,l)=>(g(),$(ne,{class:"group/table flex-1",columns:["",""]},{default:f(()=>[u(q,{class:"sr-only !block"},{default:f(()=>[u(G,null,{default:f(()=>[...l[0]||(l[0]=[U("Key",-1)])]),_:1}),u(G,null,{default:f(()=>[...l[1]||(l[1]=[U("Value",-1)])]),_:1})]),_:1}),(g(!0),Y(Z,null,ee(F.value,(o,a)=>(g(),$(q,{key:a,class:fe({error:w.value.includes(a)})},{default:f(()=>[u(K,null,{default:f(()=>[u(L,{disableCloseBrackets:"",disableEnter:"",disableTabIndent:"",lineWrapping:"",environment:e.environment,envVariables:e.envVariables,modelValue:o.key,placeholder:"Key",workspace:e.workspace,"onUpdate:modelValue":d=>M(a,"key",d)},pe({_:2},[w.value.includes(a)?{name:"icon",fn:f(()=>[u(n(ye),{class:"text-red mr-0.75 size-3.5 brightness-[.9]"})]),key:"0"}:void 0]),1032,["environment","envVariables","modelValue","workspace","onUpdate:modelValue"])]),_:2},1024),u(K,null,{default:f(()=>[u(L,{class:"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10",disableCloseBrackets:"",disableEnter:"",disableTabIndent:"",lineWrapping:"",environment:e.environment,envVariables:e.envVariables,modelValue:o.value,placeholder:"Value",workspace:e.workspace,"onUpdate:modelValue":d=>M(a,"value",d)},{icon:f(()=>[o.key||o.value?(g(),$(n(T),{key:0,class:"text-c-2 hover:text-c-1 hover:bg-b-2 z-context hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex",size:"sm",variant:"ghost",onClick:he(d=>E(a),["stop"])},{default:f(()=>[u(n(Q),{class:"size-3.5"})]),_:1},8,["onClick"])):ae("",!0)]),_:2},1032,["environment","envVariables","modelValue","workspace","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:1}))}}),ge=te(xe,[["__scopeId","data-v-83bfcc8a"]]),we={class:"flex h-full w-full flex-col gap-12 px-1.5 pt-8"},Ce={class:"flex flex-col gap-4"},Ve={class:"rounded-lg border"},_e={class:"bg-b-2 flex cursor-grab items-center justify-between rounded-t-lg px-1 py-1 text-sm"},Fe={class:"flex items-center"},Ee=["onClick"],Se={class:"text-c-3 flex h-full items-center justify-center rounded-lg border p-4"},Je=X({__name:"CollectionEnvironment",setup(r){const{activeCollection:t,activeWorkspace:s,activeEnvVariables:z}=oe(),{collectionMutators:k}=P(),h=O(),_=O(),F=O(),w=O(),M=V(""),v=V(null),E=V(void 0),A=W(()=>t.value?.["x-scalar-environments"]?Object.entries(t.value["x-scalar-environments"]).map(([c,i])=>({uid:c,name:c,value:JSON.stringify(i.variables||{}),color:i.color||"#FFFFFF"})):[]),e=()=>{!t.value?.uid||!v.value||(k.removeEnvironment(v.value,t.value.uid),_.hide())},l=c=>{v.value=c,_.show()},o=c=>{t.value?.uid&&(k.addEnvironment(c.name,{variables:{},color:c.color},t.value.uid),F.hide())},a=c=>{v.value=c.name,M.value=c.color||"#FFFFFF",h.show()},d=c=>{if(!t.value?.uid||!v.value)return;const i={...t.value["x-scalar-environments"],[v.value]:{variables:t.value["x-scalar-environments"]?.[v.value]?.variables||{},color:c}};k.edit(t.value.uid,"x-scalar-environments",i),h.hide()},S=c=>{v.value=c,E.value=c,w.show()},b=()=>{v.value=null,E.value=void 0,w.hide()},B=c=>{if(!t.value?.uid||!v.value)return;const i={...t.value["x-scalar-environments"]};if(!i[v.value])return;const m={},y=Object.entries(i),x=y.findIndex(([C])=>C===v.value);y.forEach(([C,N],I)=>{I===x?m[c]=N:m[C]=N}),k.edit(t.value.uid,"x-scalar-environments",m),v.value=null,E.value=void 0,w.hide()},D=(c,i)=>{if(!t.value?.uid)return;const m={...t.value["x-scalar-environments"]},y={},x=Object.entries(m),C=x.findIndex(([j])=>j===c.id),N=x.findIndex(([j])=>j===i.id);if(C===-1||N===-1)return;const I=x[C];I&&(x.splice(C,1),x.splice(N,0,I),x.forEach(([j,le])=>{y[j]=le}),k.edit(t.value.uid,"x-scalar-environments",y))};return(c,i)=>(g(),$(ue,null,{default:f(()=>[p("div",we,[p("div",Ce,[i[5]||(i[5]=p("div",{class:"flex items-start justify-between gap-2"},[p("div",{class:"flex flex-col gap-2"},[p("div",{class:"flex h-8 items-center"},[p("h3",{class:"font-bold"},"Environment Variables")]),p("p",{class:"text-sm"},[U(" Set environment variables at your collection level. Use "),p("code",{class:"font-code text-c-2"},"{{ variable }}"),U(" to add / search among the selected environment's variables in your request inputs. ")])])],-1)),(g(!0),Y(Z,null,ee(A.value,m=>(g(),$(n(ie),{key:m.name,id:m.name,isDraggable:!0,isDroppable:!0,parentIds:[],onOnDragEnd:D},{default:f(()=>[p("div",Ve,[p("div",_e,[p("div",Fe,[u(n(T),{class:"hover:bg-b-3 flex h-6 w-6 p-1",onClick:y=>a(m),variant:"ghost"},{default:f(()=>[p("span",{style:be({backgroundColor:m.color||"#FFFFFF"}),class:"h-2.5 w-2.5 rounded-full"},null,4)]),_:2},1032,["onClick"]),p("button",{class:"hover:bg-b-3 rounded px-1 py-0.5 text-sm",onClick:y=>S(m.name)},ke(m.name),9,Ee)]),u(n(T),{class:"hover:bg-b-3 hover:text-c-1 h-fit p-1.25",variant:"ghost",onClick:y=>l(m.name)},{default:f(()=>[u(n(Q),{class:"size-3.5"})]),_:1},8,["onClick"])]),n(t)&&n(s)?(g(),$(ge,{key:0,collection:n(t),environment:m,envVariables:n(z),workspace:n(s)},null,8,["collection","environment","envVariables","workspace"])):ae("",!0)])]),_:2},1032,["id"]))),128)),p("div",Se,[u(n(T),{class:"hover:bg-b-2 hover:text-c-1 flex items-center gap-2",size:"sm",variant:"ghost",onClick:i[0]||(i[0]=m=>n(F).show())},{default:f(()=>[u(n(se),{class:"inline-flex",icon:"Add",size:"sm",thickness:"1.5"}),i[4]||(i[4]=p("span",null,"Add Environment",-1))]),_:1})])]),u(n(H),{size:"xxs",state:n(_),title:`Delete ${v.value||"Environment"}`},{default:f(()=>[u(re,{variableName:"Environment",warningMessage:"Are you sure you want to delete this environment? This action cannot be undone.",onClose:i[1]||(i[1]=m=>n(_).hide()),onDelete:e})]),_:1},8,["state","title"]),u(ve,{activeWorkspaceCollections:n(t)?[n(t)]:[],collectionId:n(t)?.uid,state:n(F),onCancel:i[2]||(i[2]=m=>n(F).hide()),onSubmit:o},null,8,["activeWorkspaceCollections","collectionId","state"]),u(de,{selectedColor:M.value,state:n(h),onCancel:i[3]||(i[3]=m=>n(h).hide()),onSubmit:d},null,8,["selectedColor","state"]),u(n(H),{size:"xxs",state:n(w),title:`Edit ${v.value}`},{default:f(()=>[u(ce,{name:E.value??"",onClose:b,onEdit:B},null,8,["name"])]),_:1},8,["state","title"])])]),_:1}))}});export{Je as default};
1
+ import{g as P,aA as q,ay as K,av as L,T,aC as Q,aD as ne,N as te,d as oe,M as O,r as se,L as H}from"./ge5HoFHn.js";import{m as ie}from"./BQPgjGfs.js";import{w as re}from"./BAAiS_qy.js";import{C as ce}from"./CgTGeNUg.js";import{b as ue}from"./CGNl3nJG.js";import{J as ve,M as de}from"./CFQXrjRh.js";import{d as X,r as V,m as W,n as R,j as $,o as me,b as g,w as f,f as u,c as Y,g as U,F as Z,q as ee,s as fe,ay as pe,h as n,k as ae,A as he,z as J,e as p,p as be,t as ke}from"./nSLZfjDc.js";import{x as G,H as ye}from"./CXfoqgHV.js";import"./92s3wAHG.js";import"./C9Q_XE2y.js";import"./BrtBSWOq.js";import"./DxNPZ1bU.js";import"./Dob4oaN0.js";const xe=X({__name:"EnvironmentForm",props:{collection:{},environment:{},workspace:{},envVariables:{}},setup(r){const{collectionMutators:t}=P(),s=V([]),z=V(new Set),k=V(new Map),h=V(!1),_=W(()=>{if(!r.environment?.value)return[{key:"",value:""}];try{const e=JSON.parse(r.environment.value),l=Object.entries(e).map(([o,a])=>({key:o,value:String(a)}));return l.length===0?[{key:"",value:""}]:l}catch{return[{key:"",value:""}]}}),F=W(()=>{const e=s.value[s.value.length-1];return e?e.key||e.value?[...s.value,{key:"",value:""}]:s.value:[{key:"",value:""}]}),w=W(()=>{const e=new Map;return s.value.forEach((l,o)=>{if(l.key){const a=e.get(l.key)||[];a.push(o),e.set(l.key,a)}}),k.value.forEach((l,o)=>{if(l){const a=e.get(l)||[];a.push(o),e.set(l,a)}}),Array.from(e.values()).filter(l=>l.length>1).flat()});R(_,e=>{s.value=[...e],z.value=new Set(e.map(l=>l.key).filter(Boolean))},{immediate:!0});const M=async(e,l,o)=>{if(!h.value){if(l==="key"){k.value.set(e,o);const a=new Set(z.value),d=s.value[e];if(d&&a.delete(d.key),a.has(o))return}h.value=!0;try{const a=[...s.value],d=a[e];if(!d)return;a[e]={key:l==="key"?o:d.key,value:l==="value"?o:d.value},!a[e].key&&!a[e].value&&e!==a.length-1&&a.splice(e,1);const S=a.reduce((b,{key:B,value:D})=>((B||D)&&(b[B]=D),b),{});if(r.collection){const b={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:S}};await t.edit(r.collection.uid,"x-scalar-environments",b)}if(e===s.value.length-1){const b=a[a.length-1];b&&(b.key||b.value)&&await v()}await J(),s.value=a,l==="key"&&(z.value=new Set(a.map(b=>b.key).filter(Boolean)),k.value.delete(e))}finally{h.value=!1}}},v=async()=>{if(!h.value){h.value=!0;try{const e=[...s.value,{key:"",value:""}],l=e.reduce((o,{key:a,value:d})=>((a||d)&&(o[a]=d),o),{});if(r.collection){const o={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:l}};await t.edit(r.collection.uid,"x-scalar-environments",o)}await J(),s.value=e}finally{h.value=!1}}},E=async e=>{if(!h.value){h.value=!0;try{const l=[...s.value];l.splice(e,1);const o=l.reduce((a,{key:d,value:S})=>((d||S)&&(a[d]=S),a),{});if(r.collection){const a={...r.collection["x-scalar-environments"],[r.environment.name]:{...r.collection["x-scalar-environments"]?.[r.environment.name],variables:o}};await t.edit(r.collection.uid,"x-scalar-environments",a)}await J(),s.value=l}finally{h.value=!1}}},A=async()=>{if(s.value.length===0)await v();else if(s.value.length>=1){const e=s.value[s.value.length-1];e&&(e.key||e.value)&&await v()}};return me(()=>{A()}),R(()=>s.value,()=>{A()}),(e,l)=>(g(),$(ne,{class:"group/table flex-1",columns:["",""]},{default:f(()=>[u(q,{class:"sr-only !block"},{default:f(()=>[u(G,null,{default:f(()=>[...l[0]||(l[0]=[U("Key",-1)])]),_:1}),u(G,null,{default:f(()=>[...l[1]||(l[1]=[U("Value",-1)])]),_:1})]),_:1}),(g(!0),Y(Z,null,ee(F.value,(o,a)=>(g(),$(q,{key:a,class:fe({error:w.value.includes(a)})},{default:f(()=>[u(K,null,{default:f(()=>[u(L,{disableCloseBrackets:"",disableEnter:"",disableTabIndent:"",lineWrapping:"",environment:e.environment,envVariables:e.envVariables,modelValue:o.key,placeholder:"Key",workspace:e.workspace,"onUpdate:modelValue":d=>M(a,"key",d)},pe({_:2},[w.value.includes(a)?{name:"icon",fn:f(()=>[u(n(ye),{class:"text-red mr-0.75 size-3.5 brightness-[.9]"})]),key:"0"}:void 0]),1032,["environment","envVariables","modelValue","workspace","onUpdate:modelValue"])]),_:2},1024),u(K,null,{default:f(()=>[u(L,{class:"pr-6 group-hover:pr-10 group-has-[.cm-focused]:pr-10",disableCloseBrackets:"",disableEnter:"",disableTabIndent:"",lineWrapping:"",environment:e.environment,envVariables:e.envVariables,modelValue:o.value,placeholder:"Value",workspace:e.workspace,"onUpdate:modelValue":d=>M(a,"value",d)},{icon:f(()=>[o.key||o.value?(g(),$(n(T),{key:0,class:"text-c-2 hover:text-c-1 hover:bg-b-2 z-context hidden h-fit rounded p-1 group-hover:flex group-has-[.cm-focused]:flex",size:"sm",variant:"ghost",onClick:he(d=>E(a),["stop"])},{default:f(()=>[u(n(Q),{class:"size-3.5"})]),_:1},8,["onClick"])):ae("",!0)]),_:2},1032,["environment","envVariables","modelValue","workspace","onUpdate:modelValue"])]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:1}))}}),ge=te(xe,[["__scopeId","data-v-83bfcc8a"]]),we={class:"flex h-full w-full flex-col gap-12 px-1.5 pt-8"},Ce={class:"flex flex-col gap-4"},Ve={class:"rounded-lg border"},_e={class:"bg-b-2 flex cursor-grab items-center justify-between rounded-t-lg px-1 py-1 text-sm"},Fe={class:"flex items-center"},Ee=["onClick"],Se={class:"text-c-3 flex h-full items-center justify-center rounded-lg border p-4"},Je=X({__name:"CollectionEnvironment",setup(r){const{activeCollection:t,activeWorkspace:s,activeEnvVariables:z}=oe(),{collectionMutators:k}=P(),h=O(),_=O(),F=O(),w=O(),M=V(""),v=V(null),E=V(void 0),A=W(()=>t.value?.["x-scalar-environments"]?Object.entries(t.value["x-scalar-environments"]).map(([c,i])=>({uid:c,name:c,value:JSON.stringify(i.variables||{}),color:i.color||"#FFFFFF"})):[]),e=()=>{!t.value?.uid||!v.value||(k.removeEnvironment(v.value,t.value.uid),_.hide())},l=c=>{v.value=c,_.show()},o=c=>{t.value?.uid&&(k.addEnvironment(c.name,{variables:{},color:c.color},t.value.uid),F.hide())},a=c=>{v.value=c.name,M.value=c.color||"#FFFFFF",h.show()},d=c=>{if(!t.value?.uid||!v.value)return;const i={...t.value["x-scalar-environments"],[v.value]:{variables:t.value["x-scalar-environments"]?.[v.value]?.variables||{},color:c}};k.edit(t.value.uid,"x-scalar-environments",i),h.hide()},S=c=>{v.value=c,E.value=c,w.show()},b=()=>{v.value=null,E.value=void 0,w.hide()},B=c=>{if(!t.value?.uid||!v.value)return;const i={...t.value["x-scalar-environments"]};if(!i[v.value])return;const m={},y=Object.entries(i),x=y.findIndex(([C])=>C===v.value);y.forEach(([C,N],I)=>{I===x?m[c]=N:m[C]=N}),k.edit(t.value.uid,"x-scalar-environments",m),v.value=null,E.value=void 0,w.hide()},D=(c,i)=>{if(!t.value?.uid)return;const m={...t.value["x-scalar-environments"]},y={},x=Object.entries(m),C=x.findIndex(([j])=>j===c.id),N=x.findIndex(([j])=>j===i.id);if(C===-1||N===-1)return;const I=x[C];I&&(x.splice(C,1),x.splice(N,0,I),x.forEach(([j,le])=>{y[j]=le}),k.edit(t.value.uid,"x-scalar-environments",y))};return(c,i)=>(g(),$(ue,null,{default:f(()=>[p("div",we,[p("div",Ce,[i[5]||(i[5]=p("div",{class:"flex items-start justify-between gap-2"},[p("div",{class:"flex flex-col gap-2"},[p("div",{class:"flex h-8 items-center"},[p("h3",{class:"font-bold"},"Environment Variables")]),p("p",{class:"text-sm"},[U(" Set environment variables at your collection level. Use "),p("code",{class:"font-code text-c-2"},"{{ variable }}"),U(" to add / search among the selected environment's variables in your request inputs. ")])])],-1)),(g(!0),Y(Z,null,ee(A.value,m=>(g(),$(n(ie),{key:m.name,id:m.name,isDraggable:!0,isDroppable:!0,parentIds:[],onOnDragEnd:D},{default:f(()=>[p("div",Ve,[p("div",_e,[p("div",Fe,[u(n(T),{class:"hover:bg-b-3 flex h-6 w-6 p-1",onClick:y=>a(m),variant:"ghost"},{default:f(()=>[p("span",{style:be({backgroundColor:m.color||"#FFFFFF"}),class:"h-2.5 w-2.5 rounded-full"},null,4)]),_:2},1032,["onClick"]),p("button",{class:"hover:bg-b-3 rounded px-1 py-0.5 text-sm",onClick:y=>S(m.name)},ke(m.name),9,Ee)]),u(n(T),{class:"hover:bg-b-3 hover:text-c-1 h-fit p-1.25",variant:"ghost",onClick:y=>l(m.name)},{default:f(()=>[u(n(Q),{class:"size-3.5"})]),_:1},8,["onClick"])]),n(t)&&n(s)?(g(),$(ge,{key:0,collection:n(t),environment:m,envVariables:n(z),workspace:n(s)},null,8,["collection","environment","envVariables","workspace"])):ae("",!0)])]),_:2},1032,["id"]))),128)),p("div",Se,[u(n(T),{class:"hover:bg-b-2 hover:text-c-1 flex items-center gap-2",size:"sm",variant:"ghost",onClick:i[0]||(i[0]=m=>n(F).show())},{default:f(()=>[u(n(se),{class:"inline-flex",icon:"Add",size:"sm",thickness:"1.5"}),i[4]||(i[4]=p("span",null,"Add Environment",-1))]),_:1})])]),u(n(H),{size:"xxs",state:n(_),title:`Delete ${v.value||"Environment"}`},{default:f(()=>[u(re,{variableName:"Environment",warningMessage:"Are you sure you want to delete this environment? This action cannot be undone.",onClose:i[1]||(i[1]=m=>n(_).hide()),onDelete:e})]),_:1},8,["state","title"]),u(ve,{activeWorkspaceCollections:n(t)?[n(t)]:[],collectionId:n(t)?.uid,state:n(F),onCancel:i[2]||(i[2]=m=>n(F).hide()),onSubmit:o},null,8,["activeWorkspaceCollections","collectionId","state"]),u(de,{selectedColor:M.value,state:n(h),onCancel:i[3]||(i[3]=m=>n(h).hide()),onSubmit:d},null,8,["selectedColor","state"]),u(n(H),{size:"xxs",state:n(w),title:`Edit ${v.value}`},{default:f(()=>[u(ce,{name:E.value??"",onClose:b,onEdit:B},null,8,["name"])]),_:1},8,["state","title"])])]),_:1}))}});export{Je as default};
@@ -1 +1 @@
1
- import{m as h,r as o}from"./Dye3__N7.js";const v={BACKLOG:"backlog",DONE:"done"};function S(u){const t=u.replace(/^\d+_/,"");return t===v.BACKLOG||t===v.DONE}function L(u){return u.replace(/^\d+_/,"")===v.BACKLOG}function $(u){return u.replace(/^\d+_/,"")===v.DONE}const c=o(""),e=o(null),f=o(!1),p=o(!1),d=o(!1),w=()=>{const u=async l=>{if(l){p.value=!0;try{const n=await $fetch(`/api/pipelines/${l}`);e.value=n,f.value=!1}finally{p.value=!1}}},t=async()=>{if(!(!e.value||!c.value)){d.value=!0;try{return await $fetch(`/api/pipelines/${c.value}`,{method:"PUT",body:{version:e.value.version,description:e.value.description,definition:e.value.definition,action:e.value.action,finish:e.value.finish}}),f.value=!1,!0}finally{d.value=!1}}},s=()=>{f.value=!0},g=l=>l.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),m=h(()=>e.value?[...e.value.definition,...e.value.action,...e.value.finish]:[]),y=h(()=>e.value?e.value.definition.length>0&&e.value.action.length>0&&e.value.finish.length>0:!1),P=(l,n)=>{if(!e.value||!n.trim())return!1;const i=g(n);return m.value.map(r=>r.slug.replace(/^\d+_/,"")).includes(i)?!1:(e.value[l].push({name:n,slug:i}),s(),!0)},_=(l,n)=>{if(!e.value||S(n.slug))return!1;const i=e.value[l].findIndex(a=>a.slug===n.slug);return i>-1?(e.value[l].splice(i,1),s(),!0):!1},C=l=>{if(!e.value)return{inPipeline:!1};const n=l.replace(/^\d+_/,"");for(const i of["definition","action","finish"]){const a=e.value[i].find(r=>r.slug.replace(/^\d+_/,"")===n);if(a)return{inPipeline:!0,segment:i,column:a}}return{inPipeline:!1}};return{selectedPipeline:c,pipelineConfig:e,isDirty:f,loading:p,saving:d,loadPipeline:u,savePipeline:t,markDirty:s,generateSlug:g,allColumns:m,isValid:y,addColumn:P,removeColumn:_,isColumnInPipeline:C,addColumnBySlug:(l,n,i)=>{if(!e.value)return!1;const a=l.replace(/^\d+_/,"");return C(a).inPipeline?!1:(e.value[i].push({name:n,slug:a}),s(),!0)},removeColumnBySlug:l=>{if(!e.value)return!1;const n=l.replace(/^\d+_/,"");if(S(n))return!1;for(const i of["definition","action","finish"]){const a=e.value[i].findIndex(r=>r.slug.replace(/^\d+_/,"")===n);if(a>-1)return e.value[i].splice(a,1),s(),!0}return!1},loadActivePipeline:async()=>{if(!e.value)try{const n=(await $fetch("/api/pipelines")).find(i=>i.active);n&&(c.value=n.name,await u(n.name))}catch{}}}};export{L as a,$ as b,S as i,w as u};
1
+ import{m as h,r as o}from"./nSLZfjDc.js";const v={BACKLOG:"backlog",DONE:"done"};function S(u){const t=u.replace(/^\d+_/,"");return t===v.BACKLOG||t===v.DONE}function L(u){return u.replace(/^\d+_/,"")===v.BACKLOG}function $(u){return u.replace(/^\d+_/,"")===v.DONE}const c=o(""),e=o(null),f=o(!1),p=o(!1),d=o(!1),w=()=>{const u=async l=>{if(l){p.value=!0;try{const n=await $fetch(`/api/pipelines/${l}`);e.value=n,f.value=!1}finally{p.value=!1}}},t=async()=>{if(!(!e.value||!c.value)){d.value=!0;try{return await $fetch(`/api/pipelines/${c.value}`,{method:"PUT",body:{version:e.value.version,description:e.value.description,definition:e.value.definition,action:e.value.action,finish:e.value.finish}}),f.value=!1,!0}finally{d.value=!1}}},s=()=>{f.value=!0},g=l=>l.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),m=h(()=>e.value?[...e.value.definition,...e.value.action,...e.value.finish]:[]),y=h(()=>e.value?e.value.definition.length>0&&e.value.action.length>0&&e.value.finish.length>0:!1),P=(l,n)=>{if(!e.value||!n.trim())return!1;const i=g(n);return m.value.map(r=>r.slug.replace(/^\d+_/,"")).includes(i)?!1:(e.value[l].push({name:n,slug:i}),s(),!0)},_=(l,n)=>{if(!e.value||S(n.slug))return!1;const i=e.value[l].findIndex(a=>a.slug===n.slug);return i>-1?(e.value[l].splice(i,1),s(),!0):!1},C=l=>{if(!e.value)return{inPipeline:!1};const n=l.replace(/^\d+_/,"");for(const i of["definition","action","finish"]){const a=e.value[i].find(r=>r.slug.replace(/^\d+_/,"")===n);if(a)return{inPipeline:!0,segment:i,column:a}}return{inPipeline:!1}};return{selectedPipeline:c,pipelineConfig:e,isDirty:f,loading:p,saving:d,loadPipeline:u,savePipeline:t,markDirty:s,generateSlug:g,allColumns:m,isValid:y,addColumn:P,removeColumn:_,isColumnInPipeline:C,addColumnBySlug:(l,n,i)=>{if(!e.value)return!1;const a=l.replace(/^\d+_/,"");return C(a).inPipeline?!1:(e.value[i].push({name:n,slug:a}),s(),!0)},removeColumnBySlug:l=>{if(!e.value)return!1;const n=l.replace(/^\d+_/,"");if(S(n))return!1;for(const i of["definition","action","finish"]){const a=e.value[i].findIndex(r=>r.slug.replace(/^\d+_/,"")===n);if(a>-1)return e.value[i].splice(a,1),s(),!0}return!1},loadActivePipeline:async()=>{if(!e.value)try{const n=(await $fetch("/api/pipelines")).find(i=>i.active);n&&(c.value=n.name,await u(n.name))}catch{}}}};export{L as a,$ as b,S as i,w as u};
@@ -1 +1 @@
1
- import{a5 as B,a8 as P,a_ as W,a$ as re,a7 as L,b0 as oe,b1 as ne,b2 as ue,b3 as se,b4 as ie,ap as de,a9 as S,b5 as C,b6 as F,af as w,b7 as _,b8 as pe,b9 as ce,B as ve,au as fe}from"./2UKQ6Srj.js";import{i as me}from"./hAo59O9E.js";import{d as A,o as N,a as q,h as k,r as $,m as i,a8 as z,aa as J,ah as R,n as be,ad as I,F as Y,j as D,b as G,w as O,al as K,f as V,e as U,g as H,c as ge,q as ye,t as he}from"./Dye3__N7.js";let Q=Symbol("LabelContext");function X(){let a=J(Q,null);if(a===null){let u=new Error("You used a <Label /> component, but it is not inside a parent.");throw Error.captureStackTrace&&Error.captureStackTrace(u,X),u}return a}function Z({slot:a={},name:u="Label",props:c={}}={}){let d=$([]);function m(n){return d.value.push(n),()=>{let o=d.value.indexOf(n);o!==-1&&d.value.splice(o,1)}}return z(Q,{register:m,slot:a,name:u,props:c}),i(()=>d.value.length>0?d.value.join(" "):void 0)}let ke=A({name:"Label",props:{as:{type:[Object,String],default:"label"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(a,{slots:u,attrs:c}){var d;let m=(d=a.id)!=null?d:`headlessui-label-${B()}`,n=X();return N(()=>q(n.register(m))),()=>{let{name:o="Label",slot:p={},props:l={}}=n,{passive:y,...x}=a,v={...Object.entries(l).reduce((E,[b,g])=>Object.assign(E,{[b]:k(g)}),{}),id:m};return y&&(delete v.onClick,delete v.htmlFor,delete x.onClick),P({ourProps:v,theirProps:x,slot:p,attrs:c,slots:u,name:o})}}});function Re(a,u){return a===u}let ee=Symbol("RadioGroupContext");function ae(a){let u=J(ee,null);if(u===null){let c=new Error(`<${a} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(c,ae),c}return u}let xe=A({name:"RadioGroup",emits:{"update:modelValue":a=>!0},props:{as:{type:[Object,String],default:"div"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>Re},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},id:{type:String,default:null}},inheritAttrs:!1,setup(a,{emit:u,attrs:c,slots:d,expose:m}){var n;let o=(n=a.id)!=null?n:`headlessui-radiogroup-${B()}`,p=$(null),l=$([]),y=Z({name:"RadioGroupLabel"}),x=W({name:"RadioGroupDescription"});m({el:p,$el:p});let[v,E]=re(i(()=>a.modelValue),e=>u("update:modelValue",e),i(()=>a.defaultValue)),b={options:l,value:v,disabled:i(()=>a.disabled),firstOption:i(()=>l.value.find(e=>!e.propsRef.disabled)),containsCheckedOption:i(()=>l.value.some(e=>b.compare(R(e.propsRef.value),R(a.modelValue)))),compare(e,r){if(typeof a.by=="string"){let t=a.by;return e?.[t]===r?.[t]}return a.by(e,r)},change(e){var r;if(a.disabled||b.compare(R(v.value),R(e)))return!1;let t=(r=l.value.find(f=>b.compare(R(f.propsRef.value),R(e))))==null?void 0:r.propsRef;return t!=null&&t.disabled?!1:(E(e),!0)},registerOption(e){l.value.push(e),l.value=de(l.value,r=>r.element)},unregisterOption(e){let r=l.value.findIndex(t=>t.id===e);r!==-1&&l.value.splice(r,1)}};z(ee,b),me({container:i(()=>L(p)),accept(e){return e.getAttribute("role")==="radio"?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute("role","none")}});function g(e){if(!p.value||!p.value.contains(e.target))return;let r=l.value.filter(t=>t.propsRef.disabled===!1).map(t=>t.element);switch(e.key){case S.Enter:pe(e.currentTarget);break;case S.ArrowLeft:case S.ArrowUp:if(e.preventDefault(),e.stopPropagation(),F(r,w.Previous|w.WrapAround)===_.Success){let t=l.value.find(f=>{var s;return f.element===((s=C(p))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break;case S.ArrowRight:case S.ArrowDown:if(e.preventDefault(),e.stopPropagation(),F(r,w.Next|w.WrapAround)===_.Success){let t=l.value.find(f=>{var s;return f.element===((s=C(f.element))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break;case S.Space:{e.preventDefault(),e.stopPropagation();let t=l.value.find(f=>{var s;return f.element===((s=C(f.element))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break}}let h=i(()=>{var e;return(e=L(p))==null?void 0:e.closest("form")});return N(()=>{be([h],()=>{if(!h.value||a.defaultValue===void 0)return;function e(){b.change(a.defaultValue)}return h.value.addEventListener("reset",e),()=>{var r;(r=h.value)==null||r.removeEventListener("reset",e)}},{immediate:!0})}),()=>{let{disabled:e,name:r,form:t,...f}=a,s={ref:p,id:o,role:"radiogroup","aria-labelledby":y.value,"aria-describedby":x.value,onKeydown:g};return I(Y,[...r!=null&&v.value!=null?oe({[r]:v.value}).map(([T,j])=>I(ne,ue({features:se.Hidden,key:T,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:t,disabled:e,name:T,value:j}))):[],P({ourProps:s,theirProps:{...c,...ie(f,["modelValue","defaultValue","by"])},slot:{},attrs:c,slots:d,name:"RadioGroup"})])}}});var Se=(a=>(a[a.Empty=1]="Empty",a[a.Active=2]="Active",a))(Se||{});let Oe=A({name:"RadioGroupOption",props:{as:{type:[Object,String],default:"div"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(a,{attrs:u,slots:c,expose:d}){var m;let n=(m=a.id)!=null?m:`headlessui-radiogroup-option-${B()}`,o=ae("RadioGroupOption"),p=Z({name:"RadioGroupLabel"}),l=W({name:"RadioGroupDescription"}),y=$(null),x=i(()=>({value:a.value,disabled:a.disabled})),v=$(1);d({el:y,$el:y});let E=i(()=>L(y));N(()=>o.registerOption({id:n,element:E,propsRef:x})),q(()=>o.unregisterOption(n));let b=i(()=>{var s;return((s=o.firstOption.value)==null?void 0:s.id)===n}),g=i(()=>o.disabled.value||a.disabled),h=i(()=>o.compare(R(o.value.value),R(a.value))),e=i(()=>g.value?-1:h.value||!o.containsCheckedOption.value&&b.value?0:-1);function r(){var s;o.change(a.value)&&(v.value|=2,(s=L(y))==null||s.focus())}function t(){v.value|=2}function f(){v.value&=-3}return()=>{let{value:s,disabled:T,...j}=a,le={checked:h.value,disabled:g.value,active:!!(v.value&2)},te={id:n,ref:y,role:"radio","aria-checked":h.value?"true":"false","aria-labelledby":p.value,"aria-describedby":l.value,"aria-disabled":g.value?!0:void 0,tabIndex:e.value,onClick:g.value?void 0:r,onFocus:g.value?void 0:t,onBlur:g.value?void 0:f};return P({ourProps:te,theirProps:j,slot:le,attrs:u,slots:c,name:"RadioGroupOption"})}}}),M=ke;const Ee={class:"flex text-sm"},$e={class:"bg-b-1 custom-scroll grid w-dvw max-w-[420px] auto-rows-[32px] grid-cols-[repeat(auto-fill,minmax(32px,1fr))] content-between justify-between rounded border p-1"},Ae=A({__name:"IconSelector",props:{modelValue:{},placement:{}},emits:["update:modelValue"],setup(a,{emit:u}){const c=a,d=u,m=i({get:()=>c.modelValue,set:n=>d("update:modelValue",n)});return(n,o)=>(G(),D(k(fe),{class:"bg-b-2 rounded",focus:"",placement:n.placement??"bottom"},{popover:O(({close:p})=>[V(k(xe),{modelValue:m.value,"onUpdate:modelValue":o[0]||(o[0]=l=>m.value=l),class:"flex flex-col"},{default:O(()=>[U("div",Ee,[V(k(M),{class:"text-c-2 px-1 py-1"},{default:O(()=>[K(n.$slots,"title",{},()=>[o[1]||(o[1]=H("Select an icon",-1))])]),_:3})]),U("ul",$e,[(G(!0),ge(Y,null,ye(k(ce),l=>(G(),D(k(Oe),{key:l.src,as:"li",class:"text-c-3 hover:text-c-2 hover:bg-b-2 ui-checked:bg-b-3 ui-active:bg-b-2 flex cursor-pointer items-center justify-center rounded p-2",value:l.src,onClick:p},{default:O(()=>[V(k(M),{class:"sr-only"},{default:O(()=>[H(he(l.src.replaceAll("-"," "))+" Icon ",1)]),_:2},1024),V(k(ve),{class:"stroke-[1.5]",src:l.src},null,8,["src"])]),_:2},1032,["value","onClick"]))),128))])]),_:2},1032,["modelValue"])]),default:O(()=>[K(n.$slots,"default")]),_:3},8,["placement"]))}});export{Ae as $};
1
+ import{a5 as B,a8 as P,a_ as W,a$ as re,a7 as L,b0 as oe,b1 as ne,b2 as ue,b3 as se,b4 as ie,ap as de,a9 as S,b5 as C,b6 as F,af as w,b7 as _,b8 as pe,b9 as ce,B as ve,au as fe}from"./ge5HoFHn.js";import{i as me}from"./BAOdxXv4.js";import{d as A,o as N,a as q,h as k,r as $,m as i,a8 as z,aa as J,ah as R,n as be,ad as I,F as Y,j as D,b as G,w as O,al as K,f as V,e as U,g as H,c as ge,q as ye,t as he}from"./nSLZfjDc.js";let Q=Symbol("LabelContext");function X(){let a=J(Q,null);if(a===null){let u=new Error("You used a <Label /> component, but it is not inside a parent.");throw Error.captureStackTrace&&Error.captureStackTrace(u,X),u}return a}function Z({slot:a={},name:u="Label",props:c={}}={}){let d=$([]);function m(n){return d.value.push(n),()=>{let o=d.value.indexOf(n);o!==-1&&d.value.splice(o,1)}}return z(Q,{register:m,slot:a,name:u,props:c}),i(()=>d.value.length>0?d.value.join(" "):void 0)}let ke=A({name:"Label",props:{as:{type:[Object,String],default:"label"},passive:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(a,{slots:u,attrs:c}){var d;let m=(d=a.id)!=null?d:`headlessui-label-${B()}`,n=X();return N(()=>q(n.register(m))),()=>{let{name:o="Label",slot:p={},props:l={}}=n,{passive:y,...x}=a,v={...Object.entries(l).reduce((E,[b,g])=>Object.assign(E,{[b]:k(g)}),{}),id:m};return y&&(delete v.onClick,delete v.htmlFor,delete x.onClick),P({ourProps:v,theirProps:x,slot:p,attrs:c,slots:u,name:o})}}});function Re(a,u){return a===u}let ee=Symbol("RadioGroupContext");function ae(a){let u=J(ee,null);if(u===null){let c=new Error(`<${a} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(c,ae),c}return u}let xe=A({name:"RadioGroup",emits:{"update:modelValue":a=>!0},props:{as:{type:[Object,String],default:"div"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>Re},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},id:{type:String,default:null}},inheritAttrs:!1,setup(a,{emit:u,attrs:c,slots:d,expose:m}){var n;let o=(n=a.id)!=null?n:`headlessui-radiogroup-${B()}`,p=$(null),l=$([]),y=Z({name:"RadioGroupLabel"}),x=W({name:"RadioGroupDescription"});m({el:p,$el:p});let[v,E]=re(i(()=>a.modelValue),e=>u("update:modelValue",e),i(()=>a.defaultValue)),b={options:l,value:v,disabled:i(()=>a.disabled),firstOption:i(()=>l.value.find(e=>!e.propsRef.disabled)),containsCheckedOption:i(()=>l.value.some(e=>b.compare(R(e.propsRef.value),R(a.modelValue)))),compare(e,r){if(typeof a.by=="string"){let t=a.by;return e?.[t]===r?.[t]}return a.by(e,r)},change(e){var r;if(a.disabled||b.compare(R(v.value),R(e)))return!1;let t=(r=l.value.find(f=>b.compare(R(f.propsRef.value),R(e))))==null?void 0:r.propsRef;return t!=null&&t.disabled?!1:(E(e),!0)},registerOption(e){l.value.push(e),l.value=de(l.value,r=>r.element)},unregisterOption(e){let r=l.value.findIndex(t=>t.id===e);r!==-1&&l.value.splice(r,1)}};z(ee,b),me({container:i(()=>L(p)),accept(e){return e.getAttribute("role")==="radio"?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute("role","none")}});function g(e){if(!p.value||!p.value.contains(e.target))return;let r=l.value.filter(t=>t.propsRef.disabled===!1).map(t=>t.element);switch(e.key){case S.Enter:pe(e.currentTarget);break;case S.ArrowLeft:case S.ArrowUp:if(e.preventDefault(),e.stopPropagation(),F(r,w.Previous|w.WrapAround)===_.Success){let t=l.value.find(f=>{var s;return f.element===((s=C(p))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break;case S.ArrowRight:case S.ArrowDown:if(e.preventDefault(),e.stopPropagation(),F(r,w.Next|w.WrapAround)===_.Success){let t=l.value.find(f=>{var s;return f.element===((s=C(f.element))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break;case S.Space:{e.preventDefault(),e.stopPropagation();let t=l.value.find(f=>{var s;return f.element===((s=C(f.element))==null?void 0:s.activeElement)});t&&b.change(t.propsRef.value)}break}}let h=i(()=>{var e;return(e=L(p))==null?void 0:e.closest("form")});return N(()=>{be([h],()=>{if(!h.value||a.defaultValue===void 0)return;function e(){b.change(a.defaultValue)}return h.value.addEventListener("reset",e),()=>{var r;(r=h.value)==null||r.removeEventListener("reset",e)}},{immediate:!0})}),()=>{let{disabled:e,name:r,form:t,...f}=a,s={ref:p,id:o,role:"radiogroup","aria-labelledby":y.value,"aria-describedby":x.value,onKeydown:g};return I(Y,[...r!=null&&v.value!=null?oe({[r]:v.value}).map(([T,j])=>I(ne,ue({features:se.Hidden,key:T,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:t,disabled:e,name:T,value:j}))):[],P({ourProps:s,theirProps:{...c,...ie(f,["modelValue","defaultValue","by"])},slot:{},attrs:c,slots:d,name:"RadioGroup"})])}}});var Se=(a=>(a[a.Empty=1]="Empty",a[a.Active=2]="Active",a))(Se||{});let Oe=A({name:"RadioGroupOption",props:{as:{type:[Object,String],default:"div"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(a,{attrs:u,slots:c,expose:d}){var m;let n=(m=a.id)!=null?m:`headlessui-radiogroup-option-${B()}`,o=ae("RadioGroupOption"),p=Z({name:"RadioGroupLabel"}),l=W({name:"RadioGroupDescription"}),y=$(null),x=i(()=>({value:a.value,disabled:a.disabled})),v=$(1);d({el:y,$el:y});let E=i(()=>L(y));N(()=>o.registerOption({id:n,element:E,propsRef:x})),q(()=>o.unregisterOption(n));let b=i(()=>{var s;return((s=o.firstOption.value)==null?void 0:s.id)===n}),g=i(()=>o.disabled.value||a.disabled),h=i(()=>o.compare(R(o.value.value),R(a.value))),e=i(()=>g.value?-1:h.value||!o.containsCheckedOption.value&&b.value?0:-1);function r(){var s;o.change(a.value)&&(v.value|=2,(s=L(y))==null||s.focus())}function t(){v.value|=2}function f(){v.value&=-3}return()=>{let{value:s,disabled:T,...j}=a,le={checked:h.value,disabled:g.value,active:!!(v.value&2)},te={id:n,ref:y,role:"radio","aria-checked":h.value?"true":"false","aria-labelledby":p.value,"aria-describedby":l.value,"aria-disabled":g.value?!0:void 0,tabIndex:e.value,onClick:g.value?void 0:r,onFocus:g.value?void 0:t,onBlur:g.value?void 0:f};return P({ourProps:te,theirProps:j,slot:le,attrs:u,slots:c,name:"RadioGroupOption"})}}}),M=ke;const Ee={class:"flex text-sm"},$e={class:"bg-b-1 custom-scroll grid w-dvw max-w-[420px] auto-rows-[32px] grid-cols-[repeat(auto-fill,minmax(32px,1fr))] content-between justify-between rounded border p-1"},Ae=A({__name:"IconSelector",props:{modelValue:{},placement:{}},emits:["update:modelValue"],setup(a,{emit:u}){const c=a,d=u,m=i({get:()=>c.modelValue,set:n=>d("update:modelValue",n)});return(n,o)=>(G(),D(k(fe),{class:"bg-b-2 rounded",focus:"",placement:n.placement??"bottom"},{popover:O(({close:p})=>[V(k(xe),{modelValue:m.value,"onUpdate:modelValue":o[0]||(o[0]=l=>m.value=l),class:"flex flex-col"},{default:O(()=>[U("div",Ee,[V(k(M),{class:"text-c-2 px-1 py-1"},{default:O(()=>[K(n.$slots,"title",{},()=>[o[1]||(o[1]=H("Select an icon",-1))])]),_:3})]),U("ul",$e,[(G(!0),ge(Y,null,ye(k(ce),l=>(G(),D(k(Oe),{key:l.src,as:"li",class:"text-c-3 hover:text-c-2 hover:bg-b-2 ui-checked:bg-b-3 ui-active:bg-b-2 flex cursor-pointer items-center justify-center rounded p-2",value:l.src,onClick:p},{default:O(()=>[V(k(M),{class:"sr-only"},{default:O(()=>[H(he(l.src.replaceAll("-"," "))+" Icon ",1)]),_:2},1024),V(k(ve),{class:"stroke-[1.5]",src:l.src},null,8,["src"])]),_:2},1032,["value","onClick"]))),128))])]),_:2},1032,["modelValue"])]),default:O(()=>[K(n.$slots,"default")]),_:3},8,["placement"]))}});export{Ae as $};
@@ -1 +1 @@
1
- import{_ as T}from"./DVrAHktU.js";import{u as U}from"./xpS189GL.js";import{u as V,s as B}from"./CPo_B76D.js";import{d as D,u as K,r as L,x as M,n as E,o as R,a as j,m as b,v as q,c as l,e as s,f as z,w as g,t,k as r,h as o,s as H,F as h,q as I,b as n,g as k,j as W,_ as G}from"./Dye3__N7.js";const J={class:"stats-page"},P={class:"page-header"},Q={class:"header-badges"},X={key:0,class:"badge badge-profile"},Y={key:1,class:"badge badge-model"},Z={key:0,class:"loading"},x={key:0,class:"processing-alert card"},ss={class:"processing-issues"},ts={class:"stats-grid"},es={class:"stat-card card"},as={class:"stat-value"},os={class:"stat-breakdown"},ns={class:"breakdown-item"},ls={class:"label"},is={class:"value"},ds={class:"breakdown-item"},cs={class:"label"},rs={class:"value"},us={class:"stat-footer"},_s={class:"calls-count"},ps={class:"cost-value"},hs={key:0,class:"started-at"},ks={class:"stat-card card"},vs={class:"stat-value"},fs={class:"stat-breakdown"},ms={class:"breakdown-item"},ys={class:"label"},$s={class:"value"},bs={class:"breakdown-item"},gs={class:"label"},Is={class:"value"},ws={class:"stat-footer"},Cs={class:"calls-count"},As={class:"cost-value"},Fs={class:"stat-card card info-card"},Os={class:"cost-explanation"},Ns={class:"card history-card"},Ss={key:0,class:"empty"},Ts={key:1,class:"table-container"},Us={class:"history-table"},Vs={key:1,class:"text-muted"},Bs={class:"cost-cell"},Ds=D({__name:"stats",async setup(Ks){let c,v;const{locale:w}=K(),u=L(!1),{data:a,status:C,refresh:f}=([c,v]=M(()=>U("/api/stats","$ygpy_aVKAm")),c=await c,v(),c),{lastMessage:A}=V();E(A,e=>{(e?.type==="claude_end"||e?.type==="stats-update"||e?.type==="refresh")&&(u.value=!0,f().finally(()=>{u.value=!1}))});let _;R(()=>{_=B(()=>{f()},5e3)}),j(()=>{_&&clearInterval(_)});const F=b(()=>(a.value?.session?.tokensInput||0)+(a.value?.session?.tokensOutput||0)),O=b(()=>(a.value?.totals?.tokensInput||0)+(a.value?.totals?.tokensOutput||0)),d=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),p=e=>e.toFixed(4),N=e=>e?e<1e3?e+"ms":(e/1e3).toFixed(1)+"s":"-",m=e=>e?new Date(e).toLocaleString(w.value==="fr"?"fr-FR":"en-US"):"-";return q({title:"Statistics - AutoCode"}),(e,y)=>{const $=T;return n(),l("div",J,[s("header",P,[z($,{to:"/kanban",class:"back-link"},{default:g(()=>[k(" ← "+t(e.$t("stats.backToKanban")),1)]),_:1}),s("h1",null,t(e.$t("stats.title")),1),s("div",Q,[o(a)?.profile?(n(),l("span",X,t(o(a).profile),1)):r("",!0),o(a)?.model?(n(),l("span",Y,t(o(a).model),1)):r("",!0),s("span",{class:H(["refresh-indicator",{active:o(u)}])},null,2)])]),o(C)==="pending"?(n(),l("div",Z,t(e.$t("kanban.loading")),1)):(n(),l(h,{key:1},[o(a)?.processingIssues?.length?(n(),l("div",x,[s("h3",null,t(e.$t("stats.processing")),1),s("div",ss,[(n(!0),l(h,null,I(o(a).processingIssues,i=>(n(),l("span",{key:i,class:"processing-badge"},[y[0]||(y[0]=s("span",{class:"dot-pulse"},null,-1)),k(" "+t(i),1)]))),128))])])):r("",!0),s("div",ts,[s("div",es,[s("h2",null,t(e.$t("stats.session")),1),s("div",as,t(d(o(F))),1),s("div",os,[s("div",ns,[s("span",ls,t(e.$t("stats.tokensInput")),1),s("span",is,t(d(o(a)?.session?.tokensInput||0)),1)]),s("div",ds,[s("span",cs,t(e.$t("stats.tokensOutput")),1),s("span",rs,t(d(o(a)?.session?.tokensOutput||0)),1)])]),s("div",us,[s("span",_s,t(o(a)?.session?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",ps,"$"+t(p(o(a)?.session?.costUsd||0)),1)]),o(a)?.session?.startedAt?(n(),l("div",hs,t(e.$t("stats.startedAt"))+": "+t(m(o(a).session.startedAt)),1)):r("",!0)]),s("div",ks,[s("h2",null,t(e.$t("stats.totals")),1),s("div",vs,t(d(o(O))),1),s("div",fs,[s("div",ms,[s("span",ys,t(e.$t("stats.tokensInput")),1),s("span",$s,t(d(o(a)?.totals?.tokensInput||0)),1)]),s("div",bs,[s("span",gs,t(e.$t("stats.tokensOutput")),1),s("span",Is,t(d(o(a)?.totals?.tokensOutput||0)),1)])]),s("div",ws,[s("span",Cs,t(o(a)?.totals?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",As,"$"+t(p(o(a)?.totals?.costUsd||0)),1)])]),s("div",Fs,[s("h2",null,t(e.$t("stats.cost")),1),s("p",Os,t(e.$t("stats.costExplanation")),1)])]),s("div",Ns,[s("h2",null,t(e.$t("stats.recentActivity")),1),o(a)?.history?.length?(n(),l("div",Ts,[s("table",Us,[s("thead",null,[s("tr",null,[s("th",null,t(e.$t("stats.issue")),1),s("th",null,t(e.$t("stats.column")),1),s("th",null,t(e.$t("stats.tokensInput")),1),s("th",null,t(e.$t("stats.tokensOutput")),1),s("th",null,t(e.$t("stats.cost")),1),s("th",null,t(e.$t("stats.duration")),1),s("th",null,t(e.$t("stats.date")),1)])]),s("tbody",null,[(n(!0),l(h,null,I(o(a).history,(i,S)=>(n(),l("tr",{key:S},[s("td",null,[i.issue?(n(),W($,{key:0,to:`/issue/${i.issue}`,class:"issue-link"},{default:g(()=>[k(t(i.issue),1)]),_:2},1032,["to"])):(n(),l("span",Vs,"-"))]),s("td",null,t(i.column||"-"),1),s("td",null,t(d(i.tokensInput)),1),s("td",null,t(d(i.tokensOutput)),1),s("td",Bs,"$"+t(p(i.costUsd||0)),1),s("td",null,t(N(i.duration)),1),s("td",null,t(m(i.timestamp)),1)]))),128))])])])):(n(),l("div",Ss,t(e.$t("stats.noActivity")),1))])],64))])}}}),js=G(Ds,[["__scopeId","data-v-3e093864"]]);export{js as default};
1
+ import{_ as T}from"./Amqf1SBE.js";import{u as U}from"./C9Q_XE2y.js";import{u as V,s as B}from"./BStRXLlp.js";import{d as D,u as K,r as L,x as M,n as E,o as R,a as j,m as b,v as q,c as l,e as s,f as z,w as g,t,k as r,h as o,s as H,F as h,q as I,b as n,g as k,j as W,_ as G}from"./nSLZfjDc.js";const J={class:"stats-page"},P={class:"page-header"},Q={class:"header-badges"},X={key:0,class:"badge badge-profile"},Y={key:1,class:"badge badge-model"},Z={key:0,class:"loading"},x={key:0,class:"processing-alert card"},ss={class:"processing-issues"},ts={class:"stats-grid"},es={class:"stat-card card"},as={class:"stat-value"},os={class:"stat-breakdown"},ns={class:"breakdown-item"},ls={class:"label"},is={class:"value"},ds={class:"breakdown-item"},cs={class:"label"},rs={class:"value"},us={class:"stat-footer"},_s={class:"calls-count"},ps={class:"cost-value"},hs={key:0,class:"started-at"},ks={class:"stat-card card"},vs={class:"stat-value"},fs={class:"stat-breakdown"},ms={class:"breakdown-item"},ys={class:"label"},$s={class:"value"},bs={class:"breakdown-item"},gs={class:"label"},Is={class:"value"},ws={class:"stat-footer"},Cs={class:"calls-count"},As={class:"cost-value"},Fs={class:"stat-card card info-card"},Os={class:"cost-explanation"},Ns={class:"card history-card"},Ss={key:0,class:"empty"},Ts={key:1,class:"table-container"},Us={class:"history-table"},Vs={key:1,class:"text-muted"},Bs={class:"cost-cell"},Ds=D({__name:"stats",async setup(Ks){let c,v;const{locale:w}=K(),u=L(!1),{data:a,status:C,refresh:f}=([c,v]=M(()=>U("/api/stats","$ygpy_aVKAm")),c=await c,v(),c),{lastMessage:A}=V();E(A,e=>{(e?.type==="claude_end"||e?.type==="stats-update"||e?.type==="refresh")&&(u.value=!0,f().finally(()=>{u.value=!1}))});let _;R(()=>{_=B(()=>{f()},5e3)}),j(()=>{_&&clearInterval(_)});const F=b(()=>(a.value?.session?.tokensInput||0)+(a.value?.session?.tokensOutput||0)),O=b(()=>(a.value?.totals?.tokensInput||0)+(a.value?.totals?.tokensOutput||0)),d=e=>e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString(),p=e=>e.toFixed(4),N=e=>e?e<1e3?e+"ms":(e/1e3).toFixed(1)+"s":"-",m=e=>e?new Date(e).toLocaleString(w.value==="fr"?"fr-FR":"en-US"):"-";return q({title:"Statistics - AutoCode"}),(e,y)=>{const $=T;return n(),l("div",J,[s("header",P,[z($,{to:"/kanban",class:"back-link"},{default:g(()=>[k(" ← "+t(e.$t("stats.backToKanban")),1)]),_:1}),s("h1",null,t(e.$t("stats.title")),1),s("div",Q,[o(a)?.profile?(n(),l("span",X,t(o(a).profile),1)):r("",!0),o(a)?.model?(n(),l("span",Y,t(o(a).model),1)):r("",!0),s("span",{class:H(["refresh-indicator",{active:o(u)}])},null,2)])]),o(C)==="pending"?(n(),l("div",Z,t(e.$t("kanban.loading")),1)):(n(),l(h,{key:1},[o(a)?.processingIssues?.length?(n(),l("div",x,[s("h3",null,t(e.$t("stats.processing")),1),s("div",ss,[(n(!0),l(h,null,I(o(a).processingIssues,i=>(n(),l("span",{key:i,class:"processing-badge"},[y[0]||(y[0]=s("span",{class:"dot-pulse"},null,-1)),k(" "+t(i),1)]))),128))])])):r("",!0),s("div",ts,[s("div",es,[s("h2",null,t(e.$t("stats.session")),1),s("div",as,t(d(o(F))),1),s("div",os,[s("div",ns,[s("span",ls,t(e.$t("stats.tokensInput")),1),s("span",is,t(d(o(a)?.session?.tokensInput||0)),1)]),s("div",ds,[s("span",cs,t(e.$t("stats.tokensOutput")),1),s("span",rs,t(d(o(a)?.session?.tokensOutput||0)),1)])]),s("div",us,[s("span",_s,t(o(a)?.session?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",ps,"$"+t(p(o(a)?.session?.costUsd||0)),1)]),o(a)?.session?.startedAt?(n(),l("div",hs,t(e.$t("stats.startedAt"))+": "+t(m(o(a).session.startedAt)),1)):r("",!0)]),s("div",ks,[s("h2",null,t(e.$t("stats.totals")),1),s("div",vs,t(d(o(O))),1),s("div",fs,[s("div",ms,[s("span",ys,t(e.$t("stats.tokensInput")),1),s("span",$s,t(d(o(a)?.totals?.tokensInput||0)),1)]),s("div",bs,[s("span",gs,t(e.$t("stats.tokensOutput")),1),s("span",Is,t(d(o(a)?.totals?.tokensOutput||0)),1)])]),s("div",ws,[s("span",Cs,t(o(a)?.totals?.callCount||0)+" "+t(e.$t("stats.calls")),1),s("span",As,"$"+t(p(o(a)?.totals?.costUsd||0)),1)])]),s("div",Fs,[s("h2",null,t(e.$t("stats.cost")),1),s("p",Os,t(e.$t("stats.costExplanation")),1)])]),s("div",Ns,[s("h2",null,t(e.$t("stats.recentActivity")),1),o(a)?.history?.length?(n(),l("div",Ts,[s("table",Us,[s("thead",null,[s("tr",null,[s("th",null,t(e.$t("stats.issue")),1),s("th",null,t(e.$t("stats.column")),1),s("th",null,t(e.$t("stats.tokensInput")),1),s("th",null,t(e.$t("stats.tokensOutput")),1),s("th",null,t(e.$t("stats.cost")),1),s("th",null,t(e.$t("stats.duration")),1),s("th",null,t(e.$t("stats.date")),1)])]),s("tbody",null,[(n(!0),l(h,null,I(o(a).history,(i,S)=>(n(),l("tr",{key:S},[s("td",null,[i.issue?(n(),W($,{key:0,to:`/issue/${i.issue}`,class:"issue-link"},{default:g(()=>[k(t(i.issue),1)]),_:2},1032,["to"])):(n(),l("span",Vs,"-"))]),s("td",null,t(i.column||"-"),1),s("td",null,t(d(i.tokensInput)),1),s("td",null,t(d(i.tokensOutput)),1),s("td",Bs,"$"+t(p(i.costUsd||0)),1),s("td",null,t(N(i.duration)),1),s("td",null,t(m(i.timestamp)),1)]))),128))])])])):(n(),l("div",Ss,t(e.$t("stats.noActivity")),1))])],64))])}}}),js=G(Ds,[["__scopeId","data-v-3e093864"]]);export{js as default};
@@ -1 +1 @@
1
- import{_ as R}from"./CGLkc3In.js";import{d as B,H as D,r as g,x as b,m as I,n as L,o as M,z as k,v as N,c as n,f as O,e as s,h as c,t,k as $,F as v,q as C,b as r,s as P,_ as q}from"./Dye3__N7.js";import{u as H}from"./xpS189GL.js";import{u as E}from"./CPo_B76D.js";import"./DVrAHktU.js";const W={class:"issue-terminal-page"},X={class:"terminal-content card"},j={class:"terminal-header"},x={class:"terminal-actions"},G={key:0,class:"terminal-empty"},J={class:"section-header"},K={class:"section-icon"},Q={class:"section-column"},U={class:"section-session"},Y={key:0,class:"log-time"},Z={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(()=>H(`/api/issues/${m}`,"$s3Vbd9k-VO")),a=await a,u(),a),S=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(()=>H(`/api/issues/${m}/full-terminal`,"$XMztO43Pyz")),a=await a,u(),a),{lastMessage:T}=E();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),z=()=>{i.value=!i.value};return N({title:`Terminal - ${m} - AutoCode`}),(e,y)=>{const A=R;return r(),n("div",W,[O(A,{issue:c(S),"active-tab":"terminal"},null,8,["issue"]),s("div",X,[s("div",j,[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:z},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",G,t(e.$t("terminal.noLogs")),1)),(r(!0),n(v,null,C(c(f)?.logFiles,(_,p)=>(r(),n(v,{key:p},[s("div",J,[s("span",K,t(V(p)),1),s("span",Q,t(_.column),1),s("span",U,t(_.sessionId),1)]),(r(!0),n(v,null,C(_.logs,(d,F)=>(r(),n("div",{key:`${p}-${F}`,class:P(["log-line",`log-${d.level}`])},[d.timestamp?(r(),n("span",Y,t(w(d.timestamp)),1)):$("",!0),s("span",Z,t(d.message),1)],2))),128))],64))),128))],512)])])}}}),ie=q(ee,[["__scopeId","data-v-3b499d2c"]]);export{ie as default};
1
+ import{_ as R}from"./t7k_e5FQ.js";import{d as B,H as D,r as g,x as b,m as I,n as L,o as M,z as k,v as N,c as n,f as O,e as s,h as c,t,k as $,F as v,q as C,b as r,s as P,_ as q}from"./nSLZfjDc.js";import{u as H}from"./C9Q_XE2y.js";import{u as E}from"./BStRXLlp.js";import"./Amqf1SBE.js";const W={class:"issue-terminal-page"},X={class:"terminal-content card"},j={class:"terminal-header"},x={class:"terminal-actions"},G={key:0,class:"terminal-empty"},J={class:"section-header"},K={class:"section-icon"},Q={class:"section-column"},U={class:"section-session"},Y={key:0,class:"log-time"},Z={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(()=>H(`/api/issues/${m}`,"$s3Vbd9k-VO")),a=await a,u(),a),S=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(()=>H(`/api/issues/${m}/full-terminal`,"$XMztO43Pyz")),a=await a,u(),a),{lastMessage:T}=E();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),z=()=>{i.value=!i.value};return N({title:`Terminal - ${m} - AutoCode`}),(e,y)=>{const A=R;return r(),n("div",W,[O(A,{issue:c(S),"active-tab":"terminal"},null,8,["issue"]),s("div",X,[s("div",j,[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:z},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",G,t(e.$t("terminal.noLogs")),1)),(r(!0),n(v,null,C(c(f)?.logFiles,(_,p)=>(r(),n(v,{key:p},[s("div",J,[s("span",K,t(V(p)),1),s("span",Q,t(_.column),1),s("span",U,t(_.sessionId),1)]),(r(!0),n(v,null,C(_.logs,(d,F)=>(r(),n("div",{key:`${p}-${F}`,class:P(["log-line",`log-${d.level}`])},[d.timestamp?(r(),n("span",Y,t(w(d.timestamp)),1)):$("",!0),s("span",Z,t(d.message),1)],2))),128))],64))),128))],512)])])}}}),ie=q(ee,[["__scopeId","data-v-3b499d2c"]]);export{ie as default};
@@ -0,0 +1 @@
1
+ import{b as o}from"./CGNl3nJG.js";import{d as e,j as r,b as i,w as a,g as m}from"./nSLZfjDc.js";import"./ge5HoFHn.js";import"./92s3wAHG.js";import"./C9Q_XE2y.js";import"./BrtBSWOq.js";import"./DxNPZ1bU.js";const C=e({__name:"CollectionSync",setup(n){return(p,t)=>(i(),r(o,null,{title:a(()=>[...t[0]||(t[0]=[m("Sync",-1)])]),_:1}))}});export{C as default};
@@ -1 +1 @@
1
- import{_ as d}from"./DVrAHktU.js";import{u}from"./xpS189GL.js";import{d as m,u as f,x as g,o as v,K as x,v as h,c as i,k as y,h as e,t as p,e as C,f as k,w,b as c,g as N,_ as V}from"./Dye3__N7.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),k(o,{to:"/settings/pipeline/new",class:"btn btn-primary"},{default:w(()=>[N(" + "+p(e(a)("pipeline.new")),1)]),_:1})]))])}}}),F=V($,[["__scopeId","data-v-9f6aa041"]]);export{F as default};
1
+ import{_ as d}from"./Amqf1SBE.js";import{u}from"./C9Q_XE2y.js";import{d as m,u as f,x as g,o as v,K as x,v as h,c as i,k as y,h as e,t as p,e as C,f as k,w,b as c,g as N,_ as V}from"./nSLZfjDc.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),k(o,{to:"/settings/pipeline/new",class:"btn btn-primary"},{default:w(()=>[N(" + "+p(e(a)("pipeline.new")),1)]),_:1})]))])}}}),F=V($,[["__scopeId","data-v-9f6aa041"]]);export{F as default};