pilotswarm 0.5.49 → 0.5.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/ui/react/src/web-app.js +72 -3
- package/web/dist/assets/{abnfDiagram-VRR7QNED-CXF6f3n3.js → abnfDiagram-VRR7QNED-C_4vfIbv.js} +1 -1
- package/web/dist/assets/{arc-MlDVINID.js → arc-DOWqX-WF.js} +1 -1
- package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-Bdz1J9H-.js → architectureDiagram-ZJ3FMSHR-Cc38vIUp.js} +1 -1
- package/web/dist/assets/{blockDiagram-677ZJIJ3-tO706-rr.js → blockDiagram-677ZJIJ3-CJasxBgg.js} +1 -1
- package/web/dist/assets/{c4Diagram-LMCZKHZV-BuZrMrYZ.js → c4Diagram-LMCZKHZV-CSsFEvwn.js} +1 -1
- package/web/dist/assets/channel-CJecP6sr.js +1 -0
- package/web/dist/assets/{chunk-2Q5K7J3B-BWWIPnCk.js → chunk-2Q5K7J3B-Cdcmo5W3.js} +1 -1
- package/web/dist/assets/{chunk-32BRIVSS-TyL8x2Q5.js → chunk-32BRIVSS-CmCFzR3z.js} +1 -1
- package/web/dist/assets/{chunk-5VM5RSS4-ZTwZyN5B.js → chunk-5VM5RSS4-gZUtbZIc.js} +1 -1
- package/web/dist/assets/{chunk-EX3LRPZG-CjWsKz70.js → chunk-EX3LRPZG-nF9v3PEA.js} +1 -1
- package/web/dist/assets/{chunk-JWPE2WC7-BNQrzsa3.js → chunk-JWPE2WC7-BhwKbO0c.js} +1 -1
- package/web/dist/assets/{chunk-MOJQB5TN-B51xJi0l.js → chunk-MOJQB5TN-B8zfb4XG.js} +1 -1
- package/web/dist/assets/{chunk-RYQCIY6F-BCdsh9nc.js → chunk-RYQCIY6F-SM2kSUT1.js} +1 -1
- package/web/dist/assets/{chunk-V7JOEXUC-C7FFxC7C.js → chunk-V7JOEXUC-C7lbdZCo.js} +1 -1
- package/web/dist/assets/{chunk-VR4S4FIN-DWoFV0Pb.js → chunk-VR4S4FIN-BZR3_tbV.js} +1 -1
- package/web/dist/assets/{chunk-XXDRQBXY-plM48yQb.js → chunk-XXDRQBXY-DU5shflv.js} +1 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-BqWAphrT.js +1 -0
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-BqWAphrT.js +1 -0
- package/web/dist/assets/{cose-bilkent-JH36ORCC-cPPsd8jq.js → cose-bilkent-JH36ORCC-O3mfbu3h.js} +1 -1
- package/web/dist/assets/{cynefin-VYW2F7L2-DLoMRcB-.js → cynefin-VYW2F7L2-kJrtGP23.js} +1 -1
- package/web/dist/assets/{cynefinDiagram-TSTJHNR4-DbxB1EcR.js → cynefinDiagram-TSTJHNR4-DBJPD4ep.js} +1 -1
- package/web/dist/assets/{dagre-VKFMJZFB-Cl5J3v7U.js → dagre-VKFMJZFB-Dcs8wwU7.js} +1 -1
- package/web/dist/assets/{diagram-FQU43EPY-C_5l69HJ.js → diagram-FQU43EPY-DyfyZ0qG.js} +1 -1
- package/web/dist/assets/{diagram-G47NLZAW-B_nxM69x.js → diagram-G47NLZAW-Dd2HPM5s.js} +1 -1
- package/web/dist/assets/{diagram-NH7WQ7WH-BogLLCcM.js → diagram-NH7WQ7WH-DC03_BJp.js} +1 -1
- package/web/dist/assets/{diagram-OA4YK3LP-1HZ1DJgO.js → diagram-OA4YK3LP-CfPUNCYI.js} +1 -1
- package/web/dist/assets/{diagram-WEI45ONY-CZ9akwtz.js → diagram-WEI45ONY-O-K9BqwQ.js} +1 -1
- package/web/dist/assets/{ebnfDiagram-CCIWWBDH-CCg2iaF2.js → ebnfDiagram-CCIWWBDH-Pu3yFM4q.js} +1 -1
- package/web/dist/assets/{erDiagram-Q63AITRT-BCYw6hLk.js → erDiagram-Q63AITRT-9oh4uutz.js} +1 -1
- package/web/dist/assets/{flowDiagram-23GEKE2U-B3O-UeAj.js → flowDiagram-23GEKE2U-D6sP81ck.js} +1 -1
- package/web/dist/assets/{ganttDiagram-NO4QXBWP-GJzz1tR4.js → ganttDiagram-NO4QXBWP-7aJ0dtGR.js} +1 -1
- package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-Ch1cfaOe.js → gitGraphDiagram-IHSO6WYX-bLa8NZvk.js} +1 -1
- package/web/dist/assets/{index-wYKm3Bnl.js → index-DT_gy82W.js} +2 -2
- package/web/dist/assets/{infoDiagram-FWYZ7A6U-Bjo2ImAx.js → infoDiagram-FWYZ7A6U-Bx2QUCNC.js} +1 -1
- package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-Cknf936W.js → ishikawaDiagram-FXEZZL3T-Z43QbfP4.js} +1 -1
- package/web/dist/assets/{journeyDiagram-5HDEW3XC-Chy2vDKP.js → journeyDiagram-5HDEW3XC-DDp4teSL.js} +1 -1
- package/web/dist/assets/{kanban-definition-HUTT4EX6-BL4WMBwi.js → kanban-definition-HUTT4EX6-CoNysaii.js} +1 -1
- package/web/dist/assets/{linear-B8XSGnZ8.js → linear-DiAWjM7P.js} +1 -1
- package/web/dist/assets/{mermaid.core-CFdkmvEY.js → mermaid.core-Pc4CQtPH.js} +4 -4
- package/web/dist/assets/{mindmap-definition-LN4V7U3C-CHOBIkSR.js → mindmap-definition-LN4V7U3C-BXkQ4eOw.js} +1 -1
- package/web/dist/assets/{papaparse.min-DnG1sqyK.js → papaparse.min-CzTZ22jn.js} +1 -1
- package/web/dist/assets/{pegDiagram-2B236MQR-VuMpZEdm.js → pegDiagram-2B236MQR-DLawXMJA.js} +1 -1
- package/web/dist/assets/{pieDiagram-ENE6RG2P-CkFTLWPp.js → pieDiagram-ENE6RG2P-Bqw6TCQf.js} +1 -1
- package/web/dist/assets/{pilotswarm-CLJw14xm.js → pilotswarm-CJ6SEIPj.js} +6 -6
- package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-B74MHjsI.js → quadrantDiagram-ABIIQ3AL-D4Nrodp1.js} +1 -1
- package/web/dist/assets/{railroadDiagram-RFXS5EU6-CwcT-BI1.js → railroadDiagram-RFXS5EU6-14ozmmna.js} +1 -1
- package/web/dist/assets/{requirementDiagram-TGXJPOKE-CfV8rmaQ.js → requirementDiagram-TGXJPOKE-g2jB_CR_.js} +1 -1
- package/web/dist/assets/{sankeyDiagram-HTMAVEWB-BECA4LLx.js → sankeyDiagram-HTMAVEWB-UsWtjkg-.js} +1 -1
- package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-C80kbBkw.js → sequenceDiagram-DBY2YBRQ-DOCKalZQ.js} +1 -1
- package/web/dist/assets/{sizeCapture-X5ZJPWSS-BgdLZC94.js → sizeCapture-X5ZJPWSS-GOrSPHZX.js} +1 -1
- package/web/dist/assets/{stateDiagram-2N3HPSRC-DY_mnuOT.js → stateDiagram-2N3HPSRC-DcTBrPP0.js} +1 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-DjyLnyGF.js +1 -0
- package/web/dist/assets/{swimlanes-5IMT3BWC-9m8kjDvw.js → swimlanes-5IMT3BWC-DXlohBs3.js} +2 -2
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-B8GZDsc2.js +8 -0
- package/web/dist/assets/{timeline-definition-FHXFAJF6-CRDqu4Os.js → timeline-definition-FHXFAJF6-CLAJChwQ.js} +1 -1
- package/web/dist/assets/{vennDiagram-L72KCM5P-B2KNeFvN.js → vennDiagram-L72KCM5P-DapjeRd3.js} +1 -1
- package/web/dist/assets/{wardleyDiagram-EHGQE667-DC0vN3Ub.js → wardleyDiagram-EHGQE667-eYWaR7BL.js} +1 -1
- package/web/dist/assets/{xychartDiagram-FW5EYKEG-DOY6Rwu4.js → xychartDiagram-FW5EYKEG-DcJXUeUI.js} +1 -1
- package/web/dist/index.html +2 -2
- package/web/dist/assets/channel-moQWQGwr.js +0 -1
- package/web/dist/assets/classDiagram-OUVF2IWQ-33Sv-tmv.js +0 -1
- package/web/dist/assets/classDiagram-v2-EOCWNBFH-33Sv-tmv.js +0 -1
- package/web/dist/assets/stateDiagram-v2-6OUMAXLB-Dw3VhZ5V.js +0 -1
- package/web/dist/assets/swimlanesDiagram-G3AALYLV-DoOI0AiK.js +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pilotswarm",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.50",
|
|
4
4
|
"description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"ink": "^6.8.0",
|
|
82
82
|
"jose": "^6.2.2",
|
|
83
83
|
"mermaid": "^11.16.0",
|
|
84
|
-
"pilotswarm-sdk": "0.5.
|
|
84
|
+
"pilotswarm-sdk": "0.5.50",
|
|
85
85
|
"react": "^19.2.4",
|
|
86
86
|
"react-dom": "^19.2.4",
|
|
87
87
|
"ws": "^8.18.2"
|
package/ui/react/src/web-app.js
CHANGED
|
@@ -3949,7 +3949,7 @@ const SESSION_DETAIL_NONE = "—";
|
|
|
3949
3949
|
*/
|
|
3950
3950
|
export function visibleWaitReason(session, statusLabel) {
|
|
3951
3951
|
const reason = typeof session?.waitReason === "string" && session.waitReason.trim()
|
|
3952
|
-
? session.waitReason
|
|
3952
|
+
? clampWaitReason(session.waitReason)
|
|
3953
3953
|
: null;
|
|
3954
3954
|
if (!reason) return null;
|
|
3955
3955
|
const status = String(statusLabel || "");
|
|
@@ -3961,6 +3961,66 @@ export function visibleWaitReason(session, statusLabel) {
|
|
|
3961
3961
|
return waiting ? reason : null;
|
|
3962
3962
|
}
|
|
3963
3963
|
|
|
3964
|
+
/** Words kept before the sentence is clipped. A glance, not a document. */
|
|
3965
|
+
export const WAIT_REASON_MAX_WORDS = 10;
|
|
3966
|
+
|
|
3967
|
+
/**
|
|
3968
|
+
* A ceiling on the clipped line, because a word count is not a length.
|
|
3969
|
+
*
|
|
3970
|
+
* These instructions carry session UUIDs and artifact filenames, and one of
|
|
3971
|
+
* those is a single 40-character "word" — ten of them ran to 100 characters
|
|
3972
|
+
* and wrapped the box anyway. Whichever limit is reached first wins.
|
|
3973
|
+
*/
|
|
3974
|
+
export const WAIT_REASON_MAX_CHARS = 72;
|
|
3975
|
+
|
|
3976
|
+
/**
|
|
3977
|
+
* One line's worth of a wait reason.
|
|
3978
|
+
*
|
|
3979
|
+
* `waitReason` is not one kind of text. `wait` asks the model for "why you're
|
|
3980
|
+
* waiting" and gets a sentence. `cron` asks for "what to do on each wake-up"
|
|
3981
|
+
* and gets an INSTRUCTION — the real wake-up prompt, which is replayed on
|
|
3982
|
+
* every fire and is routinely several paragraphs. Both land in the same column
|
|
3983
|
+
* and both used to be printed in full, so a cron session's detail box was its
|
|
3984
|
+
* entire next-turn plan under a one-word label.
|
|
3985
|
+
*
|
|
3986
|
+
* The stored value is left alone — for a cron it is load-bearing state, not
|
|
3987
|
+
* decoration. Only the display is cut, and newlines are flattened first so a
|
|
3988
|
+
* multi-paragraph prompt cannot smuggle its shape through the word count.
|
|
3989
|
+
*/
|
|
3990
|
+
export function clampWaitReason(
|
|
3991
|
+
text,
|
|
3992
|
+
maxWords = WAIT_REASON_MAX_WORDS,
|
|
3993
|
+
maxChars = WAIT_REASON_MAX_CHARS,
|
|
3994
|
+
) {
|
|
3995
|
+
const flat = String(text ?? "").replace(/\s+/gu, " ").trim();
|
|
3996
|
+
if (!flat) return "";
|
|
3997
|
+
const words = flat.split(" ");
|
|
3998
|
+
let kept = words.slice(0, maxWords).join(" ");
|
|
3999
|
+
// Then the length ceiling, cutting back to a word boundary so the line
|
|
4000
|
+
// does not end mid-UUID. A first word that is already over the limit is
|
|
4001
|
+
// cut where it stands — better a clipped token than a wrapped box.
|
|
4002
|
+
if (kept.length > maxChars) {
|
|
4003
|
+
const cut = kept.slice(0, maxChars);
|
|
4004
|
+
const boundary = cut.lastIndexOf(" ");
|
|
4005
|
+
kept = boundary > 0 ? cut.slice(0, boundary) : cut;
|
|
4006
|
+
}
|
|
4007
|
+
if (kept === flat) return flat;
|
|
4008
|
+
// Trailing punctuation on the last kept word reads as a full stop followed
|
|
4009
|
+
// by an ellipsis ("plan,…"), so it goes.
|
|
4010
|
+
return `${kept.replace(/[.,;:—-]+$/u, "")}…`;
|
|
4011
|
+
}
|
|
4012
|
+
|
|
4013
|
+
/**
|
|
4014
|
+
* What the detail box calls the sentence beside it.
|
|
4015
|
+
*
|
|
4016
|
+
* A cron session is not waiting *because of* this text — it is waiting for the
|
|
4017
|
+
* next tick, and the text is what it will then do. Naming it "Waiting" made
|
|
4018
|
+
* the wake-up instruction read as a stall reason.
|
|
4019
|
+
*/
|
|
4020
|
+
export function waitReasonLabel(session) {
|
|
4021
|
+
return session?.cronActive === true ? "On wake" : "Waiting";
|
|
4022
|
+
}
|
|
4023
|
+
|
|
3964
4024
|
function SessionDetailBox({ session, childCount = 0, pause = null, controller = null, collapsed = false, onToggle = null }) {
|
|
3965
4025
|
// EVERY field renders on EVERY selection, empty ones as an em dash. The box
|
|
3966
4026
|
// is a fixed grid of rows, so moving through the list cannot change its
|
|
@@ -4041,8 +4101,17 @@ function SessionDetailBox({ session, childCount = 0, pause = null, controller =
|
|
|
4041
4101
|
const pauseBlock = (!pause && !waitReason) ? null : React.createElement("div", {
|
|
4042
4102
|
className: `ps-session-detail-pause${pause ? " is-paused" : ""}`,
|
|
4043
4103
|
},
|
|
4044
|
-
React.createElement("span", { className: "ps-session-detail-label" },
|
|
4045
|
-
|
|
4104
|
+
React.createElement("span", { className: "ps-session-detail-label" },
|
|
4105
|
+
pause ? "Paused" : waitReasonLabel(session)),
|
|
4106
|
+
React.createElement("span", {
|
|
4107
|
+
className: "ps-session-detail-why",
|
|
4108
|
+
// Clipped on screen, whole on hover: for a cron the full text is the
|
|
4109
|
+
// wake-up instruction, and someone reading the box is often trying to
|
|
4110
|
+
// find out exactly what the next tick will do.
|
|
4111
|
+
...(!pause && typeof session?.waitReason === "string" && session.waitReason.trim()
|
|
4112
|
+
? { title: session.waitReason.trim() }
|
|
4113
|
+
: {}),
|
|
4114
|
+
},
|
|
4046
4115
|
// The sentence already says when it clears wherever it can; `clears`
|
|
4047
4116
|
// only fills the gap where it cannot.
|
|
4048
4117
|
pause ? pause.reason : waitReason,
|
package/web/dist/assets/{abnfDiagram-VRR7QNED-CXF6f3n3.js → abnfDiagram-VRR7QNED-C_4vfIbv.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-B8zfb4XG.js";import{p as f}from"./chunk-JWPE2WC7-BhwKbO0c.js";import{_ as n,l as o}from"./mermaid.core-Pc4CQtPH.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-kJrtGP23.js";import"./pilotswarm-CJ6SEIPj.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-Pc4CQtPH.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|