stickyflow 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/dist/binding/index.cjs +9 -9
- package/dist/binding/index.d.cts +4 -4
- package/dist/binding/index.d.ts +4 -4
- package/dist/binding/index.js +3 -3
- package/dist/{chunk-ZMLQIMJK.cjs → chunk-A73UJ5AQ.cjs} +1537 -738
- package/dist/chunk-A73UJ5AQ.cjs.map +1 -0
- package/dist/{chunk-VK3T6O5Z.cjs → chunk-BUOWM3LC.cjs} +745 -62
- package/dist/chunk-BUOWM3LC.cjs.map +1 -0
- package/dist/{chunk-L3VJXZFD.cjs → chunk-EKAWJFJQ.cjs} +15 -15
- package/dist/{chunk-L3VJXZFD.cjs.map → chunk-EKAWJFJQ.cjs.map} +1 -1
- package/dist/{chunk-BODZN3ZI.js → chunk-JCRPLPKV.js} +156 -23
- package/dist/chunk-JCRPLPKV.js.map +1 -0
- package/dist/{chunk-IEHE6WVN.js → chunk-JQK4IGXJ.js} +489 -51
- package/dist/chunk-JQK4IGXJ.js.map +1 -0
- package/dist/{chunk-XY2GZUHC.cjs → chunk-KXYSO6GC.cjs} +498 -50
- package/dist/chunk-KXYSO6GC.cjs.map +1 -0
- package/dist/{chunk-G7NRK5AG.js → chunk-MUKIGLR5.js} +717 -34
- package/dist/chunk-MUKIGLR5.js.map +1 -0
- package/dist/{chunk-TWDLOXRM.cjs → chunk-OWNVXKXN.cjs} +170 -37
- package/dist/chunk-OWNVXKXN.cjs.map +1 -0
- package/dist/{chunk-LTGF5OHP.js → chunk-SDMQRSRW.js} +941 -143
- package/dist/chunk-SDMQRSRW.js.map +1 -0
- package/dist/{chunk-7VW2XKVB.js → chunk-ZNHYW47T.js} +3 -3
- package/dist/{chunk-7VW2XKVB.js.map → chunk-ZNHYW47T.js.map} +1 -1
- package/dist/index.cjs +57 -29
- package/dist/index.d.cts +80 -7
- package/dist/index.d.ts +80 -7
- package/dist/index.js +5 -5
- package/dist/interaction/index.cjs +245 -235
- package/dist/interaction/index.cjs.map +1 -1
- package/dist/interaction/index.d.cts +3 -2
- package/dist/interaction/index.d.ts +3 -2
- package/dist/interaction/index.js +17 -7
- package/dist/interaction/index.js.map +1 -1
- package/dist/{render-CgX_y15a.d.ts → render-BU2uYzjG.d.cts} +40 -16
- package/dist/{render-CgX_y15a.d.cts → render-BU2uYzjG.d.ts} +40 -16
- package/dist/{runtime-reWgr7MP.d.cts → runtime-B7KiTmn8.d.cts} +2 -2
- package/dist/{runtime-DnUxca3Y.d.ts → runtime-BPzyD-Nd.d.ts} +2 -2
- package/dist/{runtimeTypes-D60w6nyF.d.cts → runtimeTypes-BIP70z72.d.cts} +3 -2
- package/dist/{runtimeTypes-CEBGueYM.d.ts → runtimeTypes-DalvhScn.d.ts} +3 -2
- package/dist/stickyflow-diagram.global.js +387 -36
- package/dist/stickyflow-diagram.global.js.map +1 -1
- package/dist/{types-DYLC_lsk.d.ts → types-DMWs27Hn.d.ts} +1 -1
- package/dist/{types-DvhMpqrL.d.cts → types-D_2NZ6lL.d.cts} +1 -1
- package/dist/viewer/index.cjs +9 -9
- package/dist/viewer/index.d.cts +5 -4
- package/dist/viewer/index.d.ts +5 -4
- package/dist/viewer/index.js +4 -4
- package/dist/web-component/index.cjs +6 -6
- package/dist/web-component/index.d.cts +2 -2
- package/dist/web-component/index.d.ts +2 -2
- package/dist/web-component/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-BODZN3ZI.js.map +0 -1
- package/dist/chunk-G7NRK5AG.js.map +0 -1
- package/dist/chunk-IEHE6WVN.js.map +0 -1
- package/dist/chunk-LTGF5OHP.js.map +0 -1
- package/dist/chunk-TWDLOXRM.cjs.map +0 -1
- package/dist/chunk-VK3T6O5Z.cjs.map +0 -1
- package/dist/chunk-XY2GZUHC.cjs.map +0 -1
- package/dist/chunk-ZMLQIMJK.cjs.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";var Stickyflow=(()=>{var
|
|
1
|
+
"use strict";var Stickyflow=(()=>{var Tn=Object.defineProperty;var yh=Object.getOwnPropertyDescriptor;var bh=Object.getOwnPropertyNames;var xh=Object.prototype.hasOwnProperty;var Sh=(e,t)=>{for(var r in t)Tn(e,r,{get:t[r],enumerable:!0})},Ch=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bh(t))!xh.call(e,n)&&n!==r&&Tn(e,n,{get:()=>t[n],enumerable:!(o=yh(t,n))||o.enumerable});return e};var Rh=e=>Ch(Tn({},"__esModule",{value:!0}),e);var t1={};Sh(t1,{StickyflowDiagram:()=>gt,defineStickyflowDiagram:()=>Qa});var ts=["source","interactive","padding","diagram-id"],kh=e=>e!==null&&e!=="false";function rs(e){let t=e("padding"),r=t!=null&&t!==""&&Number.isFinite(Number(t))?Number(t):void 0;return{source:e("source"),interactive:kh(e("interactive")),padding:r,diagramId:e("diagram-id")??void 0}}function Qt(e,t){let r=String(e);return t===void 0||!Number.isInteger(t)||t<1?r:r.padStart(t,"0")}var os=["rollingNumber","tickScale","ruler"];function et(e){return e!==void 0&&os.includes(e)}function Gr(e){return!et(e.type)}var ns=[{type:"rollingNumber",group:"readout",category:"indicator",value:{type:"number",writable:!1,default:0},properties:{},interaction:"none",pointerScale:!1,size:{width:160,height:90}},{type:"tickScale",group:"readout",category:"instrument",value:{type:"number",writable:!1,default:0},properties:{},interaction:"none",pointerScale:!0,size:{width:200,height:200}},{type:"ruler",group:"input",category:"instrument",value:{type:"number",writable:!1,default:0},properties:{},interaction:"scale",pointerScale:!0,size:{width:120,height:360}},{type:"switch",group:"input",category:"selection",value:{type:"boolean",writable:!0,default:!1},properties:{accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#cbd5e1"},thumb:{type:"color",default:"#ffffff"},animate:{type:"number",default:160,min:0,max:2e3,step:10}},interaction:"toggle",pointerScale:!1,size:{width:52,height:30,minWidth:36,minHeight:20,aspect:1.7333333333333334},role:"switch"},{type:"checkbox",group:"input",category:"selection",value:{type:"boolean",writable:!0,default:!1},properties:{accent:{type:"color",default:"#5a6bff"},stroke:{type:"color",default:"#94a3b8"},check:{type:"color",default:"#ffffff"},textColor:{type:"color",default:"#0f172a"},fontSize:{type:"number",default:14,min:6,max:200},animate:{type:"number",default:160,min:0,max:2e3,step:10}},interaction:"toggle",pointerScale:!1,size:{width:160,height:24,minWidth:18,minHeight:18},role:"checkbox"},{type:"toggleButton",group:"input",category:"action",value:{type:"boolean",writable:!0,default:!1},properties:{accent:{type:"color",default:"#5a6bff"},stroke:{type:"color",default:"#94a3b8"},textColor:{type:"color",default:"#0f172a"},onTextColor:{type:"color",default:"#ffffff"},fontSize:{type:"number",default:14,min:6,max:200},animate:{type:"number",default:160,min:0,max:2e3,step:10}},interaction:"toggle",pointerScale:!1,size:{width:120,height:40,minWidth:40,minHeight:24},role:"button"},{type:"button",group:"action",category:"action",properties:{accent:{type:"color",default:"#5a6bff"},textColor:{type:"color",default:"#ffffff"},radius:{type:"number",default:8,min:0,max:200},fontSize:{type:"number",default:14,min:6,max:200},animate:{type:"number",default:160,min:0,max:2e3,step:10}},interaction:"press",pointerScale:!1,size:{width:120,height:40,minWidth:40,minHeight:24},role:"button"},{type:"slider",group:"input",category:"value",value:{type:"number",writable:!0,default:40},properties:{variant:{type:"enum",default:"line",options:["line","field"]},direction:{type:"enum",default:"horizontal",options:["horizontal","vertical"]},ticks:{type:"number",default:0,min:0,max:200},tickColor:{type:"color",default:"#94a3b8"},min:{type:"number",default:0},max:{type:"number",default:100},step:{type:"number",default:0,min:0},surface:{type:"color",default:"#eef1f6"},fill:{type:"color",default:"#cbd5e1"},textColor:{type:"color",default:"#0f172a"},fontSize:{type:"number",default:14,min:6,max:200},display:{type:"enum",default:"value",options:["none","value","percent"]},radius:{type:"number",default:10,min:0,max:200},accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#cbd5e1"},thumb:{type:"color",default:"#ffffff"},trackHeight:{type:"number",default:6,min:1,max:80},thumbSize:{type:"number",default:56,min:20,max:100,step:5},animate:{type:"number",default:0,min:0,max:2e3,step:10}},interaction:"slide",pointerScale:!1,size:{width:220,height:28,minWidth:60,minHeight:12},role:"slider"},{type:"range",group:"input",category:"value",value:{type:"number",writable:!0,default:25},properties:{variant:{type:"enum",default:"line",options:["line","field"]},direction:{type:"enum",default:"horizontal",options:["horizontal","vertical"]},ticks:{type:"number",default:0,min:0,max:200},tickColor:{type:"color",default:"#94a3b8"},valueEnd:{type:"number",default:75},min:{type:"number",default:0},max:{type:"number",default:100},step:{type:"number",default:0,min:0},surface:{type:"color",default:"#eef1f6"},fill:{type:"color",default:"#cbd5e1"},textColor:{type:"color",default:"#0f172a"},fontSize:{type:"number",default:14,min:6,max:200},display:{type:"enum",default:"value",options:["none","value","percent"]},radius:{type:"number",default:10,min:0,max:200},accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#cbd5e1"},thumb:{type:"color",default:"#ffffff"},trackHeight:{type:"number",default:6,min:1,max:80},thumbSize:{type:"number",default:56,min:20,max:100,step:5},animate:{type:"number",default:0,min:0,max:2e3,step:10}},interaction:"range",pointerScale:!1,size:{width:220,height:28,minWidth:60,minHeight:12},role:"slider"},{type:"progress",group:"readout",category:"indicator",value:{type:"number",writable:!1,default:60},properties:{min:{type:"number",default:0},max:{type:"number",default:100},variant:{type:"enum",default:"bar",options:["bar","ring"]},direction:{type:"enum",default:"horizontal",options:["horizontal","vertical"]},accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#e2e8f0"},thickness:{type:"number",default:10,min:1,max:80},rounded:{type:"boolean",default:!0},display:{type:"enum",default:"none",options:["none","percent","value"]},textColor:{type:"color",default:"#0f172a"},fontSize:{type:"number",default:14,min:6,max:200},animate:{type:"number",default:300,min:0,max:2e3,step:10}},interaction:"none",pointerScale:!1,size:{width:220,height:12,minWidth:20,minHeight:4},role:"progressbar"},{type:"segmented",group:"input",category:"selection",value:{type:"number",writable:!0,default:0},properties:{options:{type:"string",default:"Day,Week,Month"},accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#e2e8f0"},textColor:{type:"color",default:"#475569"},activeTextColor:{type:"color",default:"#ffffff"},radius:{type:"number",default:200,min:0,max:200},inset:{type:"number",default:3,min:0,max:20},fontSize:{type:"number",default:14,min:6,max:200},animate:{type:"number",default:200,min:0,max:2e3,step:10}},interaction:"pick",pointerScale:!1,size:{width:300,height:40,minWidth:80,minHeight:20},role:"radiogroup"},{type:"knob",group:"input",category:"value",value:{type:"number",writable:!0,default:40},properties:{min:{type:"number",default:0},max:{type:"number",default:100},step:{type:"number",default:0,min:0},start:{type:"number",default:225,min:0,max:360},sweep:{type:"number",default:270,min:30,max:360},accent:{type:"color",default:"#5a6bff"},track:{type:"color",default:"#cbd5e1"},face:{type:"color",default:"#f1f5f9"},dot:{type:"color",default:"#0f172a"},thickness:{type:"number",default:8,min:1,max:80},rounded:{type:"boolean",default:!0},display:{type:"enum",default:"value",options:["none","value","percent"]},textColor:{type:"color",default:"#0f172a"},fontSize:{type:"number",default:16,min:6,max:200},animate:{type:"number",default:0,min:0,max:2e3,step:10}},interaction:"turn",pointerScale:!1,size:{width:96,height:96,minWidth:40,minHeight:40,aspect:1},role:"slider"}];var wh=0,is=new Map(ns.map(e=>[e.type,e]));function _r(){return wh}function yt(e){return e===void 0?void 0:is.get(e)}function Mn(){return[...is.keys()]}function $n(e){return yt(e)!==void 0}var Q={color:"#000000",surface:"rgba(255, 255, 255, 0.28)",divider:"rgba(0, 0, 0, 0.2)",labelColor:"rgba(0, 0, 0, 0.62)",fontFamily:"'Roboto Mono', 'SFMono-Regular', Consolas, monospace",variant:"flip",motion:"roll",fontWeight:"300",fontSize:0};function An(e){return{color:e.color??Q.color,surface:e.surface??Q.surface,divider:e.divider??Q.divider,labelColor:e.labelColor??Q.labelColor,fontFamily:e.fontFamily??Q.fontFamily,variant:e.variant??Q.variant,motion:e.motion??Q.motion,fontWeight:e.fontWeight??Q.fontWeight,fontSize:e.fontSize??Q.fontSize}}var as=["Project","Model","Group","Entity","Container","Path","Chart","Widget","Component","Shape","Text","Isometric","Dimension","Link","Connection","Layout","Style","Shader","Axis","Series","Rule","Net","Symbol","Port","DataSource"],b1=[...as,"data"],Ph=["top","bottom","left","right"],ss=e=>Ph.includes(e),Jt=e=>e==="Component"||e==="Widget";var Fr=e=>as.includes(e);var Hr=class{constructor(t){this.input=t}input;offset=0;line=1;col=1;get done(){return this.offset>=this.input.length}peek(t=0){return this.input[this.offset+t]}startsWith(t){return this.input.startsWith(t,this.offset)}position(){return{line:this.line,col:this.col}}advance(){let t=this.input[this.offset];if(t===void 0)throw new Error("Cannot advance beyond the end of the SFL source.");return this.offset++,t===`
|
|
2
2
|
`||t==="\r"&&this.peek()!==`
|
|
3
|
-
`?(this.line++,this.col=1):this.col++,t}};var
|
|
4
|
-
`}function
|
|
5
|
-
`&&e.advance(),
|
|
6
|
-
`,t)}function
|
|
7
|
-
`&&e.peek()!=="\r";)e.advance()}function
|
|
8
|
-
`),r=1/0;for(let
|
|
9
|
-
`)}function
|
|
10
|
-
`||
|
|
11
|
-
`;case"t":return" ";default:throw new ye(`invalid escape '\\${r}'`,t.line,t.col)}}function Df(e,t){return e.startsWith('"""')?Bf(e,t):If(e,t)}function Xa(e,t){return re("string",Df(e,t),t)}function qa(e){let t=e.peek();if(t===void 0)return null;let r=e.position();if(Ga(t))return Da(e,r);if(_f(e,t))return null;let n=Ff(e,t,r)??Hf(e,r);if(n)return n;throw new ye(`unexpected character '${t}'`,r.line,r.col)}function _f(e,t){return Ya(t)?(Ua(e),!0):_a(e)?(Fa(e),!0):!1}function Ff(e,t,r){let n=za(e,r);return n||(t==='"'?Xa(e,r):Wa(e,r))}function Hf(e,t){return Ha(e)?Va(e,t):Ba(e)?Ia(e,t):null}function Ka(e){let t=new $r(e),r=[];for(;!t.done;){let n=qa(t);n&&r.push(po(n,t))}return r.push(po(re("eof","",t.position()),t)),r}var F=class extends Error{constructor(r,n,o){super(`SFL parse error (${n}:${o}): ${r}`);this.line=n;this.col=o;this.name="SflParseError"}line;col};var Mr=class{constructor(t){this.tokens=t}tokens;position=0;peek(t=0){return this.tokens[Math.min(this.position+t,this.tokens.length-1)]}at(t){return this.peek().type===t}next(){return this.tokens[this.position++]}expect(t,r){let n=this.peek();if(n.type!==t)throw new F(`expected ${r}, got '${n.value||n.type}'`,n.line,n.col);return this.next()}expectNumber(t){let r=this.expect("number",t);if(r.numberValue===void 0)throw new F(`expected ${t} to contain a numeric value`,r.line,r.col);return r.numberValue}skipNewlines(){for(;this.at("newline");)this.next()}};function Yt(e){let t=[e.expect("ident","path identifier").value];for(;e.at("dot");)e.next(),t.push(e.expect("ident",'identifier after "."').value);return t}function Za(e){let t=Yt(e),r,n;if(e.at("comma")){e.next();let o=e.expect("ident",'side after ","');if(!Ea(o.value))throw new F(`expected a side (top/right/bottom/left), got '${o.value}'`,o.line,o.col);r=o.value,e.at("lparen")&&(e.next(),n=e.expectNumber('fraction inside "("'),e.expect("rparen","')'"))}return{type:"endpoint",segments:t,side:r,fraction:n}}function Vf(e){e.expect("lbracket","'['");let t=[];if(e.skipNewlines(),!e.at("rbracket"))for(t.push(Ar(e,!1)),e.skipNewlines();e.at("comma")&&(e.next(),e.skipNewlines(),!e.at("rbracket"));)t.push(Ar(e,!1)),e.skipNewlines();return e.expect("rbracket","']'"),{type:"list",values:t}}function Ar(e,t=!0){let r=e.peek();switch(r.type){case"string":return e.next(),{type:"string",value:r.value};case"lbracket":return Vf(e);case"number":{let n=e.expectNumber("number");if(!t||!e.at("comma"))return{type:"number",value:n};let o=[n];for(;e.at("comma");)e.next(),o.push(e.expectNumber("number in tuple"));return{type:"tuple",values:o}}case"ident":return{type:"ident",segments:Yt(e)};default:throw new F(`expected a value, got '${r.value||r.type}'`,r.line,r.col)}}var Wf=new Set([">","<",">=","<=","==","!="]);function zf(e,t){let r=e.peek();return r.type==="op"&&t.has(r.value)}function Ut(e,t,r){let n=r(e);for(;zf(e,t);)n={kind:"binary",operator:e.next().value,left:n,right:r(e)};return n}var Yf=new Set(["||"]),Uf=new Set(["&&"]),jf=new Set(["+","-"]),Xf=new Set(["*","/"]);function Er(e){return Ut(e,Yf,qf)}function qf(e){return Ut(e,Uf,Kf)}function Kf(e){return Ut(e,Wf,Zf)}function Zf(e){return Ut(e,jf,Qf)}function Qf(e){return Ut(e,Xf,es)}function es(e){let t=e.peek();return t.type==="op"&&(t.value==="!"||t.value==="-")?(e.next(),{kind:"unary",operator:t.value,operand:es(e)}):eh(e)}function Jf(e){e.expect("lparen","'('");let t=[];for(e.skipNewlines();!e.at("rparen");)if(t.push(Er(e)),e.skipNewlines(),e.at("comma"))e.next(),e.skipNewlines();else if(!e.at("rparen")){let r=e.peek();throw new F(`expected ',' or ')', got '${r.value||r.type}'`,r.line,r.col)}return e.expect("rparen","')'"),t}function eh(e){let t=e.peek();switch(t.type){case"number":return{kind:"number",value:e.expectNumber("number")};case"string":return e.next(),{kind:"string",value:t.value};case"lparen":{e.next();let r=Er(e);return e.expect("rparen","')'"),r}case"ident":{let r=Yt(e);return r.length===1&&(r[0]==="true"||r[0]==="false")?{kind:"boolean",value:r[0]==="true"}:e.at("lparen")?{kind:"call",callee:r,args:Jf(e)}:{kind:"ref",path:r}}default:throw new F(`expected an expression, got '${t.value||t.type}'`,t.line,t.col)}}var th=["bind","bind2","action"];function Nr(e){return e.peek().type==="ident"&&e.peek(1).type==="colon"&&th.includes(e.peek(2).type)}function Or(e){let t=e.expect("ident","bound property");e.expect("colon","':'");let r=e.next().value,n=Er(e),o=e.peek();if(!["newline","semi","rbrace","eof"].includes(o.type))throw new F(`unexpected '${o.value||o.type}' after binding`,o.line,o.col);return{key:t.value,operator:r,expr:n,line:t.line,col:t.col}}function Qa(e){let t=e.peek(),r=Yt(e);e.expect("bind","'<-'");let n=Er(e);return{target:r,expr:n,line:t.line,col:t.col}}function ts(e){let t=e.peek();return t.type==="ident"&&/^on[A-Z]/.test(t.value)&&["colon","lbrace"].includes(e.peek(1).type)}function rs(e){let t=e.expect("ident","event name"),r=[];if(e.at("colon"))e.next(),r.push(Qa(e)),Ja(e,"handler");else{for(e.expect("lbrace","'{'"),e.skipNewlines();!e.at("rbrace");){if(e.at("eof"))throw new F(`unterminated handler '${t.value}'`,t.line,t.col);r.push(Qa(e)),Ja(e,"assignment"),e.skipNewlines()}e.expect("rbrace","'}'")}return{event:t.value,assignments:r,line:t.line,col:t.col}}function Ja(e,t){let r=e.peek();if(!["newline","semi","rbrace","eof"].includes(r.type))throw new F(`unexpected '${r.value||r.type}' after ${t}`,r.line,r.col);r.type==="semi"&&e.next()}var Br=class{constructor(t){this.cursor=t}cursor;parseLayout(){return this.cursor.next(),{properties:this.parsePropertyBlock("layout")}}parseStyle(){this.cursor.next(),this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let t=[],r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let n=this.cursor.peek();throw new F("unterminated style block",n.line,n.col)}Nr(this.cursor)?(r.push(Or(this.cursor)),(this.cursor.at("newline")||this.cursor.at("semi"))&&this.cursor.next()):t.push(this.parseProperty()),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r.length?{properties:t,bindings:r}:{properties:t}}parseFields(){return this.cursor.next(),this.parsePropertyBlock("fields")}parseProperty(){let t=this.cursor.expect("ident","property key").value;this.cursor.expect("colon","':'");let r=t==="from"||t==="to"?Za(this.cursor):Ar(this.cursor);return this.consumeTerminator(),{key:t,value:r}}parsePropertyBlock(t){this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let n=this.cursor.peek();throw new F(`unterminated ${t} block`,n.line,n.col)}r.push(this.parseProperty()),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r}consumeTerminator(){if(this.cursor.at("newline")||this.cursor.at("semi")){this.cursor.next();return}if(this.cursor.at("rbrace")||this.cursor.at("eof"))return;let t=this.cursor.peek();throw new F(`unexpected '${t.value||t.type}' after property value`,t.line,t.col)}};var Ir=class{constructor(t){this.cursor=t;this.properties=new Br(t)}cursor;properties;parseBlock(){let t=this.cursor.expect("ident","block kind");if(!Tr(t.value))throw new F(`unknown block kind '${t.value}'`,t.line,t.col);let r=this.cursor.expect("ident","block name"),n=this.parseComposition(),o=this.parseBlockEntries();return{kind:t.value,name:r.value,composition:n,entries:o}}parseComposition(){if(!this.cursor.at("colon"))return[];this.cursor.next();let t=[this.cursor.expect("ident",'reference name after ":"').value];for(;this.cursor.at("amp");)this.cursor.next(),t.push(this.cursor.expect("ident",'reference name after "&"').value);return t}parseBlockEntries(){return this.parseEntries(()=>this.parseBlockEntry())}parseDataEntries(){return this.parseEntries(()=>this.parseDataEntry())}parseEntries(t){this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let n=this.cursor.peek();throw new F('unterminated block (missing "}")',n.line,n.col)}r.push(t()),this.cursor.at("semi")&&this.cursor.next(),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r}parseBlockEntry(){let t=this.cursor.peek();if(t.type!=="ident")throw new F(`expected property, block, layout, or style \u2014 got '${t.value||t.type}'`,t.line,t.col);return Tr(t.value)&&this.cursor.peek(1).type==="ident"?{type:"block",block:this.parseBlock()}:t.value==="layout"&&this.cursor.peek(1).type==="lbrace"?{type:"layout",layout:this.properties.parseLayout()}:t.value==="style"&&this.cursor.peek(1).type==="lbrace"?{type:"style",style:this.properties.parseStyle()}:t.value==="fields"&&this.cursor.peek(1).type==="lbrace"?{type:"fields",fields:this.properties.parseFields()}:Nr(this.cursor)?{type:"binding",binding:Or(this.cursor)}:ts(this.cursor)?{type:"handler",handler:rs(this.cursor)}:t.value==="data"&&this.cursor.peek(1).type==="lbrace"?{type:"data",data:this.parseDataBlock()}:{type:"property",property:this.properties.parseProperty()}}parseDataEntry(){let t=this.cursor.peek();return t.type==="ident"&&!Tr(t.value)&&this.looksLikeSeriesEntry()?{type:"block",block:this.parseSeriesEntry()}:this.parseBlockEntry()}parseDataBlock(){return this.cursor.next(),{kind:"data",name:"",composition:[],entries:this.parseDataEntries()}}looksLikeSeriesEntry(){if(this.cursor.peek(1).type==="lbrace")return!0;if(this.cursor.peek(1).type!=="colon")return!1;let t=2;if(this.cursor.peek(t).type!=="ident")return!1;for(t++;this.cursor.peek(t).type==="amp";){if(t++,this.cursor.peek(t).type!=="ident")return!1;t++}return this.cursor.peek(t).type==="lbrace"}parseSeriesEntry(){let t=this.cursor.expect("ident","series name"),r=this.parseComposition(),n=this.parseBlockEntries();return{kind:"Series",name:t.value,composition:r,entries:n}}};var Gr=class{constructor(t){this.cursor=t;this.blocks=new Ir(t)}cursor;blocks;parseDocument(){this.cursor.skipNewlines();let t=this.cursor.expect("ident","'sfl' header");if(t.value!=="sfl")throw new F(`document must start with 'sfl', got '${t.value}'`,t.line,t.col);let r=this.cursor.expect("number","version number");this.cursor.skipNewlines();let n=[];for(;!this.cursor.at("eof");)n.push(this.blocks.parseBlock()),this.cursor.skipNewlines();return{version:r.value,blocks:n}}};function fo(e){return new Gr(new Mr(Ka(e))).parseDocument()}function S(e){if(e){if(e.type==="string")return e.value;if(e.type==="ident")return e.segments.join(".");if(e.type==="number")return String(e.value)}}function R(e){return e?.type==="number"?e.value:void 0}function Le(e){return e?.type==="tuple"?e.values:void 0}function ns(e){return e?.type==="list"?e.values.flatMap(t=>t.type==="number"?[t.value]:[]):void 0}function rh(e,t){if(e.length<2)return null;let r=e[e.length-1],n=e[e.length-2],o=t.idByName.get(n);return(o?t.canvasObjectById.get(o):void 0)?.symbol?.ports?.some(a=>a.name===r)?{id:o,port:r}:null}function ct(e,t){if(e?.type!=="endpoint")return{};let r=rh(e.segments,t);if(r)return r;let n=e.segments[e.segments.length-1];return{id:t.idByName.get(n)??n,side:e.side,fraction:e.fraction}}function G(e){let t=new Map;for(let r of e.entries)r.type==="property"&&t.set(r.property.key,r.property.value);return t}function Dr(e){let t=new Map;for(let r of e.entries)if(r.type==="style")for(let n of r.style.properties)t.set(n.key,n.value);return t}function os(e){let t=new Map;for(let r of e.entries)if(r.type==="layout")for(let n of r.layout.properties)t.set(n.key,n.value);return t}function W(e){return e.entries.flatMap(t=>t.type==="block"?[t.block]:[])}function is(e){for(let t of e.entries)if(t.type==="data")return t.data}function ut(e){let t=is(e);return t?[...W(e),...W(t)]:W(e)}function as(e,t){let r=G(e).get(t);if(r!==void 0)return r;let n=is(e);return n?G(n).get(t):void 0}var nh=["Entity","Shape","Text","Container","Path","Chart","Widget","Component","Isometric"],oh=new Set(nh);function mt(e){return oh.has(e)}function ss(e,t){for(let r of e)mt(r.kind)&&t.set(r.name,S(G(r).get("id"))??r.name),ss(W(r),t)}function _r(e){let t=new Map;return e&&ss(W(e),t),t}var ih=new Set(["id","from","to","text","order","segments"]);function Fr(e){let t={};for(let[r,n]of e){if(ih.has(r))continue;let o=S(n);o!==void 0&&(t[r]=o)}return t}var ah=new Set(["top","bottom","front","back","left","right"]);function ls(e){return e!==void 0&&ah.has(e)?e:"front"}function ds(e,t,r,n,o=[]){let i={idByName:_r(e),canvasObjectById:new Map(r.map(a=>[a.id,a]))};return t.map((a,s)=>{let l=n.mergedProps(a);return{id:S(l.get("id"))??a.name,fromId:ct(l.get("from"),i).id,toId:ct(l.get("to"),i).id,fromFace:ls(S(l.get("fromFace"))),toFace:ls(S(l.get("toFace"))),order:R(l.get("order")),sourceIndex:o[s],props:Fr(l)}})}function cs(e,t,r){let n=t.mergedProps(e),o=ct(n.get("from"),r),i=ct(n.get("to"),r);return{id:S(n.get("id"))??e.name,fromId:o.id,toId:i.id,text:S(n.get("text")),fromSide:o.side,fromFraction:o.fraction,toSide:i.side,toFraction:i.fraction,fromPort:o.port,toPort:i.port,order:R(n.get("order")),segments:ns(n.get("segments")),props:Fr(n)}}function us(e,t,r,n,o=[]){let i={idByName:_r(e),canvasObjectById:new Map(r.map(a=>[a.id,a]))};return t.map((a,s)=>({...cs(a,n,i),sourceIndex:o[s]}))}function sh(e,t){let r=t.mergedProps(e).get("members");return r?.type==="list"?r.values.flatMap(n=>n.type==="ident"?[n.segments]:[]):[]}function lh(e,t,r,n,o){let i=[{type:"property",property:{key:"from",value:{type:"endpoint",segments:t}}},{type:"property",property:{key:"to",value:{type:"endpoint",segments:r}}}];return o&&i.push({type:"property",property:{key:"text",value:{type:"string",value:o}}}),{kind:"Link",name:`${e.name}_${n+1}`,composition:[],entries:i}}function ms(e,t){let r=sh(e,t);if(r.length<2)return[];let n=S(t.mergedProps(e).get("text"));return r.slice(1).map((o,i)=>lh(e,r[0],o,i,n))}function ps(e,t){let r=S(t.layoutProp(e,"flow")),n=R(t.layoutProp(e,"gap"))??0,o=0;return i=>{if(r!=="horizontal"&&r!=="vertical")return;let a=r==="horizontal"?[o,0]:[0,o];return o+=(r==="horizontal"?i[0]:i[1])+n,a}}var Hr=["bar","line","scatter","radar","radial","field","heatmap","boxplot","sankey","treemap","mekko","hexbin","pie","radialBar","polarArea","custom"];function pt(e){return e!==void 0&&Hr.includes(e)}function Te(e){if(e?.type!=="list")return;let t=e.values.flatMap(r=>{let n=R(r);return n===void 0?[]:[n]});return t.length>0?t:void 0}function fs(e){if(e?.type==="list")return e.values.flatMap(t=>{let r=S(t);return r===void 0?[]:[r]})}function xe(e){let t=S(e);if(t!==void 0)return t==="true"}function ho(e){let t=e?G(e):new Map;return{min:R(t.get("min"))??0,max:R(t.get("max"))??10,step:R(t.get("step"))??1,label:S(t.get("label")),unit:S(t.get("unit")),thresholds:Te(t.get("thresholds"))}}function hs(e){return ut(e).filter(t=>t.kind==="Rule").map(t=>{let r=G(t);return{id:t.name,at:R(r.get("at"))??0,text:S(r.get("text")),color:S(r.get("color")),strokeWidth:R(r.get("strokeWidth")),dash:Te(r.get("dash"))}})}function gs(e){if(e.type!=="list"||e.values.length<2)return;let t=e.values.map(R);return t.every(r=>r!==void 0)?t:void 0}function bs(e){return e?.type!=="list"?[]:dh(e.values)==="tuple"?uh(e.values):ch(e.values)}function dh(e){for(let t of e){if(t.type==="number")return"scalar";if(gs(t))return"tuple"}}function ch(e){return e.flatMap(t=>t.type==="number"?[t.value]:[])}function uh(e){return e.flatMap(t=>{let r=gs(t);return r?[r]:[]})}function ys(e){if(e?.type==="list")return e.values.map(mh)}function mh(e){return e.type==="ident"&&e.segments.join(".")==="none"?null:e.type==="number"?e.value:ph(e)}function ph(e){if(e.type!=="list"||e.values.length<2)return null;let t=R(e.values[0]),r=R(e.values[1]);return t!==void 0&&r!==void 0?[t,r]:null}function xs(e){if(e?.type==="list")return e.values.map(fh)}function fh(e){return e.type==="ident"&&e.segments.join(".")==="none"?null:S(e)??null}function Ss(e,t){if(e?.type==="list"){let o=e.values.flatMap(hh);return o.length>0?{points:o}:void 0}let r=S(e),n=r?t.get(r):void 0;if(n)return{points:n.points,normalized:!0,tension:n.tension}}function hh(e){if(e.type!=="list"||e.values.length<2)return[];let t=R(e.values[0]),r=R(e.values[1]);return t===void 0||r===void 0?[]:[[t,r]]}function Cs(e,t,r){let n=r(e);return{id:e.name,label:S(n.get("label"))??e.name,color:S(n.get("color")),colors:xs(n.get("colors")),opacity:R(n.get("opacity")),group:S(n.get("group")),values:bs(n.get("values")),error:ys(n.get("error")),source:S(n.get("source")),target:S(n.get("target")),size:R(n.get("size")),symbol:Ss(n.get("symbol"),t),stroke:S(n.get("stroke")),strokeWidth:R(n.get("strokeWidth")),dash:Te(n.get("dash")),offset:R(n.get("offset")),labelOffsetX:R(n.get("labelOffsetX")),labelOffsetY:R(n.get("labelOffsetY"))}}function Rs(e){if(e?.type!=="list")return;let t=e.values.flatMap(r=>{if(r.type!=="list")return[];let n=S(r.values[0]);return n===void 0?[]:[{label:n,color:S(r.values[1]),offsetX:R(r.values[2]),offsetY:R(r.values[3])}]});return t.length>0?t:void 0}var gh=["none","true","percent","waterfall"];function bh(e){return pt(e)?e:"bar"}function yh(e){return gh.find(t=>t===e)}function ks(e,t,r,n){let o=ut(e),i=o.filter(s=>s.kind==="Axis"),a=S(t.get("stacked"));return{chartType:bh(S(t.get("type"))),categories:fs(as(e,"categories")),areaOpacity:R(t.get("areaOpacity")),stacked:yh(a),scale:S(t.get("scale")),interpolate:S(t.get("interpolate"))==="idw"?"idw":void 0,idwPower:R(t.get("idwPower")),isolines:Te(t.get("isolines")),zones:Rs(t.get("zones")),boxWidth:R(t.get("boxWidth")),orientation:S(t.get("orientation"))==="horizontal"?"horizontal":void 0,lineTension:R(t.get("lineTension")),highlightPoints:Te(t.get("highlightPoints")),barCornerRadius:R(t.get("barCornerRadius")),showBoxplotPoints:xe(t.get("showBoxplotPoints")),barBorderColor:S(t.get("barBorderColor")),barBorderWidth:R(t.get("barBorderWidth")),barGroupGap:R(t.get("barGroupGap")),barGlow:R(t.get("barGlow")),barGap:R(t.get("barGap")),mekkoVaryHeight:xe(t.get("mekkoVaryHeight")),hexRadius:R(t.get("hexRadius")),innerRadius:R(t.get("innerRadius")),pieCornerRadius:R(t.get("pieCornerRadius")),pieSliceGap:R(t.get("pieSliceGap")),ringThickness:R(t.get("ringThickness")),ringGap:R(t.get("ringGap")),cellGap:R(t.get("cellGap")),showValues:xe(t.get("showValues")),squareCells:xe(t.get("squareCells")),headerColor:S(t.get("headerColor")),tileGradient:xe(t.get("tileGradient")),showColumnBackdrop:xe(t.get("showColumnBackdrop")),labelPosition:S(t.get("labelPosition"))==="inside"?"inside":void 0,labelOrientation:S(t.get("labelOrientation"))==="vertical"?"vertical":void 0,labelColor:S(t.get("labelColor")),linkGradient:xe(t.get("linkGradient")),connectPoints:xe(t.get("connectPoints")),reverseComparison:xe(t.get("reverseComparison")),axisX:ho(i.find(s=>s.name==="x")),axisY:ho(i.find(s=>s.name==="y"||s.name==="value")),series:o.filter(s=>s.kind==="Series").map(s=>Cs(s,r,n)),rules:hs(e)}}function ws(e,t,r,n,o){return{...e,objectType:"chart",chart:ks(t,r,n,o)}}function vs(e,t){return{depth:t,icon:S(e.get("icon"))}}function Ps(e,t,r,n){let o=Le(n(t,"size"));return{...e,objectType:"isometric",isometric:vs(r,o?.[2]??24)}}function Ls(e,t){let r=e.get("points");return{points:r?.type==="list"?r.values.flatMap(o=>{if(o.type!=="list"||o.values.length<2)return[];let i=R(o.values[0]),a=R(o.values[1]);return i!==void 0&&a!==void 0?[{x:t.x+i,y:t.y+a}]:[]}):[],tension:R(e.get("tension")),startMarker:S(e.get("startMarker")),endMarker:S(e.get("endMarker")),closed:S(e.get("closed"))==="true",value:R(e.get("value"))}}function Ts(e,t,r){return{...e,objectType:"path",path:Ls(t,r)}}function $s(e){let t=S(e.get("orientation"))==="vertical"?"vertical":"horizontal",r=e.get("lanes"),n=r?.type==="list"?r.values.flatMap((i,a)=>{if(i.type!=="list")return[];let s=S(i.values[0]),l=R(i.values[1]);if(s===void 0||l===void 0)return[];let d=S(i.values[2]);return[{id:`lane-${a+1}`,label:s,size:l,...d?{color:d}:{}}]}):[];return{orientation:t,lanes:n}}function Ms(e,t){return{...e,objectType:"swimlane",swimlane:$s(t)}}function xh(e,t){return e.kind==="Path"?"path":e.kind==="Chart"?"chart":zt(e.kind)?S(t.get("type"))??"widget":e.kind==="Text"?"text":e.kind==="Isometric"?"isometric":S(t.get("kind"))??""}function Sh(e){return e==="frame"?"frame":e==="swimlane"?"swimlane":e==="path"?"path":e==="chart"?"chart":ze(e)?"component":e==="isometric"?"isometric":"shape"}function As(e,t,r){let n=xh(e,t),o=S(t.get("shape")),i=o?r.get(o):void 0;return{objectType:zt(e.kind)?"component":Sh(n),kind:n,shapeType:i?"symbol":o,symbol:i}}function Es(e,t,r,n){let o=n??Le(r(e,"position"))??[0,0],i=Le(r(e,"size"))??[0,0];return{x:t.x+(o[0]??0),y:t.y+(o[1]??0),width:i[0]??0,height:i[1]??0,rotation:R(r(e,"rotation")),order:R(r(e,"order"))}}var Ch=new Set(["id","kind","text","shape","parent","order","orientation","lanes"]);function Ns(e){let t={};for(let[r,n]of e){if(Ch.has(r))continue;let o=S(n);o!==void 0&&(t[r]=o)}return t}function Os(e,t,r,n,o){let{mergedProps:i,layoutProp:a,symbolDefs:s}=r,l=i(e),d=As(e,l,s),c=Es(e,t,a,o),u={id:S(l.get("id"))??e.name,kind:d.kind,text:S(l.get("text")),...c,parentFrameId:n??S(l.get("parent")),props:Ns(l)};switch(d.objectType){case"chart":return ws(u,e,l,s,i);case"isometric":return Ps(u,e,l,a);case"path":return Ts(u,l,t);case"swimlane":return Ms(u,l);case"frame":return{...u,objectType:"frame"};case"component":return{...u,objectType:"component",component:{type:S(l.get("type"))??"rollingNumber",value:S(l.get("value"))??"0",digits:R(l.get("digits")),duration:R(l.get("duration")),min:R(l.get("min")),max:R(l.get("max")),label:S(l.get("label"))}};case"shape":return{...u,objectType:"shape",shapeType:d.shapeType,symbol:d.symbol}}}function Bs(e){return W(e).filter(t=>mt(t.kind)).map(t=>S(G(t).get("id"))??t.name)}var go=class{#e;#n=[];#t=[];#r=[];#o=[];#i=[];#s=0;constructor(t){this.#e=t.canvasObjectResolutionContext}resolve(t){let r=t?this.#a(t,{origin:{x:0,y:0}}):[];return{canvasObjects:this.#n,groups:r,linkBlocks:this.#t,connectionBlocks:this.#r,linkSourceIndexes:this.#o,connectionSourceIndexes:this.#i}}#a(t,r){let n=[],o=ps(t,this.#e);for(let i of W(t))n.push(...this.#l(i,r,o));return n}#l(t,r,n){let o=this.#s++;if(t.kind==="Container")return this.#c(t,r,n,o);if(mt(t.kind))return this.#u(t,r,n,o),[];switch(t.kind){case"Group":return[this.#m(t,r)];case"Link":return this.#t.push(t),this.#o.push(o),[];case"Connection":return this.#r.push(t),this.#i.push(o),[];case"Net":{let i=ms(t,this.#e);return this.#t.push(...i),this.#o.push(...i.map(()=>o)),[]}default:return[]}}#c(t,r,n,o){let i=this.#d(t,r,n,o);return this.#n.push(i),this.#a(t,{origin:{x:i.x,y:i.y},frameId:i.id})}#u(t,r,n,o){this.#n.push(this.#d(t,r,n,o))}#d(t,r,n,o){let i=Le(this.#e.layoutProp(t,"size"))??[0,0];return{...Os(t,r.origin,this.#e,r.frameId,n(i)),sourceIndex:o}}#m(t,r){let n=this.#e.mergedProps(t);return{id:S(n.get("id"))??t.name,name:S(n.get("text"))??t.name,color:S(n.get("color")),icon:S(n.get("icon")),canvasObjectIds:Bs(t),subGroups:this.#a(t,r),parentFrameId:r.frameId??S(n.get("parent"))}}};function Is(e,t){return new go(t).resolve(e)}function Gs(e){let t=G(e),r=S(t.get("program"));if(!r)return;let n={};for(let[o,i]of t){if(o==="program")continue;let a=R(i),s=S(i);a!==void 0?n[o]=a:s!==void 0&&(n[o]=s==="true"?!0:s==="false"?!1:s)}return{name:e.name,program:r,parameters:n}}function Rh(e){let t=G(e).get("points");return t?.type!=="list"?[]:t.values.flatMap(r=>{if(r.type!=="list"||r.values.length<2)return[];let n=R(r.values[0]),o=R(r.values[1]);return n===void 0||o===void 0?[]:[[n,o]]})}function kh(e){let t=W(e).filter(r=>r.kind==="Port").flatMap(r=>{let n=Le(G(r).get("at"));return typeof n?.[0]!="number"||typeof n[1]!="number"?[]:[{name:r.name,at:[n[0],n[1]]}]});return t.length>0?t:void 0}function Ds(e){let t=Rh(e);if(!(t.length<2))return{name:e.name,points:t,tension:R(G(e).get("tension")),ports:kh(e)}}function wh(e){return W(e).find(t=>t.kind==="Model")}function _s(e){return{styles:Ph(e),layouts:Lh(e),symbols:Th(e),shaders:vh(e),model:$h(e)}}function vh(e){let t=new Map;for(let r of e.blocks){if(r.kind!=="Shader")continue;let n=Gs(r);n&&t.set(r.name,n)}return t}function Ph(e){let t=new Map;for(let r of e.blocks)r.kind==="Style"&&t.set(r.name,r);return t}function Lh(e){let t=new Map;for(let r of e.blocks)r.kind==="Layout"&&t.set(r.name,r);return t}function Th(e){let t=new Map;for(let r of e.blocks){if(r.kind!=="Symbol")continue;let n=Ds(r);n&&t.set(r.name,n)}return t}function $h(e){for(let t of e.blocks){if(t.kind==="Model")return t;if(t.kind==="Project"){let r=wh(t);if(r)return r}}}function Fs(e,t,r){let n,o;for(let i of e)t.has(i)?n=i:r.has(i)&&(o=i);return{styleRef:n,layoutRef:o}}function Hs(e,t,r,n){for(let o of e.composition)!t.has(o)&&!r.has(o)&&n.push({severity:"warning",code:"unresolved-style-or-layout",ownerId:e.name,message:`"${o}" is not a Style or Layout defined at the top level of the document \xC3\xA2\xE2\u201A\xAC\xE2\u20AC\x9D "${e.name}" gets no shape, fill, or stroke from it.`});for(let o of W(e))Hs(o,t,r,n)}function Vs(e,t,r){let n=[];for(let o of e.blocks)Hs(o,t,r,n);return n}function yo(e,t){return new bo(e,t).resolveAll()}var bo=class{#e;#n;#t=new Map;constructor(t,r){this.#e=t,this.#n=r}resolveAll(){for(let t of this.#e.keys())this.#r(t,new Set);return this.#t}#r(t,r){let n=this.#t.get(t);if(n)return n;let o=this.#e.get(t);if(!o||r.has(t))return new Map;let i=this.#o(o,new Set([...r,t]));for(let[a,s]of G(o))i.set(a,s);return this.#t.set(t,i),i}#o(t,r){let n=this.#n(t);return n?new Map(this.#r(n,r)):new Map}};function Ws(e){let{styles:t,layouts:r,symbols:n,shaders:o}=e,i=c=>Fs(c.composition,t,r),a=yo(t,c=>i(c).styleRef),s=yo(r,c=>i(c).layoutRef);return{mergedProps:c=>{let u=new Map(a.get(i(c).styleRef??"")??[]);for(let[p,f]of G(c))u.set(p,f);for(let[p,f]of Dr(c))u.set(p,f);return u},layoutProp:(c,u)=>{let p=os(c);if(p.has(u))return p.get(u);let f=i(c).layoutRef;return f?s.get(f)?.get(u):void 0},symbolDefs:n,shaderDefs:o}}var Mh=new Set(["radar","radial"]),zs=new Set(["scatter","custom","hexbin"]);function Ys(e){let t=[],r=n=>{if(n.kind==="Chart"){let o=S(G(n).get("type"));o!==void 0&&!pt(o)&&t.push({severity:"warning",code:"unsupported-chart-type",ownerId:n.name,message:`Unsupported chart type '${o}' \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D drawn as a plain series plot. Supported: ${Hr.join(", ")}.`})}for(let o of W(n))r(o)};for(let n of e.blocks)r(n);return t}function Us(e){let t=[],r=n=>{if(n.kind==="Chart")for(let o of ut(n).filter(i=>i.kind==="Series"))G(o).has("values")||t.push({severity:"warning",code:"series-without-values",ownerId:o.name,message:`Series '${o.name}' has no values. If this was meant to be an Axis or Rule, it needs that keyword in front of the name \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D inside data{}, a bare name is read as a Series.`});for(let o of W(n))r(o)};for(let n of e.blocks)r(n);return t}function js(e){let t=[],r=n=>{if(n.kind==="Chart"){let o=S(G(n).get("type")),i=pt(o)?o:"bar";S(Dr(n).get("gridShape"))==="circle"&&!zs.has(i)&&!Mh.has(i)&&t.push({severity:"warning",code:"unsupported-grid-shape",ownerId:n.name,message:`gridShape: circle isn't supported on '${i}' \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D drawn with the standard rectangular grid instead. Supported: ${[...zs].join(", ")}.`})}for(let o of W(n))r(o)};for(let n of e.blocks)r(n);return t}function Xs(e){let t=[],r=n=>{if(zt(n.kind)){let o=S(G(n).get("type"))??"rollingNumber";uo(o)||t.push({severity:"warning",code:"unsupported-component-type",ownerId:n.name,message:`Unsupported component type '${o}'. Supported: ${co().join(", ")}.`})}for(let o of W(n))r(o)};for(let n of e.blocks)r(n);return t}function qs(e){let t=_s(e);return{model:t.model,diagnostics:[...Vs(e,t.styles,t.layouts),...Ys(e),...js(e),...Us(e),...Xs(e)],canvasObjectResolutionContext:Ws(t)}}function Ks(e){let t=qs(e),{canvasObjects:r,groups:n,linkBlocks:o,connectionBlocks:i,linkSourceIndexes:a,connectionSourceIndexes:s}=Is(t.model,t),l=us(t.model,o,r,t.canvasObjectResolutionContext,a),d=ds(t.model,i,r,t.canvasObjectResolutionContext,s);return{canvasObjects:r,groups:n,links:l,connections:d,diagnostics:t.diagnostics,shaders:[...t.canvasObjectResolutionContext.shaderDefs.values()]}}function jt(e){return e.objectType==="isometric"&&e.isometric!==void 0}function Zs(e){return Ks(fo(e))}var Xt=String.raw`rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z][\w-]*`;function Oh(e){let t=e.match(/^gradient\(\s*([-\d.]+)\s*,\s*(.*)\)\s*$/);if(!t)return;let r=[],n=new RegExp(`(${Xt})\\s+([-\\d.]+)%`,"g");for(let o of t[2].matchAll(n))r.push({color:o[1],position:Number(o[2])});return{type:"gradient",angle:Number(t[1]),stops:r}}function Bh(e){let t=e.match(/^mesh\(\s*(.*)\)\s*$/);if(!t)return;let r=[],n=new RegExp(`(${Xt})\\s+([-\\d.]+)\\s*,\\s*([-\\d.]+)`,"g"),o=0;for(let i of t[1].matchAll(n))r.push({id:`mp-${Date.now()}-${o++}`,color:i[1],x:Number(i[2]),y:Number(i[3])});return{type:"mesh",points:r}}function ae(e){if(!(e==null||e===""))return Oh(e)??Bh(e)??e}function Vr(e){if(!e)return;let t=e.match(/^ramp\(\s*(.*)\)\s*$/);if(!t)return;let r=[],n=new RegExp(`(${Xt})\\s+([-\\d.]+)`,"g");for(let o of t[1].matchAll(n))r.push({color:o[1],position:Number(o[2])});return{type:"ramp",stops:r}}function Ih(e,t,r){switch(t){case"color":e.color=r;break;case"opacity":e.opacity=Number(r);break;case"blur":e.blur=Number(r);break;case"angle":e.angle=Number(r);break;case"distance":e.distance=Number(r);break}}function pe(e){if(!e)return;if(e==="on")return{enabled:!0};let t=e.match(/^shadow\((.*)\)\s*$/);if(!t)return;let r={enabled:!0};for(let n of t[1].split(",")){let o=n.split(":");o.length===2&&Ih(r,o[0].trim(),o[1].trim())}return r}var y=e=>e===void 0?void 0:Number(e);function Gh(e){try{return JSON.parse(e)}catch{return}}function Be(e){if(e===void 0)return;let t=Gh(e);if(!Array.isArray(t))return;let r=t.filter(n=>typeof n=="number"&&Number.isFinite(n));return r.length===t.length?r:void 0}function $e(e){let t=ae(e);return typeof t=="string"?t:void 0}var Dh=/^(?:#[0-9a-f]{3,8}|rgba?\([\d.,%\s]+\)|[a-z][\w-]*)$/i;function se(e){return e&&Dh.test(e)?e:void 0}function Se(e,t,r){return t.includes(e)?e:r}var Wr=["normal","bold"],Qs=["normal","bold","100","200","300","400","500","600","700","800","900"],Js=["top","bottom","left","right"],xo=["none","arrow","filled_arrow"];function ft(e){let t=ae(e);return t===void 0||typeof t=="string"||t.type==="gradient"?t:void 0}var el=["left","center","right"],tl=["top","middle","bottom"],zr=["solid","dashed","dotted"],Yr=["straight","curved","orthogonal"];function le(e,t){return e!==void 0&&t.includes(e)?e:void 0}var rl=["solid","dashed","dotted","double"],So=["none","arrow","filled_arrow","circle","filled_circle","diamond","filled_diamond","bar","triangle","one","zero_one","many","one_many","zero_many"];function _h(e){let t=e?.match(/^image\(\s*([^,)]+?)\s*(?:,\s*(.+?))?\s*\)$/);return t?{url:t[1],overlay:t[2]}:void 0}function Fh(e){return e==="bottom"||e==="bottomLeft"||e==="bottomRight"||e==="left"||e==="right"?e:"top"}function Hh(e){return e==="dashed"||e==="dotted"?e:"solid"}function Vh(e){return{axisX:e.chart?.axisX??{min:0,max:4,step:1},axisY:e.chart?.axisY??{min:0,max:500,step:100},series:(e.chart?.series??[]).map(t=>({...t,color:ae(t.color),colors:t.colors?.map(r=>r===null?null:ae(r)??null),strokeWidth:t.strokeWidth})),rules:(e.chart?.rules??[]).map(t=>({id:t.id,at:t.at,text:t.text,color:t.color,strokeWidth:t.strokeWidth,dash:t.dash}))}}function Wh(e){let t=_h(e.fill);return{fillColor:t?"#111418":ae(e.fill)??"#ffffff",fillImage:t,strokeColor:$e(e.stroke)??"#475569",strokeWidth:y(e.strokeWidth)??1,cornerRadius:y(e.cornerRadius)??12,shadowStyle:pe(e.shadow)}}function zh(e){return{gridColor:e.gridColor??"#e2e8f0",gridWidth:y(e.gridWidth)??1,gridShape:e.gridShape==="circle"?"circle":"rect",gridLineStyle:Hh(e.gridLineStyle),gridRoundedCorners:e.gridRoundedCorners==="true",gridAxes:e.gridAxes==="x"||e.gridAxes==="y"?e.gridAxes:void 0,showGrid:e.showGrid!=="false"}}function Yh(e){return{axisLabelColor:e.axisLabelColor,axisLineWidth:y(e.axisLineWidth),axisLineColor:e.axisLineColor,axisLineStyle:e.axisLineStyle==="dashed"||e.axisLineStyle==="dotted"?e.axisLineStyle:void 0,tickLength:y(e.tickLength),axisFontSize:y(e.axisFontSize),axisFontFamily:e.axisFontFamily,showValueAxis:e.showValueAxis!=="false",categoryAlign:e.categoryAlign==="left"||e.categoryAlign==="inside"?e.categoryAlign:void 0,showAxisLabels:e.showAxisLabels!=="false"}}function Uh(e){return{textColor:e.textColor??"#0f172a",titleSize:y(e.titleSize),titleWeight:e.titleWeight==="normal"?"normal":void 0,titleColor:e.titleColor,fontSize:y(e.fontSize)??12,fontFamily:e.fontFamily??"Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"}}function jh(e){return{legendColor:e.legendColor,showLegend:e.showLegend==="true",legendPosition:Fh(e.legendPosition)}}function nl(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,...Vh(e),...Wh(t),...zh(t),...Yh(t),...Uh(t),...jh(t),order:e.order,sourceIndex:e.sourceIndex}}function ol(e,t){return{categories:e?.categories,barCornerRadius:e?.barCornerRadius,barBorderColor:ae(e?.barBorderColor),barBorderWidth:e?.barBorderWidth,barGroupGap:e?.barGroupGap,barGap:e?.barGap,barGlow:e?.barGlow,barSegments:y(t.barSegments),barSegmentGap:y(t.barSegmentGap),barSegmentSnap:t.barSegmentSnap==="false"?!1:void 0,barGlassBlur:y(t.barGlassBlur),barGlassSaturation:y(t.barGlassSaturation),barGlassTint:t.barGlassTint,barThickness:y(t.barThickness),orientation:e?.orientation,barTrack:t.barTrack==="true",barRoundedBottom:t.barRoundedBottom==="true",barLabelMaxOnly:t.barLabelMaxOnly==="true",barTrackColor:t.barTrackColor,barTrackHatch:t.barTrackHatch==="true",barTrackHatchColor:t.barTrackHatchColor,barTrackHatchAngle:y(t.barTrackHatchAngle),barTrackHatchSpacing:y(t.barTrackHatchSpacing),barTrackHatchWidth:y(t.barTrackHatchWidth),stacked:e?.stacked??"true",showBarLabels:t.showBarLabels==="true",barLabelPosition:t.barLabelPosition==="inside"||t.barLabelPosition==="center"||t.barLabelPosition==="axis"?t.barLabelPosition:void 0,barLabelFontSize:y(t.barLabelFontSize),barLabelFontFamily:t.barLabelFontFamily,barLabelFontWeight:t.barLabelFontWeight==="bold"?"bold":void 0,barLabelColor:t.barLabelColor,barLabelPill:t.barLabelPill==="true",barLabelPillColor:t.barLabelPillColor,barLabelBorderColor:t.barLabelBorderColor,barLabelBorderWidth:y(t.barLabelBorderWidth),barLabelFormat:t.barLabelFormat}}function il(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,lineTension:e?.lineTension,lineWidth:y(t.lineWidth),lineGlow:y(t.lineGlow),pointSize:y(t.pointSize),pointFill:t.pointFill,pointStrokeWidth:y(t.pointStrokeWidth),highlightPoints:e?.highlightPoints,highlightSize:y(t.highlightSize),highlightColor:t.highlightColor,highlightGuide:t.highlightGuide==="true",highlightLabels:t.highlightLabels==="true",highlightLabelColor:t.highlightLabelColor,highlightLabelFormat:t.highlightLabelFormat}}function al(e,t){return{categories:e?.categories,pointSize:y(t.pointSize),pointOpacity:y(t.pointOpacity),pointStrokeWidth:y(t.pointStrokeWidth),pointStrokeColor:t.pointStrokeColor}}function sl(e,t){return{boxWidth:e?.boxWidth,orientation:e?.orientation,barCornerRadius:e?.barCornerRadius,showBoxplotPoints:e?.showBoxplotPoints,barBorderColor:e?.barBorderColor,barBorderWidth:e?.barBorderWidth,boxWhiskerWidth:y(t.boxWhiskerWidth),boxMedianWidth:y(t.boxMedianWidth),boxMedianColor:t.boxMedianColor,boxWhiskerColor:t.boxWhiskerColor,boxCapSize:y(t.boxCapSize),boxPointSize:y(t.boxPointSize),boxPointOpacity:y(t.boxPointOpacity),boxJitter:y(t.boxJitter)}}function ll(e){return{scale:Vr(e?.scale),interpolate:e?.interpolate,idwPower:e?.idwPower,isolines:e?.isolines}}function dl(e,t){return{categories:e?.categories,zones:e?.zones,cellGap:e?.cellGap,showValues:e?.showValues,squareCells:e?.squareCells,barCornerRadius:e?.barCornerRadius,cellShape:t.cellShape==="circle"?"circle":t.cellShape==="square"?"square":void 0,cellStrokeColor:t.cellStrokeColor,cellStrokeWidth:y(t.cellStrokeWidth),cellValueSize:y(t.cellValueSize),cellValueColor:t.cellValueColor}}function cl(e,t){return{hexRadius:e?.hexRadius,scale:Vr(e?.scale),hexGap:y(t.hexGap),hexStrokeWidth:y(t.hexStrokeWidth),hexStrokeColor:t.hexStrokeColor,hexMinOpacity:y(t.hexMinOpacity)}}function ul(e,t){return{categories:e?.categories,barCornerRadius:e?.barCornerRadius,mekkoVaryHeight:e?.mekkoVaryHeight,tileGradient:e?.tileGradient,showColumnBackdrop:e?.showColumnBackdrop,mekkoColumnGap:y(t.mekkoColumnGap),mekkoSegmentGap:y(t.mekkoSegmentGap),mekkoRoundAll:t.mekkoRoundAll===void 0?void 0:String(t.mekkoRoundAll)!=="false",mekkoSegmentStrokeColor:t.mekkoSegmentStrokeColor,mekkoSegmentStrokeWidth:y(t.mekkoSegmentStrokeWidth),mekkoLabelSize:y(t.mekkoLabelSize),mekkoValueSize:y(t.mekkoValueSize),mekkoTextColor:t.mekkoTextColor,showMekkoTotals:t.showMekkoTotals===void 0?void 0:String(t.showMekkoTotals)!=="false",mekkoValueFormat:t.mekkoValueFormat==="percent"?"percent":t.mekkoValueFormat==="value"?"value":void 0}}function ml(e,t){return{innerRadius:e?.innerRadius,pieCornerRadius:e?.pieCornerRadius,pieSliceGap:e?.pieSliceGap,pieStartAngle:y(t.pieStartAngle),pieSweep:y(t.pieSweep),pieExplode:y(t.pieExplode),pieGlow:y(t.pieGlow),pieStroke:t.pieStroke,pieStrokeWidth:y(t.pieStrokeWidth),pieLabelPosition:t.pieLabelPosition==="inside"||t.pieLabelPosition==="outside"?t.pieLabelPosition:void 0,pieLabelContent:t.pieLabelContent==="percent"||t.pieLabelContent==="name"||t.pieLabelContent==="inline"?t.pieLabelContent:void 0,pieLabelColor:t.pieLabelColor,pieCenterText:t.pieCenterText,pieCenterSize:y(t.pieCenterSize),pieCenterColor:t.pieCenterColor}}function pl(e,t){return{innerRadius:e?.innerRadius,pieCornerRadius:e?.pieCornerRadius,pieSliceGap:e?.pieSliceGap,pieStartAngle:y(t.pieStartAngle),pieStroke:t.pieStroke,pieStrokeWidth:y(t.pieStrokeWidth),polarTrackOpacity:y(t.polarTrackOpacity),polarRings:t.polarRings===void 0?void 0:String(t.polarRings)!=="false",polarTrackStroke:t.polarTrackStroke,polarTrackStrokeWidth:y(t.polarTrackStrokeWidth),polarTrackDash:t.polarTrackDash,polarValueSize:y(t.polarValueSize),polarNameSize:y(t.polarNameSize),polarValueFirst:t.polarValueFirst===void 0?void 0:String(t.polarValueFirst)!=="false",polarOutsideLabels:t.polarOutsideLabels===void 0?void 0:String(t.polarOutsideLabels)!=="false"}}function fl(e){return{radarStrokeWidth:y(e.radarStrokeWidth),radarPointSize:y(e.radarPointSize),radarTension:y(e.radarTension),radarSpokes:e.radarSpokes===void 0?void 0:String(e.radarSpokes)!=="false"}}function hl(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,...fl(t)}}function gl(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,...fl(t)}}function bl(e,t){return{ringThickness:e?.ringThickness,ringGap:e?.ringGap,ringTrackOpacity:y(t.ringTrackOpacity),ringCap:t.ringCap==="butt"?"butt":t.ringCap==="round"?"round":void 0,ringStartAngle:y(t.ringStartAngle),ringSweep:y(t.ringSweep)}}function yl(e,t){return{zones:e?.zones,barCornerRadius:e?.barCornerRadius,labelPosition:e?.labelPosition,labelOrientation:e?.labelOrientation,labelColor:e?.labelColor,linkGradient:e?.linkGradient,sankeyNodeWidth:y(t.sankeyNodeWidth),sankeyNodeGap:y(t.sankeyNodeGap),sankeyLinkOpacity:y(t.sankeyLinkOpacity),sankeyLinkCurve:y(t.sankeyLinkCurve),sankeyLabelSize:y(t.sankeyLabelSize)}}function xl(e,t){return{zones:e?.zones,cellGap:e?.cellGap,barCornerRadius:e?.barCornerRadius,headerColor:e?.headerColor,tileGradient:e?.tileGradient,tileStrokeColor:t.tileStrokeColor,tileStrokeWidth:y(t.tileStrokeWidth),tileLabelSize:y(t.tileLabelSize),tileValueSize:y(t.tileValueSize),tileTextColor:t.tileTextColor,tileLabelPadding:y(t.tileLabelPadding),showTileValues:t.showTileValues===void 0?void 0:String(t.showTileValues)!=="false",headerHeight:y(t.headerHeight)}}function Sl(e,t){return{categories:e?.categories,zones:e?.zones,orientation:e?.orientation,connectPoints:e?.connectPoints,reverseComparison:e?.reverseComparison,customConnectorWidth:y(t.customConnectorWidth),customConnectorOpacity:y(t.customConnectorOpacity),customConnectorDash:t.customConnectorDash,customBeforeFill:t.customBeforeFill,customBeforeStroke:t.customBeforeStroke,customBeforeStrokeWidth:y(t.customBeforeStrokeWidth),customLabelSize:y(t.customLabelSize),customLabelColor:t.customLabelColor}}function Cl(e){let t=nl(e),r=e.chart,n=e.props,o=r?.chartType??"bar";switch(o){case"bar":return K(t,o,ol(r,n));case"line":return K(t,o,il(r,n));case"scatter":return K(t,o,al(r,n));case"boxplot":return K(t,o,sl(r,n));case"field":return K(t,o,ll(r));case"heatmap":return K(t,o,dl(r,n));case"hexbin":return K(t,o,cl(r,n));case"mekko":return K(t,o,ul(r,n));case"pie":return K(t,o,ml(r,n));case"polarArea":return K(t,o,pl(r,n));case"radar":return K(t,o,hl(r,n));case"radial":return K(t,o,gl(r,n));case"radialBar":return K(t,o,bl(r,n));case"sankey":return K(t,o,yl(r,n));case"treemap":return K(t,o,xl(r,n));case"custom":return K(t,o,Sl(r,n))}}function K(e,t,r){return{...e,chartType:t,config:r}}function Xh(e,t){let r=Number(t);if(t===void 0||t===""||!Number.isFinite(r))return e.default;let n=e.min===void 0?r:Math.max(e.min,r);return e.max===void 0?n:Math.min(e.max,n)}function qh(e,t){switch(e.type){case"number":return Xh(e,t);case"boolean":return t===void 0?e.default:t==="true";case"color":return se(t)??e.default;case"enum":return t!==void 0&&e.options.includes(t)?t:e.default;case"string":return t??e.default}}function Kh(e,t){let r={};for(let[n,o]of Object.entries(e?.properties??{}))r[n]=qh(o,t[n]);return r}function Zh(e,t){if(!e)return"";if(e.type==="boolean")return t==="true";if(e.type==="number"){let r=Number(t);return Number.isFinite(r)?r:e.default}return t}function Rl(e){let t=lt(e.component.type);return{id:e.id,type:e.component.type,value:t?Zh(t.value,e.component.value):e.component.value,disabled:e.props.disabled==="true",label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,properties:Kh(t,e.props)}}var Qh=/^[\w\s,'"-]+$/;function Co(e){return e&&Qh.test(e)?e:void 0}var Jh=/^(?:[1-9]00|normal|bold)$/;function eg(e){return e==="plain"||e==="flip"?e:void 0}function tg(e){return e==="roll"||e==="fade"?e:void 0}function rg(e){let t=Number(e);return e!==void 0&&Number.isFinite(t)&&t>0?t:void 0}function Ro(e){return e&&Jh.test(e)?e:void 0}var ng=["ticks","major","radius","length","thickness","round","start","sweep","intensity"],og=["color","accent"];function ig(e){let t=e.props,r={};for(let n of ng){let o=Number(t[n]);t[n]!==void 0&&Number.isFinite(o)&&(r[n]=o)}for(let n of og){let o=se(t[n]);o&&(r[n]=o)}return{id:e.id,type:"tickScale",value:e.component.value,max:e.component.max,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,parameters:r,labels:t.labels==="true"?{size:Number.isFinite(Number(t.labelSize))&&t.labelSize!==void 0?Number(t.labelSize):void 0,color:se(t.labelColor),offset:Number.isFinite(Number(t.labelOffset))&&t.labelOffset!==void 0?Number(t.labelOffset):void 0,weight:Ro(t.labelWeight),fontFamily:Co(t.labelFont)}:void 0}}var ag=["ticks","major","length","thickness","round","dent","spread","inset","line","gap","intensity"],sg=["color","accent","glow"],lg={color:"#8f95c4",accent:"#d9f270",glow:"#3ddc84"},dg=["core","peak"];function cg(e){let t=e.props,r={};for(let n of ag){let o=Number(t[n]);t[n]!==void 0&&Number.isFinite(o)&&(r[n]=o)}for(let n of sg)r[n]=se(t[n])??lg[n];for(let n of dg){let o=se(t[n]);o&&(r[n]=o)}return r.axis=t.axis==="horizontal"?"horizontal":"vertical",t.knob&&(r.knob=t.knob),{id:e.id,type:"ruler",value:e.component.value,min:e.component.min,max:e.component.max,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,parameters:r,labels:t.labels==="true"?{size:Number.isFinite(Number(t.labelSize))&&t.labelSize!==void 0?Number(t.labelSize):void 0,color:se(t.labelColor),offset:Number.isFinite(Number(t.labelOffset))&&t.labelOffset!==void 0?Number(t.labelOffset):void 0,weight:Ro(t.labelWeight),fontFamily:Co(t.labelFont)}:void 0}}function ug(e){let t=e.props;return{id:e.id,type:"rollingNumber",value:e.component.value,digits:e.component.digits,duration:e.component.duration,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,style:{color:se(t.color),surface:se(t.surface),divider:se(t.divider),labelColor:se(t.labelColor),fontFamily:Co(t.fontFamily),variant:eg(t.variant),motion:tg(t.motion),fontWeight:Ro(t.fontWeight),fontSize:rg(t.fontSize)}}}var mg={rollingNumber:ug,tickScale:ig,ruler:cg};function kl(e){let t=e.component.type;return ze(t)?mg[t](e):Rl(e)}function wl(e){let t=e.props;return{id:e.id,fromId:e.fromId,toId:e.toId,fromFace:e.fromFace,toFace:e.toFace,order:e.order,sourceIndex:e.sourceIndex,style:{pathType:le(t.route,Yr)??"straight",color:ft(t.stroke),strokeWidth:y(t.strokeWidth),strokeStyle:le(t.strokeStyle,zr),opacity:t.opacity!==void 0?y(t.opacity):void 0}}}function vl(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,fillColor:t.fill??"rgba(155, 66, 223, 0.05)",strokeColor:t.stroke??"#9b42df",strokeWidth:y(t.strokeWidth)??2,cornerRadius:y(t.cornerRadius)??12,textColor:t.textColor??"#ffffff",fontSize:y(t.fontSize)??14,fontWeight:Se(t.fontWeight,Wr,"bold"),fontFamily:t.fontFamily,dash:Be(t.dash),showLabel:t.showLabel!=="false",labelPosition:Se(t.labelPosition,Js,"top"),shadow:t.shadow!=="false",order:e.order,sourceIndex:e.sourceIndex}}function Pl(e){let t=e.props,r=pe(t.shadow);return{id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,depth:e.isometric.depth,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,text:e.text,icon:e.isometric.icon,fill:$e(t.fill)??"#f8fafc",strokeColor:$e(t.stroke)??"#111827",strokeWidth:y(t.strokeWidth)??1,cornerRadius:y(t.cornerRadius)??8,hasShadow:r?.enabled??!1,shadowStyle:r,labelOffsetX:y(t.labelOffsetX)??0,labelOffsetY:y(t.labelOffsetY)??0,labelBackground:$e(t.labelBackground),parentFrameId:e.parentFrameId}}function Ll(e){let t=e.props;return{id:e.id,fromId:e.fromId,toId:e.toId,text:e.text??"",showText:t.showText!=="false",weight:y(t.weight),showWeight:t.showWeight!=="false",style:{pathType:le(t.route,Yr),color:ft(t.stroke),strokeWidth:y(t.strokeWidth),strokeStyle:le(t.strokeStyle,zr),opacity:t.opacity!==void 0?y(t.opacity):void 0,fontSize:y(t.fontSize),fontFamily:t.fontFamily,startLabel:t.startLabel,endLabel:t.endLabel,shadow:pe(t.shadow)},startMarker:le(t.markerStart,So),endMarker:le(t.markerEnd,So),segmentOffsets:e.segments,fromPoint:e.fromPort?{kind:"port",port:e.fromPort}:e.fromSide?{kind:"side",side:e.fromSide,offset:e.fromFraction}:void 0,toPoint:e.toPort?{kind:"port",port:e.toPort}:e.toSide?{kind:"side",side:e.toSide,offset:e.toFraction}:void 0,order:e.order,sourceIndex:e.sourceIndex}}function Tl(e){let t=e.props;return{id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,points:e.path?.points??[],value:e.path?.value,tension:e.path?.tension??0,startMarker:Se(e.path?.startMarker,xo,"none"),endMarker:Se(e.path?.endMarker,xo,"none"),closed:e.path?.closed??!1,strokeColor:$e(t.stroke)??"#7c3aed",strokeWidth:y(t.strokeWidth)??2,dash:Be(t.dash)??[],opacity:y(t.opacity)??1,fillColor:$e(t.fill)??"transparent",order:e.order,sourceIndex:e.sourceIndex}}function pg(e){return e||"rectangle"}function $l(e,t){let r=e.props,n=e.kind==="text";return{id:e.id,type:"shape",text:e.text??null,shapeType:pg(e.shapeType),symbol:e.symbol,x:e.x,y:e.y,width:e.width,height:e.height,w:e.width,h:e.height,rotation:e.rotation??0,fillColor:ae(r.fill??(n?"none":void 0)),strokeColor:ft(r.stroke??(n?"none":void 0)),isText:n||void 0,strokeWidth:y(r.strokeWidth),textColor:r.textColor,fontSize:y(r.fontSize),fontWeight:r.fontWeight===void 0?void 0:Se(r.fontWeight,Qs,"normal"),letterSpacing:y(r.letterSpacing),lineHeight:y(r.lineHeight),fontFamily:r.fontFamily,textAlign:le(r.textAlign,el),textVerticalAlign:le(r.verticalAlign,tl),cornerRadius:y(r.cornerRadius),shadowStyle:pe(r.shadow),dash:Be(r.dash),strokeStyle:le(r.strokeStyle,rl),opacity:y(r.opacity),parentFrameId:e.parentFrameId,order:e.order,sourceIndex:e.sourceIndex,shader:r.shader?t.get(r.shader):void 0}}function Ml(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,orientation:e.swimlane?.orientation??"horizontal",lanes:e.swimlane?.lanes??[],fillColor:t.fill??"rgba(107, 114, 128, 0.05)",strokeColor:t.stroke??"#6b7280",strokeWidth:y(t.strokeWidth)??2,cornerRadius:y(t.cornerRadius)??12,dash:Be(t.dash),shadowStyle:pe(t.shadow),textColor:t.textColor??"#6b7280",fontSize:y(t.fontSize)??22,fontWeight:Se(t.fontWeight,Wr,"bold"),fontFamily:t.fontFamily,showLaneLabels:t.showLaneLabels!=="false",order:e.order,sourceIndex:e.sourceIndex}}var ko=e=>[...e].sort((t,r)=>(t.order??0)-(r.order??0));function Al(e){let t=ko(e.canvasObjects),r=new Map((e.shaders??[]).map(n=>[n.name,n]));return{shapes:t.filter(n=>n.objectType==="shape").map(n=>$l(n,r)),frames:t.filter(n=>n.objectType==="frame").map(vl),swimlanes:t.filter(n=>n.objectType==="swimlane").map(Ml),isometricObjects:t.filter(jt).map(Pl),paths:t.filter(n=>n.objectType==="path").map(Tl),charts:t.filter(n=>n.objectType==="chart").map(Cl),components:t.filter(n=>n.objectType==="component"&&n.component!==void 0).map(kl),links:ko(e.links).map(Ll),connections:ko(e.connections).map(wl)}}var Ur=new Set(["top","front","right"]),El=Math.PI/6,ht=Math.cos(El),qt=Math.sin(El);function wo(e){let t=Math.max(0,e.width),r=Math.max(0,e.height),n=Math.max(0,e.depth);return{x:e.x,y:e.y,width:(t+n)*ht,height:r+(t+n)*qt}}function vo(e){let t=Math.max(0,e.width),r=Math.max(0,e.depth);return{x:e.x+(t+r)*ht/2,y:e.y+(t+r)*qt/2}}function fg(e){return{x:(e[0].x+e[1].x+e[2].x+e[3].x)/4,y:(e[0].y+e[1].y+e[2].y+e[3].y)/4}}function Po(e,t){return fg(Ye(e)[t])}function Ye(e){let{x:t,y:r}=e,n=Math.max(0,e.width),o=Math.max(0,e.height),i=Math.max(0,e.depth),a={x:t+i*ht,y:r},s={x:n*ht,y:n*qt},l={x:-i*ht,y:i*qt},d={x:0,y:o},c={x:a.x+s.x,y:a.y+s.y},u={x:a.x+l.x,y:a.y+l.y},p={x:a.x+s.x+l.x,y:a.y+s.y+l.y},f={x:a.x+d.x,y:a.y+d.y},g={x:p.x+d.x,y:p.y+d.y},b={x:u.x+d.x,y:u.y+d.y},x={x:c.x+d.x,y:c.y+d.y};return{top:[a,c,p,u],bottom:[f,x,g,b],front:[u,p,g,b],back:[a,c,x,f],right:[p,c,x,g],left:[a,u,b,f]}}function hg(e){return Math.max(0,Math.min(255,Math.round(e)))}function gg(e){let t=/^#?([0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return null;let r=Number.parseInt(t[1],16);return[r>>16&255,r>>8&255,r&255]}function bg(e,t,r){return`#${[e,t,r].map(n=>hg(n).toString(16).padStart(2,"0")).join("")}`}function Nl(e,t){let r=gg(e);if(!r)return e;let[n,o,i]=r;return bg(n*t,o*t,i*t)}function Lo(e){return{topFill:e,frontFill:Nl(e,.95),sideFill:Nl(e,.88)}}var yg=Math.PI/180;function xg(e,t){let r=t*yg,n=Math.cos(r),o=Math.sin(r);return{x:e.x*n-e.y*o,y:e.x*o+e.y*n}}function Sg(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function Ol(e,t){let r=Sg(e),n=e.rotation?xg(t,e.rotation):t;return{x:r.x+n.x,y:r.y+n.y}}function To(e,t){return Ol(e,{x:(t[0]-.5)*e.width,y:(t[1]-.5)*e.height})}function gt(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function $o(e,t){let r=gt(e),n=gt(t),o=Math.atan2(n.y-r.y,n.x-r.x);return o>=-Math.PI/4&&o<Math.PI/4?{x:e.x+e.width,y:r.y}:o>=Math.PI/4&&o<3*Math.PI/4?{x:r.x,y:e.y+e.height}:o>=-3*Math.PI/4&&o<-Math.PI/4?{x:r.x,y:e.y}:{x:e.x,y:r.y}}function Cg(e,t){let r=t.offset??.5;switch(t.side){case"top":return{x:e.x+e.width*r,y:e.y};case"right":return{x:e.x+e.width,y:e.y+e.height*r};case"bottom":return{x:e.x+e.width*r,y:e.y+e.height};case"left":return{x:e.x,y:e.y+e.height*r}}}function Rg(e,t){let r=e.symbol?.ports?.find(n=>n.name===t.port);return r?To({x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation??void 0},r.at):gt(e)}function Mo(e,t,r){let n=kg(e,t),o=wg(n.explicit);if(o)return o;let i=Bl(r,n.canvasObjectId);if(!i)return{x:0,y:0};let a=vg(i,n.explicit);return a||Pg(i,Bl(r,n.oppositeCanvasObjectId))}function kg(e,t){return t==="from"?{canvasObjectId:e.fromId,oppositeCanvasObjectId:e.toId,explicit:e.fromPoint}:{canvasObjectId:e.toId,oppositeCanvasObjectId:e.fromId,explicit:e.toPoint}}function wg(e){return e?.kind==="absolute"?{x:e.x,y:e.y}:null}function vg(e,t){return t?.kind==="port"?Rg(e,t):t?.kind==="side"?Cg(e,t):null}function Pg(e,t){return t?$o(e,t):gt(e)}function Bl(e,t){return e.find(r=>r.id===t)}var Lg=15e3;function Tg(e){return[...e.shapes,...e.frames,...e.swimlanes,...e.paths,...e.charts]}function Il(e,t){return e?Po(e,t):{x:0,y:0}}function Gl(e,t){let r=e.findIndex(o=>o.id===t);if(r<0)return;let n=e[r];return{rank:n.order??0,sequence:n.sourceIndex??Lg+r}}function $g(e,t){if(typeof t.order=="number")return{order:t.order,sourceIndex:t.sourceIndex};let r=[Ur.has(t.fromFace)?void 0:Gl(e,t.fromId),Ur.has(t.toFace)?void 0:Gl(e,t.toId)].filter(o=>o!==void 0);if(!r.length)return{sourceIndex:t.sourceIndex};let n=r.reduce((o,i)=>i.rank<o.rank||i.rank===o.rank&&i.sequence<o.sequence?i:o);return{order:n.rank,sourceIndex:n.sequence-.5}}function Mg(e){let t=new Map(e.isometricObjects.map(r=>[r.id,r]));return e.connections.map(r=>({link:{id:r.id,fromId:r.fromId,toId:r.toId,fromPoint:{kind:"face",face:r.fromFace},toPoint:{kind:"face",face:r.toFace},style:r.style,...$g(e.isometricObjects,r)},from:Il(t.get(r.fromId??""),r.fromFace),to:Il(t.get(r.toId??""),r.toFace),kind:"connection"}))}function Dl(e){let t=Tg(e);return[...e.links.map(n=>({link:n,from:Mo(n,"from",t),to:Mo(n,"to",t)})),...Mg(e)]}function Ao(e){let t=Zs(e),r=Al(t);return{shapes:r.shapes,frames:r.frames,swimlanes:r.swimlanes,isometricObjects:r.isometricObjects,paths:r.paths,charts:r.charts,components:r.components,links:Dl(r),diagnostics:t.diagnostics}}function Z(e,t,r,n,o,i){return e.forEach((a,s)=>{a.identity={role:t,id:r,...n?{kind:n}:{},...s===0?{primary:!0}:{},...s===0&&o?{label:o}:{},...s===0&&i?{parentFrameId:i}:{}}}),e}var Eo={minX:0,minY:0,maxX:100,maxY:100};function Q(e,t=0){return{minX:e.x-t,minY:e.y-t,maxX:e.x+e.width+t,maxY:e.y+e.height+t}}function B(e,t,r=0){return t?Ng(Ag(e,t),r):Q(e,r)}function Ag(e,t){let r=e.x+e.width/2,n=e.y+e.height/2,o=t*Math.PI/180,i=Math.cos(o),a=Math.sin(o);return Eg(e).map(s=>({x:r+(s.x-r)*i-(s.y-n)*a,y:n+(s.x-r)*a+(s.y-n)*i}))}function Eg(e){return[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}]}function Ng(e,t){return{minX:Math.min(...e.map(r=>r.x))-t,minY:Math.min(...e.map(r=>r.y))-t,maxX:Math.max(...e.map(r=>r.x))+t,maxY:Math.max(...e.map(r=>r.y))+t}}function fe(e){return e.points.length===0?"":e.points.length<3||e.tension<=0?Og(e):Bg(e)}function Og(e){let[t,...r]=e.points,n=r.map(o=>`L ${o.x} ${o.y}`).join(" ");return`M ${t.x} ${t.y} ${n}${e.closed?" Z":""}`}function Bg(e){let t=e.points[0],r=e.closed?e.points.length:e.points.length-1,n=[`M ${t.x} ${t.y}`];for(let o=0;o<r;o++)n.push(Ig(e,o));return e.closed&&n.push("Z"),n.join(" ")}function Ig(e,t){let r=jr(e,t-1),n=jr(e,t),o=jr(e,t+1),i=jr(e,t+2),a=e.tension/6,s={x:n.x+(o.x-r.x)*a,y:n.y+(o.y-r.y)*a},l={x:o.x-(i.x-n.x)*a,y:o.y-(i.y-n.y)*a};return`C ${s.x} ${s.y} ${l.x} ${l.y} ${o.x} ${o.y}`}function jr(e,t){return e.closed?e.points[(t+e.points.length)%e.points.length]:e.points[Math.max(0,Math.min(e.points.length-1,t))]}function m(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function _l(e){let t=e.order_key??e.orderKey;if(!t)return e.order??0;let r=0;for(let n=0;n<Math.min(t.length,8);n++)r=r*128+t.charCodeAt(n);return r}function Fl(e,t){return e.sourceIndex??t}function k(e,t,r){return e?typeof e=="string"?{kind:"solid",color:e}:e.type==="gradient"?{kind:"linear-gradient",angle:e.angle,stops:e.stops.map(n=>({offset:n.position,color:n.color}))}:e.points.length===0?(t.push({severity:"warning",code:"empty-mesh-gradient",ownerId:r,message:"Mesh gradient has no color points."}),{kind:"none"}):{kind:"mesh-gradient",points:e.points.map(n=>({x:n.x,y:n.y,color:n.color}))}:{kind:"none"}}var E="Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif";var Hl="#94a3b8";function Vl(e,t){let r=m(e.x,0),n=m(e.y,0),o=Math.max(0,m(e.width,120)),i=Math.max(0,m(e.height,60)),a=m(e.rotation,0),s=1e4+t,l=B({x:r,y:n,width:o,height:i},a,2);return[{id:`widget-${e.id}`,type:"rect",order:s,bounds:l,x:r,y:n,width:o,height:i,rx:6,rotation:a,style:{fill:{kind:"none"},stroke:{kind:"solid",color:Hl},strokeWidth:1,dash:[4,3]}},{id:`widget-${e.id}-label`,type:"text",order:s+.1,bounds:l,x:r,y:n,width:o,height:i,lines:[e.type],fontFamily:E,fontSize:12,fontWeight:"normal",color:Hl,align:"center",verticalAlign:"middle",lineHeight:1.3,rotation:a}]}function Wl(e,t){let r=m(e.x,0),n=m(e.y,0),o=Math.max(0,m(e.width,160)),i=Math.max(0,m(e.height,90)),a=m(e.rotation,0);return[{id:`widget-${e.id}`,type:"rolling-number",order:1e4+t,bounds:B({x:r,y:n,width:o,height:i},a,2),x:r,y:n,width:o,height:i,rotation:a,value:Wt(e.value,e.digits),digits:e.digits,duration:Math.max(0,m(e.duration,420)),label:e.label,componentStyle:mo(e.style)}]}function zl(e,t){let r=m(e.x,0),n=m(e.y,0),o=Math.max(0,m(e.width,200)),i=Math.max(0,m(e.height,200)),a=m(e.rotation,0),s=m(e.max,100)||100,l=Math.min(1,Math.max(0,m(Number(e.value),0)/s)),d=[{id:`widget-${e.id}`,type:"shader-surface",order:1e4+t,bounds:B({x:r,y:n,width:o,height:i},a,2),x:r,y:n,width:o,height:i,rotation:a,shader:{name:e.id,program:"tickScale",parameters:{...e.parameters,progress:l,max:s}},mask:"ellipse"}];return e.labels&&d.push(...Gg(e,{x:r,y:n,width:o,height:i,rotation:a,max:s,order:1e4+t})),d}function Gg(e,t){let r=e.labels??{},n=Math.max(1,m(Number(e.parameters.ticks),48)),o=Math.max(1,m(Number(e.parameters.major),5)),i=m(Number(e.parameters.start),225)*Math.PI/180,a=m(Number(e.parameters.sweep),270)*Math.PI/180,s=m(Number(e.parameters.radius),.9)+m(r.offset,.08),l=m(r.size,12),d=t.x+t.width/2,c=t.y+t.height/2,u=Math.floor(n/o),p=[];for(let f=0;f<=u;f+=1){let g=f*o/n,b=i-g*a,x=d+Math.cos(b)*s*(t.width/2),C=c-Math.sin(b)*s*(t.height/2),L={x:x-24,y:C-l,width:48,height:l*2};p.push({id:`widget-${e.id}-label-${f}`,type:"text",order:t.order+.1,bounds:B(L,0,2),...L,lines:[String(Math.round(t.max*g*10)/10)],fontFamily:r.fontFamily||E,fontSize:l,fontWeight:r.weight??"normal",color:r.color||"#8f95c4",align:"center",verticalAlign:"middle",lineHeight:1.3})}return p}function Yl(e,t){let r=m(e.x,0),n=m(e.y,0),o=Math.max(0,m(e.width,120)),i=Math.max(0,m(e.height,360)),a=m(e.rotation,0),s=m(e.min,0),l=m(e.max,100),d=l===s?0:Math.min(1,Math.max(0,(m(Number(e.value),s)-s)/(l-s))),c=[{id:`widget-${e.id}`,type:"shader-surface",order:1e4+t,bounds:B({x:r,y:n,width:o,height:i},a,2),x:r,y:n,width:o,height:i,rotation:a,shader:{name:e.id,program:"ruler",parameters:{...e.parameters,progress:d,min:s,max:l}},mask:"rect"}];return e.labels&&c.push(...Dg(e,{x:r,y:n,width:o,height:i,min:s,max:l,order:1e4+t})),c}function Dg(e,t){let r=e.labels??{},n=e.parameters.axis==="horizontal",o=Math.max(1,m(Number(e.parameters.ticks),50)),i=Math.max(1,m(Number(e.parameters.major),5)),a=m(Number(e.parameters.inset),.05)>0?m(Number(e.parameters.inset),.05):.05,s=m(Number(e.parameters.line),.7)>0?m(Number(e.parameters.line),.7):.7,l=n?t.height:t.width,d=(m(Number(e.parameters.length),.1)>0?m(Number(e.parameters.length),.1):.1)*l*1.9,c=s*l-.12*l-d-m(r.offset,.04)*l,u=m(r.size,12),p=Math.floor(o/i),f=[];for(let g=0;g<=p;g+=1){let b=g*i/o,x=a+(1-2*a)*b,C=n?{x:t.x+t.width*x-24,y:t.y+c-u*2,width:48,height:u*2}:{x:t.x+c-48,y:t.y+t.height*(1-x)-u,width:48,height:u*2};f.push({id:`widget-${e.id}-label-${g}`,type:"text",order:t.order+.1,bounds:B(C,0,2),...C,lines:[String(Math.round((t.min+(t.max-t.min)*b)*10)/10)],fontFamily:r.fontFamily||E,fontSize:u,fontWeight:r.weight??"normal",color:r.color||"#8f95c4",align:n?"center":"right",verticalAlign:"middle",lineHeight:1.3})}return f}var _g="#94a3b8";function Ie(e,t,r){return{x:m(e.x,0),y:m(e.y,0),width:Math.max(1,m(e.width,r.width)),height:Math.max(1,m(e.height,r.height)),order:1e4+t}}var X=(e,t)=>String(e.properties[t]??""),Ue=(e,t)=>Number(e.properties[t]??0),de=e=>({kind:"solid",color:e}),bt=(e,t)=>e.disabled?_g:t;function Ce(e,t){return e.disabled?{...t,opacity:.4}:t}function Ge(e,t){return{id:`widget-${e.id}`,type:"rect",order:t.order,bounds:B(t,0,0),x:t.x,y:t.y,width:t.width,height:t.height,style:{fill:{kind:"none"},stroke:{kind:"none"},pointerEvents:"all"}}}function yt(e,t,r,n,o){return{id:`widget-${e.id}-${t}`,type:"text",order:o,bounds:B(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,lines:[n.text],fontFamily:E,fontSize:n.fontSize,fontWeight:"600",color:n.color,align:n.align,verticalAlign:"middle",lineHeight:1.3}}function Ul(e,t){let r=Ie(e,t,{width:120,height:40}),n=[Ge(e,r),{id:`widget-${e.id}-face`,type:"rect",order:r.order+.1,bounds:B(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,rx:Math.min(Ue(e,"radius"),r.height/2),style:Ce(e,{fill:de(X(e,"accent")),stroke:{kind:"none"}})}];if(e.label){let o={text:e.label,color:bt(e,X(e,"textColor")),fontSize:Ue(e,"fontSize"),align:"center"};n.push(yt(e,"label",r,o,r.order+.2))}return n}var Fg=.22,Hg=.5,Vg=[[.24,.52],[.43,.72],[.78,.3]];function Wg(e){let[t,...r]=Vg.map(([n,o])=>`${e.x+n*e.width} ${e.y+o*e.width}`);return`M ${t} ${r.map(n=>`L ${n}`).join(" ")}`}function zg(e,t,r){let n=e.value===!0;return{id:`widget-${e.id}-box`,type:"rect",order:t.order+.1,bounds:B(r,0,2),...r,rx:r.width*Fg,style:Ce(e,{fill:n?de(X(e,"accent")):{kind:"none"},stroke:de(n?X(e,"accent"):X(e,"stroke")),strokeWidth:1.5})}}function Yg(e,t,r){return{id:`widget-${e.id}-check`,type:"path",order:t.order+.2,bounds:B(r,0,0),d:Wg(r),style:Ce(e,{fill:{kind:"none"},stroke:de(X(e,"check")),strokeWidth:Math.max(1.5,r.width*.12),lineCap:"round",lineJoin:"round"})}}function Ug(e,t,r,n){let o=r*Hg,i={x:t.x+r+o,y:t.y,width:Math.max(0,t.width-r-o),height:t.height},a={text:n,color:bt(e,X(e,"textColor")),fontSize:Ue(e,"fontSize"),align:"left"};return yt(e,"label",i,a,t.order+.3)}function jl(e,t){let r=Ie(e,t,{width:160,height:24}),n=Math.min(r.height,r.width),o={x:r.x,y:r.y+(r.height-n)/2,width:n,height:n};return[Ge(e,r),zg(e,r,o),...e.value===!0?[Yg(e,r,o)]:[],...e.label?[Ug(e,r,n,e.label)]:[]]}var jg=.12;function Xl(e,t){let r=Ie(e,t,{width:52,height:30}),n=e.value===!0,o=r.height*jg,i=r.height/2-o,a=n?r.x+r.width-r.height/2:r.x+r.height/2,s={x:a-i,y:r.y+o,width:i*2,height:i*2};return[Ge(e,r),{id:`widget-${e.id}-track`,type:"rect",order:r.order+.1,bounds:B(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,rx:r.height/2,style:Ce(e,{fill:de(X(e,n?"accent":"track")),stroke:{kind:"none"}})},{id:`widget-${e.id}-thumb`,type:"ellipse",order:r.order+.2,bounds:B(s,0,0),cx:a,cy:r.y+r.height/2,rx:i,ry:i,style:Ce(e,{fill:de(X(e,"thumb")),stroke:{kind:"none"},shadow:{color:"#000000",opacity:.25,blur:2,dx:0,dy:1}})}]}function ql(e,t){let r=Ie(e,t,{width:120,height:40}),n=e.value===!0,o=[Ge(e,r),{id:`widget-${e.id}-face`,type:"rect",order:r.order+.1,bounds:B(r,0,2),x:r.x,y:r.y,width:r.width,height:r.height,rx:r.height/2,style:Ce(e,{fill:n?de(X(e,"accent")):{kind:"none"},stroke:de(n?X(e,"accent"):X(e,"stroke")),strokeWidth:1.5})}];if(e.label){let i={text:e.label,color:bt(e,X(e,n?"onTextColor":"textColor")),fontSize:Ue(e,"fontSize"),align:"center"};o.push(yt(e,"label",r,i,r.order+.2))}return o}var je=e=>(t,r)=>e(t,r),Xg=new Map([["rollingNumber",je(Wl)],["tickScale",je(zl)],["ruler",je(Yl)],["switch",je(Xl)],["checkbox",je(jl)],["toggleButton",je(ql)],["button",je(Ul)]]);function Kl(e){return Xg.get(e)}function qg(e){let t=lt(e.type)?.role;if(!t||!Pr(e))return;let r=typeof e.value=="boolean"?e.value:void 0;return{role:t,...r===void 0?{}:t==="button"?{pressed:r}:{checked:r},...e.disabled?{disabled:!0}:{}}}function Kg(e){return e.label??(Pr(e)?e.id:String(e.value))}function No(e){return e.flatMap((t,r)=>{let n=Kl(t.type)??Vl,o=Z(n(t,r),"widget",t.id,t.type,Kg(t),t.parentFrameId),i=qg(t),a=o.find(s=>s.identity?.primary);return i&&a?.identity&&(a.identity.aria=i),o})}function Oo(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e} ${t+i} A ${i} ${i} 0 0 1 ${e+i} ${t} H ${e+r-i} A ${i} ${i} 0 0 1 ${e+r} ${t+i} V ${t+n} H ${e} Z`}function Bo(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e} ${t} H ${e+r} V ${t+n-i} A ${i} ${i} 0 0 1 ${e+r-i} ${t+n} H ${e+i} A ${i} ${i} 0 0 1 ${e} ${t+n-i} Z`}function Kt(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e} ${t+i} A ${i} ${i} 0 0 1 ${e+i} ${t} H ${e+r} V ${t+n} H ${e+i} A ${i} ${i} 0 0 1 ${e} ${t+n-i} Z`}function Zt(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e} ${t} H ${e+r-i} A ${i} ${i} 0 0 1 ${e+r} ${t+i} V ${t+n-i} A ${i} ${i} 0 0 1 ${e+r-i} ${t+n} H ${e} Z`}function Zl(e,t,r,n,o){let i=Math.max(0,Math.min(r,n)/2),a=Math.max(0,Math.min(o.topLeft,i)),s=Math.max(0,Math.min(o.topRight,i)),l=Math.max(0,Math.min(o.bottomRight,i)),d=Math.max(0,Math.min(o.bottomLeft,i)),c=(u,p,f)=>u>0?`A ${u} ${u} 0 0 1 ${p} ${f} `:"";return`M ${e+a} ${t} H ${e+r-s} `+c(s,e+r,t+s)+`V ${t+n-l} `+c(l,e+r-l,t+n)+`H ${e+d} `+c(d,e,t+n-d)+`V ${t+a} `+c(a,e+a,t)+"Z"}function Xr(e,t,r,n){return{fill:{kind:"solid",color:e||"transparent"},stroke:{kind:"solid",color:t},strokeWidth:r,dash:n?.length?n:void 0}}var qr=8;function Zg(e,t,r){let n=e.strokeWidth/2;switch(e.labelPosition){case"bottom":{let o=e.x-n,i=e.y+e.height;return{x:o,y:i,width:r,height:t,path:Bo(o,i,r,t,qr)}}case"left":{let o=e.x-t,i=e.y-n;return{x:o,y:i,width:t,height:r,path:Kt(o,i,t,r,qr)}}case"right":{let o=e.x+e.width,i=e.y-n;return{x:o,y:i,width:t,height:r,path:Zt(o,i,t,r,qr)}}default:{let o=e.x-n,i=e.y-t;return{x:o,y:i,width:r,height:t,path:Oo(o,i,r,t,qr)}}}}function Ql(e){let t=Math.max(32,e.fontSize+18),r=16,n=Math.max(120,e.title.length*e.fontSize*.62+r*2),o=Zg(e,t,n),i=Q(o,6),a=e.labelPosition==="left"||e.labelPosition==="right";return[{type:"path",id:e.tabId,order:e.order+.1,bounds:i,d:o.path,style:{fill:{kind:"solid",color:e.color},stroke:{kind:"none"}}},a?Jg(e,o,r,i):Qg(e,o,r,i)]}function Qg(e,t,r,n){return{type:"text",id:e.titleId,order:e.order+.2,bounds:n,x:t.x+r,y:t.y,width:Math.max(0,t.width-r*2),height:t.height,lines:[e.title],fontFamily:e.fontFamily??E,fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.textColor,align:"left",verticalAlign:"middle",lineHeight:1.2}}function Jg(e,t,r,n){let o=t.x+t.width/2,i=t.y+t.height/2,a=e.fontSize*1.4,s=Math.max(1,t.height-r*2);return{type:"text",id:e.titleId,order:e.order+.2,bounds:n,x:o-s/2,y:i-a/2,width:s,height:a,lines:[e.title],fontFamily:e.fontFamily??E,fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.textColor,align:"center",verticalAlign:"middle",lineHeight:1.2,rotation:-90,rotationCenter:{x:o,y:i}}}var eb={top:"topLeft",bottom:"bottomLeft",left:"topLeft",right:"topRight"};function tb(e,t,r){let n=e.shadow??!0,o=Q({x:e.x,y:e.y,width:e.width,height:e.height},e.strokeWidth+(n?20:4)),i={...Xr(e.fillColor,e.strokeColor,e.strokeWidth,e.dash),shadow:n?{color:"#000000",opacity:.2,blur:12,dx:0,dy:4}:void 0};if(!r)return{type:"rect",id:`frame-${e.id}`,order:t,bounds:o,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius,style:i};let a=eb[e.labelPosition??"top"],s={topLeft:e.cornerRadius,topRight:e.cornerRadius,bottomRight:e.cornerRadius,bottomLeft:e.cornerRadius,[a]:0};return{type:"path",id:`frame-${e.id}`,order:t,bounds:o,d:Zl(e.x,e.y,e.width,e.height,s),detail:{of:"frameBoundary",cornerRadius:e.cornerRadius,squareCorner:a},style:i}}function Jl(e,t){if(e.isVisible===!1)return[];let r=t,n=(e.showLabel??!0)&&!!e.title,o=[tb(e,r,n)];return n&&e.title&&o.push(...Ql({tabId:`frame-tab-${e.id}`,titleId:`frame-title-${e.id}`,x:e.x,y:e.y,width:e.width,height:e.height,cornerRadius:e.cornerRadius,strokeWidth:e.strokeWidth,title:e.title,color:e.strokeColor,textColor:e.textColor,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,labelPosition:e.labelPosition??"top",order:r})),o}function rb(e,t){let r=e*Math.PI/180;return{x:Math.cos(r)*t,y:Math.sin(r)*t}}function Kr(e){if(!e?.enabled)return;let t=rb(e.angle??45,e.distance??5);return{color:e.color??"#000000",opacity:e.opacity??.25,blur:e.blur??10,dx:t.x,dy:t.y}}function nb(e,t){let{swimlane:r}=e;return r.orientation==="horizontal"?`M ${r.x} ${r.y+t} H ${r.x+r.width}`:`M ${r.x+t} ${r.y} V ${r.y+r.height}`}function ed(e){return e.lanes.slice(1).map((t,r)=>({type:"path",id:`swimlane-divider-${e.swimlane.id}-${r}`,order:e.order+.1+r/100,bounds:e.bounds,d:nb(e,t.offset),style:{fill:{kind:"none"},stroke:{kind:"solid",color:e.swimlane.strokeColor},strokeWidth:e.swimlane.strokeWidth}}))}function td(e,t,r){return{type:"text",id:`swimlane-label-${e.swimlane.id}-${t.id}`,order:e.order+.5+r/100,lines:[t.label],fontFamily:e.swimlane.fontFamily??E,fontSize:e.swimlane.fontSize,fontWeight:e.swimlane.fontWeight,color:e.swimlane.textColor,lineHeight:1.2}}function ob(e,t,r){let n=e.swimlane.fontSize*1.4,o=e.swimlane.x+10+n/2,i=e.swimlane.y+t.offset+t.size/2,a=Math.max(20,t.size-16),s=o-a/2,l=i-n/2;return{...td(e,t,r),bounds:B({x:s,y:l,width:a,height:n},-90,12),x:s,y:l,width:a,height:n,align:"center",verticalAlign:"middle",rotation:-90,rotationCenter:{x:o,y:i}}}function ib(e,t,r){return{...td(e,t,r),bounds:e.bounds,x:e.swimlane.x+t.offset+8,y:e.swimlane.y+8,width:Math.max(0,t.size-16),height:Math.max(0,e.swimlane.height-16),align:"left",verticalAlign:"top"}}function rd(e){if(!e.swimlane.showLaneLabels)return[];let t=e.swimlane.orientation==="horizontal"?ob:ib;return e.lanes.map((r,n)=>t(e,r,n))}function ab(e){let t=e.orientation==="horizontal"?e.height:e.width,r=e.lanes.reduce((n,o)=>n+o.size,0);return r<=0||t<=0?e.lanes:e.lanes.map(n=>({...n,size:n.size*(t/r)}))}function sb(e){let t=0;return ab(e).map(r=>{let n={...r,offset:t};return t+=r.size,n})}function nd(e,t){return{swimlane:e,order:5e3+t,bounds:Q({x:e.x,y:e.y,width:e.width,height:e.height},e.strokeWidth+4),lanes:sb(e)}}function od(e,t){if(e.isVisible===!1)return[];let r=nd(e,t);return[{type:"rect",id:`swimlane-${e.id}`,order:r.order,bounds:r.bounds,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius,style:{...Xr(e.fillColor,e.strokeColor,e.strokeWidth,e.dash),shadow:Kr(e.shadowStyle)}},...ed(r),...rd(r)]}function id(e){return[...e.frames.flatMap((t,r)=>Z(Jl(t,r),"frame",t.id,void 0,t.title??void 0)),...e.swimlanes.flatMap((t,r)=>Z(od(t,r),"swimlane",t.id))]}function Io(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function ad(e,t,r){let n=Io(e,t);if(n===0)return e;let o=r/n;return{x:e.x+(t.x-e.x)*o,y:e.y+(t.y-e.y)*o}}function lb(e,t,r,n){let o=Math.max(0,Math.min(n,Io(t,e)/2,Io(t,r)/2));return{vertex:t,start:ad(t,e,o),end:ad(t,r,o)}}function Zr(e,t){if(e.length<3)return"";let r=a=>typeof t=="number"?t:t[a]??0;if(e.every((a,s)=>r(s)<=0)){let[a,...s]=e;return`M ${a.x} ${a.y} ${s.map(l=>`L ${l.x} ${l.y}`).join(" ")} Z`}let n=e.map((a,s)=>lb(e[(s-1+e.length)%e.length],a,e[(s+1)%e.length],r(s))),o=[`M ${n[0].end.x} ${n[0].end.y}`];for(let a=1;a<n.length;a++){let s=n[a];o.push(`L ${s.start.x} ${s.start.y}`,`Q ${s.vertex.x} ${s.vertex.y} ${s.end.x} ${s.end.y}`)}let i=n[0];return o.push(`L ${i.start.x} ${i.start.y}`,`Q ${i.vertex.x} ${i.vertex.y} ${i.end.x} ${i.end.y}`,"Z"),o.join(" ")}function db(e,t){let r=Math.max(0,m(e.strokeWidth,1)),n=m(e.rotation,0),o=wo(e),i={x:o.x+o.width/2,y:o.y+o.height/2};return{object:e,index:t,order:15e3+t,rotation:n,rotationCenter:i,box:o,strokeWidth:r,common:{type:"path",bounds:B(o,n,r+2),rotation:n,rotationCenter:i,style:{stroke:{kind:"solid",color:e.strokeColor??"#111827"},strokeWidth:r,lineJoin:"round"}}}}function cb(e,t){let{object:r,index:n,rotation:o,rotationCenter:i}=e;if(!r.hasShadow)return;let a=Math.max(0,r.height),s=.6+Math.min(1,a/150)*.7,l=a+m(r.shadowStyle?.distance,0),d=t.top.map(b=>({x:b.x,y:b.y+l})),c={x:d.reduce((b,x)=>b+x.x,0)/d.length,y:d.reduce((b,x)=>b+x.y,0)/d.length},u=1.3,p=d.map(b=>({x:c.x+(b.x-c.x)*u,y:c.y+(b.y-c.y)*u})),f=p.map(b=>b.x),g=p.map(b=>b.y);return{type:"path",id:`isometric-${r.id}-ground-shadow`,order:14e3+n,bounds:{minX:Math.min(...f),minY:Math.min(...g),maxX:Math.max(...f),maxY:Math.max(...g)},d:Zr(p,0),rotation:o,rotationCenter:i,style:{fill:{kind:"solid",color:r.shadowStyle?.color??"#000000"},stroke:{kind:"none"},opacity:Math.min(1,(r.shadowStyle?.opacity??.18)*s),blur:m(r.shadowStyle?.blur,8),pointerEvents:"none"}}}function ub(e,t,r){let{object:n,order:o,common:i}=e,a={...i.style,stroke:{kind:"none"}},s=Lo(n.fill??"#f8fafc"),l={prop:"style.fill",propKind:"color",propSolidOnly:!0},d=(c,u,p,f)=>({...i,id:`isometric-${n.id}-${c}`,order:o+u,d:Zr(p,0),style:{...a,fill:{kind:"solid",color:f},clip:r},...l});return[d("top",0,t.top,s.topFill),d("front",.1,t.front,s.frontFill),d("side",.2,t.right,s.sideFill)]}function mb(e,t,r){let{object:n,order:o,common:i,strokeWidth:a}=e;return{...i,id:`isometric-${n.id}-seams`,order:o+.22,d:`M ${t.top[3].x} ${t.top[3].y} L ${t.top[2].x} ${t.top[2].y} L ${t.top[1].x} ${t.top[1].y} M ${t.top[2].x} ${t.top[2].y} L ${t.front[2].x} ${t.front[2].y}`,style:{...i.style,fill:{kind:"none"},stroke:{kind:"solid",color:"#cbd5e1"},strokeWidth:Math.min(a,1),clip:r}}}function pb(e,t,r){let{object:n,order:o,common:i,box:a}=e;return{...i,id:`isometric-${n.id}-hull`,order:o+.24,d:t,detail:{of:"isometricGeometry",width:Math.max(0,n.width),height:Math.max(0,n.height),depth:Math.max(0,n.depth),cornerRadius:r,bounds:a,labelOffsetX:m(n.labelOffsetX,0),labelOffsetY:m(n.labelOffsetY,0)},style:{...i.style,fill:{kind:"none"}}}}var Go=20,fb=12,hb=6,Qr=3,gb=6.5;function bb(e){let{object:t}=e,r=vo(t),n=r.y-fb+m(t.labelOffsetY,0);return{anchor:r,centerX:r.x+m(t.labelOffsetX,0),topY:n-Go,bottomY:n}}function yb(e,t,r){let{object:n,order:o,rotation:i,rotationCenter:a,box:s}=e,{centerX:l,topY:d,bottomY:c}=t;return{type:"text",id:`isometric-${n.id}-label`,order:o+.3,bounds:{minX:l-s.width/2,minY:d,maxX:l+s.width/2,maxY:c},x:l-s.width/2,y:d,width:s.width,height:Go,lines:[r],fontFamily:E,fontSize:12,fontWeight:"normal",color:"#111827",align:"center",verticalAlign:"middle",lineHeight:1.2,rotation:i,rotationCenter:a,mark:"isometric-label"}}function xb(e,t){let{object:r,order:n,rotation:o,rotationCenter:i}=e,{anchor:a,centerX:s,bottomY:l}=t;return{type:"path",id:`isometric-${r.id}-label-guide`,order:n+.25,bounds:{minX:Math.min(a.x,s),minY:Math.min(a.y,l),maxX:Math.max(a.x,s),maxY:Math.max(a.y,l)},d:`M ${a.x} ${a.y} L ${s} ${l}`,rotation:o,rotationCenter:i,style:{fill:{kind:"none"},stroke:{kind:"solid",color:"#cbd5e1"},strokeWidth:1,lineCap:"round",pointerEvents:"none"}}}function Sb(e,t,r,n){let{object:o,order:i,rotation:a}=e,{centerX:s,topY:l,bottomY:d}=t,c=Math.max(24,r.length*gb+hb*2);return{type:"rect",id:`isometric-${o.id}-label-background`,order:i+.28,x:s-c/2,y:l-Qr,width:c,height:Go+Qr*2,rx:4,bounds:{minX:s-c/2,minY:l-Qr,maxX:s+c/2,maxY:d+Qr},rotation:a,mark:"isometric-label",style:{fill:{kind:"solid",color:n},stroke:{kind:"none"}}}}function Cb(e,t){let r=bb(e),n=yb(e,r,t),o=xb(e,r),i=e.object.labelBackground;return i?[o,Sb(e,r,t,i),n]:[o,n]}function Rb(e,t){let r=db(e,t),n=Ye(e),o=Math.max(0,m(e.cornerRadius,8)),i=[n.top[0],n.top[1],n.right[2],n.front[2],n.front[3],n.top[3]],a=Zr(i,o),s={type:"path",d:a},l=cb(r,n),d=mb(r,n,s),c=pb(r,a,o),u=ub(r,n,s),p=l?[c,...u,l,d]:[c,...u,d];return e.text?[...p,...Cb(r,e.text)]:p}function sd(e){return e.flatMap((t,r)=>Z(Rb(t,r),"isometric",t.id,"isometric",t.text??"Isometric object",t.parentFrameId))}function kb(e,t){let r=t==="start"?0:e.length-2,n=t==="start"?2:e.length-4,o=e[r],i=e[r+1],a=e[n]-o,s=e[n+1]-i,l=Math.hypot(a,s)||1,d=a/l,c=s/l;return{x:o+d*20-c*13,y:i+c*20+d*13}}function ld(e,t,r){let n=(t==="start"?e.link.style?.startLabel:e.link.style?.endLabel)?.trim();if(!n)return[];let o=m(e.link.style?.fontSize,10),i=kb(e.points,t),a=90;return[{type:"text",id:`link-${t}-label-${e.link.id}`,order:e.order+.55+r*.01,bounds:e.bounds,x:i.x-a/2,y:i.y-o,width:a,height:o*2,lines:[n],fontFamily:e.link.style?.fontFamily??E,fontSize:o,fontWeight:"normal",color:e.color,align:"center",verticalAlign:"middle",lineHeight:1.4}]}function dd(e){return[...ld(e,"start",0),...ld(e,"end",1)]}function cd(e){return e.label.visible?[{type:"text",id:`link-text-${e.link.id}`,order:e.order+.5,bounds:e.bounds,x:e.midpoint.x-e.label.width/2,y:e.midpoint.y-e.label.fontSize,width:e.label.width,height:e.label.fontSize*2,lines:e.label.lines,fontFamily:e.link.style?.fontFamily??E,fontSize:e.label.fontSize,fontWeight:"normal",color:e.color,align:"center",verticalAlign:"middle",lineHeight:1.4}]:[]}var Do=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16),a:t[4]===void 0?1:parseInt(t[4],16)/255}:{r:255,g:255,b:255,a:1}},ud=(e,t,r,n)=>{let o=a=>{let s=Math.max(0,Math.min(255,Math.round(a))).toString(16);return s.length===1?`0${s}`:s},i=n===void 0||n>=1?"":o(n*255);return`#${o(e)}${o(t)}${o(r)}${i}`};function wb(e,t,r){let n=Do(e),o=Do(t),i=n.a??1,a=o.a??1;return ud(Math.round(n.r+(o.r-n.r)*r),Math.round(n.g+(o.g-n.g)*r),Math.round(n.b+(o.b-n.b)*r),i+(a-i)*r)}function Qt(e,t){let r=[...e].sort((i,a)=>i.position-a.position),n=r[0],o=r[r.length-1];if(t<=n.position)return n.color;if(t>=o.position)return o.color;for(let i=0;i<r.length-1;i++){let a=r[i],s=r[i+1];if(t>=a.position&&t<=s.position){let l=s.position-a.position,d=l===0?0:(t-a.position)/l;return wb(a.color,s.color,d)}}return o.color}function md(e){if(e){if(typeof e=="string")return e;if(e.type==="gradient")return e.stops?.[0]?.color;if(e.type==="solid")return e.color}}var pd=(e,t)=>{switch(t){case"dashed":return[e*8,e*4];case"dotted":return[e*2,e*3];default:return}};function Re(e,t,r,n){let o=Math.max(1,Math.floor(t/Math.max(1,r*.58))),i=n?(s,l)=>n.measure(s,!1)+n.spaceWidth+n.measure(l,!1)<=t:(s,l)=>`${s} ${l}`.length<=o,a=[];for(let s of e.split(`
|
|
12
|
-
`)){let l=s.split(/\s+/).filter(Boolean);if(!l.length){a.push("");continue}let d="";for(let c of l)d?i(d,c)?d+=` ${c}`:(a.push(d),d=c):d=c;a.push(d)}return a}function Jr(e,t,r,n){if(Me(e,r,n)<=t)return e;let o=e.length;for(;o>1&&Me(`${e.slice(0,o)}\u2026`,r,n)>t;)o-=1;return`${e.slice(0,o)}\u2026`}function Me(e,t,r){return e.length*t*(r?.64:.58)}function fd(e){return{measure:(t,r)=>Me(t,e,r),spaceWidth:e*.58}}var Xe=(e,t,r)=>({x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r});function _o(e,t,r,n,o){let i=1-o;return{x:i*i*i*e.x+3*i*i*o*t.x+3*i*o*o*r.x+o*o*o*n.x,y:i*i*i*e.y+3*i*i*o*t.y+3*i*o*o*r.y+o*o*o*n.y}}function Fo(e,t,r,n,o){let i=Xe(e,t,o),a=Xe(t,r,o),s=Xe(r,n,o),l=Xe(i,a,o),d=Xe(a,s,o),c=Xe(l,d,o);return{left:[e,i,l,c],right:[c,d,s,n]}}function en(e,t){let r=e.length-2;if(t<=0)return{point:{x:e[0],y:e[1]},segmentIndex:0};let n=0;for(let o=0;o<r;o+=2){let i={x:e[o],y:e[o+1]},a={x:e[o+2],y:e[o+3]},s=Math.hypot(a.x-i.x,a.y-i.y);if(n+s>=t){let l=s===0?0:(t-n)/s;return{point:Xe(i,a,l),segmentIndex:o}}n+=s}return{point:{x:e[r],y:e[r+1]},segmentIndex:r}}function tn(e){let t=0;for(let r=0;r<e.length-2;r+=2)t+=Math.hypot(e[r+2]-e[r],e[r+3]-e[r+1]);return t}function hd(e,t,r,n,o=40){let i=0,a=e;for(let s=1;s<=o;s++){let l=_o(e,t,r,n,s/o);i+=Math.hypot(l.x-a.x,l.y-a.y),a=l}return i}var xt=40;function vb(e){let t=[0],r=e[0];for(let n=1;n<=xt;n++){let o=_o(...e,n/xt);t.push(t[n-1]+Math.hypot(o.x-r.x,o.y-r.y)),r=o}return t}function gd(e,t){let r=e[xt];if(t<=0)return 0;if(t>=r)return 1;for(let n=1;n<=xt;n++)if(e[n]>=t){let o=(t-e[n-1])/(e[n]-e[n-1]||1);return(n-1+o)/xt}return 1}function Pb(e,t,r){let[n,o,i,a]=e,s=.75*(o.x-n.x)+1.5*(i.x-o.x)+.75*(a.x-i.x),l=.75*(o.y-n.y)+1.5*(i.y-o.y)+.75*(a.y-i.y),d=Math.hypot(s,l),c=d===0?1:Math.abs(s)/d,u=d===0?0:Math.abs(l)/d;return Math.min(t.halfWidth*c+t.halfHeight*u,r)}function bd(e,t){if(e.length<8)return null;let r=Lb(e),n=vb(r),o=n[xt];if(o===0)return null;let i=o/2,a=Math.max(0,i-t.minimumVisibleStub),s=Pb(r,t,a),l=gd(n,i-s),d=gd(n,i+s);return{before:Tb(r,l),after:$b(r,d),bezier:!0}}function Lb(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}function Tb(e,t){return t<=.01?null:Fo(...e,t).left.flatMap(r=>[r.x,r.y])}function $b(e,t){return t>=.99?null:Fo(...e,t).right.flatMap(r=>[r.x,r.y])}function yd(e,t){if(e.length<4)return null;let r=tn(e);if(r===0)return null;let n=Mb(e,r,t);return{before:Eb(e,n.beforeLength),after:Nb(e,n.afterLength,r),bezier:!1}}function Mb(e,t,r){let n=t/2,o=en(e,n),i={x:e[o.segmentIndex],y:e[o.segmentIndex+1]},a={x:e[o.segmentIndex+2],y:e[o.segmentIndex+3]},s=Ab(i,a,r,n);return{beforeLength:n-s,afterLength:n+s}}function Ab(e,t,r,n){let o=Math.hypot(t.x-e.x,t.y-e.y),i=o===0?1:Math.abs(t.x-e.x)/o,a=o===0?0:Math.abs(t.y-e.y)/o,s=r.halfWidth*i+r.halfHeight*a;return Math.min(s,Math.max(0,n-r.minimumVisibleStub))}function Eb(e,t){if(t<=.5)return null;let r=en(e,t);return[...e.slice(0,r.segmentIndex+2),r.point.x,r.point.y]}function Nb(e,t,r){if(t>=r-.5)return null;let n=en(e,t);return[n.point.x,n.point.y,...e.slice(n.segmentIndex+2)]}var xd=3,Ob=10;function Bb(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}function Ho(e,t){return t?hd(...Bb(e)):tn(e)}function Sd(e,t,r,n){let o={halfWidth:(r+xd)/2,halfHeight:(n+xd)/2,minimumVisibleStub:Ob};return t==="curved"?bd(e,o):yd(e,o)}function Vo(e,t,r,n){let o=Sd(e,t,r,n);if(!o||!o.before&&!o.after)return null;let i=Ho(e,o.bezier),a=o.before?Ho(o.before,o.bezier):0,s=o.after?Ho(o.after,o.bezier):0,l=Math.max(0,i-a-s);return l<=0?null:{dashBefore:a,gapLength:l}}function Ib(e){let[t,r,n,o,i,a,s,l]=e,d=.5,c=1-d;return{x:c*c*c*t+3*c*c*d*n+3*c*d*d*i+d*d*d*s,y:c*c*c*r+3*c*c*d*o+3*c*d*d*a+d*d*d*l}}function Gb(e,t){let r=0,n=[];for(let a=0;a<e.length-2;a+=2){let s={x:e[a],y:e[a+1]},l={x:e[a+2],y:e[a+3]},d=Math.sqrt((l.x-s.x)**2+(l.y-s.y)**2);r+=d,n.push({start:s,end:l,length:d})}let o=r/2,i=0;for(let a of n){if(i+a.length>=o){let s=(o-i)/a.length;return{x:a.start.x+s*(a.end.x-a.start.x),y:a.start.y+s*(a.end.y-a.start.y)}}i+=a.length}return t}function Wo(e,t,r,n){if(t==="curved")return Ib(e);let o={x:(r.x+n.x)/2,y:(r.y+n.y)/2};return t==="orthogonal"?Gb(e,o):o}function St(e){switch(e){case"top":return[0,-1];case"right":return[1,0];case"bottom":return[0,1];case"left":return[-1,0]}}function Db(e,t,r,n,o){let i=o?.min??50,a=o?.max??240,s=o?.perpendicularScale??.9,l=t.x-e.x,d=t.y-e.y,c=Math.abs(l*r[0]+d*r[1]),u=Math.abs(l*n[0]+d*n[1]),p=Math.abs(l*r[1]-d*r[0]),f=Math.abs(l*n[1]-d*n[0]),g=r[0]===n[0]&&r[1]===n[1]||r[0]===-n[0]&&r[1]===-n[1],b=Math.max(i,Math.min(a,Math.max(c,p*s))),x=Math.max(i,Math.min(a,Math.max(u,f*s)));return g&&(b=Math.min(a,b+p*.75),x=Math.min(a,x+f*.75)),{fromDistance:b,toDistance:x}}function Cd(e,t,r,n,o){let i=St(r),a=St(n),{fromDistance:s,toDistance:l}=Db(e,t,i,a,o);return{p0:[e.x,e.y],p1:[e.x+i[0]*s,e.y+i[1]*s],p2:[t.x+a[0]*l,t.y+a[1]*l],p3:[t.x,t.y]}}function Rd(e,t,r,n){let{p0:o,p1:i,p2:a,p3:s}=Cd(e,t,r,n,{min:35,max:90,perpendicularScale:.5});return{points:[...o,...i,...a,...s],segments:[]}}function wd(e,t,r,n){let i=["top","bottom"].includes(r)&&["top","bottom"].includes(n),a=["left","right"].includes(r)&&["left","right"].includes(n);return i&&Math.abs(t.x-e.x)<6?[e,{...t,x:e.x}]:a&&Math.abs(t.y-e.y)<6?[e,{...t,y:e.y}]:[e,t]}function vd(e,t,r){return r?.toEdge?r.toEdge==="left"||r.toEdge==="right":r?.fromEdge?r.fromEdge==="left"||r.fromEdge==="right":Math.abs(t.x-e.x)>Math.abs(t.y-e.y)}function Pd(e,t,r,n,o){let i=40,a=40,s=o?0:1,l=o?t.x-e.x:t.y-e.y;if(r[s]!==0&&r[s]===-n[s]){let d=l*r[s];d>0&&d<i+a&&(i=d/2,a=d/2)}else if(r[s]===0){let d=l*-n[s];d>0&&d<a&&(a=d)}return[i,a]}function Ld(e){let{fromConnection:t,toConnection:r,to:n,horizontalFirst:o}=e,i=t.stub,a=r.stub,s=(i[0]+a[0])/2,l=(i[1]+a[1])/2,d=kd(t.side),c=kd(r.side);return d!==c?o?s=(i[0]-n.x)*r.normal[0]>=0?i[0]:a[0]:l=(i[1]-n.y)*r.normal[1]>=0?i[1]:a[1]:t.side===r.side&&(o?s=t.normal[0]<0?Math.min(i[0],a[0]):Math.max(i[0],a[0]):l=t.normal[1]<0?Math.min(i[1],a[1]):Math.max(i[1],a[1])),[s,l]}function kd(e){return e==="left"||e==="right"}function Td(e){let t=[];for(let r=0;r<e.length-2;r+=2)t.push({x:(e[r]+e[r+2])/2,y:(e[r+1]+e[r+3])/2});return t}function $d(e,t){let{from:r,to:n,fromConnection:o,toConnection:i,horizontalFirst:a}=e,s=o.stub,l=i.stub,d=[r.x,r.y,s[0],s[1]];return a?d.push(t[0],s[1],t[0],l[1]):d.push(s[0],t[1],l[0],t[1]),d.push(l[0],l[1],n.x,n.y),d}function Md(e,t,r){let n=e?["left","right"]:["top","bottom"];return[!n.includes(t),!n.includes(r)]}function Ad(e,t,r,n){let{from:o,to:i,fromConnection:a,toConnection:s,horizontalFirst:l}=e,d=a.stub,c=s.stub,u=n[0]&&r?.[1]||0,p=r?.[2]||0,f=n[1]&&r?.[3]||0;if(l){let C=d[1]+u,L=t[0]+p,v=c[1]+f;return[o.x,o.y,d[0],C,L,C,L,v,c[0],v,i.x,i.y]}let g=d[0]+u,b=t[1]+p,x=c[0]+f;return[o.x,o.y,g,d[1],g,b,x,b,x,c[1],i.x,i.y]}function Ed(e,t,r,n){let o=(e.length-2)/2;return t.map((i,a)=>{let s=a*2,l={x:e[s],y:e[s+1]},d={x:e[s+2],y:e[s+3]},c={x:(l.x+d.x)/2,y:(l.y+d.y)/2},u=a>0&&a<o-1,p=a===1?r:a===o-2?n:!0,f=Math.hypot(d.x-l.x,d.y-l.y)>=1;return{start:l,end:d,midpoint:c,originalMidpoint:i,isHorizontal:Math.abs(d.x-l.x)>Math.abs(d.y-l.y),canMove:u&&p&&f}})}function rn(e,t){if(e.length<6)return e;let r=Vb(e),n=[r[0]];for(let o=1;o<r.length-1;o++){let i=_b(r[o-1],r[o],r[o+1],t);n.push(...i?Hb(i):[r[o]])}return n.push(r[r.length-1]),n.flatMap(o=>[o.x,o.y])}function _b(e,t,r,n){let o={x:t.x-e.x,y:t.y-e.y},i={x:r.x-t.x,y:r.y-t.y},a=o.x===0||o.y===0,s=i.x===0||i.y===0,l=o.x===0&&i.x===0||o.y===0&&i.y===0;if(!a||!s||l)return null;let d=Math.min(n,Nd(o)*.4,Nd(i)*.4);if(d<=0)return null;let c=Od(o),u=Od(i),p=zo(t,c,-d),f=zo(t,u,d),g=zo(p,u,d),b=Math.atan2(p.y-g.y,p.x-g.x),x=Math.atan2(f.y-g.y,f.x-g.x);return{entry:p,exit:f,center:g,radius:d,startAngle:b,angleSweep:Fb(x-b)}}function zo(e,t,r){return{x:e.x+t.x*r,y:e.y+t.y*r}}function Nd(e){return Math.abs(e.x)+Math.abs(e.y)}function Od(e){return{x:e.x!==0?Math.sign(e.x):0,y:e.y!==0?Math.sign(e.y):0}}function Fb(e){return e>Math.PI?e-2*Math.PI:e<-Math.PI?e+2*Math.PI:e}function Hb(e){let t=[e.entry];for(let r=1;r<7;r++){let n=r/7,o=e.startAngle+e.angleSweep*n;t.push({x:e.center.x+Math.cos(o)*e.radius,y:e.center.y+Math.sin(o)*e.radius})}return t.push(e.exit),t}function Vb(e){let t=[];for(let r=0;r<e.length;r+=2)t.push({x:e[r],y:e[r+1]});return t}function Yo(e){let t=Wb(e),r=Ld(t),n=$d(t,r),o=Td(n),i=Md(t.horizontalFirst,e.fromSide,e.toSide),a=Ad(t,r,e.segmentOffsets,i),s=Ed(a,o,i[0],i[1]);return{points:rn(a,10),segments:s}}function Wb(e){let[t,r]=wd(e.from,e.to,e.fromSide,e.toSide),n=St(e.fromSide),o=St(e.toSide),i=vd(t,r,e.endpointEdges),[a,s]=Pd(t,r,n,o,i);return{from:t,to:r,fromConnection:Bd(t,e.fromSide,n,a),toConnection:Bd(r,e.toSide,o,s),horizontalFirst:i}}function Bd(e,t,r,n){return{side:t,normal:r,stub:[e.x+r[0]*n,e.y+r[1]*n]}}var Id=.5;function Gd(e,t,r){let n=[e,...t,r],o=[];for(let a of n)o.push(a.x,a.y);let i=[];for(let a=0;a<o.length-2;a+=2){let s={x:o[a],y:o[a+1]},l={x:o[a+2],y:o[a+3]},d={x:(s.x+l.x)/2,y:(s.y+l.y)/2};i.push({start:s,end:l,midpoint:d,originalMidpoint:d,isHorizontal:Math.abs(l.x-s.x)>Math.abs(l.y-s.y),canMove:!1})}return{points:rn(o,10),segments:i}}function Uo(e){return e.every(t=>{let r=Math.abs(t.end.x-t.start.x),n=Math.abs(t.end.y-t.start.y);return r<=Id||n<=Id})}function Dd(e,t,r,n,o){if(e.waypoints&&e.waypoints.length>0){let l=Gd(t,e.waypoints,r);if(Uo(l.segments))return l}let i={fromEdge:n,toEdge:o},a={from:t,to:r,fromSide:n,toSide:o,segmentOffsets:e.segmentOffsets,endpointEdges:i},s=Yo(a);return Uo(s.segments)?s:Yo({...a,segmentOffsets:void 0})}function _d(e,t){let r=Math.atan2(t.y-e.y,t.x-e.x);return r>=-Math.PI/4&&r<Math.PI/4?"right":r>=Math.PI/4&&r<3*Math.PI/4?"bottom":r>=-3*Math.PI/4&&r<-Math.PI/4?"top":"left"}function Fd(e,t,r){let n=e.fromPoint?.kind==="side"?e.fromPoint.side:_d(t,r),o=e.toPoint?.kind==="side"?e.toPoint.side:_d(r,t);return{fromSide:n,toSide:o}}function Hd(e,t){return{points:[e.x,e.y,t.x,t.y],segments:[]}}function Vd(e,t,r,n){let{fromSide:o,toSide:i}=Fd(e,t,r);return n==="curved"?Rd(t,r,o,i):n==="orthogonal"?Dd(e,t,r,o,i):Hd(t,r)}function zb(e,t){let r=e.filter((o,i)=>i%2===0),n=e.filter((o,i)=>i%2===1);return{minX:Math.min(...r)-t,minY:Math.min(...n)-t,maxX:Math.max(...r)+t,maxY:Math.max(...n)+t}}function Yb(e,t){let r=!!(e.showText&&e.text),n=m(e.style?.fontSize,10),o=Math.min(250,Math.max(n*2,(e.text?.length??0)*n*.65+10)),i=t?.(e.style?.fontFamily??E,n),a=r?Re(e.text??"",o,n,i):[];return{visible:r,fontSize:n,width:o,height:a.length*n*1.4,lines:a}}function Ub(e,t,r,n){let o=e.link,i=typeof o.style?.color=="object"&&o.style.color.type==="gradient"?{kind:"linear-gradient",angle:0,stops:o.style.color.stops.map(a=>({offset:a.position,color:a.color}))}:{kind:"solid",color:r};return{fill:{kind:"none"},stroke:i,strokeWidth:t,dash:n,lineCap:"round",lineJoin:"round",opacity:m(o.style?.opacity,1),shadow:Kr(o.style?.shadow)}}function Wd(e,t,r){let{link:n,from:o,to:i}=e,a=n.style?.pathType??"orthogonal",{points:s,segments:l}=Vd(n,o,i,a),d=m(n.style?.strokeWidth,2),c=md(n.style?.color)||"#64748b",u=Yb(n,r),p=pd(d,n.style?.strokeStyle??"solid"),f=u.visible&&!p?Vo(s,a,u.width,u.height):null,g=f?[f.dashBefore,f.gapLength,1e6]:p;return{link:n,pathType:a,points:s,segments:l,midpoint:Wo(s,a,o,i),strokeWidth:d,bounds:zb(s,d+14),color:c,order:2e4+t,style:Ub(e,d,c,g),label:u,hasLabelGap:!!f}}function jo(e,t){let r=t==="start"?e.startMarker:e.endMarker;if(r)return r;let n=e.style?.arrowDirection??"forward";return n==="bidirectional"||t==="start"&&n==="backward"||t==="end"&&n==="forward"?"arrow":"none"}function zd(e,t){if(e.length===0)return"";let r=[e[0].start,...e.map(s=>s.end)],n=r.filter((s,l)=>l===0||s.x!==r[l-1].x||s.y!==r[l-1].y),o=n.filter((s,l)=>{if(l===0||l===n.length-1)return!0;let d=n[l-1],c=n[l+1];return!(d.x===s.x&&s.x===c.x||d.y===s.y&&s.y===c.y)});if(o.length<2)return"";let i=`M ${o[0].x} ${o[0].y}`;for(let s=1;s<o.length-1;s++){let l=o[s-1],d=o[s],c=o[s+1],u=Math.hypot(d.x-l.x,d.y-l.y),p=Math.hypot(c.x-d.x,c.y-d.y);if(u===0||p===0){i+=` L ${d.x} ${d.y}`;continue}let f=Math.min(t,u*.4,p*.4),g={x:d.x+(l.x-d.x)/u*f,y:d.y+(l.y-d.y)/u*f},b={x:d.x+(c.x-d.x)/p*f,y:d.y+(c.y-d.y)/p*f};i+=` L ${g.x} ${g.y} Q ${d.x} ${d.y} ${b.x} ${b.y}`}let a=o[o.length-1];return`${i} L ${a.x} ${a.y}`}function jb(e){let t=`M ${e[0]} ${e[1]}`;for(let r=2;r<e.length;r+=2)t+=` L ${e[r]} ${e[r+1]}`;return t}function Xb(e,t,r,n){return e.length<4?"":t==="curved"&&e.length>=8?`M ${e[0]} ${e[1]} C ${e[2]} ${e[3]} ${e[4]} ${e[5]} ${e[6]} ${e[7]}`:t==="orthogonal"&&r.length>0?zd(r,Math.max(16,n*4)):jb(e)}var Ct=e=>Math.round(e*100)/100;function qb(e,t){if(!(e!=="orthogonal"||!t.some(r=>r.canMove)))return t.map(r=>({ax:Ct(r.start.x),ay:Ct(r.start.y),bx:Ct(r.end.x),by:Ct(r.end.y),ox:Ct(r.originalMidpoint.x),oy:Ct(r.originalMidpoint.y),movable:r.canMove}))}function Yd(e){let{link:t}=e;return{type:"path",id:`link-${t.id}`,order:e.order,bounds:e.bounds,d:Xb(e.points,e.pathType,e.segments,e.strokeWidth),style:e.style,markerStart:jo(t,"start"),markerEnd:jo(t,"end"),detail:{of:"link",fromId:t.fromId,toId:t.toId,route:e.pathType,fromSide:t.fromPoint?.kind==="side"?t.fromPoint.side:void 0,toSide:t.toPoint?.kind==="side"?t.toPoint.side:void 0,fromFace:t.fromPoint?.kind==="face"?t.fromPoint.face:void 0,toFace:t.toPoint?.kind==="face"?t.toPoint.face:void 0,labelGap:e.hasLabelGap,segments:qb(e.pathType,e.segments)}}}function Ud(e){let{link:t}=e;if(t.weight===void 0||t.weight===null||t.showWeight===!1)return[];let r=t.weight.toFixed(1),n=Math.max(30,r.length*8+12),o=16,i=e.midpoint.y+(e.label.visible?e.label.height/2+10:0);return[{type:"rect",id:`link-weight-badge-${t.id}`,order:e.order+.6,bounds:e.bounds,x:e.midpoint.x-n/2,y:i-o/2,width:n,height:o,rx:o/2,style:{fill:{kind:"solid",color:e.color},stroke:{kind:"none"},opacity:.92}},{type:"text",id:`link-weight-${t.id}`,order:e.order+.61,bounds:e.bounds,x:e.midpoint.x-n/2,y:i-o/2,width:n,height:o,lines:[r],fontFamily:"Arial, sans-serif",fontSize:10,fontWeight:"bold",color:"#ffffff",align:"center",verticalAlign:"middle",lineHeight:1}]}function Kb(e,t,r){if(e.link.isVisible===!1)return[];let n=Wd(e,t,r);return[Yd(n),...cd(n),...Ud(n),...dd(n)]}function jd(e,t){return e.flatMap((r,n)=>Z(Kb(r,n,t),"link",r.link.id,r.kind,r.link.text||`${r.link.fromId} \u2192 ${r.link.toId}`))}function Zb(e,t){if(e.isVisible===!1||e.points.length<2)return[];let r=m(e.strokeWidth,2),n=r+12,o={minX:Math.min(...e.points.map(s=>s.x))-n,minY:Math.min(...e.points.map(s=>s.y))-n,maxX:Math.max(...e.points.map(s=>s.x))+n,maxY:Math.max(...e.points.map(s=>s.y))+n},i=m(e.tension,0),a=e.closed===!0;return[{type:"path",id:`path-${e.id}`,order:3e4+t,bounds:o,d:fe({points:e.points,tension:i,closed:a}),markerStart:e.startMarker,markerEnd:e.endMarker,detail:{of:"pathGeometry",points:e.points.map(s=>[s.x,s.y]),tension:i,closed:a},style:{fill:e.closed?{kind:"solid",color:e.fillColor??"transparent"}:{kind:"none"},stroke:{kind:"solid",color:e.strokeColor??"#7c3aed"},strokeWidth:r,dash:e.dash?.length?e.dash:void 0,lineCap:"round",lineJoin:"round",opacity:m(e.opacity,1)}}]}function Xd(e){return e.flatMap((t,r)=>Z(Zb(t,r),"path",t.id,"path","Path"))}function Jt(e){return{id:e.id,order:e.order,bounds:e.bounds,rotation:e.rotation,style:e.style}}var Qb=[[30,64,24],[52,40,22],[86,32,28],[118,42,24],[132,64,24]],nn=Math.PI/2,Jb=4*nn,qd=Math.PI/2,ey=1e-9;function Xo([e,t,r],n){return[e+r*Math.cos(n),t+r*Math.sin(n)]}function Kd([e,t],r){return Math.atan2(r[1]-t,r[0]-e)}function Zd(e,t,r){let n=t[0]-e[0],o=t[1]-e[1],i=Math.hypot(n,o),a=(e[2]**2-t[2]**2+i**2)/(2*i),s=Math.sqrt(Math.max(0,e[2]**2-a**2)),l=e[0]+a*n/i,d=e[1]+a*o/i,c=[[l-s*o/i,d+s*n/i],[l+s*o/i,d-s*n/i]],u=p=>Math.hypot(p[0]-r[0],p[1]-r[1]);return u(c[0])>u(c[1])?c[0]:c[1]}function ty(e){let t=[e.reduce((r,n)=>r+n[0],0)/e.length,e.reduce((r,n)=>r+n[1],0)/e.length];return e.map((r,n)=>{let o=n===0?qd:Kd(r,Zd(e[n-1],r,t)),a=n===e.length-1?qd:Kd(r,Zd(r,e[n+1],t));for(;a<=o;)a+=Jb;return{lobe:r,from:o,to:a}})}function ry(e,t){let r=[];for(let n=Math.floor(e/nn)+1;n*nn<t-ey;n++)r.push(n*nn);return[...r,t]}function ny({lobe:e,from:t,to:r}){let n=Xo(e,t),o=[],i=t;for(let a of ry(t,r)){let s=1.3333333333333333*Math.tan((a-i)/4)*e[2],l=Xo(e,i),d=Xo(e,a);o.push([[l[0]-s*Math.sin(i),l[1]+s*Math.cos(i)],[d[0]+s*Math.sin(a),d[1]-s*Math.cos(a)],d]),i=a}return{start:n,curves:o}}function oy(){let e=ty(Qb).map(ny),t=e[0].start,r=e.flatMap(d=>d.curves),n=[t,...r.map(d=>d[2])],o=Math.min(...n.map(d=>d[0])),i=Math.max(...n.map(d=>d[0])),a=Math.min(...n.map(d=>d[1])),s=Math.max(...n.map(d=>d[1])),l=d=>[(d[0]-o)/(i-o),(d[1]-a)/(s-a)];return{start:l(t),curves:r.map(([d,c,u])=>[l(d),l(c),l(u)])}}var Qd=oy();function Jd(e,t,r,n){let o=([a,s])=>`${e+a*r} ${t+s*n}`,i=Qd.curves.map(([a,s,l])=>`C ${o(a)} ${o(s)} ${o(l)}`);return`M ${o(Qd.start)} ${i.join(" ")} Z`}function ec(e,t,r,n){let o=Math.min(n*.22,r*.2),i=r/2,a=e+i,s=e,l=e+r,d=t+o,c=t+n-o,u=`M ${s} ${d} C ${s} ${d+.5523*o} ${a-.5523*i} ${d+o} ${a} ${d+o} C ${a+.5523*i} ${d+o} ${l} ${d+.5523*o} ${l} ${d} C ${l} ${d-.5523*o} ${a+.5523*i} ${t} ${a} ${t} C ${a-.5523*i} ${t} ${s} ${d-.5523*o} ${s} ${d} Z`,p=`M ${s} ${d} L ${s} ${c} C ${s} ${c+.5523*o} ${a-.5523*i} ${t+n} ${a} ${t+n} C ${a+.5523*i} ${t+n} ${l} ${c+.5523*o} ${l} ${c} L ${l} ${d}`;return`${u} ${p}`}function tc(e,t,r,n){let o=Math.min(r/4,n/4.35),i=o,a=o*2,s=o*4.35,l=t+(n-s)/2;return{head:i,body:a,centerX:e+r/2,headCenterY:l+i,bottom:l+s}}function rc(e,t,r,n){let{body:o,centerX:i,bottom:a}=tc(e,t,r,n);return{x:i-o,y:a-o,width:o*2,height:o}}function nc(e,t,r,n){let{head:o,body:i,centerX:a,headCenterY:s,bottom:l}=tc(e,t,r,n),d=`M ${a} ${s-o} C ${a+.5523*o} ${s-o} ${a+o} ${s-.5523*o} ${a+o} ${s} C ${a+o} ${s+.5523*o} ${a+.5523*o} ${s+o} ${a} ${s+o} C ${a-.5523*o} ${s+o} ${a-o} ${s+.5523*o} ${a-o} ${s} C ${a-o} ${s-.5523*o} ${a-.5523*o} ${s-o} ${a} ${s-o} Z`,c=`M ${a-i} ${l} C ${a-i} ${l-.5523*i} ${a-.5523*i} ${l-i} ${a} ${l-i} C ${a+.5523*i} ${l-i} ${a+i} ${l-.5523*i} ${a+i} ${l} Z`;return`${d} ${c}`}var iy=e=>e.length<4?"":`M ${e[0]} ${e[1]} ${e.slice(2).reduce((t,r,n)=>t+(n%2?` ${r}`:` L ${r}`),"")} Z`,ay=.1,sy=Math.PI/6,ly=.25,dy=.15;function oc(e,t){return Math.min(e,t)/2}function ic(e,t,r,n,o){let i=(...a)=>iy(a);switch(e){case"diamond":return i(t+n/2,r,t+n,r+o/2,t+n/2,r+o,t,r+o/2);case"triangle":return i(t+n/2,r,t,r+o,t+n,r+o);case"parallelogram":return i(t+n*.15,r,t+n,r,t+n*.85,r+o,t,r+o);case"trapezoid":return i(t+n*.2,r,t+n*.8,r,t+n,r+o,t,r+o);case"hexagon":{let a=Math.min(n,o)/4;return i(t+a,r,t+n-a,r,t+n,r+o/2,t+n-a,r+o,t+a,r+o,t,r+o/2)}case"document":{let a=o*ay,s=r+o-a,l=n/4,d=a*sy;return`M ${t} ${r} L ${t+n} ${r} L ${t+n} ${s} C ${t+n-l/3} ${s-d} ${t+n-l*2/3} ${s-a} ${t+n-l} ${s-a} C ${t+n-l-l/3} ${s-a} ${t+n/2+l/3} ${s-d} ${t+n/2} ${s} C ${t+n/2-l/3} ${s+d} ${t+n/2-l*2/3} ${s+a} ${t+l} ${s+a} C ${t+l-l/3} ${s+a} ${t+l/3} ${s+d} ${t} ${s} Z`}case"note":{let a=Math.min(n,o)*ly;return`M ${t} ${r} L ${t+n-a} ${r} L ${t+n} ${r+a} L ${t+n} ${r+o} L ${t} ${r+o} Z M ${t+n} ${r+a} L ${t+n-a} ${r+a} L ${t+n-a} ${r}`}case"cloud":return Jd(t,r,n,o);case"cylinder":return ec(t,r,n,o);case"person":return nc(t,r,n,o);case"predefined_process":{let a=Math.min(n,o)*dy;return`M ${t} ${r} L ${t+n} ${r} L ${t+n} ${r+o} L ${t} ${r+o} Z M ${t+a} ${r} L ${t+a} ${r+o} M ${t+n-a} ${r} L ${t+n-a} ${r+o}`}default:return null}}function ce(e){let t=ic(e.shape.shapeType,e.x,e.y,e.width,e.height);return t?[{...Jt(e),type:"path",d:t,rotationCenter:e.rotationCenter}]:[]}function ac(e){return ce(e).map(t=>({...t,detail:{of:"declaredBounds",bounds:{x:e.x,y:e.y,width:e.width,height:e.height}}}))}function Rt(e){let t=e.shape.shapeType==="pill"?oc(e.width,e.height):e.shape.shapeType==="rounded_rectangle"?m(e.shape.cornerRadius,8):0;return[{...Jt(e),type:"rect",x:e.x,y:e.y,width:e.width,height:e.height,rx:t}]}function qo(e){return[{...Jt(e),type:"ellipse",cx:e.x+e.width/2,cy:e.y+e.height/2,rx:e.width/2,ry:e.height/2}]}function sc(e){if(!e.shape.symbol||e.shape.symbol.points.length<2)return Rt(e);let t=m(e.shape.symbol.tension,0),r=e.shape.symbol.points.map(([n,o])=>({x:e.x+n*e.width,y:e.y+o*e.height}));return[{...Jt(e),type:"path",d:fe({points:r,tension:t,closed:!0}),rotationCenter:e.rotationCenter,detail:{of:"symbolGeometry",points:e.shape.symbol.points,tension:t,declaredBounds:{x:e.x,y:e.y,width:e.width,height:e.height}}}]}var cy={cloud:ce,cylinder:ce,diamond:ce,document:ce,hexagon:ce,note:ce,oval:qo,circle:qo,parallelogram:ce,person:ac,pill:Rt,predefined_process:ce,rectangle:Rt,rounded_rectangle:Rt,symbol:sc,trapezoid:ce,triangle:ce};function er(e){return(cy[e.shape.shapeType]??Rt)(e)}var uy={container_rectangle:" (use 'rectangle' with strokeStyle: dashed)"},q={strokeColor:"#cbd5e1",strokeWidth:2,fillColor:"#ffffff",dash:[],strokeStyle:"solid",fontSize:14,fontWeight:"normal",textAlign:"center",textVerticalAlign:"middle",lineHeight:1.3,hasShadow:!1,opacity:1},lc={rectangle:q,rounded_rectangle:{...q,cornerRadius:8},triangle:{...q,rotation:0},diamond:{...q,rotation:0},hexagon:{...q,rotation:0},oval:{...q,rotation:0},circle:{...q,rotation:0},document:{...q,rotation:0},parallelogram:{...q,rotation:0},trapezoid:{...q,rotation:0},cylinder:{...q,rotation:0},note:{...q,rotation:0},cloud:{...q,rotation:0},predefined_process:{...q,rotation:0},pill:q,person:{...q,rotation:0},symbol:{...q,rotation:0}};function Ko(e,t){let r=lc[e.shapeType];return r||(t.push({severity:"warning",code:"unknown-shape-type",ownerId:e.id,message:`Unknown shapeType '${e.shapeType}'${uy[e.shapeType]??""}, falling back to rectangle defaults.`}),lc.rectangle)}function my(e,t){return e.strokeStyle==="dotted"?[.001,t*2]:e.strokeStyle==="dashed"?[t*4,t*2]:e.dash?.length?e.dash:void 0}function dc(e,t){let r=Ko(e,t),n=m(e.strokeWidth,r.strokeWidth),o=e.shadowStyle??(e.hasShadow?{enabled:!0,color:"#000000",opacity:.25,blur:10,angle:45,distance:5}:void 0),i=m(o?.angle,45)*Math.PI/180;return{fill:k(e.fillColor,t,e.id),stroke:k(e.strokeColor,t,e.id),strokeWidth:n,dash:my(e,n),lineCap:e.strokeStyle==="dotted"?"round":"butt",opacity:m(e.opacity,r.opacity),shadow:o?.enabled?{color:o.color??"#000000",opacity:m(o.opacity,.25),blur:m(o.blur,10),dx:Math.cos(i)*m(o.distance,5),dy:Math.sin(i)*m(o.distance,5)}:void 0}}var Zo=/\*\*([^*]+)\*\*/g;function cc(e){return/\*\*[^*]+\*\*/.test(e)}function py(e){let t=[],r=0;Zo.lastIndex=0;let n;for(;n=Zo.exec(e);)n.index>r&&t.push({text:e.slice(r,n.index),bold:!1}),n[1]&&t.push({text:n[1],bold:!0}),r=Zo.lastIndex;return r<e.length&&t.push({text:e.slice(r),bold:!1}),t.length?t:[{text:e,bold:!1}]}function fy(e){return e.split(`
|
|
13
|
-
`).map(py)}function hy(e){let t=[];for(let r of e)for(let n of r.text.split(/\s+/))n&&t.push({text:n,bold:r.bold});return t}function gy(e,t,r,n){let o=hy(e);if(!o.length)return[[]];let i=[],a=[],s=0;for(let l of o){let d=r(l.text,l.bold),c=a.length?n+d:d;a.length&&s+c>t?(i.push(a),a=[l],s=d):(a.push(l),s+=c)}return i.push(a),i}function uc(e,t,r,n){return fy(e).flatMap(o=>gy(o,Math.max(1,t),r,n))}function mc(e,t,r){let{shape:n,bounds:o,order:i,rotation:a,rotationCenter:s,x:l,y:d,width:c,height:u}=e;if(!n.text)return null;let p=m(n.fontSize,Ko(n,[]).fontSize),f=n.isText?0:Math.max(8,t*2),g=n.shapeType==="person"?rc(l,d,c,u):{x:l,y:d,width:c,height:u},b=Math.max(0,g.width-f*2),x=n.fontFamily||E,C=r?.(x,p),L={type:"text",id:`shape-text-${n.id}`,order:i+.5,bounds:o,x:g.x+f,y:g.y+f,width:b,height:Math.max(0,g.height-f*2),lines:Re(n.text,b,p,C),fontFamily:x,fontSize:p,fontWeight:n.fontWeight??"normal",letterSpacing:n.letterSpacing,color:n.textColor||"#111827",align:n.textAlign??"center",verticalAlign:n.textVerticalAlign??"middle",lineHeight:m(n.lineHeight,1.3),rotation:a,rotationCenter:s};if(cc(n.text)){let{measure:v,spaceWidth:M}=C??fd(p);L.richLines=uc(n.text,b,v,M)}return L}function by(e,t){let r=Math.max(0,e.width-2*t),n=Math.max(0,e.height-2*t),o={...e.style,fill:{kind:"none"},strokeWidth:Math.max(1,t/3),dash:void 0,shadow:void 0},i=er({...e,style:o});if(r<=0||n<=0)return i;let a={...e,x:e.x+t,y:e.y+t,width:r,height:n};return i.push(...er({...a,id:`${e.id}-fill`,style:{...e.style,stroke:{kind:"none"},strokeWidth:0,dash:void 0}}),...er({...a,id:`${e.id}-inner`,style:o})),i}function yy(e,t,r){let n=m(e.x,0),o=m(e.y,0),i=Math.max(0,m(e.width,100)),a=Math.max(0,m(e.height,100)),s=m(e.rotation,0),l=m(e.strokeWidth,2);return{strokeWidth:l,context:{shape:e,id:`shape-${e.id}`,order:1e4+t,bounds:B({x:n,y:o,width:i,height:a},s,l+(e.hasShadow?20:2)),rotation:s,rotationCenter:{x:n+i/2,y:o+a/2},style:dc(e,r),x:n,y:o,width:i,height:a}}}function xy(e){if(!(!e.shape.shader||e.shape.shapeType!=="circle"&&e.shape.shapeType!=="oval"))return{id:`${e.id}-shader`,type:"shader-surface",order:e.order,bounds:e.bounds,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,shader:e.shape.shader,mask:"ellipse",fillColor:e.style.fill?.kind==="solid"?e.style.fill.color:void 0}}function Sy(e,t,r,n){if(e.isVisible===!1)return[];let{context:o,strokeWidth:i}=yy(e,t,r),a=e.strokeStyle==="double"?by(o,i||1):er(o),s=xy(o);if(s){for(let d of a)(d.type==="ellipse"||d.type==="path"||d.type==="rect")&&(d.style={...d.style,pointerEvents:"all"});a.push(s)}let l=mc(o,i,n);return l&&a.push(l),a}function pc(e,t,r){return e.flatMap((n,o)=>Z(Sy(n,o,t,r),"shape",n.id,n.shapeType,n.text||n.shapeType,n.parentFrameId??void 0))}var $=["#7c3aed","#0ea5e9","#f97316","#10b981","#ec4899","#eab308"],z="#94a3b8",tr=[{label:"Low",color:"#ddd6fe"},{label:"Medium",color:"#a78bfa"},{label:"High",color:"#6d28d9"}],Qo=14;function T(e,t,r){return t.max===t.min?0:(e-t.min)/(t.max-t.min)*r}function _(e){if(!(e.step>0))return e.min===e.max?[e.min]:[e.min,e.max];let t=e.min<=e.max,r=t?e.step:-e.step,n=[];for(let o=e.min;(t?o<=e.max+1e-9:o>=e.max-1e-9)&&n.length<1e3;o+=r)n.push(Math.round(o*1e3)/1e3);return n}function rr(e){let t=[...e.thresholds??[]].filter(r=>r>e.min&&r<e.max).sort((r,n)=>r-n);return[e.min,...t,e.max]}function nr(e,t,r){let n=Math.max(0,t.length-1),o=r.slice(0,n).map((i,a)=>({position:t[a+1]??t[t.length-1],color:i.color??z}));return o.length?Qt(o,e):z}function ue(e){return Math.max(1,e.config?.categories?.length??0,...e.series.map(t=>t.values.length))}var me={padX:8,padY:3,charWidth:.58,lineHeight:1.2,gap:4};function Jo(e,t){return(t||"{value}").replace("{value}",String(Math.round(e*100)/100))}function ei(e,t,r){let n=r?me.padX:0,o=r?me.padY:0,i=t*me.lineHeight;return{width:e.length*t*me.charWidth+n*2,height:i+o*2,lineHeight:i,padX:n,padY:o}}function ti(e,t,r,n){let o=n/2;return`M ${e+o} ${t} H ${e+r-o} A ${o} ${o} 0 0 1 ${e+r-o} ${t+n} H ${e+o} A ${o} ${o} 0 0 1 ${e+o} ${t} Z`}function on(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e} ${t+i} Q ${e} ${t} ${e+i} ${t} H ${e+r-i} Q ${e+r} ${t} ${e+r} ${t+i} V ${t+n} H ${e} Z`}function ke(e,t,r,n,o){let i=Math.max(0,Math.min(o,r/2,n/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+n} H ${e} Z`:`M ${e+i} ${t} H ${e+r-i} Q ${e+r} ${t} ${e+r} ${t+i} V ${t+n-i} Q ${e+r} ${t+n} ${e+r-i} ${t+n} H ${e+i} Q ${e} ${t+n} ${e} ${t+n-i} V ${t+i} Q ${e} ${t} ${e+i} ${t} Z`}function qe(e,t,r,n,o,i){return i?ke(e,t,r,n,o):on(e,t,r,n,o)}function ri(e,t){if(e.length===1)return e[0];let r=(e.length-1)*t,n=Math.floor(r),o=Math.ceil(r);return n===o?e[n]:e[n]+(r-n)*(e[o]-e[n])}function ni(e){if(!e?.length)return null;let t=[...e].sort((r,n)=>r-n);return{min:t[0],q1:ri(t,.25),median:ri(t,.5),q3:ri(t,.75),max:t[t.length-1]}}function or(e){if(e?.[0]!=="#")return;let t=e.length===4?e.slice(1).split("").map(i=>parseInt(i+i,16)):[1,3,5].map(i=>parseInt(e.slice(i,i+2),16)),[r,n,o]=t;return[r,n,o].some(i=>Number.isNaN(i))?void 0:[r,n,o]}function oi(e,t){let r=or(e),n=Math.max(0,Math.min(1,t));if(!r)return n<=0?"transparent":e??"transparent";let[o,i,a]=r;return`rgba(${o}, ${i}, ${a}, ${n})`}function ii(e,t,r){let n=o=>Math.round(Math.max(0,Math.min(255,o))).toString(16).padStart(2,"0");return`#${n(e)}${n(t)}${n(r)}`}function sn(e,t,r){let n=e/255,o=t/255,i=r/255,a=Math.max(n,o,i),s=Math.min(n,o,i),l=(a+s)/2,d=a-s;if(d===0)return[0,0,l];let c=d/(1-Math.abs(2*l-1)),u;return a===n?u=(o-i)/d%6:a===o?u=(i-n)/d+2:u=(n-o)/d+4,u*=60,u<0&&(u+=360),[u,c,l]}function ai(e,t,r){let n=(1-Math.abs(2*r-1))*t,o=n*(1-Math.abs(e/60%2-1)),i=r-n/2,[a,s,l]=[0,0,0];return e<60?[a,s,l]=[n,o,0]:e<120?[a,s,l]=[o,n,0]:e<180?[a,s,l]=[0,n,o]:e<240?[a,s,l]=[0,o,n]:e<300?[a,s,l]=[o,0,n]:[a,s,l]=[n,0,o],[(a+i)*255,(s+i)*255,(l+i)*255]}function fc(e,t,r){let n=o=>{let i=o/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4};return .2126*n(e)+.7152*n(t)+.0722*n(r)}function Cy(e,t){let r=Math.max(e,t),n=Math.min(e,t);return(r+.05)/(n+.05)}var an=.35,hc=.08,gc=.22,bc=.78,yc=.92,Ry=3;function J(e){let t=or(e);if(!t)return"#0f172a";let[r,n,o]=t,i=(.299*r+.587*n+.114*o)/255>.6?"#0f172a":"#ffffff",[a,s,l]=sn(r,n,o);if(s===0)return i;let d=l>.5?Math.max(hc,Math.min(l-an,gc)):Math.min(yc,Math.max(l+an,bc)),c=ai(a,s,d);return Cy(fc(r,n,o),fc(...c))>=Ry?ii(...c):i}function kt(e,t){let r=or(e);if(!r)return t;let[n,o,i]=r,[a,s,l]=sn(n,o,i);if(s===0)return t;let d=l>.5?Math.max(hc,Math.min(l-an,gc)):Math.min(yc,Math.max(l+an,bc));return ii(...ai(a,s,d))}function ln(e){let t=or(e);return t?sn(...t)[2]>.5:!1}function De(e,t){let r=or(e);if(!r)return;let[n,o]=sn(...r);if(o!==0)return ii(...ai(n,o,t))}function N(e,t){return e?typeof e=="string"?e:e.type==="gradient"?e.stops[0]?.color??t:e.points[0]?.color??t:t}function ir(e,t){return Array.isArray(t)?[e-t[0],e+t[1]]:[e-t,e+t]}function ar(e){return{type:"path",id:e.id,order:e.order,bounds:e.bounds,d:ky(e.geometry),detail:{of:"chartValue",series:e.valueReference.seriesId,valueIndex:e.valueReference.valueIndex},style:{fill:{kind:"none"},stroke:{kind:"solid",color:e.color},strokeWidth:1}}}function ky(e){let{centerX:t,startY:r,endY:n}=e,o=t-5,i=t+5;return`M ${t} ${r} L ${t} ${n} M ${o} ${r} L ${i} ${r} M ${o} ${n} L ${i} ${n}`}function he(e){return Number.isInteger(e)?String(e):e.toFixed(2).replace(/\.?0+$/,"")}var cn=18,dn=e=>e.config;function ee(e){return e.chartType==="bar"&&dn(e)?.orientation==="horizontal"}function wt(e,t){let r=ue({series:e.series,config:dn(e)}),n=t.height/r,o=Math.min(Math.max(0,m(dn(e)?.barGroupGap,8)),Math.max(0,n-1)),i=e.categoryAlign==="left"?cn:0,a=Math.max(1,n-o-i),s=m(dn(e)?.barThickness,0),l=s>0?Math.min(a,s):a;return{count:r,slotHeight:n,groupGap:o,labelRow:i,barsHeight:l,offset:(a-l)/2}}function vt(e,t,r){return t.y+r*e.slotHeight+e.groupGap/2+e.offset}function Pt(e,t){return t>0?fe({points:e,tension:t,closed:!1}):`M ${e.map((n,o)=>`${o?"L":""} ${n.x} ${n.y}`).join(" ")}`}function un(e,t,r,n){let o=Math.max(1,Math.min(e,t)/2-4),i=Math.max(0,Math.min(r??0,o-1)),a=Math.max(0,Math.min(n??0,o/2)),s=Math.max(1,o-a),l=i>0?Math.min(i+a,s-1):0;return{outerRadius:s,innerRadius:l,cornerRadius:a}}function Y(e,t,r){return{x:e.centerX+r*Math.cos(t),y:e.centerY+r*Math.sin(t)}}function sr(e,t,r,n){let o=t.x-e.x,i=t.y-e.y,a=0,s=1;if(Math.abs(o)>1e-6){let d=(t.x-r-e.x)/o,c=(t.x+r-e.x)/o;a=Math.max(a,Math.min(d,c)),s=Math.min(s,Math.max(d,c))}if(Math.abs(i)>1e-6){let d=(t.y-n-e.y)/i,c=(t.y+n-e.y)/i;a=Math.max(a,Math.min(d,c)),s=Math.min(s,Math.max(d,c))}let l=a<=s?a:1;return{x:e.x+l*o,y:e.y+l*i}}function Tt(e,t){return Math.abs(t-e)>Math.PI?1:0}function Ke(e,t){return e<=0||t<=0?0:Math.asin(Math.min(1,e/t))}function xc(e,t){return{start:e.start+t,end:e.end-t}}function Ze(e,t,r){if(e<=0)return 0;let n=Math.min(Math.abs(t)/2,Math.PI/2),o=Math.sin(n);return o<=1e-6?r:Math.min(e/o,r)}function wy(e,t,r){let n=Y(e,t.start,e.outerRadius),o=Y(e,t.end,e.outerRadius);return[`M ${r.x} ${r.y}`,`L ${n.x} ${n.y}`,`A ${e.outerRadius} ${e.outerRadius} 0 ${Tt(t.start,t.end)} 1 ${o.x} ${o.y}`,"Z"].join(" ")}function vy(e,t,r,n){let o=Y(e,r.start,e.outerRadius),i=Y(e,r.end,e.outerRadius),a=Y(e,n.end,t),s=Y(e,n.start,t);return[`M ${o.x} ${o.y}`,`A ${e.outerRadius} ${e.outerRadius} 0 ${Tt(r.start,r.end)} 1 ${i.x} ${i.y}`,`L ${a.x} ${a.y}`,`A ${t} ${t} 0 ${Tt(n.start,n.end)} 0 ${s.x} ${s.y}`,"Z"].join(" ")}var Sc=.82;function Lt(e,t,r,n,o,i){let a=Math.min(1,o/r),s=n+i*Math.asin(a),l=Math.sqrt(Math.max(0,r*r-o*o));return{lineTangent:{x:e.centerX+l*Math.cos(n),y:e.centerY+l*Math.sin(n)},arcTangent:Y(e,s,t),angle:s}}function lr(e,t,r){let n=Math.min(Math.abs(r)/2,Math.PI/2),o=Math.sin(n*Sc),i=e*o/(1+o),a=t>0?t*o:Number.POSITIVE_INFINITY,s=t>0?(e-t)/2:e/2;return Math.max(0,Math.min(i,a,s))}function dr(e,t,r){let n=Math.min(Math.abs(r)/2,Math.PI/2),o=Math.sin(n*Sc),i=e*o/(1+o),a=(e*e-t*t)/(2*e);return Math.max(0,Math.min(i,a))}function Py(e,t,r,n){let{outerRadius:o}=e,i=o-r,a=Lt(e,o,i,t.start,r,1),s=Lt(e,o,i,t.end,r,-1);return[`M ${n.x} ${n.y}`,`L ${a.lineTangent.x} ${a.lineTangent.y}`,`A ${r} ${r} 0 0 1 ${a.arcTangent.x} ${a.arcTangent.y}`,`A ${o} ${o} 0 ${Tt(a.angle,s.angle)} 1 ${s.arcTangent.x} ${s.arcTangent.y}`,`A ${r} ${r} 0 0 1 ${s.lineTangent.x} ${s.lineTangent.y}`,"Z"].join(" ")}function Ly(e,t,r,n,o){let{outerRadius:i}=e,a=i-o,s=Lt(e,i,a,r.start,o,1),l=Lt(e,i,a,r.end,o,-1),d=t+o,c=Lt(e,t,d,n.start,o,1),u=Lt(e,t,d,n.end,o,-1);return[`M ${s.lineTangent.x} ${s.lineTangent.y}`,`A ${o} ${o} 0 0 1 ${s.arcTangent.x} ${s.arcTangent.y}`,`A ${i} ${i} 0 ${Tt(s.angle,l.angle)} 1 ${l.arcTangent.x} ${l.arcTangent.y}`,`A ${o} ${o} 0 0 1 ${l.lineTangent.x} ${l.lineTangent.y}`,`L ${u.lineTangent.x} ${u.lineTangent.y}`,`A ${o} ${o} 0 0 1 ${u.arcTangent.x} ${u.arcTangent.y}`,`A ${t} ${t} 0 ${Tt(u.angle,c.angle)} 0 ${c.arcTangent.x} ${c.arcTangent.y}`,`A ${o} ${o} 0 0 1 ${c.lineTangent.x} ${c.lineTangent.y}`,"Z"].join(" ")}function $t(e,t,r){let n=Math.max(0,r)/2,o=Ze(n,t.end-t.start,e.outerRadius);return e.innerRadius>0&&e.innerRadius>=o}function Qe(e,t,r=0,n=0){let o=Math.max(0,n)/2,i=xc(t,Ke(o,e.outerRadius));if(!$t(e,t,n)){let s=Ze(o,t.end-t.start,e.outerRadius),l=Y(e,(t.start+t.end)/2,s);return r>0?Py(e,i,r,l):wy(e,i,l)}let a=xc(t,Ke(o,e.innerRadius));return r>0?Ly(e,e.innerRadius,i,a,r):vy(e,e.innerRadius,i,a)}function Ae(e,t,r,n,o,i,a){let s=t==="horizontal",l=s?e.width:e.height,d=Math.max(1,(l-n*(r-1))/r),c=Math.min(r,Math.max(0,i*r)),u=a?Math.round(c):c,p=[];for(let f=0;f<r;f++){let g=Math.min(1,Math.max(0,u-f))*d;if(g<.5)continue;let b=f*(d+n);p.push(s?ke(e.x+b,e.y,g,e.height,o):ke(e.x,e.y+e.height-b-g,e.width,g,o))}return p.join(" ")}function O(e){if(!e?.enabled)return;let t=m(e.angle,45)*Math.PI/180,r=m(e.distance,5);return{color:e.color??"#000000",opacity:m(e.opacity,.25),blur:m(e.blur,10),dx:Math.cos(t)*r,dy:Math.sin(t)*r}}function cr(e,t,r,n,o){let i=e.series[n].values[r]??0;return t==="waterfall"?Ty(e,r,n,o,i):t==="percent"?$y(e,r,n,o,i):My(e,r,n,o,i)}function Ty(e,t,r,n,o){let i=0;for(let a=0;a<t;a++)i+=e.series[r].values[a]??0;return Cc(o,i,i+o,e,n)}function $y(e,t,r,n,o){let i=e.series.reduce((l,d)=>l+Math.abs(d.values[t]??0),0)||1,a=0;for(let l=0;l<r;l++)a+=Math.abs(e.series[l].values[t]??0);let s=Math.abs(o);return{value:o,pixelStart:a/i*n,pixelEnd:(a+s)/i*n}}function My(e,t,r,n,o){let i=0;for(let a=0;a<r;a++)i+=e.series[a].values[t]??0;return Cc(o,i,i+o,e,n)}function Cc(e,t,r,n,o){return{value:e,pixelStart:T(t,n.axisY,o),pixelEnd:T(r,n.axisY,o)}}function w(e){let{chart:t,frame:r}=e;return{type:"text",id:e.id,order:e.order,bounds:e.bounds,...r,lines:[e.text],fontFamily:(e.role==="axis"?t.axisFontFamily:void 0)??t.fontFamily??E,fontSize:Math.max(9,m(e.role==="axis"?t.axisFontSize??t.fontSize:t.fontSize,12)),fontWeight:"normal",color:(e.role==="axis"?t.axisLabelColor:e.role==="legend"?t.legendColor:void 0)??t.textColor??"#0f172a",align:e.align??"left",verticalAlign:"top",lineHeight:1.2,rotation:e.rotation,rotationCenter:e.rotation?{x:r.x,y:r.y}:void 0}}var Ay=/^[A-Za-z_][A-Za-z0-9_]*$/;function Mt(e,t,r){return Ay.test(t)?`${e}[${t}].${r}`:void 0}var Rc="text";function si(e){return`Axis[${e}].label`}function mn(e){return Number.isInteger(e)&&e>=0?`categories[${e}]`:void 0}function we(e){return Mt("Series",e,"label")}function kc(e){return Mt("Series",e,"color")}function te(e,t){return Number.isInteger(t)&&t>=0?Mt("Series",e,`values[${t}]`):void 0}function At(e,t){return Number.isInteger(t)&&t>=0?Mt("Series",e,`colors[${t}]`):void 0}function wc(e){return Mt("Rule",e,"text")}function vc(e){return Mt("Rule",e,"at")}function Ey(e,t,r){return e.axisX.label?{...w({role:"axis",id:`chart-x-label-${e.id}`,order:r,bounds:t.bounds,frame:{x:t.plot.x,y:e.y+e.height-18,width:t.plot.width,height:18},text:e.axisX.label,chart:e,align:"center"}),prop:si("x")}:null}function Ny(e,t,r){return!e.axisY.label||e.showValueAxis===!1?null:{...w({role:"axis",id:`chart-y-label-${e.id}`,order:r,bounds:t.bounds,frame:{x:e.x+12,y:t.plot.y+t.plot.height,width:t.plot.height,height:18},text:e.axisY.label,chart:e,align:"center",rotation:-90}),prop:si("y")}}function Pc(e,t,r){let n=[],o=Ey(e,t,r);o&&n.push(o);let i=Ny(e,t,r+n.length);return i&&n.push(i),n}function Lc(e,t,r){let n=Math.max(1,e.series.length),o=t.plot.height/n;return e.series.map((i,a)=>{let s=t.plot.y+(a+.5)*o;return{...w({role:"axis",id:`chart-y-tick-${e.id}-${a}`,order:r+a,bounds:t.bounds,frame:{x:e.x,y:s-9,width:t.padLeft-8,height:18},text:i.label||i.id,chart:e,align:"right"}),prop:we(i.id)}})}var Oy=new Set(["heatmap","boxplot","sankey","treemap","mekko"]);function Tc(e){return By(e.chart)?Fy(e).flatMap(t=>Hy(e,t)):[]}function By(e){let t=e.chartType==="custom"&&!!e.config?.connectPoints;return e.showLegend!==!1&&!Oy.has(e.chartType)&&!t}function li(e){return e.chartType==="field"?e.series.filter(t=>t.values[0]?.length===4):e.series}var di=22,pn=16;function ci(e){return e==="bottomLeft"||e==="bottomRight"}function ui(e){return li(e).map(t=>Math.max(42,t.label.length*m(e.fontSize,12)*.58+22))}function $c(e){let t=ui(e);return t.length?Math.max(...t):0}function Iy(e,t,r){return e.legendPosition==="bottom"?t.x+(t.width-r)/2:t.x+t.width-r}function Gy(e,t){return(e.legendPosition??"top")==="top"?e.y+16:t.y+t.height+16}function Dy(e){let{chart:t,plot:r,order:n}=e,o=li(t),i=ui(t),a=Math.max(...i),s=t.legendPosition==="bottomLeft"?r.x-pn-a:r.x+r.width+pn,l=r.y+r.height-15;return o.map((d,c)=>({series:d,seriesIndex:c,x:s,y:l-(o.length-1-c)*di,width:i[c],order:n+(o.length-1-c)*2}))}function _y(e){let{chart:t,plot:r,order:n}=e,o=li(t),i=ui(t),a=i.reduce((d,c)=>d+c,0),s=Gy(t,r),l=Iy(t,r,a);return o.map((d,c)=>{let u=i[c],p=l;return l+=u,{series:d,seriesIndex:c,x:p,y:s,width:u,order:n+(o.length-1-c)*2}})}function Fy(e){return ci(e.chart.legendPosition)?Dy(e):_y(e)}function Hy(e,t){return[Vy(e,t),Wy(e,t)]}function Vy(e,t){let{chart:r,bounds:n,diagnostics:o}=e,i=$[t.seriesIndex%$.length],a=r.chartType==="line",s=a?N(t.series.color,i):t.series.color??i;return{type:"rect",id:`chart-legend-swatch-${r.id}-${t.series.id}`,order:t.order,bounds:n,x:t.x,y:t.y,width:10,height:10,rx:3,prop:kc(t.series.id),propKind:"color",propSolidOnly:a,style:{fill:k(s,o,r.id)}}}function Wy(e,t){let{chart:r,bounds:n}=e;return{...w({role:"legend",id:`chart-legend-${r.id}-${t.series.id}`,order:t.order+1,bounds:n,frame:{x:t.x+15,y:t.y-3,width:t.width-15,height:18},text:t.series.label,chart:r}),prop:we(t.series.id)}}var Ac=new Set(["bar","line","scatter","boxplot","hexbin","custom","field"]),zy=new Set(["heatmap","sankey","treemap","mekko","pie","radialBar","polarArea"]);function Je(e){return!zy.has(e.chartType)}function _e(e){return Je(e)?Math.max(0,m(e.tickLength,0)):0}function Yy(e){return e.chartType==="boxplot"&&e.config?.orientation==="horizontal"}function Uy(e){let t=m(e.fontSize,12);return Math.max(0,...e.series.map(n=>(n.label||n.id).length))*t*.58+16}var Mc=66;function jy(e,t){return e.chartType!=="treemap"||!t?null:e.legendPosition==="left"?"left":e.legendPosition==="right"?"right":null}function Xy(e){let t=m(e.axisFontSize??e.fontSize,12),r=e.config?.categories??[];return Math.max(0,...r.map(n=>n.length))*t*.58+16}function qy(e){return Yy(e)?Uy(e):ee(e)?e.categoryAlign==="left"||e.categoryAlign==="inside"?20:Xy(e):e.showValueAxis===!1?20:e.axisY.label?60:46}function Ec(e){let t=e.showAxisLabels!==!1,r=e.showLegend!==!1,n=e.legendPosition??"top",o=n==="top",i=r&&e.series.length>0,a=i&&ci(n),s=a?$c(e)+pn:0,l=jy(e,r),d=_e(e),c=d+(t?qy(e):12)+(n==="bottomLeft"?s:0)+(l==="left"?Mc:0),u=24+(n==="bottomRight"?s:0)+(l==="right"?Mc:0),p=e.chartType==="bar"&&e.config?.showBarLabels===!0&&e.config.barLabelPosition==="axis",f=ee(e)&&e.showValueAxis!==!1,g=t?ee(e)?f?34:12:(e.axisX.label?52:34)+(p?18:0):12,b=e.chartType==="field"&&r&&!!e.config?.scale?.stops.length,x=i&&!o&&!a,C=d+g+(b?44:0)+(x?16+di:0),v=(e.title?Math.max(44,20+m(e.titleSize,14)*1.6):0)||(o&&i?44:24);return{bounds:Q({x:e.x,y:e.y,width:e.width,height:e.height},m(e.strokeWidth,1)+2),plot:{x:e.x+c,y:e.y+v,width:Math.max(1,e.width-c-u),height:Math.max(1,e.height-v-C)},showLabels:t,showLegend:r,padLeft:c}}function Ky(e,t){return e.config?.categories?.length?e.config.categories:Array.from({length:t},(r,n)=>String(n+1))}function Nc(e,t,r){let n=ue(e),o=t.plot.width/n,i=Ky(e,n),a=!!e.config?.categories?.length,s=e.categoryAlign==="left",l=s?Math.min(Math.max(0,m(e.config?.barGroupGap,8)),Math.max(0,o-1)):0;return Array.from({length:n},(d,c)=>{let u=t.plot.x+(c+.5)*o;return{...w({role:"axis",id:`chart-x-tick-${e.id}-${c}`,order:r+c,bounds:t.bounds,frame:{x:s?t.plot.x+c*o+l/2:u-o/2,y:t.plot.y+t.plot.height+4+_e(e),width:s?o-l:o,height:18},text:i[c]??String(c+1),chart:e,align:s?"left":"center"}),prop:a?mn(c):void 0}})}function Oc(e,t,r){let n=Math.max(1,e.series.length),o=t.plot.width/n;return e.series.map((i,a)=>{let s=t.plot.x+(a+.5)*o;return{...w({role:"axis",id:`chart-x-tick-${e.id}-${a}`,order:r+a,bounds:t.bounds,frame:{x:s-o/2,y:t.plot.y+t.plot.height+4+_e(e),width:o,height:18},text:i.label||i.id,chart:e,align:"center"}),prop:we(i.id)}})}function Bc(e,t,r){return _(e.axisX).map((n,o)=>{let i=t.plot.x+T(n,e.axisX,t.plot.width);return w({role:"axis",id:`chart-x-tick-${e.id}-${n}`,order:r+o,bounds:t.bounds,frame:{x:i-20,y:t.plot.y+t.plot.height+10+_e(e),width:40,height:18},text:String(n),chart:e,align:"center"})})}function Ic(e,t,r){return _(e.axisY).map((n,o)=>{let i=t.plot.y+t.plot.height-T(n,e.axisY,t.plot.height);return w({role:"axis",id:`chart-y-tick-${e.id}-${n}`,order:r+o,bounds:t.bounds,frame:{x:e.x,y:i-6,width:t.padLeft-14-_e(e),height:18},text:String(n),chart:e,align:"right"})})}function mi(e){return e.chartType==="boxplot"&&e.config?.orientation==="horizontal"}function Zy(e,t,r){return e.chartType==="bar"?Nc(e,t,r):e.chartType==="boxplot"&&!mi(e)?Oc(e,t,r):Bc(e,t,r)}function Qy(e,t,r){return mi(e)?Lc(e,t,r):e.showValueAxis===!1?[]:Ic(e,t,r)}function Jy(e,t){let{plot:r}=t;if(e.chartType==="bar"){let n=ue(e);return Array.from({length:n},(o,i)=>r.x+(i+.5)*r.width/n)}return _(e.axisX).map(n=>r.x+T(n,e.axisX,r.width))}function ex(e,t){return e.axisLineStyle==="dashed"?{dash:[t*3,t*2]}:e.axisLineStyle==="dotted"?{dash:[.1,t*3],lineCap:"round"}:{}}function tx(e,t,r){let n=m(e.axisLineWidth,0),o=m(e.tickLength,0);if(n<=0&&o<=0)return[];let{plot:i,bounds:a}=t,s=i.y+i.height,l={fill:{kind:"none"},stroke:{kind:"solid",color:e.axisLineColor??e.gridColor??"#94a3b8"},strokeWidth:n>0?n:1,pointerEvents:"none",...ex(e,n>0?n:1)},d=[],c=(u,p)=>d.push({type:"path",id:`chart-axis-${u}-${e.id}`,order:r+d.length,bounds:a,d:p,style:l});if(n>0&&(e.showValueAxis!==!1&&c("line-y",`M ${i.x} ${i.y} L ${i.x} ${s}`),c("line-x",`M ${i.x} ${s} L ${i.x+i.width} ${s}`)),o>0&&ee(e)){_(e.axisY).forEach(p=>{let f=i.x+T(p,e.axisY,i.width);c(`tick-v-${p}`,`M ${f} ${s} L ${f} ${s+o}`)});let u=wt(e,i);for(let p=0;p<u.count;p++){let f=vt(u,i,p)+u.labelRow+u.barsHeight/2;c(`tick-c-${p}`,`M ${i.x-o} ${f} L ${i.x} ${f}`)}}return o>0&&!mi(e)&&!ee(e)&&(_(e.axisY).forEach(u=>{let p=s-T(u,e.axisY,i.height);c(`tick-y-${u}`,`M ${i.x-o} ${p} L ${i.x} ${p}`)}),Jy(e,t).forEach((u,p)=>{c(`tick-x-${p}`,`M ${u} ${s} L ${u} ${s+o}`)})),d}function rx(e,t){let r=e.config?.categories;return Array.from({length:t},(n,o)=>r?.[o]??String(o+1))}function nx(e,t,r){let{plot:n,bounds:o}=t,i=wt(e,n),a=e.categoryAlign==="left",s=e.categoryAlign==="inside",l=!!e.config?.categories?.length,d=rx(e,i.count).map((c,u)=>{let p=vt(i,n,u);return{...w({role:"axis",id:`chart-y-category-${e.id}-${u}`,order:r+u,bounds:o,frame:a?{x:n.x,y:p,width:n.width,height:i.labelRow}:s?{x:n.x+14,y:p+i.barsHeight/2-9,width:n.width-28,height:18}:{x:e.x+8,y:p+i.barsHeight/2-9,width:n.x-e.x-16,height:18},text:c,chart:e,align:a||s?"left":"right"}),prop:l?mn(u):void 0}});return e.showValueAxis!==!1&&_(e.axisY).forEach((c,u)=>{let p=n.x+T(c,e.axisY,n.width);d.push(w({role:"axis",id:`chart-x-tick-${e.id}-${c}`,order:r+i.count+u,bounds:o,frame:{x:p-20,y:n.y+n.height+4+m(e.tickLength,0),width:40,height:18},text:String(c),chart:e,align:"center"}))}),d}function Gc(e,t,r){if(!Je(e))return[];let n=tx(e,t,r);if(!t.showLabels)return n;if(r+=n.length,ee(e))return[...n,...nx(e,t,r)];let o=Zy(e,t,r),i=Qy(e,t,r+o.length),a=Pc(e,t,r+o.length+i.length);return[...n,...o,...i,...a]}function Dc(e,t,r,n){let o=0,i=0;for(let a of e){let s=a.x-t,l=a.y-r,d=s*s+l*l;if(d===0)return a.value;let c=1/d**(n/2);o+=c*a.value,i+=c}return i===0?0:o/i}var pi=32;function ur(e,t){return{type:"rect",x:t.x,y:t.y,width:t.width,height:t.height,rx:e.cornerRadius??12}}function _c(e,t,r,n){let o=t>0&&r>0?t/r:1,i=Math.max(2,Math.min(pi,Math.round(Math.sqrt(pi*pi*o)))),a=Math.max(2,Math.round(i/o)),s=new Float32Array(i*a);for(let l=0;l<a;l++){let d=r*(l/(a-1));for(let c=0;c<i;c++){let u=t*(c/(i-1));s[l*i+c]=e.length?Dc(e,u,d,n):0}}return{grid:s,cols:i,rows:a}}var Fc=new Set(["scatter","custom","hexbin"]);var Hc=-Math.PI/2,ox=.5,ix=6;function ax(e){return Math.max(38,e*3.2)}function fn(e,t,r,n=!0){let o=n?ax(r):ix;return Math.max(8,Math.min(e,t)/2-o)}function hn(e,t){return Math.max(3,e||t)}function sx(e,t){return Hc+t*Math.PI*2/e}function fi(e,t,r){let n=t===e?0:(r-e)/(t-e);return Hc+n*Math.PI*2}function Vc(e,t,r){let n=sx(e.count,t);return{x:e.centerX+Math.cos(n)*r,y:e.centerY+Math.sin(n)*r}}function Wc(e,t){let r=e.max-e.min;return(r===0?0:Math.max(0,Math.min(1,(t-e.min)/r)))*e.radius}function gn(e,t,r=ox){return e.length===0?"":t?fe({points:e,tension:r,closed:!0}):`M ${e.map((o,i)=>`${i?"L ":""}${o.x} ${o.y}`).join(" ")} Z`}function bn(e,t,r,n,o,i,a,s){let l=Math.max(1,a*1.5),d={fill:{kind:"solid",color:e.gridColor??"#e2e8f0"},clip:s};if(e.gridRoundedCorners===!0)return{type:"ellipse",id:t,order:r,bounds:n,cx:o,cy:i,rx:l,ry:l,style:d};let c=l*2;return{type:"rect",id:t,order:r,bounds:n,x:o-l,y:i-l,width:c,height:c,style:d}}function mr(e,t){if(e.gridLineStyle!=="dashed")return{};let r=e.gridRoundedCorners===!0;return{dash:[t*3,t*2],lineCap:r?"round":"butt"}}function zc(e,t,r,n){let o=t.x+t.width/2,i=t.y+t.height/2,a=Math.max(0,Math.min(t.width,t.height)/2),s=m(e.gridWidth,1);if(e.gridLineStyle==="dotted")return lx(e,r,n,o,i,a,s);let l={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:s,...mr(e,s)},d=[];return _(e.axisY).filter(c=>c>e.axisY.min).forEach(c=>{let u=a*Yc(e,c);d.push({type:"ellipse",id:`chart-grid-ring-${e.id}-${c}`,order:n+d.length,bounds:r,cx:o,cy:i,rx:u,ry:u,style:l})}),_(e.axisX).forEach(c=>{let u=fi(e.axisX.min,e.axisX.max,c),p=o+Math.cos(u)*a,f=i+Math.sin(u)*a;d.push({type:"path",id:`chart-grid-spoke-${e.id}-${c}`,order:n+d.length,bounds:r,d:`M ${o} ${i} L ${p} ${f}`,style:l})}),d}function lx(e,t,r,n,o,i,a){let s=_(e.axisY).filter(c=>c>e.axisY.min),l=_(e.axisX),d=[];return s.forEach(c=>{let u=i*Yc(e,c);l.forEach(p=>{let f=fi(e.axisX.min,e.axisX.max,p),g=n+Math.cos(f)*u,b=o+Math.sin(f)*u,x=`chart-grid-dot-${e.id}-${p}-${c}`;d.push(bn(e,x,r+d.length,t,g,b,a,void 0))})}),d}function Yc(e,t){let r=e.axisY.max-e.axisY.min;return r===0?0:Math.max(0,Math.min(1,(t-e.axisY.min)/r))}function yn(e,t,r,n){if(e.showGrid===!1||!Je(e))return[];if(e.gridShape==="circle"&&Fc.has(e.chartType))return zc(e,t,r,n);let o=m(e.gridWidth,1);if(ee(e))return dx(e,t,r,n,o);let i=e.chartType==="field"?ur(e,t):void 0;if(e.gridLineStyle==="dotted")return cx(e,t,r,n,o,i);let a={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:o,...mr(e,o),clip:i},s=[];return(e.gridAxes==="y"?[]:_(e.axisX)).forEach(l=>{let d=t.x+T(l,e.axisX,t.width);s.push({type:"path",id:`chart-grid-x-${e.id}-${l}`,order:n+s.length,bounds:r,d:`M ${d} ${t.y} L ${d} ${t.y+t.height}`,style:a})}),(e.gridAxes==="x"?[]:_(e.axisY)).forEach(l=>{let d=t.y+t.height-T(l,e.axisY,t.height);s.push({type:"path",id:`chart-grid-y-${e.id}-${l}`,order:n+s.length,bounds:r,d:`M ${t.x} ${d} L ${t.x+t.width} ${d}`,style:a})}),s}function dx(e,t,r,n,o){if(e.gridAxes==="y")return[];let i={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:o,...e.gridLineStyle==="dotted"?{dash:[.1,o*3],lineCap:"round"}:mr(e,o)};return _(e.axisY).map((a,s)=>{let l=t.x+T(a,e.axisY,t.width);return{type:"path",id:`chart-grid-x-${e.id}-${a}`,order:n+s,bounds:r,d:`M ${l} ${t.y} L ${l} ${t.y+t.height}`,style:i}})}function cx(e,t,r,n,o,i){let a=_(e.axisX),s=_(e.axisY),l=[];return a.forEach(d=>{let c=t.x+T(d,e.axisX,t.width);s.forEach(u=>{let p=t.y+t.height-T(u,e.axisY,t.height),f=`chart-grid-dot-${e.id}-${d}-${u}`;l.push(bn(e,f,n+l.length,r,c,p,o,i))})}),l}function Uc(e){return e.chart.rules?.length?ux(e).flatMap(t=>mx(e,t)):[]}function ux(e){let t=e.order;return(e.chart.rules??[]).map(r=>{let n=t++,o=r.text?t++:void 0;return{rule:r,color:r.color||e.chart.strokeColor||"#475569",y:e.plot.y+e.plot.height-T(r.at,e.chart.axisY,e.plot.height),lineOrder:n,labelOrder:o}})}function mx(e,t){let r=[px(e,t)];return t.rule.text&&t.labelOrder!==void 0&&r.push(fx(e,t)),r}function px(e,t){return{type:"path",id:`chart-rule-${e.chart.id}-${t.rule.id}`,order:t.lineOrder,bounds:e.bounds,d:`M ${e.plot.x} ${t.y} L ${e.plot.x+e.plot.width} ${t.y}`,prop:vc(t.rule.id),propKind:"value",style:{fill:{kind:"none"},stroke:{kind:"solid",color:t.color},strokeWidth:t.rule.strokeWidth??1,dash:t.rule.dash}}}function fx(e,t){let r=Math.max(9,m(e.chart.fontSize,12)-2);return{...w({id:`chart-rule-label-${e.chart.id}-${t.rule.id}`,order:t.labelOrder??t.lineOrder+1,bounds:e.bounds,frame:{x:e.plot.x+4,y:t.y-r-2,width:160,height:r+2},text:t.rule.text??"",chart:e.chart}),color:t.color,prop:wc(t.rule.id)}}function hi(e){let t=m(e.strokeWidth,1)/2;return{x:e.x+t,y:e.y+t,width:Math.max(1,e.width-t*2),height:Math.max(1,e.height-t*2),rx:Math.max(0,m(e.cornerRadius,12)-t)}}function jc(e,t,r){if(!e.fillImage)return[];let n=hi(e),o=[{type:"image",id:`chart-image-${e.id}`,order:r.next(),bounds:t,x:n.x,y:n.y,width:n.width,height:n.height,href:e.fillImage.url,style:{clip:{type:"rect",...n},pointerEvents:"none"}}];return e.fillImage.overlay&&o.push({type:"rect",id:`chart-image-overlay-${e.id}`,order:r.next(),bounds:t,x:n.x,y:n.y,width:n.width,height:n.height,rx:n.rx,style:{fill:{kind:"solid",color:e.fillImage.overlay},pointerEvents:"none"}}),o}function Et(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=m(n.config?.barGlassBlur,0);if(a<=0||!n.fillImage)return[];let s=hi(n),l=[{type:"image",id:`chart-bar-glass-${n.id}-${t}`,order:i(),bounds:o,x:s.x,y:s.y,width:s.width,height:s.height,href:n.fillImage.url,style:{blur:a,saturate:m(n.config?.barGlassSaturation,1),clip:{type:"path",d:r},pointerEvents:"none"}}];return n.fillImage.overlay&&l.push({type:"path",id:`chart-bar-glass-overlay-${n.id}-${t}`,order:i(),bounds:o,d:r,style:{fill:{kind:"solid",color:n.fillImage.overlay},pointerEvents:"none"}}),n.config?.barGlassTint&&l.push({type:"path",id:`chart-bar-glass-tint-${n.id}-${t}`,order:i(),bounds:o,d:r,style:{fill:{kind:"solid",color:n.config.barGlassTint},pointerEvents:"none"}}),l.push(...yn(n,e.plot,o,0).map(d=>({...d,id:`${d.id}-glass-${t}`,order:i(),style:{..."style"in d?d.style:{},clip:{type:"path",d:r},pointerEvents:"none"}}))),l}function Nt(e,t,r,n,o,i=e.bounds){let{chart:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:t,order:l(),bounds:i,d:r,style:{fill:k(n,s,a.id),shadow:{color:N(n,"#ffffff"),opacity:.9,blur:o,dx:0,dy:0},pointerEvents:"none"}}}function Ot(e){return e.chart.config?.showBarLabels===!0}function hx(e,t){let r=e.frame.height>=t.height+me.gap*2;return e.placement!=="outside"&&!r?"outside":e.placement}function gx(e,t,r){return e==="outside"?t.y-r-me.gap:e==="inside"?t.y+me.gap:t.y+t.height/2-r/2}function bx(e,t,r,n){let{chart:o,bounds:i,diagnostics:a,nextOrder:s}=e,l=o.config;return{type:"path",id:`${t}-pill`,order:s(),bounds:i,d:ti(r.left,r.top,r.width,r.height),style:{fill:l?.barLabelPillColor?k(l.barLabelPillColor,a,o.id):{kind:"none"},stroke:k(l?.barLabelBorderColor??n,a,o.id),strokeWidth:m(l?.barLabelBorderWidth,1),pointerEvents:"none"}}}function yx(e,t,r,n,o,i,a){let{chart:s,bounds:l,nextOrder:d}=e,c=s.config;return{...w({id:t,order:d(),bounds:l,frame:{x:r.left,y:r.top+r.padY,width:r.width,height:r.lineHeight},text:n,chart:s,align:"center"}),mark:`bar-label|${o}|${c?.barLabelFormat??""}`,color:a,fontSize:i,fontFamily:c?.barLabelFontFamily??s.fontFamily??"Inter, sans-serif",fontWeight:c?.barLabelFontWeight??"normal"}}function xx(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,l=o.config,d=i.y+i.height+4+16+Math.max(0,o.tickLength??0);return{...w({id:t.id,order:s(),bounds:a,frame:t.horizontal?o.categoryAlign==="inside"?{x:i.x,y:t.frame.y+t.frame.height/2-n*.6,width:i.width-14,height:n*1.2}:{x:i.x,y:t.frame.y-cn,width:i.width,height:n*1.2}:{x:t.frame.x,y:d,width:t.frame.width,height:n*1.2},text:r,chart:o,align:t.horizontal?"right":o.categoryAlign==="left"?"left":"center"}),mark:`bar-label|axis|${l?.barLabelFormat??""}`,color:l?.barLabelColor??o.textColor??"#0f172a",fontSize:n,fontFamily:l?.barLabelFontFamily??o.fontFamily??"Inter, sans-serif",fontWeight:l?.barLabelFontWeight??"normal"}}function Sx(e,t){let r=e.placement==="axis"?"outside":e.placement,n=e.frame.width>=t.width+me.gap*2;return r!=="outside"&&!n?"outside":r}function Cx(e,t,r){let{frame:n}=e,o=r==="outside"?n.x+n.width+me.gap:r==="inside"?n.x+n.width-t.width-me.gap:n.x+n.width/2-t.width/2;return{...t,left:o,top:n.y+n.height/2-t.height/2}}function Bt(e,t){let{chart:r}=e,n=r.config,o=Math.max(8,m(n?.barLabelFontSize,m(r.fontSize,12))),i=Jo(t.value,n?.barLabelFormat);if(t.placement==="axis")return[xx(e,t,i,o)];let a=n?.barLabelPill===!0,s=ei(i,o,a),l=t.horizontal?Sx(t,s):hx(t,s),d=t.horizontal?Cx(t,s,l):{...s,left:t.frame.x+t.frame.width/2-s.width/2,top:gx(l,t.frame,s.height)},c=n?.barLabelColor??r.textColor??"#0f172a",u=[];return a&&u.push(bx(e,t.id,d,c)),u.push(yx(e,t.id,d,i,l,o,c)),u}var gi={angle:45,spacing:7,width:1.5},Rx=2;function kx(e,t,r,n,o,i){let a=o*Math.PI/180,s={x:Math.cos(a),y:Math.sin(a)},l={x:-s.y,y:s.x},d={x:e+r/2,y:t+n/2},c=Math.hypot(r,n)/2,u=[];for(let p=-c;p<=c;p+=i){let f=d.x+l.x*p,g=d.y+l.y*p;u.push(`M ${f-s.x*c} ${g-s.y*c} L ${f+s.x*c} ${g+s.y*c}`)}return u.join(" ")}function It(e,t){if(et(e))return{type:"path",d:ke(t.x,t.y,t.width,t.height,e.chart.config?.barCornerRadius??2)}}function et(e){return e.chart.config?.barTrack===!0}function Gt(e,t,r,n="vertical"){let{chart:o,bounds:i,diagnostics:a,nextOrder:s}=e,l=o.config,d=l?.barCornerRadius??2,c=m(l?.barSegments,0),u=c>0?Ae(r,n,c,m(l?.barSegmentGap,4),d,1,!0):ke(r.x,r.y,r.width,r.height,d),p=[{type:"path",id:`chart-bar-track-${o.id}-${t}`,order:s(),bounds:i,d:u,style:{fill:k(l?.barTrackColor??o.gridColor??"#e2e8f0",a,o.id),pointerEvents:"none"}}];return l?.barTrackHatch&&p.push({type:"path",id:`chart-bar-track-hatch-${o.id}-${t}`,order:s(),bounds:i,d:kx(r.x,r.y,r.width,r.height,m(l.barTrackHatchAngle,gi.angle),Math.max(Rx,m(l.barTrackHatchSpacing,gi.spacing))),style:{fill:{kind:"none"},stroke:k(l.barTrackHatchColor??o.gridColor??"#cbd5e1",a,o.id),strokeWidth:m(l.barTrackHatchWidth,gi.width),pointerEvents:"none",clip:{type:"path",d:u}}}),p}function Xc(e){let t=Lx(e),r=e.chart.series.flatMap((a,s)=>Tx(e,t,a,s)),n=et(e)?r.flatMap(a=>Gt(e,`${a.seriesId}-${a.valueIndex}`,{x:a.frame.x,y:e.plot.y,width:a.frame.width,height:e.plot.height})):[],o=r.flatMap(a=>$x(e,a)),i=Ot(e)?r.flatMap(a=>vx(e,a,r)):[];return[...n,...o,...r.flatMap(a=>Px(e,a)),...i]}function wx(e,t){let r=t.filter(n=>n.seriesId===e.seriesId).map(n=>n.value);return e.value>=Math.max(...r)}function vx(e,t,r){let{chart:n}=e;return n.config?.barLabelMaxOnly&&!wx(t,r)?[]:Bt(e,{id:`chart-bar-label-${n.id}-${t.seriesId}-${t.valueIndex}`,value:t.value,frame:t.frame,placement:n.config?.barLabelPosition??"outside"})}function qc(e,t){let{chart:r,plot:n}=e,o=r.config,i=o?.barCornerRadius??2,a=m(o?.barSegments,0);return a>0?Ae({x:t.x,y:n.y,width:t.width,height:n.height},"vertical",a,m(o?.barSegmentGap,4),i,t.height/n.height,o?.barSegmentSnap!==!1):qe(t.x,t.y,t.width,t.height,i,o?.barRoundedBottom===!0)}function Px(e,t){let{chart:r}=e,n=m(r.config?.barGlow,0);if(n<=0||t.frame.height<=0)return[];let o=qc(e,t.frame);return[Nt(e,`chart-bar-glow-${r.id}-${t.seriesId}-${t.valueIndex}`,o,t.color,n)]}function Lx(e){let{chart:t,plot:r}=e,n=ue(t),o=r.width/n,i=Math.min(Math.max(0,m(t.config?.barGroupGap,8)),Math.max(0,o-1)),a=Math.max(0,m(t.config?.barGap,2));return{slotWidth:o,seriesWidth:Math.max(1,(o-i)/Math.max(1,t.series.length)),groupGap:i,barGap:a}}function Tx(e,t,r,n){let{chart:o,plot:i}=e,a=r.color??$[n%$.length];return r.values.map((s,l)=>{let d=Array.isArray(s)?s[1]:s,c=Math.max(0,T(d,o.axisY,i.height));return{seriesId:r.id,valueIndex:l,value:d,error:r.error?.[l],color:r.colors?.[l]??a,hasColorOverride:r.colors?.[l]!=null,frame:{x:i.x+l*t.slotWidth+t.groupGap/2+n*t.seriesWidth,y:i.y+i.height-c,width:Math.max(1,t.seriesWidth-t.barGap),height:c}}})}function $x(e,t){let r=Ax(e,t),n=Ex(e,t);return n&&r.push(n),r}function Mx(e){let{x:t,y:r,width:n,height:o}=e;return`M ${t} ${r} H ${t+n} V ${r+o} H ${t} Z`}function Ax(e,t){let{chart:r,plot:n,bounds:o,diagnostics:i,nextOrder:a}=e,s=r.config?.barCornerRadius??2,{x:l,width:d}=t.frame,c=qc(e,t.frame),u=k(t.color,i,r.id),p=k(r.config?.barBorderColor||"#000000",i,r.id),f=m(r.config?.barBorderWidth,0),g=O(r.shadowStyle),b=g?{type:"path",id:`chart-bar-shadow-${r.id}-${t.seriesId}-${t.valueIndex}`,order:a(),bounds:o,d:c,style:{fill:u,stroke:p,strokeWidth:f,shadow:g,clip:It(e,{x:l,y:n.y,width:d,height:n.height})??{type:"path",d:Mx(n)}}}:void 0,x={type:"path",id:`chart-bar-${r.id}-${t.seriesId}-${t.valueIndex}`,order:a(),bounds:o,d:c,detail:{of:"chartValue",series:t.seriesId,valueIndex:t.valueIndex,mark:"bar",radius:s,colorProp:At(t.seriesId,t.valueIndex),hasColorOverride:t.hasColorOverride},prop:te(t.seriesId,t.valueIndex),style:{fill:u,stroke:p,strokeWidth:f,innerShadow:g}},C=Et(e,`${t.seriesId}-${t.valueIndex}`,c);return b?[b,...C,x]:[...C,x]}function Ex(e,t){if(t.error==null)return null;let{chart:r,plot:n,bounds:o,nextOrder:i}=e,[a,s]=ir(t.value,t.error);return ar({id:`chart-bar-error-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:o,geometry:{centerX:t.frame.x+t.frame.width/2,startY:n.y+n.height-T(a,r.axisY,n.height),endY:n.y+n.height-T(s,r.axisY,n.height)},color:r.textColor??"#0f172a",valueReference:{seriesId:t.seriesId,valueIndex:t.valueIndex}})}function Nx(e,t,r,n,o){let{chart:i,plot:a}=e,s=vt(t,a,n)+t.labelRow;if(e.stackedMode){let u=cr(i,e.stackedMode,n,r,a.width),p=Math.min(u.pixelStart,u.pixelEnd);return{x:a.x+p,y:s,width:Math.max(1,Math.abs(u.pixelEnd-u.pixelStart)),height:t.barsHeight}}let l=Math.max(0,m(i.config?.barGap,2)),d=t.barsHeight/Math.max(1,i.series.length),c=Math.max(0,T(o,i.axisY,a.width));return{x:a.x,y:s+r*d,width:c,height:Math.max(1,d-l)}}function Ox(e,t){let{chart:r,plot:n}=e,o=r.config,i=e.stackedMode&&r.series.length>1?0:m(o?.barSegments,0);return i>0?Ae({x:n.x,y:t.y,width:n.width,height:t.height},"horizontal",i,m(o?.barSegmentGap,4),o?.barCornerRadius??2,t.width/n.width,o?.barSegmentSnap!==!1):ke(t.x,t.y,t.width,t.height,o?.barCornerRadius??2)}function Bx(e,t,r,n,o,i){let{plot:a}=e,s=Nx(e,t,n,o,i);return{id:`${r.id}-${o}`,series:r,seriesIndex:n,valueIndex:o,value:i,frame:s,trackFrame:{x:a.x,y:s.y,width:a.width,height:s.height},bounds:{minX:s.x,maxX:s.x+Math.max(s.width,1),minY:s.y,maxY:s.y+s.height},path:Ox(e,s),color:r.colors?.[o]??r.color??$[n%$.length]}}function Ix(e,t){let{chart:r,diagnostics:n,nextOrder:o}=e,i=r.config,a=k(i?.barBorderColor||"#000000",n,r.id),s=m(i?.barBorderWidth,0),l=O(r.shadowStyle),d=k(t.color,n,r.id),c=[...Et(e,t.id,t.path)];return l&&c.push({type:"path",id:`chart-bar-shadow-${r.id}-${t.id}`,order:o(),bounds:t.bounds,d:t.path,style:{fill:d,stroke:a,strokeWidth:s,shadow:l,clip:It(e,t.trackFrame)}}),c.push({type:"path",id:`chart-bar-${r.id}-${t.id}`,order:o(),bounds:t.bounds,d:t.path,detail:{of:"chartValue",series:t.series.id,valueIndex:t.valueIndex,mark:"bar",radius:i?.barCornerRadius??2,colorProp:At(t.series.id,t.valueIndex),hasColorOverride:t.series.colors?.[t.valueIndex]!=null},style:{fill:d,stroke:a,strokeWidth:s,innerShadow:l}}),c}function Gx(e,t,r){let{chart:n}=e,o=n.config,i=Ot(e)&&(!o?.barLabelMaxOnly||t.value>=r),a=t.seriesIndex===n.series.length-1;return!i||e.stackedMode&&!a&&o?.barLabelPosition==="outside"?[]:Bt(e,{id:`chart-bar-label-${n.id}-${t.id}`,value:t.value,frame:t.frame,placement:o?.barLabelPosition??"outside",horizontal:!0})}function Dx(e,t,r,n,o,i,a,s){let{chart:l}=e,d=Bx(e,t,n,o,i,a);et(e)&&(!e.stackedMode||o===0)&&r.tracks.push(...Gt(e,d.id,d.trackFrame,"horizontal")),r.bars.push(...Ix(e,d));let c=m(l.config?.barGlow,0);c>0&&d.frame.width>0&&r.glows.push(Nt(e,`chart-bar-glow-${l.id}-${d.id}`,d.path,d.color,c,d.bounds)),r.labels.push(...Gx(e,d,s))}function Kc(e){let t=wt(e.chart,e.plot),r={tracks:[],bars:[],glows:[],labels:[]};return e.chart.series.forEach((n,o)=>{let i=n.values.map(s=>typeof s=="number"?s:s[1]),a=Math.max(...i);i.forEach((s,l)=>{Dx(e,t,r,n,o,l,s,a)})}),[...r.tracks,...r.bars,...r.glows,...r.labels]}function _x(e,t){let{chart:r,plot:n}=e,o=n.width/ue(r),i=Math.min(Math.max(0,m(r.config?.barGroupGap,8)),Math.max(0,o-1));return{slotWidth:o,groupGap:i,barWidth:Math.max(1,o-i),cornerRadius:r.config?.barCornerRadius??2,outerSeriesIndex:t==="waterfall"?null:r.series.length-1}}function Fx(e,t,r,n,o,i){let{chart:a,plot:s}=e,l=a.series.length===1?m(a.config?.barSegments,0):0;return l>0?Ae({x:t,y:s.y,width:o.barWidth,height:s.height},"vertical",l,m(a.config?.barSegmentGap,4),i,n/s.height,a.config?.barSegmentSnap!==!1):qe(t,r,o.barWidth,n,i,a.config?.barRoundedBottom===!0)}function Hx(e,t,r,n,o,i,a){let{chart:s}=e,l=s.config;if(!(Ot(e)&&!(l?.barLabelMaxOnly&&!Yx(r.values,o))&&(l?.barLabelPosition!=="axis"||n===i.outerSeriesIndex)))return;let c=l?.barLabelPosition??"outside",u=r.values[o];t.labels.push(...Bt(e,{id:`chart-bar-label-${s.id}-${r.id}-${o}`,value:Array.isArray(u)?u[1]:u??0,frame:a,placement:c==="outside"&&n!==i.outerSeriesIndex?"center":c}))}function Vx(e,t,r,n,o,i){let{chart:a,plot:s}=e,l=cr(a,t,i,o,s.height),d=r.outerSeriesIndex===null||o===r.outerSeriesIndex?r.cornerRadius:0,c=s.x+i*r.slotWidth+r.groupGap/2,u=s.y+s.height-Math.max(l.pixelStart,l.pixelEnd),p=Math.max(1,Math.abs(l.pixelEnd-l.pixelStart));return{series:n,valueIndex:i,radius:d,color:n.colors?.[i]??n.color??$[o%$.length],x:c,y:u,height:p,path:Fx(e,c,u,p,r,d),column:{x:c,y:s.y,width:r.barWidth,height:s.height}}}function Wx(e,t){let{chart:r,plot:n,bounds:o,diagnostics:i,nextOrder:a}=e,{series:s,valueIndex:l,path:d}=t,c=k(t.color,i,r.id),u=k(r.config?.barBorderColor||"#000000",i,r.id),p=m(r.config?.barBorderWidth,0),f=O(r.shadowStyle),g=[];if(f){let b=`M ${n.x} ${n.y} H ${n.x+n.width} V ${n.y+n.height} H ${n.x} Z`;g.push({type:"path",id:`chart-bar-shadow-${r.id}-${s.id}-${l}`,order:a(),bounds:o,d,style:{fill:c,stroke:u,strokeWidth:p,shadow:f,clip:It(e,t.column)??{type:"path",d:b}}})}return g.push(...Et(e,`${s.id}-${l}`,d)),g.push({type:"path",id:`chart-bar-${r.id}-${s.id}-${l}`,order:a(),bounds:o,d,detail:{of:"chartValue",series:s.id,valueIndex:l,mark:"bar",radius:t.radius,colorProp:At(s.id,l),hasColorOverride:s.colors?.[l]!=null},prop:te(s.id,l),style:{fill:c,stroke:u,strokeWidth:p,innerShadow:f}}),g}function zx(e,t,r,n,o,i,a){let{chart:s}=e,l=Vx(e,t,n,o,i,a);i===0&&et(e)&&r.tracks.push(...Gt(e,String(a),l.column)),r.bars.push(...Wx(e,l));let d={x:l.x,y:l.y,width:n.barWidth,height:l.height};Hx(e,r,o,i,a,n,d);let c=m(s.config?.barGlow,0);c>0&&r.glows.push(Nt(e,`chart-bar-glow-${s.id}-${o.id}-${a}`,l.path,l.color,c))}function Zc(e,t){let{chart:r}=e,n={tracks:[],bars:[],glows:[],labels:[]},o=_x(e,t),i=ue(r);for(let a=0;a<i;a++)r.series.forEach((s,l)=>{zx(e,t,n,o,s,l,a)});return[...n.tracks,...n.bars,...n.glows,...n.labels]}function Yx(e,t){let r=e.map(n=>typeof n=="number"?n:n[1]);return r[t]>=Math.max(...r)}function Qc(e){return ee(e.chart)?Kc(e):e.stackedMode?Zc(e,e.stackedMode):Xc(e)}function Jc(e){let{chart:t,plot:r}=e,n=t.config?.orientation??"vertical",o=Math.max(1,t.series.length),i=(n==="horizontal"?r.height:r.width)/o,a=N(t.config?.barBorderColor,"#000000"),s=Math.min(1,Math.max(.05,t.config?.boxWidth??.6));return{orientation:n,slotWidth:i,boxWidth:Math.max(4,i*s),cornerRadius:t.config?.barCornerRadius??2,showPoints:t.config?.showBoxplotPoints??!0,borderColor:a,borderWidth:m(t.config?.barBorderWidth,1),whiskerWidth:Math.max(0,m(t.config?.boxWhiskerWidth,1)),medianWidth:Math.max(0,m(t.config?.boxMedianWidth,2)),medianColor:t.config?.boxMedianColor??a,whiskerColor:t.config?.boxWhiskerColor,capSize:Math.max(0,m(t.config?.boxCapSize,.4)),pointSize:Math.max(0,m(t.config?.boxPointSize,3)),pointOpacity:Math.min(1,Math.max(0,m(t.config?.boxPointOpacity,.7))),jitter:Math.max(0,m(t.config?.boxJitter,1))}}function oe(e,t,r){return e==="horizontal"?{x:r,y:t}:{x:t,y:r}}function eu(e,t,r,n){let{chart:o,plot:i}=e,{orientation:a}=t,s=d=>a==="horizontal"?i.x+T(d,o.axisX,i.width):i.y+i.height-T(d,o.axisY,i.height);return{center:i[a==="horizontal"?"y":"x"]+r*t.slotWidth+t.slotWidth/2,min:s(n.min),q1:s(n.q1),median:s(n.median),q3:s(n.q3),max:s(n.max)}}function tu(e,t,r){let{chart:n,plot:o,bounds:i,diagnostics:a,nextOrder:s}=e,l=d=>t.orientation==="horizontal"?o.x+T(d,n.axisX,o.width):o.y+o.height-T(d,n.axisY,o.height);return t.pointSize<=0?[]:r.series.values.map((d,c)=>{let u=r.geometry.center+Ux(r.seriesIndex*1e4+c)*t.jitter*t.boxWidth,{x:p,y:f}=oe(t.orientation,u,l(d));return{type:"ellipse",id:`chart-box-point-${r.id}-${c}`,order:s(),bounds:i,cx:p,cy:f,rx:t.pointSize,ry:t.pointSize,style:{fill:k(r.color,a,n.id),opacity:t.pointOpacity}}})}function Ux(e){let t=Math.sin(e*12.9898)*43758.5453;return t-Math.floor(t)-.5}function nu(e,t,r){let n=t.whiskerWidth>0?[Xx(t,r),qx(t,r)]:[],o=t.whiskerWidth>0&&t.capSize>0?[Kx(t,r),Zx(t,r)]:[],i=t.medianWidth>0?[Qx(t,r)]:[];return[...[...n,...o].map(a=>ru(e,t,{...a,color:jx(t,r)})),Jx(e,t,r),...i.map(a=>ru(e,t,a))]}function jx(e,t){return e.whiskerColor==="series"?N(t.color,e.borderColor):e.whiskerColor}function Xx(e,t){let{center:r,min:n,q1:o}=t.geometry;return{id:`chart-box-whisker-lo-${t.id}`,from:oe(e.orientation,r,n),to:oe(e.orientation,r,o),strokeWidth:e.whiskerWidth}}function qx(e,t){let{center:r,q3:n,max:o}=t.geometry;return{id:`chart-box-whisker-hi-${t.id}`,from:oe(e.orientation,r,n),to:oe(e.orientation,r,o),strokeWidth:e.whiskerWidth}}function Kx(e,t){return ou(`chart-box-cap-lo-${t.id}`,e,t.geometry.center,t.geometry.min)}function Zx(e,t){return ou(`chart-box-cap-hi-${t.id}`,e,t.geometry.center,t.geometry.max)}function ou(e,t,r,n){let o=t.boxWidth*t.capSize/2;return{id:e,from:oe(t.orientation,r-o,n),to:oe(t.orientation,r+o,n),strokeWidth:t.whiskerWidth}}function Qx(e,t){let r=e.boxWidth/2;return{id:`chart-box-median-${t.id}`,from:oe(e.orientation,t.geometry.center-r,t.geometry.median),to:oe(e.orientation,t.geometry.center+r,t.geometry.median),strokeWidth:e.medianWidth,color:e.medianColor}}function ru(e,t,r){return{type:"path",id:r.id,order:e.nextOrder(),bounds:e.bounds,d:`M ${r.from.x} ${r.from.y} L ${r.to.x} ${r.to.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.color??t.borderColor},strokeWidth:r.strokeWidth}}}function Jx(e,t,r){let{chart:n,bounds:o,diagnostics:i,nextOrder:a}=e,{geometry:s}=r,l=t.boxWidth/2,d=oe(t.orientation,s.center-l,s.q1),c=oe(t.orientation,s.center+l,s.q3),u=Math.min(d.x,c.x),p=Math.min(d.y,c.y),f=Math.max(1,Math.abs(c.x-d.x)),g=Math.max(1,Math.abs(c.y-d.y));return{type:"rect",id:`chart-box-${r.id}`,order:a(),bounds:o,x:u,y:p,width:f,height:g,rx:t.cornerRadius,style:{fill:k(r.color,i,n.id),stroke:{kind:"solid",color:t.borderColor},strokeWidth:t.borderWidth}}}function iu(e,t,r,n){let o=ni(r.values);if(!o)return[];let i=eu(e,t,n,o),a=r.color??$[n%$.length],s={id:`${e.chart.id}-${r.id}`,series:r,seriesIndex:n,color:a,geometry:i},l=nu(e,t,s);return t.showPoints&&l.push(...tu(e,t,s)),l}function au(e){let t=Jc(e),r=[];return e.chart.series.forEach((n,o)=>{r.push(...iu(e,t,n,o))}),r}var e0="#94a3b8",su=8,bi=140;function du(e){return e.chart.config?.connectPoints&&e.chart.series.length>=2?o0(e):e.chart.series.flatMap((t,r)=>t0(e,t,r))}function t0(e,t,r){let n=r0(e,t,r);return yi(e,t).map((o,i)=>{let a=xi(e,o),s={series:t,valueIndex:i,point:a,style:n};return t.symbol?.points.length?n0(e,s):Si(e,s)})}function Ci(e){return e.config?.orientation==="horizontal"}function yi(e,t){let{chart:r}=e;return t.values.length>0&&Array.isArray(t.values[0])?t.values.map(o=>[o[0],o[1]]):Ci(r)?t.values.map((o,i)=>[o,r.axisY.min+i*r.axisY.step]):t.values.map((o,i)=>[r.axisX.min+i*r.axisX.step,o])}function lu(e,t){return Ci(e)?t[0]:t[1]}function xi(e,t){return{x:e.plot.x+T(t[0],e.chart.axisX,e.plot.width),y:e.plot.y+e.plot.height-T(t[1],e.chart.axisY,e.plot.height)}}function r0(e,t,r){let n=t.color??$[r%$.length];return{fill:k(n,e.diagnostics,e.chart.id),stroke:t.stroke?{kind:"solid",color:t.stroke}:void 0,strokeWidth:t.stroke?m(t.strokeWidth,1):void 0}}function n0(e,t){let r=t.series.symbol,n=m(t.series.size,3),o=r?.normalized?n*2:1,i=r?.normalized?.5:0,a=(r?.points??[]).map(([s,l])=>({x:t.point.x+(s-i)*o,y:t.point.y+(l-i)*o}));return{type:"path",id:cu(e.chart,t.series,t.valueIndex),order:e.nextOrder(),bounds:e.bounds,d:fe({points:a,tension:m(r?.tension,0),closed:!0}),style:t.style}}function Si(e,t){let r=m(t.series.size,3);return{type:"ellipse",id:cu(e.chart,t.series,t.valueIndex),order:e.nextOrder(),bounds:e.bounds,cx:t.point.x,cy:t.point.y,rx:r,ry:r,style:t.style}}function cu(e,t,r){return`chart-custom-mark-${e.id}-${t.id}-${r}`}function o0(e){let{chart:t}=e,[r,n]=t.series,o=yi(e,r),i=yi(e,n),a=t.config?.zones??[],s=a[0]?.color??"#10b981",l=a[1]?.color??"#ec4899",d=a[2]?.color??z,c=!!t.config?.reverseComparison,u=Math.min(o.length,i.length),p=t.config?.categories??[],f=[];for(let g=0;g<u;g++){let b=o[g],x=i[g],C=xi(e,b),L=xi(e,x),v=lu(t,b),M=lu(t,x),H=c?M<v:M>v,I=c?M>v:M<v,V=H?s:I?l:d,U=m(n.size,3);f.push(a0(e,g,C,L,V)),f.push(Si(e,{series:r,valueIndex:g,point:C,style:{fill:k(t.config?.customBeforeFill??t.gridColor??"#e2e8f0",e.diagnostics,t.id),stroke:{kind:"solid",color:t.config?.customBeforeStroke??e0},strokeWidth:m(t.config?.customBeforeStrokeWidth,1.5)}})),f.push(Si(e,{series:n,valueIndex:g,point:L,style:{fill:k(V,e.diagnostics,t.id),stroke:void 0,strokeWidth:void 0}})),e.showLabels&&p[g]&&f.push(s0(e,g,C,L,U,p[g]))}return f}function i0(e){let t=(e??"").split(/[ ,]+/).map(Number).filter(r=>Number.isFinite(r)&&r>0);return t.length>0?t:void 0}function a0(e,t,r,n,o){let{chart:i}=e;return{type:"path",id:`chart-custom-connector-${i.id}-${t}`,order:e.nextOrder(),bounds:e.bounds,d:`M ${r.x} ${r.y} L ${n.x} ${n.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:o},strokeWidth:m(i.config?.customConnectorWidth,2),opacity:i.config?.customConnectorOpacity,dash:i0(i.config?.customConnectorDash)}}}function s0(e,t,r,n,o,i){let{chart:a,bounds:s,nextOrder:l}=e,d=Ci(a),c=d?{x:Math.max(r.x,n.x)+o+su,y:Math.min(r.y,n.y)-8,width:bi,height:16}:{x:Math.min(r.x,n.x)-bi/2,y:Math.min(r.y,n.y)-o-su-14,width:bi,height:16};return{...w({id:`chart-custom-label-${a.id}-${t}`,order:l(),bounds:s,frame:c,text:i,chart:a,align:d?"left":"center"}),fontSize:Math.max(6,m(a.config?.customLabelSize,Math.max(9,m(a.fontSize,12))-2)),...a.config?.customLabelColor?{color:a.config.customLabelColor}:{}}}function mu(e){let{chart:t,plot:r}=e,n=t.series.filter(a=>uu(a.values[0])===3),o=t.series.filter(a=>uu(a.values[0])===4);return{scalarSamples:n.flatMap(a=>a.values.map(([s,l,d])=>({x:T(s,t.axisX,r.width),y:r.height-T(l,t.axisY,r.height),value:d}))),vectorSeries:o}}function uu(e){return Array.isArray(e)?e.length:void 0}function pu(e){let t=e.chart.config?.scale?.stops;if(!e.showLegend||!t?.length)return[];let r=[...t].sort((a,s)=>a.position-s.position),n=r[0].position,o=r[r.length-1].position,i=l0(e);return[d0(e,r,n,o,i),...c0(e,n,o,i)]}function l0(e){let{plot:t}=e,r=Math.min(220,t.width);return{x:t.x+(t.width-r)/2,y:t.y+t.height+46,width:r,height:8}}function d0(e,t,r,n,o){let{chart:i,bounds:a,nextOrder:s}=e,l=n-r;return{type:"rect",id:`chart-field-colorbar-${i.id}`,order:s(),bounds:a,x:o.x,y:o.y,width:o.width,height:o.height,rx:2,style:{fill:{kind:"linear-gradient",angle:0,stops:t.map(d=>({offset:l===0?0:(d.position-r)/l*100,color:d.color}))}}}}function c0(e,t,r,n){let{chart:o,bounds:i,nextOrder:a}=e,s=n.y+n.height+3;return[w({id:`chart-field-colorbar-min-${o.id}`,order:a(),bounds:i,frame:{x:n.x,y:s,width:80,height:16},text:he(t),chart:o}),w({id:`chart-field-colorbar-max-${o.id}`,order:a(),bounds:i,frame:{x:n.x+n.width-80,y:s,width:80,height:16},text:he(r),chart:o,align:"right"})]}var u0="#94a3b8";function xn(e,t){return e?.stops.length?Qt(e.stops,t):u0}function fu(e){if(e.length===0)return[];let t=s=>`${Math.round(s[0]*1e3)}:${Math.round(s[1]*1e3)}`,r=new Map,n=(s,l,d)=>{let c=t(s),u=r.get(c),p={point:l,segment:d};u?u.push(p):r.set(c,[p])};e.forEach((s,l)=>{let d=[s.x1,s.y1],c=[s.x2,s.y2];n(d,c,l),n(c,d,l)});let o=new Array(e.length).fill(!1),i=(s,l)=>{let d=l;for(;;){let u=r.get(t(d))?.find(p=>!o[p.segment]);if(!u)return;o[u.segment]=!0,s.push(u.point),d=u.point}},a=[];return e.forEach((s,l)=>{if(o[l])return;o[l]=!0;let d=[[s.x1,s.y1],[s.x2,s.y2]];i(d,d[d.length-1]);let c=[];i(c,d[0]),c.reverse(),a.push([...c,...d])}),a}function hu(e,t){let r=[];for(let n=0;n<e.rows-1;n++)for(let o=0;o<e.columns-1;o++){let i=m0(e,n,o),a=p0(i,t);a!==0&&a!==15&&r.push(...f0(i,a,t))}return r}function m0(e,t,r){return{topLeft:Sn(e,t,r),topRight:Sn(e,t,r+1),bottomRight:Sn(e,t+1,r+1),bottomLeft:Sn(e,t+1,r)}}function Sn(e,t,r){return{x:e.width*(r/(e.columns-1)),y:e.height*(t/(e.rows-1)),value:e.values[t*e.columns+r]}}function p0(e,t){return(Cn(e.topLeft,t)?8:0)|(Cn(e.topRight,t)?4:0)|(Cn(e.bottomRight,t)?2:0)|(Cn(e.bottomLeft,t)?1:0)}function Cn(e,t){return e.value>=t}function f0(e,t,r){let n=h0(e,r);switch(t){case 1:case 14:return[ve(n.left,n.bottom)];case 2:case 13:return[ve(n.bottom,n.right)];case 3:case 12:return[ve(n.left,n.right)];case 4:case 11:return[ve(n.top,n.right)];case 5:return[ve(n.left,n.top),ve(n.bottom,n.right)];case 6:case 9:return[ve(n.top,n.bottom)];case 7:case 8:return[ve(n.left,n.top)];case 10:return[ve(n.top,n.right),ve(n.left,n.bottom)];default:return[]}}function h0(e,t){return{top:Rn(e.topLeft,e.topRight,t),right:Rn(e.topRight,e.bottomRight,t),bottom:Rn(e.bottomLeft,e.bottomRight,t),left:Rn(e.topLeft,e.bottomLeft,t)}}function Rn(e,t,r){let n=t.value===e.value?.5:(r-e.value)/(t.value-e.value);return[e.x+(t.x-e.x)*n,e.y+(t.y-e.y)*n]}function ve(e,t){return{x1:e[0],y1:e[1],x2:t[0],y2:t[1]}}var g0=.5;function gu(e,t){if(!t.length||e.plot.width<=0||e.plot.height<=0)return[];let r=b0(e,t);return[...y0(e,r),...S0(e,r)]}function b0(e,t){let{plot:r,chart:n}=e,o=_c(t,r.width,r.height,n.config?.idwPower??2);return{values:o.grid,columns:o.cols,rows:o.rows,cellWidth:r.width/Math.max(1,o.cols-1),cellHeight:r.height/Math.max(1,o.rows-1)}}function y0(e,t){let r=[];for(let n=0;n<t.rows;n++)for(let o=0;o<t.columns;o++)r.push(x0(e,t,n,o));return r}function x0(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,l=i.x+i.width*(n/(t.columns-1)),d=i.y+i.height*(r/(t.rows-1)),c=xn(o.config?.scale,t.values[r*t.columns+n]);return{type:"rect",id:`chart-field-cell-${o.id}-${r}-${n}`,order:s(),bounds:a,x:l-t.cellWidth/2,y:d-t.cellHeight/2,width:t.cellWidth,height:t.cellHeight,style:{fill:{kind:"solid",color:c},clip:ur(o,i)}}}function S0(e,t){let r=[];return(e.chart.config?.isolines??[]).forEach((n,o)=>{let i=C0(e,t,n,o);i&&r.push(i)}),r}function C0(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,l=hu({values:t.values,columns:t.columns,rows:t.rows,width:i.width,height:i.height},r);if(!l.length)return null;let c=fu(l).map(u=>Pt(u.map(([p,f])=>({x:i.x+p,y:i.y+f})),g0)).join(" ");return{type:"path",id:`chart-field-isoline-${o.id}-${n}`,order:s(),bounds:a,d:c,style:{fill:{kind:"none"},stroke:{kind:"solid",color:"rgba(15, 23, 42, 0.55)"},strokeWidth:1,clip:ur(o,i)}}}function bu(e,t){let r=[];return t.forEach((n,o)=>{let i=n.color??$[o%$.length];n.values.forEach((a,s)=>{r.push(R0(e,n.id,a,s,i))})}),r}function R0(e,t,r,n,o){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,[c,u,p,f]=r,g=a.x+T(c,i.axisX,a.width),b=a.y+a.height-T(u,i.axisY,a.height),x=a.x+T(c+Math.cos(p)*f,i.axisX,a.width),C=a.y+a.height-T(u+Math.sin(p)*f,i.axisY,a.height);return{type:"path",id:`chart-field-vector-${i.id}-${t}-${n}`,order:d(),bounds:s,d:`M ${g} ${b} L ${x} ${C}`,markerEnd:"filled_arrow",style:{fill:{kind:"none"},stroke:k(o,l,i.id),strokeWidth:2}}}function yu(e){let t=mu(e),r=[];return r.push(...gu(e,t.scalarSamples)),r.push(...bu(e,t.vectorSeries)),r.push(...pu(e)),r}function xu(e,t){let r=[];return t.rows.forEach((n,o)=>{r.push(...k0(e,t,n,o))}),r}function k0(e,t,r,n){return t.columns.flatMap((o,i)=>{let a=w0(t,r,n,i);return P0(e,t,a)})}function w0(e,t,r,n){let o=t.values[n]??0,{cellGap:i}=e.grid;return{seriesId:t.id,columnIndex:n,value:o,color:v0(o,e),frame:{x:e.grid.x+n*e.grid.cellWidth+i/2,y:e.grid.y+r*e.grid.cellHeight+i/2,width:Math.max(0,e.grid.cellWidth-i),height:Math.max(0,e.grid.cellHeight-i)}}}function v0(e,t){return nr(e,t.bands,t.zones)}function P0(e,t,r){let n=L0(e,t,r);return e.chart.config?.showValues===!1?[n]:[n,T0(e,t,r)]}function L0(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=`chart-heatmap-cell-${n.id}-${r.seriesId}-${r.columnIndex}`,s={fill:{kind:"solid",color:r.color},stroke:{kind:"solid",color:n.config?.cellStrokeColor??n.gridColor??"#e2e8f0"},strokeWidth:m(n.config?.cellStrokeWidth,m(n.gridWidth,1))};return n.config?.cellShape==="circle"?{type:"ellipse",id:a,order:i(),bounds:o,cx:r.frame.x+r.frame.width/2,cy:r.frame.y+r.frame.height/2,rx:r.frame.width/2,ry:r.frame.height/2,style:s}:{type:"rect",id:a,order:i(),bounds:o,...r.frame,rx:t.grid.cellRadius,style:s}}function T0(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=Math.max(6,m(n.config?.cellValueSize,t.fontSize));return{...w({id:`chart-heatmap-value-${n.id}-${r.seriesId}-${r.columnIndex}`,order:i(),bounds:o,frame:{x:r.frame.x,y:r.frame.y+r.frame.height/2-a/2,width:r.frame.width,height:a+2},text:String(r.value),chart:n,align:"center"}),...n.config?.cellValueSize===void 0?{}:{fontSize:a},color:n.config?.cellValueColor??J(r.color)}}function Su(e,t){return[...$0(e,t),...A0(e,t)]}function $0(e,t){return t.reservedSpace.rowHeaders<=0?[]:t.rows.map((r,n)=>M0(e,t,r,n))}function M0(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e;return w({id:`chart-heatmap-row-${o.id}-${r.id}`,order:s(),bounds:a,frame:{x:i.x,y:t.grid.y+n*t.grid.cellHeight+t.grid.cellHeight/2-t.fontSize/2,width:t.reservedSpace.rowHeaders-8,height:t.fontSize+2},text:r.label,chart:o})}function A0(e,t){return t.reservedSpace.columnHeaders<=0?[]:t.columns.map((r,n)=>E0(e,t,r,n))}function E0(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e;return w({id:`chart-heatmap-col-${o.id}-${n}`,order:s(),bounds:a,frame:{x:t.grid.x+n*t.grid.cellWidth,y:i.y,width:t.grid.cellWidth,height:t.fontSize+2},text:r,chart:o,align:"center"})}function Cu(e){let{chart:t}=e,r=N0(e),n=O0(e);return{rows:t.series,columns:r,bands:rr(t.axisY),zones:t.config?.zones?.length?t.config.zones:tr,fontSize:Math.max(9,m(t.fontSize,12)),reservedSpace:n,grid:B0(e,n,r.length)}}function N0(e){let{chart:t}=e;return t.config?.categories?.length?t.config.categories:t.series[0]?.values?.map((r,n)=>String(n+1))??[]}function O0(e){let{chart:t}=e,r=Math.max(9,m(t.fontSize,12)),n=t.series.reduce((o,i)=>Math.max(o,Me(i.label??"",r,!1)),0);return{rowHeaders:e.showLabels?Math.min(96,n+12):0,columnHeaders:e.showLabels?24:0,legend:e.showLegend?38:0}}function B0(e,t,r){let{chart:n}=e,o=Math.max(1,e.plot.width-t.rowHeaders),i=Math.max(1,e.plot.height-t.columnHeaders-t.legend),a=n.series.length,s=Math.max(0,m(n.config?.cellGap,0)),l=r?o/r:o,d=a?i/a:i,c=o,u=i;if(n.config?.squareCells&&r&&a){let p=Math.min(l,d);l=p,d=p,c=p*r,u=p*a}return{x:e.plot.x+t.rowHeaders,y:e.plot.y+t.columnHeaders,width:c,height:u,cellWidth:l,cellHeight:d,cellGap:s,cellRadius:Math.max(0,m(n.config?.barCornerRadius,s))}}var pr=10,Ru=4,I0=2;function ku(e,t){if(t.reservedSpace.legend<=0||t.zones.length===0)return[];let r=t.grid.x,n=t.grid.width,o=t.fontSize+2,i=t.grid.y+t.grid.height+6,a=Q({x:r,y:i,width:n,height:pr});return[G0(e,t,r,i,n,a),...D0(e,t,r,i,n,o)]}function wu(e,t){let r=e.bands[0],n=e.bands[e.bands.length-1];return n===r?0:(t-r)/(n-r)}function G0(e,t,r,n,o,i){let{chart:a,nextOrder:s}=e,l=Math.max(0,t.bands.length-1),c=t.zones.slice(0,l).map((u,p)=>({offset:wu(t,t.bands[p+1]??t.bands[t.bands.length-1])*100,color:u.color??z}));return{type:"rect",id:`chart-heatmap-legend-bar-${a.id}`,order:s(),bounds:i,x:r,y:n,width:o,height:pr,rx:3,zoneGradient:{axis:"y",min:a.axisY.min,max:a.axisY.max},style:{fill:c.length?{kind:"linear-gradient",angle:0,stops:c}:{kind:"solid",color:z},stroke:{kind:"solid",color:a.gridColor??"#e2e8f0"},strokeWidth:1}}}function D0(e,t,r,n,o,i){let{chart:a,bounds:s,nextOrder:l}=e,d=n+pr+Ru+I0,c=48;return t.bands.flatMap((u,p)=>{let f=r+wu(t,u)*o,g={type:"path",id:`chart-heatmap-legend-tick-${a.id}-${p}`,order:l(),bounds:s,d:`M ${f} ${n+pr} L ${f} ${n+pr+Ru}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:a.gridColor??"#e2e8f0"},strokeWidth:1}},b=p===0,x=p===t.bands.length-1,C=b?"left":x?"right":"center",L=b?f:x?f-c:f-c/2,v=w({id:`chart-heatmap-legend-tick-label-${a.id}-${p}`,order:l(),bounds:s,frame:{x:L,y:d,width:c,height:i},text:he(u),chart:a,align:C});return[g,v]})}function vu(e){let t=Cu(e),r=[];return r.push(...xu(e,t)),r.push(...Su(e,t)),r.push(...ku(e,t)),r}function Ri(e,t){if(t<=0||e.length===0)return[];let r=t*1.5,n=t*Math.sqrt(3),o=new Map;for(let{x:i,y:a}of e){let s=Math.round(i/r),l=s%2!==0?n/2:0,d=Math.round((a-l)/n),c=`${s}:${d}`,u=o.get(c);u?u.count++:o.set(c,{cx:s*r,cy:d*n+l,count:1})}return[...o.values()]}function Pu(e){let t=new Map;for(let r of e.ids)t.set(r,0);for(let r=0;r<e.ids.size;r++){let n=!1;for(let o of e.links){let i=(t.get(o.source)??0)+1;i>(t.get(o.target)??0)&&(t.set(o.target,i),n=!0)}if(!n)break}return t}function Lu(e,t){let r=new Map;for(let n of e){let o=t.get(n)??0,i=r.get(o)??[];i.push(n),r.set(o,i)}return r}function Tu(e,t){let r=new Set(e.map(a=>a.id));for(let a of t)r.add(a.source),r.add(a.target);let n=new Map,o=new Map;for(let a of r)n.set(a,[]),o.set(a,[]);let i=t.filter(a=>r.has(a.source)&&r.has(a.target)&&a.value>0&&a.source!==a.target);for(let a of i)o.get(a.source)?.push(a),n.get(a.target)?.push(a);return{ids:r,links:i,incoming:n,outgoing:o}}function F0(e){let t=new Map;for(let r of e.ids){let n=(e.incoming.get(r)??[]).reduce((i,a)=>i+a.value,0),o=(e.outgoing.get(r)??[]).reduce((i,a)=>i+a.value,0);t.set(r,Math.max(n,o,1e-4))}return t}function H0(e,t,r,n){let o=1/0;for(let i of e.values()){let a=i.reduce((d,c)=>d+(t.get(c)??0),0),s=Math.max(0,i.length-1)*n,l=Math.max(1,r-s);a>0&&(o=Math.min(o,l/a))}return!Number.isFinite(o)||o<=0?1:o}function fr(e,t,r,n=18){return t<=1?0:e*(r-n)/(t-1)}function $u(e,t,r,n=8){let o=Lu(e.ids,t),i=F0(e),a=H0(o,i,r,n),s=new Map,l=new Map;for(let d of o.values()){let c=0;for(let u of d){let p=Math.max(2,(i.get(u)??0)*a);s.set(u,c),l.set(u,p),c+=p+n}}return{columns:t,y:s,heights:l,valueScale:a,columnCount:Math.max(1,...[...t.values()].map(d=>d+1))}}function Mu(e,t,r,n,o=18){let i=new Map,a=new Map;for(let s of e.ids)i.set(s,0),a.set(s,0);return e.links.map(s=>{let l=Math.max(.5,s.value*t.valueScale),d=n.get(s.source),c=n.get(s.target),u=(t.y.get(s.source)??0)+(d?.y??0),p=(t.y.get(s.target)??0)+(c?.y??0),f=i.get(s.source)??0,g=a.get(s.target)??0;return i.set(s.source,f+l),a.set(s.target,g+l),{source:s.source,target:s.target,value:s.value,color:s.color,x0:fr(t.columns.get(s.source)??0,t.columnCount,r,o)+o+(d?.x??0),x1:fr(t.columns.get(s.target)??0,t.columnCount,r,o)+(c?.x??0),sourceY0:u+f,sourceY1:u+f+l,targetY0:p+g,targetY1:p+g+l}})}function Au(e,t,r,n,o,i=18){return[...t.ids].map(a=>{let s=e.find(c=>c.id===a),l=r.columns.get(a)??0,d=o.get(a);return{id:a,label:s?.label??a,color:s?.color,x:fr(l,r.columnCount,n,i)+(d?.x??0),y:(r.y.get(a)??0)+(d?.y??0),width:i,height:r.heights.get(a)??2,column:l}})}function V0(e){let t=new Map;for(let r of e)(r.offsetX||r.offsetY)&&t.set(r.id,{x:r.offsetX??0,y:r.offsetY??0});return t}function wi(e,t,r,n,o={nodeWidth:18,nodeGap:8}){let i=Tu(e,t);if(i.ids.size===0)return{nodes:[],links:[]};let a=Pu(i),s=$u(i,a,n,o.nodeGap),l=V0(e);return{nodes:Au(e,i,s,r,l,o.nodeWidth),links:Mu(i,s,r,l,o.nodeWidth)}}function hr(e,t){let r=W0(e,t);if(!r.length)return[];let n=[],o=r,i=t;for(;o.length;){let a=z0(o,Math.min(i.width,i.height)),s=Y0(a,i);n.push(...s.rectangles),o=o.slice(a.items.length),i=s.remainingBounds}return n}function W0(e,t){let r=e.filter(i=>i.value>0);if(!r.length||t.width<=0||t.height<=0)return[];let n=r.reduce((i,a)=>i+a.value,0);if(n<=0)return[];let o=t.width*t.height/n;return[...r].sort((i,a)=>a.value-i.value).map(i=>({item:i,area:i.value*o}))}function z0(e,t){let r=[e[0]];for(let n=1;n<e.length;n++){let o=[...r,e[n]];if(Eu(o,t)>Eu(r,t))break;r.push(e[n])}return{items:r,area:r.reduce((n,o)=>n+o.area,0)}}function Eu(e,t){let r=e.reduce((s,l)=>s+l.area,0);if(r<=0||t<=0)return 1/0;let n=e.map(s=>s.area),o=Math.max(...n),i=Math.min(...n),a=t*t;return Math.max(a*o/(r*r),r*r/(a*i))}function Y0(e,t){return t.width>=t.height?U0(e,t):j0(e,t)}function U0(e,t){let r=t.height>0?e.area/t.height:0,n=t.y;return{rectangles:e.items.map(({item:i,area:a})=>{let s=r>0?a/r:0,l={item:i,x:t.x,y:n,width:r,height:s};return n+=s,l}),remainingBounds:{x:t.x+r,y:t.y,width:t.width-r,height:t.height}}}function j0(e,t){let r=t.width>0?e.area/t.width:0,n=t.x;return{rectangles:e.items.map(({item:i,area:a})=>{let s=r>0?a/r:0,l={item:i,x:n,y:t.y,width:s,height:r};return n+=s,l}),remainingBounds:{x:t.x,y:t.y+r,width:t.width,height:t.height-r}}}var X0=.15,q0=1/Math.sqrt(3);function K0(e,t,r){let n=[];for(let o=0;o<6;o++){let i=(-60+60*o)*Math.PI/180;n.push(`${o===0?"M":"L"} ${e+r*Math.cos(i)} ${t+r*Math.sin(i)}`)}return`${n.join(" ")} Z`}function Nu(e){let{chart:t,plot:r,bounds:n,diagnostics:o,nextOrder:i}=e,a=[],s=t.config,l=Math.max(1,s?.hexRadius??Qo),d=Math.max(.5,l-Math.max(0,s?.hexGap??0)*q0),c=s?.hexStrokeWidth??0,u=Math.min(1,Math.max(0,s?.hexMinOpacity??X0)),p=O(t.shadowStyle),f=p?`M ${r.x} ${r.y} H ${r.x+r.width} V ${r.y+r.height} H ${r.x} Z`:void 0;return t.series.forEach((g,b)=>{let L=(g.values.length>0&&Array.isArray(g.values[0])?g.values:g.values.map((V,U)=>[t.axisX.min+U*t.axisX.step,V])).map(([V,U])=>({x:T(V,t.axisX,r.width),y:r.height-T(U,t.axisY,r.height)})),v=Ri(L,l),M=Math.max(1,...v.map(V=>V.count)),H=g.color??$[b%$.length],I=s?.scale;v.forEach((V,U)=>{let ne=V.count/M,Ne=I?xn(I,ne):H;a.push({type:"path",id:`chart-hexbin-${t.id}-${g.id}-${U}`,order:i(),bounds:n,d:K0(r.x+V.cx,r.y+V.cy,d),style:{fill:k(Ne,o,t.id),stroke:c>0?k(s?.hexStrokeColor??Ne,o,t.id):void 0,strokeWidth:c>0?c:void 0,opacity:I?void 0:Math.max(u,ne),shadow:p,clip:f?{type:"path",d:f}:void 0}})})}),a}function tt(e,t){return t.values.length>0&&Array.isArray(t.values[0])?t.values:t.values.map((r,n)=>[e.axisX.min+n*e.axisX.step,r])}function rt(e,t){let{chart:r,plot:n}=e;return t.map(([o,i])=>({x:n.x+T(o,r.axisX,n.width),y:n.y+n.height-T(i,r.axisY,n.height)}))}function Ou(e,t,r,n,o,i){let{chart:a,plot:s,nextOrder:l}=e,d=s.y+s.height,c=r[0],u=r[r.length-1],p=`${Pt(r,o)} L ${u.x} ${d} L ${c.x} ${d} Z`,f=Math.min(...r.map(C=>C.y)),g=(Math.min(...r.map(C=>C.x))+Math.max(...r.map(C=>C.x)))/2,b=(d-f)/2,x={minX:g-b,maxX:g+b,minY:f,maxY:d};return{type:"path",id:`chart-line-area-${a.id}-${t.id}`,order:l(),bounds:x,d:p,detail:{of:"chartSeries",series:t.id},style:{fill:{kind:"linear-gradient",angle:90,stops:[{offset:0,color:oi(n,i)},{offset:100,color:oi(n,0)}]},stroke:{kind:"none"},pointerEvents:"none"}}}function Z0(e,t,r){return(e||"{value}").replace("{category}",t).replace("{value}",String(Math.round(r*100)/100))}function Q0(e,t){let{chart:r,plot:n,bounds:o,diagnostics:i,nextOrder:a}=e;return{type:"path",id:`chart-highlight-guide-${t.key}`,order:a(),bounds:o,d:`M ${t.point.x} ${t.point.y} V ${n.y+n.height}`,style:{fill:{kind:"none"},stroke:k(t.color,i,r.id),strokeWidth:1,dash:[3,4],opacity:.55,pointerEvents:"none"}}}function J0(e,t){let{chart:r,bounds:n,diagnostics:o,nextOrder:i}=e,a=r.config?.lineGlow;return{type:"ellipse",id:`chart-highlight-${t.key}`,order:i(),bounds:n,cx:t.point.x,cy:t.point.y,rx:t.radius,ry:t.radius,style:{fill:k(t.color,o,r.id),shadow:a?{color:t.color,opacity:.9,blur:a,dx:0,dy:0}:void 0,pointerEvents:"none"}}}function eS(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=n.config,s=Math.max(9,n.fontSize??12),l=Z0(a?.highlightLabelFormat,a?.categories?.[t.index]??"",r),d=Math.max(48,l.length*s*.62);return{...w({id:`chart-highlight-label-${t.key}`,order:i(),bounds:o,frame:{x:t.point.x-d/2,y:t.point.y-t.radius-6-s*1.2,width:d,height:s*1.2},text:l,chart:n,align:"center"}),color:a?.highlightLabelColor??n.textColor??"#0f172a",fontWeight:"bold"}}function Bu(e,t,r){let{chart:n}=e,o=n.config,i=o?.highlightPoints;if(!i?.length)return[];let a=tt(n,t),s=rt(e,a),l=[];for(let d of i){let c=d<0?s.length+d:d,u=s[c];if(!u)continue;let p={key:`${n.id}-${t.id}-${c}`,point:u,index:c,radius:o?.highlightSize??6,color:o?.highlightColor??r};o?.highlightGuide&&l.push(Q0(e,p)),l.push(J0(e,p)),o?.highlightLabels&&l.push(eS(e,p,a[c][1]))}return l}function Iu(e,t,r,n){return r.map((o,i)=>({seriesId:e.id,valueIndex:i,value:t[i][1],error:e.error?.[i],position:o,color:n}))}function Gu(e,t){return t.flatMap(r=>tS(e,r))}function tS(e,t){let r=[],n=rS(e,t);return n&&r.push(n),r.push(nS(e,t)),r}function rS(e,t){if(t.error==null)return null;let{chart:r,plot:n,bounds:o,nextOrder:i}=e,[a,s]=ir(t.value,t.error);return ar({id:`chart-line-error-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:o,geometry:{centerX:t.position.x,startY:n.y+n.height-T(a,r.axisY,n.height),endY:n.y+n.height-T(s,r.axisY,n.height)},color:t.color,valueReference:{seriesId:t.seriesId,valueIndex:t.valueIndex}})}function nS(e,t){let{chart:r,bounds:n,diagnostics:o,nextOrder:i}=e,a=r.config,s=a?.pointSize??3,l=a?.pointStrokeWidth??0,d=s>0,c=a?.pointFill&&a.pointFill!=="series"?a.pointFill:t.color;return{type:"ellipse",id:`chart-point-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:n,cx:t.position.x,cy:t.position.y,rx:d?s:6,ry:d?s:6,detail:{of:"chartValue",series:t.seriesId,valueIndex:t.valueIndex},style:{fill:d?k(c,o,r.id):{kind:"none"},stroke:d&&l>0?k(t.color,o,r.id):void 0,strokeWidth:d&&l>0?l:void 0,pointerEvents:d?void 0:"all"}}}function Du(e,t,r,n,o){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=i.config,u=t.color,p=u&&typeof u!="string"&&u.type==="gradient"?u:void 0,f=c?.lineGlow;return{type:"path",id:`chart-line-${i.id}-${t.id}`,order:d(),bounds:p?{minX:a.x,maxX:a.x+a.width,minY:a.y,maxY:a.y+a.height}:s,detail:{of:"chartSeries",series:t.id,lineTension:o||void 0},d:Pt(r,o),style:{fill:{kind:"none"},stroke:k(p??n,l,i.id),strokeWidth:t.strokeWidth??c?.lineWidth??2,dash:t.dash,lineCap:c?.lineWidth===void 0?void 0:"round",lineJoin:"round",shadow:f?{color:n,opacity:.9,blur:f,dx:0,dy:0}:O(i.shadowStyle)}}}function _u(e,t){return N(e.color,$[t%$.length])}function Fu(e,t,r){let n=e.chart.config?.areaOpacity;if(n===void 0||n<=0)return[];let o=_u(t,r),i=e.chart.config?.lineTension??0,a=rt(e,tt(e.chart,t));return a.length>1?[Ou(e,t,a,o,i,n)]:[]}function Hu(e,t,r){let n=_u(t,r),o=e.chart.config?.lineTension??0,i=tt(e.chart,t),a=rt(e,i),s=[];a.length&&s.push(Du(e,t,a,n,o));let l=Iu(t,i,a,n);return s.push(...Gu(e,l)),s.push(...Bu(e,t,n)),s}function Vu(e){let t=[];return e.chart.series.forEach((r,n)=>{t.push(...Fu(e,r,n))}),e.chart.series.forEach((r,n)=>{t.push(...Hu(e,r,n))}),t}var Wu=[0,25,50,75,100];function zu(e,t){let r=[];return e.chart.showGrid!==!1&&r.push(...oS(e,t)),e.showLabels&&r.push(...iS(e,t)),r}function oS(e,t){let{chart:r,bounds:n,nextOrder:o}=e;return Wu.map(i=>{let a=Yu(t,i);return{type:"path",id:`chart-mekko-grid-${r.id}-${i}`,order:o(),bounds:n,d:`M ${t.grid.x} ${a} L ${t.grid.x+t.grid.width} ${a}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:m(r.gridWidth,1)}}})}function iS(e,t){let{chart:r,plot:n,bounds:o,nextOrder:i}=e;return Wu.map(a=>({...w({id:`chart-mekko-pct-${r.id}-${a}`,order:i(),bounds:o,frame:{x:n.x,y:Yu(t,a)-t.smallFontSize/2,width:t.labelGutterWidth-6,height:t.smallFontSize+2},text:`${a}%`,chart:r,align:"right"}),fontSize:t.smallFontSize}))}function Yu(e,t){return e.grid.y+e.grid.height*(1-t/100)}function Uu(e,t,r,n){if(!e.showLabels)return[];let o=sS(e,t,r,n);return e.chart.config?.showMekkoTotals===!1?[o]:[aS(e,t,r,n),o]}function aS(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e;return{...w({id:`chart-mekko-total-${o.id}-${r}`,order:s(),bounds:a,frame:{x:n.x,y:i.y,width:n.width,height:t.smallFontSize+2},text:String(n.total),chart:o,align:"center"}),fontSize:t.smallFontSize}}function sS(e,t,r,n){let{chart:o,bounds:i,nextOrder:a}=e,{label:s,width:l}=n;return{...w({id:`chart-mekko-col-label-${o.id}-${r}`,order:a(),bounds:i,frame:{x:n.x,y:t.grid.y+t.grid.height+4,width:l,height:t.smallFontSize*2+4},text:s,chart:o,align:"center"}),lines:Re(s,l,t.smallFontSize),fontSize:t.smallFontSize}}function ju(e){let t=lS(e),r=e.showLabels?30:0,n=dS(e,r),o=Math.max(9,m(e.chart.fontSize,12)),i=Math.max(0,m(e.chart.config?.mekkoColumnGap,4)),a=Math.max(8,o-1);return{columns:cS(e,n,t,i),fontSize:o,smallFontSize:a,labelGutterWidth:r,columnGap:i,labelSize:Math.max(6,m(e.chart.config?.mekkoLabelSize,a)),valueSize:Math.max(6,m(e.chart.config?.mekkoValueSize,a)),grid:n}}function lS(e){let{chart:t}=e;return t.config?.categories?.length?t.config.categories:t.series[0]?.values?.map((r,n)=>String(n+1))??[]}function dS(e,t){let r=e.showLabels?18:0,n=e.showLabels?32:0;return{x:e.plot.x+t,y:e.plot.y+r,width:Math.max(1,e.plot.width-t),height:Math.max(1,e.plot.height-r-n)}}function cS(e,t,r,n){let o=r.map((d,c)=>e.chart.series.reduce((u,p)=>u+(p.values[c]??0),0)),i=o.reduce((d,c)=>d+c,0),a=Math.max(1,...o),s=Math.max(1,t.width-n*Math.max(0,r.length-1)),l=t.x;return r.map((d,c)=>{let u=o[c],p=i>0?u/i*s:s/r.length,f=e.chart.config?.mekkoVaryHeight?t.height*(u/a):t.height,g={label:d,total:u,x:l,y:t.y+t.height-f,width:p,height:f};return l+=p+n,g})}var uS=.15;function Xu(e,t,r){let o=e.chart.config?.showColumnBackdrop!==!1?[mS(e,t,r)]:[],i=!!e.chart.config?.tileGradient,a=pS(e.chart.series,t,r),s=a.flatMap((l,d)=>fS(e,t,l,i?a[d+1]?.color:void 0));return[...o,...s]}function mS(e,t,r){let{chart:n,bounds:o,diagnostics:i,nextOrder:a}=e,s=t.columns[r],l=qu(e);return{type:"path",id:`chart-mekko-column-backdrop-${n.id}-${r}`,order:a(),bounds:o,d:on(s.x,t.grid.y,s.width,t.grid.height,l),style:{fill:k(n.gridColor??"#e2e8f0",i,n.id),opacity:uS}}}function qu(e){return Math.max(0,m(e.chart.config?.barCornerRadius,2))}function pS(e,t,r){let n=[],o=t.columns[r],i=0;return e.forEach((a,s)=>{let l=a.values[r]??0,d=(o.total>0?l/o.total:0)*o.height,c=o.y+i;i+=d;let u=a.color??$[s%$.length];n.push({columnIndex:r,seriesId:a.id,seriesLabel:a.label,value:l,color:u,isTop:s===0,frame:{x:o.x,y:c,width:o.width,height:d}})}),n}function fS(e,t,r,n){return[hS(e,r,n),...gS(e,t,r)]}function hS(e,t,r){let{chart:n,plot:o,bounds:i,diagnostics:a,nextOrder:s}=e,l=O(n.shadowStyle),d=l?`M ${o.x} ${o.y} H ${o.x+o.width} V ${o.y+o.height} H ${o.x} Z`:void 0,c=n.config,u=t.isTop||c?.mekkoRoundAll?qu(e):0,{x:p,y:f,width:g,height:b}=t.frame,x=Math.max(0,m(c?.mekkoSegmentGap,0)),C="#94a3b8",L={minX:p+g/2-b/2,maxX:p+g/2+b/2,minY:f,maxY:f+b},v=r?{kind:"linear-gradient",angle:90,stops:[{offset:0,color:N(t.color,C)},{offset:100,color:N(r,C)}]}:k(t.color,a,n.id);return{type:"path",id:`chart-mekko-seg-${n.id}-${t.columnIndex}-${t.seriesId}`,order:s(),bounds:r?L:i,d:qe(p,f+x/2,g,Math.max(0,b-x),u,!!c?.mekkoRoundAll),style:{fill:v,stroke:{kind:"solid",color:c?.mekkoSegmentStrokeColor??n.gridColor??"#e2e8f0"},strokeWidth:m(c?.mekkoSegmentStrokeWidth,m(n.gridWidth,1)),shadow:l,clip:d?{type:"path",d}:void 0}}}function gS(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,{x:a,y:s,width:l,height:d}=r.frame;if(!e.showLegend||l<34)return[];let c=Math.max(1,l-8),u=Math.max(1,d-6),p=t.labelSize*1.2,f=t.valueSize*1.2,g=Re(r.seriesLabel,c,t.labelSize).map(M=>Jr(M,c,t.labelSize,!0));if(g.length*p+f>u)return[];let b=n.config?.mekkoTextColor??J(N(r.color,"#ffffff")),x=t.columns[r.columnIndex]?.total??0,C=n.config?.mekkoValueFormat==="percent"?`${x>0?Math.round(r.value/x*100):0}%`:String(r.value),L={...w({id:`chart-mekko-seg-label-${n.id}-${r.columnIndex}-${r.seriesId}`,order:i(),bounds:o,frame:{x:a+4,y:s+3,width:c,height:u},text:r.seriesLabel,chart:n}),lines:g,fontSize:t.labelSize,fontWeight:"bold",color:b},v={...w({id:`chart-mekko-seg-value-${n.id}-${r.columnIndex}-${r.seriesId}`,order:i(),bounds:o,frame:{x:a+4,y:s+3+g.length*p,width:c,height:Math.max(1,u-g.length*p)},text:C,chart:n}),lines:[C],fontSize:t.valueSize,color:b};return[L,v]}function Ku(e){let t=ju(e),r=zu(e,t);return t.columns.forEach((n,o)=>{r.push(...Xu(e,t,o)),r.push(...Uu(e,t,o,n))}),r}function bS(e,t){let r=t.series.map(i=>Math.max(0,m(i.values[0],0))),n=r.reduce((i,a)=>i+a,0),o=r[0]??0;return e.replace(/\{total\}/g,String(Math.round(n*100)/100)).replace(/\{percent\}/g,String(n>0?Math.round(o/n*100):0)).replace(/\{label\}/g,t.series[0]?.label??"")}function Zu(e,t){let{chart:r,bounds:n,nextOrder:o}=e,i=r.config?.pieCenterText;if(!i)return[];let a=bS(i,r).split(/\\n|\n/),s=m(r.config?.pieCenterSize,Math.max(14,Math.min(40,t.outerRadius*.3))),l=s*1.2,d=Math.max(40,(t.innerRadius>0?t.innerRadius:t.outerRadius*.6)*2);return[{type:"text",id:`chart-pie-center-${r.id}`,order:o(),bounds:n,x:t.centerX-d/2,y:t.centerY-l*a.length/2,width:d,height:l*a.length,lines:a,fontFamily:r.fontFamily??E,fontSize:s,fontWeight:"bold",align:"center",verticalAlign:"middle",lineHeight:1.2,color:r.config?.pieCenterColor??r.textColor??"#0f172a",detail:{of:"chartSeries",series:r.series[0]?.id??"",mark:"pie-center"}}]}function Qu(e){let{chart:t,plot:r}=e,n=un(r.width,r.height,t.config?.innerRadius,t.config?.pieCornerRadius),i=t.config?.pieLabelPosition==="outside"&&t.showAxisLabels!==!1?t.config?.pieLabelContent==="inline"?.6:.7:1,a=n.outerRadius*i,s=n.innerRadius*i,l=n.cornerRadius;return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,outerRadius:a,innerRadius:s,cornerRadius:l,total:t.series.reduce((d,c)=>d+Math.max(0,m(c.values[0],0)),0)||1}}var yS=14*Math.PI/180,gr=80,xS=.62,SS=14,CS=3,RS=.32,Ju="#334155";function rm(e,t,r){return e.chart.showAxisLabels===!1?[]:r.filter(n=>n.end-n.start>=yS).flatMap(n=>kS(e,t,n))}function em(e,t,r,n,o,i,a,s){let{chart:l,bounds:d,nextOrder:c}=e,u=o*1.2,p=l.config?.pieLabelContent??"both",f=p==="inline"?gr*1.9:gr,g={bounds:d,x:r.x-f/2,width:f,height:u,fontFamily:l.fontFamily??E,fontSize:o,align:"center",verticalAlign:"middle",lineHeight:1.2,color:n},b=L=>({of:"chartSeries",series:t.seriesId,mark:"pie-label",pulled:a||void 0,midAngle:s,...L}),x={type:"text",id:`chart-pie-label-name-${l.id}-${t.seriesId}`,order:c(),...g,y:p==="name"?r.y-u/2:r.y-u,lines:[p==="inline"?`${t.label}, ${i}%`:t.label],fontWeight:"bold",detail:b({}),prop:we(t.seriesId)},C={type:"text",id:`chart-pie-label-value-${l.id}-${t.seriesId}`,order:c(),...g,y:p==="percent"?r.y-u/2:r.y,lines:[`${i}%`],fontWeight:"normal",detail:b({}),prop:te(t.seriesId,0),propKind:"value"};return p==="inline"||p==="name"?[x]:p==="percent"?[C]:[x,C]}function tm(e,t,r,n,o,i){let{chart:a,bounds:s,nextOrder:l}=e;return{type:"path",id:`chart-pie-label-tick-${a.id}-${t.seriesId}`,order:l(),bounds:s,d:`M ${r.x} ${r.y} L ${n.x} ${n.y}`,detail:{of:"chartSeries",series:t.seriesId,mark:"pie-label-tick"},style:i?{stroke:{kind:"solid",color:o},strokeWidth:1.5}:{stroke:{kind:"none"}}}}function kS(e,t,r){let n=e.chart.config,o={...t,centerX:t.centerX+r.shift.dx,centerY:t.centerY+r.shift.dy},i=(r.start+r.end)/2,a=Math.max(9,m(e.chart.fontSize,12)),s=Math.round(r.share*100),l=a*1.2,d=Y(o,i,o.outerRadius+CS),c=o.outerRadius-o.innerRadius,u=c<l*2+6,p=r.labelOffsetX!==0||r.labelOffsetY!==0,f=n?.pieLabelPosition??"auto";if(p||f==="outside"||f==="auto"&&u){let M=p?wS(Y(o,i,o.outerRadius),r.labelOffsetX,r.labelOffsetY):Y(o,i,o.outerRadius+SS+(f==="outside"?Math.abs(Math.cos(i))*(n?.pieLabelContent==="inline"?gr*.95:gr/2):0)),H=sr(d,M,gr/2,l),I=n?.pieLabelColor??De(N(r.color,Ju),RS)??Ju;return[tm(e,r,d,H,I,!0),...em(e,r,M,I,a,s,!0,i)]}let b=o.innerRadius+c*xS,x=Y(o,i,b),C=N(r.color,"#0f172a"),L=n?.pieLabelColor??kt(C,J(C));return[tm(e,r,d,d,L,!1),...em(e,r,x,L,a,s,!1,i)]}function wS(e,t,r){return{x:e.x+t,y:e.y+r}}var vS=-Math.PI/2,Pi=Math.PI*2,PS=Pi*(359.999/360),vi=e=>e*Math.PI/180;function nm(e,t){let r=e.chart.config,n=TS(e.chart.series,t.total,{start:vS+vi(m(r?.pieStartAngle,0)),sweep:Math.min(Pi,Math.max(vi(1),vi(m(r?.pieSweep,360)))),explode:Math.max(0,m(r?.pieExplode,0))}),o=r?.pieSliceGap??0;return[...n.flatMap(i=>NS(e,LS(t,i),i,o)),...rm(e,t,n.map(i=>({seriesId:i.seriesId,label:i.label,color:i.color,share:i.share,start:i.angles.start,end:i.angles.end,labelOffsetX:i.labelOffsetX,labelOffsetY:i.labelOffsetY,shift:om(i)})))]}function om(e){let t=(e.angles.start+e.angles.end)/2;return{dx:Math.cos(t)*e.explode,dy:Math.sin(t)*e.explode}}function LS(e,t){if(t.explode===0)return e;let{dx:r,dy:n}=om(t);return{...e,centerX:e.centerX+r,centerY:e.centerY+n}}function TS(e,t,r){let n=[],o=r.start;return e.forEach((i,a)=>{let s=Math.max(0,m(i.values[0],0)),l=s/t*r.sweep;n.push({seriesId:i.id,label:i.label,color:i.color??$[a%$.length],stroke:i.stroke,strokeWidth:i.strokeWidth,value:s,share:s/t,angles:{start:o,end:o+Math.min(l,r.sweep>=Pi?PS:r.sweep)},explode:Math.max(0,m(i.offset,r.explode)),labelOffsetX:m(i.labelOffsetX,0),labelOffsetY:m(i.labelOffsetY,0)}),o+=l}),n}function $S(e,t,r){return`M ${e-r} ${t} A ${r} ${r} 0 1 0 ${e+r} ${t} A ${r} ${r} 0 1 0 ${e-r} ${t} Z`}function MS(e,t){if(t<=0)return e;let r=t/2,n=Math.min(e.blur,r*2),o=r,i=Math.hypot(e.dx,e.dy),a=i>o?o/i:1;return{...e,blur:n,dx:e.dx*a,dy:e.dy*a}}function AS(e,t,r){let n=Math.max(0,r)/2,o=t.angles.end-t.angles.start,i=$t(e,t.angles,r),a=2*Ke(n,e.outerRadius),s=Math.max(0,o-a);return Math.min(e.cornerRadius,i?lr(e.outerRadius,e.innerRadius,s):dr(e.outerRadius,Ze(n,o,e.outerRadius),s))}function ES(e,t){let r=e.chart.config,n=t.stroke??r?.pieStroke;return n?{stroke:{kind:"solid",color:n},strokeWidth:m(t.strokeWidth,m(r?.pieStrokeWidth,1))}:{}}function NS(e,t,r,n){let{chart:o,bounds:i,diagnostics:a,nextOrder:s}=e,l=k(r.color,a,o.id),d=Qe(t,r.angles,AS(t,r,n),n),c=O(o.shadowStyle),u=ES(e,r),p=o.config?.pieGlow,f=c?{type:"path",id:`chart-pie-slice-shadow-${o.id}-${r.seriesId}`,order:s(),bounds:i,d,style:{fill:l,...u,shadow:MS(c,n),clip:{type:"path",d:$S(t.centerX,t.centerY,t.outerRadius)}}}:void 0,g={type:"path",id:`chart-pie-slice-${o.id}-${r.seriesId}`,order:s(),bounds:i,d,detail:{of:"chartValue",series:r.seriesId,valueIndex:0,mark:"pie-slice",pieStart:r.angles.start,pieEnd:r.angles.end,pieValue:r.value},prop:te(r.seriesId,0),style:{fill:l,...u,innerShadow:c,shadow:p?{color:N(r.color,"#ffffff"),opacity:.85,blur:p,dx:0,dy:0}:void 0}};return f?[f,g]:[g]}function im(e){let t=Qu(e);return[...nm(e,t),...Zu(e,t)]}var OS=-Math.PI/2,BS="#e2e8f0",IS=14*Math.PI/180,kn=80,GS=.62,DS=14,_S=3,FS=.32,am="#334155";function HS(e){let{chart:t,plot:r}=e,n=Math.max(1,Math.min(r.width,r.height)/2-4),o=m(t.axisY.min,0);return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,maxRadius:n,innerRadius:Math.max(0,Math.min(m(t.config?.innerRadius,0),n-1)),cornerRadius:Math.max(0,m(t.config?.pieCornerRadius,0)),gapPx:Math.max(0,m(t.config?.pieSliceGap,0)),axisMin:o,range:m(t.axisY.max,100)-o,sweep:t.series.length>0?Math.PI*2/t.series.length:0,start:OS+m(t.config?.pieStartAngle,0)*Math.PI/180}}function sm(e,t,r){let{centerX:n,centerY:o,innerRadius:i,cornerRadius:a,gapPx:s}=e,l={centerX:n,centerY:o,outerRadius:t,innerRadius:i},d=Math.max(0,s)/2,c=r.end-r.start,u=Math.max(0,c-2*Ke(d,t));if($t(l,r,s))return Math.min(a,lr(t,i,u));let p=Ze(d,c,t);return Math.min(a,dr(t,p,u))}function VS(e,t,r,n,o,i,a){let{chart:s,bounds:l,diagnostics:d,nextOrder:c}=e,{centerX:u,centerY:p,innerRadius:f,maxRadius:g,gapPx:b}=t,x=k(a,d,s.id),C=O(s.shadowStyle),L=Qe({centerX:u,centerY:p,outerRadius:g,innerRadius:f},n,sm(t,g,n),b),v={type:"path",id:`chart-polar-area-track-${s.id}-${r.id}`,order:c(),bounds:l,d:L,style:{fill:k(s.gridColor??BS,d,s.id),opacity:s.config?.polarTrackOpacity,...WS(e)}},M=Qe({centerX:u,centerY:p,outerRadius:o,innerRadius:f},n,sm(t,o,n),b),H=C?{type:"path",id:`chart-polar-area-wedge-shadow-${s.id}-${r.id}`,order:c(),bounds:l,d:M,style:{fill:x,shadow:C,clip:{type:"path",d:L}}}:void 0,I={type:"path",id:`chart-polar-area-wedge-${s.id}-${r.id}`,order:c(),bounds:l,d:M,detail:{of:"chartValue",series:r.id,valueIndex:0,mark:"polar-area-wedge",pieStart:n.start,pieEnd:n.end,pieValue:i},prop:te(r.id,0),style:{fill:x,innerShadow:C,...zS(e)}};return H?[v,H,I]:[v,I]}function WS(e){let t=e.chart.config;if(!t?.polarTrackStroke)return{};let r=(t.polarTrackDash??"").split(/[ ,]+/).map(Number).filter(n=>Number.isFinite(n)&&n>0);return{stroke:{kind:"solid",color:t.polarTrackStroke},strokeWidth:m(t.polarTrackStrokeWidth,1),dash:r.length>0?r:void 0}}function zS(e){let t=e.chart.config;return t?.pieStroke?{stroke:{kind:"solid",color:t.pieStroke},strokeWidth:m(t.pieStrokeWidth,1)}:{}}function YS(e,t){let{chart:r,bounds:n,nextOrder:o}=e;return!r.config?.polarRings||t.range<=0?[]:_(r.axisY).filter(i=>i>t.axisMin&&i<t.axisMin+t.range).map(i=>{let a=t.innerRadius+(t.maxRadius-t.innerRadius)*(i-t.axisMin)/t.range;return{type:"ellipse",id:`chart-polar-area-ring-${r.id}-${i}`,order:o(),bounds:n,cx:t.centerX,cy:t.centerY,rx:a,ry:a,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.textColor??"#334155"},strokeWidth:m(r.gridWidth,1),opacity:.25}}})}function lm(e){let t=HS(e),{centerX:r,centerY:n,innerRadius:o,maxRadius:i,axisMin:a,range:s,sweep:l,start:d}=t,c=e.showLabels&&l>=IS;return[...e.chart.series.flatMap((p,f)=>{let g={start:d+f*l,end:d+(f+1)*l},b=Math.max(0,m(p.values[0],0)),x=s>0?Math.min(1,Math.max(0,(b-a)/s)):0,C=Math.max(o+1,o+(i-o)*x),L=p.color??$[f%$.length],v=VS(e,t,p,g,C,b,L);if(!c)return v;let M={centerX:r,centerY:n,outerRadius:C,innerRadius:o};return[...v,...jS(e,M,g,p,b,L)]}),...YS(e,t)]}function dm(e){let t=Math.max(9,m(e.fontSize,12));return{nameSize:Math.max(6,m(e.config?.polarNameSize,t)),valueSize:Math.max(6,m(e.config?.polarValueSize,t))}}function US(e,t,r,n,o){let i=(r.start+r.end)/2,{nameSize:a,valueSize:s}=dm(e.chart),l=(a+s)*1.2/2,d=t.outerRadius-t.innerRadius,c=m(n.labelOffsetX,0),u=m(n.labelOffsetY,0),p=c!==0||u!==0,f=d<l*2+6,g=2*t.outerRadius*Math.sin(Math.abs(r.end-r.start)/2),b=!f&&g>=kn,x=e.chart.config?.polarOutsideLabels??!1;if(!b&&!p&&!x)return;let C=p||!b,L=Y(t,i,t.outerRadius+_S),v=C?p?XS(Y(t,i,t.outerRadius),c,u):Y(t,i,t.outerRadius+DS):Y(t,i,t.innerRadius+d*GS),M=C?x&&e.chart.textColor?e.chart.textColor:De(N(o,am),FS)??am:kt(N(o,"#0f172a"),J(N(o,"#0f172a")));return{point:v,color:M,outside:C,mid:i,tickStart:L}}function jS(e,t,r,n,o,i){let a=US(e,t,r,n,i);if(!a)return[];let{chart:s,bounds:l,nextOrder:d}=e,{point:c,color:u,outside:p,mid:f,tickStart:g}=a,{nameSize:b,valueSize:x}=dm(s),C=Math.max(b,x)*1.2,L=p?sr(g,c,kn/2,C):g,v={type:"path",id:`chart-polar-area-label-tick-${s.id}-${n.id}`,order:d(),bounds:l,d:`M ${g.x} ${g.y} L ${L.x} ${L.y}`,detail:{of:"chartSeries",series:n.id,mark:"polar-area-label-tick"},style:p?{stroke:{kind:"solid",color:u},strokeWidth:1.5}:{stroke:{kind:"none"}}},M={of:"chartSeries",series:n.id,mark:"polar-area-label",pulled:p||void 0,midAngle:f,wedgeRadius:t.outerRadius},H={bounds:l,x:c.x-kn/2,width:kn,fontFamily:s.fontFamily??E,align:"center",verticalAlign:"middle",lineHeight:1.2,color:u},I=s.config?.polarValueFirst??!1,V=b*1.2,U=x*1.2,ne=c.y-(V+U)/2,Ne=I?ne+U:ne,be=I?ne:ne+V,Oe={type:"text",id:`chart-polar-area-label-name-${s.id}-${n.id}`,order:d(),...H,y:Ne,height:b*1.2,fontSize:b,lines:[n.label],fontWeight:I?"normal":"bold",detail:M,prop:we(n.id)},ie={type:"text",id:`chart-polar-area-label-value-${s.id}-${n.id}`,order:d(),...H,y:be,height:x*1.2,fontSize:x,lines:[he(o)],fontWeight:I?"bold":"normal",detail:M,prop:te(n.id,0),propKind:"value"};return[v,Oe,ie]}function XS(e,t,r){return{x:e.x+t,y:e.y+r}}var qS=["Speed","Quality","Cost","Reliability","Usability"];function KS(e){let{chart:t,plot:r}=e,n=(t.config?.categories?.filter(Boolean)??[]).length,o=Math.max(0,...t.series.map(i=>i.values.length));return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,radius:fn(r.width,r.height,m(t.fontSize,12),e.showLabels),min:t.axisY.min,max:t.axisY.max,count:hn(n,o),curved:t.chartType==="radial",tension:t.config?.radarTension}}function cm(e){let{chart:t}=e,r=t.config?.categories?.filter(Boolean)??[],n=KS(e),o=ZS(r,n.count),i=(a,s)=>Vc(n,s,a);return{circular:n.curved,areaOpacity:Math.max(0,Math.min(1,t.config?.areaOpacity??.16)),strokeWidth:Math.max(0,t.config?.radarStrokeWidth??2),tension:n.tension,pointSize:Math.max(0,t.config?.radarPointSize??3),showSpokes:t.config?.radarSpokes??!0,categories:o,centerX:n.centerX,centerY:n.centerY,radius:n.radius,radiusForValue:a=>Wc(n,a),pointAt:i,polygonPath:a=>gn(o.map((s,l)=>i(a,l)),!1)}}function ZS(e,t){return Array.from({length:t},(r,n)=>e[n]??qS[n]??`Category ${n+1}`)}function um(e,t){return e.chart.showGrid===!1?[]:[...QS(e,t),...t.showSpokes?eC(e,t):[]]}function QS(e,t){return _(e.chart.axisY).filter(r=>r>e.chart.axisY.min).map(r=>JS(e,t,r))}function JS(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=t.radiusForValue(r),s={fill:{kind:"none"},stroke:{kind:"solid",color:n.gridColor??"#e2e8f0"},strokeWidth:m(n.gridWidth,1)};return t.circular?{type:"ellipse",id:`chart-radial-ring-${n.id}-${r}`,order:i(),bounds:o,cx:t.centerX,cy:t.centerY,rx:a,ry:a,style:s}:{type:"path",id:`chart-radar-ring-${n.id}-${r}`,order:i(),bounds:o,d:t.polygonPath(a),style:s}}function eC(e,t){let{chart:r,bounds:n,nextOrder:o}=e;return t.categories.map((i,a)=>{let s=t.pointAt(t.radius,a);return{type:"path",id:`chart-radar-spoke-${r.id}-${a}`,order:o(),bounds:n,d:`M ${t.centerX} ${t.centerY} L ${s.x} ${s.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:m(r.gridWidth,1)}}})}function mm(e,t){return e.showLabels?t.categories.map((r,n)=>tC(e,t,r,n)):[]}function tC(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,l=t.pointAt(t.radius+10,n),d=l.x-t.centerX,c=Math.max(64,Math.min(120,i.width/3));return w({id:`chart-radar-label-${o.id}-${n}`,order:s(),bounds:a,frame:{x:rC(l.x,d,c),y:l.y-6,width:c,height:30},text:r,chart:o,align:nC(d)})}function rC(e,t,r){return t>8?e:t<-8?e-r:e-r/2}function nC(e){return e>8?"left":e<-8?"right":"center"}function pm(e,t){let r=[];return e.chart.series.forEach((n,o)=>{r.push(...oC(e,t,n,o))}),r}function oC(e,t,r,n){let o=r.color??$[n%$.length],i=iC(r,e,t),a=gn(i,t.circular,t.tension);return[aC(e,t,r,a,o),...t.strokeWidth>0?[sC(e,t,r,a,o)]:[],...t.pointSize>0?lC(e,t,r,i,o):[]]}function iC(e,t,r){let n=e.values;return r.categories.map((o,i)=>r.pointAt(r.radiusForValue(n[i]??t.chart.axisY.min),i))}function aC(e,t,r,n,o){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:`chart-radar-fill-${i.id}-${r.id}`,order:l(),bounds:a,d:n,detail:{of:"chartSeries",series:r.id},style:{fill:k(o,s,i.id),stroke:{kind:"none"},opacity:Math.max(0,Math.min(1,r.opacity??t.areaOpacity))}}}function sC(e,t,r,n,o){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:`chart-radar-series-${i.id}-${r.id}`,order:l(),bounds:a,d:n,detail:{of:"chartSeries",series:r.id},style:{fill:{kind:"none"},stroke:k(o,s,i.id),strokeWidth:t.strokeWidth,lineJoin:"round",shadow:O(i.shadowStyle)}}}function lC(e,t,r,n,o){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return n.map((d,c)=>({type:"ellipse",id:`chart-radar-point-${i.id}-${r.id}-${c}`,order:l(),bounds:a,cx:d.x,cy:d.y,rx:t.pointSize,ry:t.pointSize,detail:{of:"chartValue",series:r.id,valueIndex:c,mark:"radar-vertex"},prop:te(r.id,c),style:{fill:k(o,s,i.id)}}))}function Li(e){let t=cm(e),r=[];return r.push(...um(e,t)),r.push(...mm(e,t)),r.push(...pm(e,t)),r}var dC=-Math.PI/2,cC=14,uC=4,mC=.18,Ti=1e-4;function Dt(e,t,r,n){return{x:e+r*Math.cos(n),y:t+r*Math.sin(n)}}function fm(e,t,r){return`M ${e-r} ${t} A ${r} ${r} 0 1 0 ${e+r} ${t} A ${r} ${r} 0 1 0 ${e-r} ${t} Z`}function pC(e,t,r,n){return`${fm(e,t,r)} ${fm(e,t,Math.max(0,n))}`}function hm(e,t,r,n,o){let i=Dt(e,t,r,n),a=Dt(e,t,r,o);return`M ${i.x} ${i.y} A ${r} ${r} 0 ${o-n>Math.PI?1:0} 1 ${a.x} ${a.y}`}function fC(e,t){let r=Math.min(e.blur,t*.6),n=t*.4,o=Math.hypot(e.dx,e.dy),i=o>n?n/o:1;return{...e,blur:r,dx:e.dx*i,dy:e.dy*i}}function hC(e,t,r,n,o){if(n>=Math.PI*2-Ti){let l=Dt(e,t,r,o),d=Dt(e,t,r,o+Math.PI);return`M ${l.x} ${l.y} A ${r} ${r} 0 1 1 ${d.x} ${d.y} A ${r} ${r} 0 1 1 ${l.x} ${l.y}`}let i=Dt(e,t,r,o),a=Dt(e,t,r,o+n),s=n>Math.PI?1:0;return`M ${i.x} ${i.y} A ${r} ${r} 0 ${s} 1 ${a.x} ${a.y}`}function gC(e){let{chart:t,plot:r}=e,n=m(t.axisY.min,0);return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,outerRadius:Math.max(1,Math.min(r.width,r.height)/2-4),ringThickness:Math.max(1,m(t.config?.ringThickness,cC)),ringGap:Math.max(0,m(t.config?.ringGap,uC)),axisMin:n,range:m(t.axisY.max,100)-n,start:dC+m(t.config?.ringStartAngle,0)*Math.PI/180,total:Math.min(360,Math.max(1,m(t.config?.ringSweep,360)))*Math.PI/180,trackOpacity:Math.min(1,Math.max(0,m(t.config?.ringTrackOpacity,mC))),cap:t.config?.ringCap??"round"}}function bC(e,t,r,n,o,i){let{chart:a,bounds:s,nextOrder:l}=e,{centerX:d,centerY:c,ringThickness:u,start:p}=t,f=O(a.shadowStyle),g=o>=Math.PI*2-Ti;if(!f||g)return[];let b=fC(f,u),x=Math.min(o,u/n);return[[p,p+x],[p+o-x,p+o]].map(([C,L],v)=>({type:"path",id:`chart-radial-bar-ring-end-shadow-${a.id}-${r.id}-${v}`,order:l(),bounds:s,d:hm(d,c,n,C,L),style:{fill:{kind:"none"},stroke:i,strokeWidth:u,lineCap:t.cap,shadow:b,clip:{type:"path",d:pC(d,c,n+u/2,n-u/2)}}}))}function yC(e,t,r,n){let{chart:o,bounds:i,diagnostics:a,nextOrder:s}=e,{centerX:l,centerY:d,outerRadius:c,ringThickness:u,ringGap:p,axisMin:f,range:g,start:b,total:x,trackOpacity:C,cap:L}=t,v=c-n*(u+p)-u/2;if(v<=u/2)return[];let M=k(r.color??$[n%$.length],a,o.id),H=Math.max(0,m(r.values[0],0)),I=g>0?Math.min(1,Math.max(0,(H-f)/g)):0,V={fill:{kind:"none"},stroke:M,strokeWidth:u,opacity:C},U=x>=Math.PI*2-Ti?{type:"ellipse",id:`chart-radial-bar-track-${o.id}-${r.id}`,order:s(),bounds:i,cx:l,cy:d,rx:v,ry:v,style:V}:{type:"path",id:`chart-radial-bar-track-${o.id}-${r.id}`,order:s(),bounds:i,d:hm(l,d,v,b,b+x),style:{...V,lineCap:L}};if(I<=0)return[U];let ne=I*x,Ne=bC(e,t,r,v,ne,M),be={type:"path",id:`chart-radial-bar-ring-${o.id}-${r.id}`,order:s(),bounds:i,d:hC(l,d,v,ne,b),detail:{of:"chartValue",series:r.id,valueIndex:0,mark:"radial-bar-ring"},prop:te(r.id,0),style:{fill:{kind:"none"},stroke:M,strokeWidth:u,lineCap:L}};return[U,...Ne,be]}function gm(e){let t=gC(e);return e.chart.series.flatMap((r,n)=>yC(e,t,r,n))}function bm(e,t){let r=O(e.chart.shadowStyle),n=!!e.chart.config?.linkGradient,{plot:o}=e,i=r?`M ${o.x} ${o.y} H ${o.x+o.width} V ${o.y+o.height} H ${o.x} Z`:void 0;return t.links.map((a,s)=>{let l=xC(e,t,a,s,n);return SC(e,l,r,i,n)})}function xC(e,t,r,n,o){let i={x:t.baseX+r.x0,top:t.baseY+r.sourceY0,bottom:t.baseY+r.sourceY1},a={x:t.baseX+r.x1,top:t.baseY+r.targetY0,bottom:t.baseY+r.targetY1},s=e.chart.config,l=r.color||t.nodeColors.get(r.source)||z,d=t.nodeColors.get(r.target)||z,c=o?{kind:"linear-gradient",angle:0,stops:[{offset:0,color:l},{offset:100,color:d}]}:{kind:"solid",color:r.color||d};return{linkIndex:n,fromId:r.source,toId:r.target,source:i,target:a,controlX:i.x+(a.x-i.x)*Math.min(1,Math.max(0,m(s?.sankeyLinkCurve,.5))),fill:c,opacity:Math.min(1,Math.max(0,m(s?.sankeyLinkOpacity,r.color?.85:.45)))}}function SC(e,t,r,n,o){let{chart:i,bounds:a,nextOrder:s}=e,l={minX:Math.min(t.source.x,t.target.x),maxX:Math.max(t.source.x,t.target.x),minY:Math.min(t.source.top,t.target.top),maxY:Math.max(t.source.bottom,t.target.bottom)};return{type:"path",id:`chart-sankey-link-${i.id}-${t.linkIndex}`,order:s(),bounds:o?l:a,d:CC(t),detail:{of:"link",fromId:t.fromId,toId:t.toId},style:{fill:t.fill,opacity:t.opacity,shadow:r,clip:n?{type:"path",d:n}:void 0}}}function CC(e){let{source:t,target:r,controlX:n}=e;return[`M ${t.x} ${t.top}`,`C ${n} ${t.top} ${n} ${r.top} ${r.x} ${r.top}`,`L ${r.x} ${r.bottom}`,`C ${n} ${r.bottom} ${n} ${t.bottom} ${t.x} ${t.bottom}`,"Z"].join(" ")}var RC=.3,kC=.78;function ym(e,t){let r=Math.max(0,m(e.chart.config?.barCornerRadius,0)),n=[];return t.nodes.forEach(o=>{n.push(wC(e,t,o,r));let i=e.showLabels?vC(e,t,o):void 0;i&&n.push(i)}),n}function wC(e,t,r,n){let{chart:o,bounds:i,nextOrder:a}=e,s=t.baseX+r.x,l=t.baseY+r.y,d={fill:{kind:"solid",color:r.color||z},shadow:O(o.shadowStyle)},c=r.column===0,u=r.column===t.columnCount-1,p={of:"chartSeries",series:r.id,mark:"sankey-node"};return n>0&&c&&u?{type:"rect",id:`chart-sankey-node-${o.id}-${r.id}`,order:a(),bounds:i,x:s,y:l,width:r.width,height:r.height,rx:n,style:d,detail:p}:n>0&&c?{type:"path",id:`chart-sankey-node-${o.id}-${r.id}`,order:a(),bounds:i,d:Kt(s,l,r.width,r.height,n),style:d,detail:p}:n>0&&u?{type:"path",id:`chart-sankey-node-${o.id}-${r.id}`,order:a(),bounds:i,d:Zt(s,l,r.width,r.height,n),style:d,detail:p}:{type:"rect",id:`chart-sankey-node-${o.id}-${r.id}`,order:a(),bounds:i,x:s,y:l,width:r.width,height:r.height,style:d,detail:p}}function vC(e,t,r){let{chart:n}=e,o=n.config?.labelPosition??"outside",i=o==="inside"?LC(e,t,r,n.config?.labelOrientation??"horizontal"):PC(e,t,r);if(!i)return;let a=n.textColor??"#0f172a",s=o==="inside"?J(r.color):De(r.color,ln(a)?kC:RC)??a,l=n.config?.labelColor??s;return{...i,color:l,detail:{of:"chartSeries",series:r.id,mark:"sankey-node-label"}}}function PC(e,t,r){let{chart:n,bounds:o,nextOrder:i}=e,a=r.column===t.columnCount-1,s=t.baseX+r.x,l=t.baseY+r.y,d=a?s-t.labelGutter+8:s+r.width+6;return{...w({id:`chart-sankey-label-${n.id}-${r.id}`,order:i(),bounds:o,frame:{x:d,y:l,width:t.labelGutter-12,height:Math.max(1,r.height)},text:r.label,chart:n,align:a?"right":"left"}),fontSize:t.labelSize,fontWeight:"bold",verticalAlign:"middle"}}function LC(e,t,r,n){let{chart:o,bounds:i,nextOrder:a}=e,s=t.baseX+r.x,l=t.baseY+r.y,d=s+r.width/2,c=l+r.height/2,u=t.labelSize,p=`chart-sankey-label-${o.id}-${r.id}`;if(n==="vertical"){let f=u*1.4,g=Math.max(1,r.height-8);return Me(r.label,u,!1)>g?void 0:{...w({id:p,order:a(),bounds:i,frame:{x:d-g/2,y:c-f/2,width:g,height:f},text:r.label,chart:o,align:"center",rotation:-90}),fontSize:u,fontWeight:"bold",verticalAlign:"middle",rotationCenter:{x:d,y:c}}}return{...w({id:p,order:a(),bounds:i,frame:{x:s+4,y:c-u/2-2,width:Math.max(1,r.width-8),height:u+4},text:r.label,chart:o,align:"center"}),fontSize:u,fontWeight:"bold",verticalAlign:"middle"}}function xm(e){let{chart:t,plot:r,showLabels:n}=e,o=n?92:0,i=Math.max(1,r.width-o*2),a=wi(TC(e),$C(e),i,r.height,{nodeWidth:Math.max(1,m(t.config?.sankeyNodeWidth,18)),nodeGap:Math.max(0,m(t.config?.sankeyNodeGap,8))});return{...a,baseX:r.x+o,baseY:r.y,labelGutter:o,fontSize:Math.max(9,m(t.fontSize,12)),labelSize:Math.max(6,m(t.config?.sankeyLabelSize,Math.max(9,m(t.fontSize,12))-2)),columnCount:Math.max(1,...a.nodes.map(s=>s.column+1)),nodeColors:new Map(a.nodes.map(s=>[s.id,s.color||z]))}}function TC(e){return(e.chart.config?.zones??[]).map(t=>({id:t.label,label:t.label,color:t.color,offsetX:t.offsetX,offsetY:t.offsetY}))}function $C(e){let t=[];return e.chart.series.forEach(r=>{!r.source||!r.target||t.push({source:r.source,target:r.target,value:r.values[0]??0,color:r.color?N(r.color,z):void 0})}),t}function Sm(e){let t=xm(e),r=[];return r.push(...bm(e,t)),r.push(...ym(e,t)),r}var MC=4;function Cm(e){let t=[],r=O(e.chart.shadowStyle);return e.chart.series.forEach((n,o)=>{let i=n.color??$[o%$.length];rt(e,tt(e.chart,n)).forEach((s,l)=>{t.push(AC(e,n,s,l,i,r))})}),t}function AC(e,t,r,n,o,i){let{chart:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=a.config,u=c?.pointSize??MC,p=c?.pointStrokeWidth??0;return{type:"ellipse",id:`chart-point-${a.id}-${t.id}-${n}`,order:d(),bounds:s,cx:r.x,cy:r.y,rx:u,ry:u,detail:{of:"chartValue",series:t.id,valueIndex:n},style:{fill:k(o,l,a.id),stroke:p>0?k(c?.pointStrokeColor??o,l,a.id):void 0,strokeWidth:p>0?p:void 0,opacity:c?.pointOpacity,shadow:i}}}function Rm(e){let{chart:t,plot:r,showLegend:n}=e,o=Math.max(9,m(t.fontSize,12)),i=t.legendPosition==="left"?"left":t.legendPosition==="right"?"right":"bottom",a=n&&i==="bottom"?48:0,s=Math.max(0,m(t.config?.cellGap,0));return{leaves:t.series,bands:rr(t.axisY),zones:t.config?.zones?.length?t.config.zones:tr,fontSize:o,smallFontSize:Math.max(8,o-1),legendPosition:i,legendHeight:a,gridWidth:Math.max(1,r.width),gridHeight:Math.max(1,r.height-a),cellGap:s,cellRadius:Math.max(0,m(t.config?.barCornerRadius,s)),headerHeight:Math.max(0,m(t.config?.headerHeight,20)),labelSize:Math.max(6,m(t.config?.tileLabelSize,Math.max(8,o-1))),valueSize:Math.max(6,m(t.config?.tileValueSize,Math.max(8,o-1))),labelPadding:Math.max(0,m(t.config?.tileLabelPadding,4))}}function br(e){return e.values[0]??0}function $i(e,t){return e.color??nr(br(e),t.bands,t.zones)}var Ee=10,wn=4,Mi=2,Ai=16,yr=34;function km(e,t){return t.zones.length===0||t.legendPosition==="bottom"&&t.legendHeight<=0?[]:t.legendPosition==="bottom"?EC(e,t):NC(e,t)}function Ei(e,t){let r=e.bands[0],n=e.bands[e.bands.length-1];return n===r?0:(t-r)/(n-r)}function wm(e){let t=Math.max(0,e.bands.length-1);return e.zones.slice(0,t).map((n,o)=>({offset:Ei(e,e.bands[o+1]??e.bands[e.bands.length-1])*100,color:n.color??z}))}function EC(e,t){let{chart:r,plot:n,bounds:o,nextOrder:i}=e,a=n.x,s=t.gridWidth,l=t.fontSize+2,d=n.y+t.gridHeight+Ai,c=Q({x:a,y:d,width:s,height:Ee}),u=wm(t),p={type:"rect",id:`chart-treemap-legend-bar-${r.id}`,order:i(),bounds:c,x:a,y:d,width:s,height:Ee,rx:3,zoneGradient:{axis:"y",min:r.axisY.min,max:r.axisY.max},style:{fill:u.length?{kind:"linear-gradient",angle:0,stops:u}:{kind:"solid",color:z},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},f=t.bands.flatMap((g,b)=>{let x=a+Ei(t,g)*s,C={type:"path",id:`chart-treemap-legend-tick-${r.id}-${b}`,order:i(),bounds:o,d:`M ${x} ${d+Ee} L ${x} ${d+Ee+wn}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},L=b===0,v=b===t.bands.length-1,M=L?"left":v?"right":"center",H=L?x:v?x-yr:x-yr/2,I=w({id:`chart-treemap-legend-tick-label-${r.id}-${b}`,order:i(),bounds:o,frame:{x:H,y:d+Ee+wn+Mi,width:yr,height:l},text:he(g),chart:r,align:M});return[C,I]});return[p,...f]}function NC(e,t){let{chart:r,plot:n,bounds:o,nextOrder:i}=e,a=t.legendPosition,s=n.y,l=t.gridHeight,d=a==="left"?n.x-Ai-Ee:n.x+t.gridWidth+Ai,c=Q({x:d,y:s,width:Ee,height:l}),u=wm(t),p={type:"rect",id:`chart-treemap-legend-bar-${r.id}`,order:i(),bounds:c,x:d,y:s,width:Ee,height:l,rx:3,zoneGradient:{axis:"y",min:r.axisY.min,max:r.axisY.max},style:{fill:u.length?{kind:"linear-gradient",angle:270,stops:u}:{kind:"solid",color:z},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},f=a==="left"?d:d+Ee,g=a==="left"?f-wn:f+wn,b=a==="left"?g-Mi-yr:g+Mi,x=t.bands.flatMap((C,L)=>{let v=s+(1-Ei(t,C))*l,M={type:"path",id:`chart-treemap-legend-tick-${r.id}-${L}`,order:i(),bounds:o,d:`M ${f} ${v} L ${g} ${v}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},H=w({id:`chart-treemap-legend-tick-label-${r.id}-${L}`,order:i(),bounds:o,frame:{x:b,y:v-t.fontSize/2,width:yr,height:t.fontSize+2},text:he(C),chart:r,align:a==="left"?"right":"left"});return[M,H]});return[p,...x]}function vm(e,t){let{tiles:r,headers:n}=OC(e,t),o=[],i=!!e.chart.config?.tileGradient;return r.forEach((a,s)=>{let l=r[s+1],d=l&&(a.item.leaf.group??"")===(l.item.leaf.group??""),c=i&&d?l:void 0;o.push(...IC(e,t,a,c))}),n.forEach((a,s)=>{o.push(...BC(e,t,a,s))}),o}function OC(e,t){if(!t.leaves.some(l=>l.group)){let l=t.leaves.map(c=>({leaf:c,value:br(c)}));return{tiles:hr(l,{x:0,y:0,width:t.gridWidth,height:t.gridHeight}),headers:[]}}let r=[];for(let l of t.leaves){let d=l.group??"";r.includes(d)||r.push(d)}let n=r.map(l=>({key:l,label:l||"Other",value:t.leaves.filter(d=>(d.group??"")===l).reduce((d,c)=>d+br(c),0)})),o=hr(n,{x:0,y:0,width:t.gridWidth,height:t.gridHeight}),i=t.cellGap,a=[],s=[];return o.forEach(l=>{let d=e.showLabels?Math.min(t.headerHeight,l.height):0;e.showLabels&&s.push({key:l.item.key,label:l.item.label,x:l.x+i/2,y:l.y,width:Math.max(0,l.width-i)});let u=t.leaves.filter(p=>(p.group??"")===l.item.key).map(p=>({leaf:p,value:br(p)}));a.push(...hr(u,{x:l.x,y:l.y+d,width:l.width,height:Math.max(0,l.height-d)}))}),{tiles:a,headers:s}}function BC(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,l=o.config?.headerColor??o.gridColor??"#e2e8f0",d={type:"rect",id:`chart-treemap-header-${o.id}-${n}`,order:s(),bounds:a,x:i.x+r.x,y:i.y+r.y,width:r.width,height:t.headerHeight,rx:t.cellRadius,style:{fill:{kind:"solid",color:l}}},c=Math.max(8,Math.max(9,o.fontSize??12)-1),u={...w({id:`chart-treemap-header-label-${o.id}-${n}`,order:s(),bounds:a,frame:{x:i.x+r.x,y:i.y+r.y+(t.headerHeight-c)/2,width:r.width,height:c+2},text:r.label,chart:o,align:"center"}),fontSize:c,color:J(l)};return[d,u]}function IC(e,t,r,n){let o=$i(r.item.leaf,t),i=n?$i(n.item.leaf,t):void 0,a=[GC(e,t,r,o,i)];return e.showLabels&&r.width>=34&&r.height>=18&&a.push(...DC(e,t,r,o)),a}function GC(e,t,r,n,o){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=t.cellGap,u=O(i.shadowStyle),p=u?`M ${a.x} ${a.y} H ${a.x+a.width} V ${a.y+a.height} H ${a.x} Z`:void 0,f=a.x+r.x+c/2,g=a.y+r.y+c/2,b=Math.max(0,r.width-c),x=Math.max(0,r.height-c),C="#94a3b8",L={minX:f,maxX:f+b,minY:g+x/2-b/2,maxY:g+x/2+b/2},v=o?{kind:"linear-gradient",angle:0,stops:[{offset:0,color:N(n,C)},{offset:100,color:N(o,C)}]}:k(n,l,i.id);return{type:"rect",id:`chart-treemap-tile-${i.id}-${r.item.leaf.id}`,order:d(),bounds:o?L:s,x:f,y:g,width:b,height:x,rx:t.cellRadius,style:{fill:v,stroke:{kind:"solid",color:i.config?.tileStrokeColor??i.gridColor??"#e2e8f0"},strokeWidth:m(i.config?.tileStrokeWidth,m(i.gridWidth,1)),shadow:u,clip:p?{type:"path",d:p}:void 0}}}function DC(e,t,r,n){let{chart:o,plot:i,bounds:a,nextOrder:s}=e,{leaf:l,value:d}=r.item,c=t.cellGap,u=t.labelPadding,p=Math.max(1,r.width-c-u*2),f=Math.max(1,r.height-c-u*1.5),g=i.x+r.x+c/2+u,b=i.y+r.y+c/2+u*.75,x=o.config?.tileTextColor??J(N(n,"#ffffff")),C=t.labelSize*1.2,L=Math.max(1,Math.floor(f/C)),v=Re(l.label,p,t.labelSize).slice(0,L).map(U=>Jr(U,p,t.labelSize,!0)),M={...w({id:`chart-treemap-label-${o.id}-${l.id}`,order:s(),bounds:a,frame:{x:g,y:b,width:p,height:f},text:l.label,chart:o}),lines:v,fontSize:t.labelSize,fontWeight:"bold",color:x},H=String(d),I=v.length*C+t.valueSize*1.2<=f+2&&Me(H,t.valueSize,!1)<=p;if(o.config?.showTileValues===!1||!I)return[M];let V={...w({id:`chart-treemap-value-${o.id}-${l.id}`,order:s(),bounds:a,frame:{x:g,y:b+v.length*C,width:p,height:Math.max(1,f-v.length*C)},text:String(d),chart:o}),lines:[String(d)],fontSize:t.valueSize,color:x};return[M,V]}function Pm(e){let t=Rm(e),r=[];return r.push(...vm(e,t)),r.push(...km(e,t)),r}var _C={bar:Qc,boxplot:au,custom:du,field:yu,heatmap:vu,hexbin:e=>Nu(e),line:Vu,mekko:Ku,pie:e=>im(e),polarArea:e=>lm(e),radar:e=>Li(e),radial:e=>Li(e),radialBar:e=>gm(e),sankey:Sm,scatter:Cm,treemap:Pm},FC=new Set(["radar","radial"]);function Ni(e){return FC.has(e)}function nt(e){return _C[e.chart.chartType](e)}function Lm(e){let{chart:t,context:r,layout:n,nodes:o,renderOrder:i}=e,a=yn(t,n.plot,n.bounds,i.current());o.push(...a),i.advance(a.length),o.push(...nt(r));let s=Uc({chart:t,plot:n.plot,bounds:n.bounds,order:i.current()});return o.push(...s),i.advance(s.length),o.push(...Gc(t,n,i.current())),o}function HC(e,t){let r=ee(e);return{of:"chartScale",valueScale:`${r?`${t.x},${t.width}`:`${t.y},${t.height}`},${e.axisY.min},${e.axisY.max}${r?",horizontal":""}`}}function VC(e,t){let{outerRadius:r,innerRadius:n,cornerRadius:o}=un(t.width,t.height,e.config?.innerRadius,e.config?.pieCornerRadius);return{of:"pieGeometry",pieGeometry:`${t.x+t.width/2},${t.y+t.height/2},${r},${n},${o}`}}function WC(e,t){let r=Math.max(1,Math.min(t.width,t.height)/2-4),n=Math.max(0,Math.min(m(e.config?.innerRadius,0),r-1)),o=Math.max(0,m(e.config?.pieCornerRadius,0));return{of:"pieGeometry",pieGeometry:`${t.x+t.width/2},${t.y+t.height/2},${r},${n},${o}`}}function zC(e,t){let r=(e.config?.categories?.filter(Boolean)??[]).length,n=Math.max(0,...e.series.map(c=>c.values.length)),o=hn(r,n),i=fn(t.width,t.height,m(e.fontSize,12),e.showAxisLabels!==!1),a=t.x+t.width/2,s=t.y+t.height/2,l=e.chartType==="radial"?1:0,d=e.config?.radarTension;return{of:"radarGeometry",radarGeometry:`${a},${s},${i},${e.axisY.min},${e.axisY.max},${o},${l}${d===void 0?"":`,${d}`}`}}function YC(e,t){return e.chartType==="pie"?VC(e,t):e.chartType==="polarArea"?WC(e,t):e.chartType==="radar"||e.chartType==="radial"?zC(e,t):Ac.has(e.chartType)?HC(e,t):void 0}function Tm(e,t,r,n){let o={type:"rect",id:`chart-${e.id}`,order:n,bounds:t,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius??12,style:{fill:k(e.fillColor??"#ffffff",[],e.id),stroke:{kind:"solid",color:e.strokeColor??"#475569"},strokeWidth:m(e.strokeWidth,1)}},i=YC(e,r);return i&&(o.detail=i),o}function $m(e,t,r,n){let o=Tc({chart:e,plot:t.plot,bounds:t.bounds,order:r.current(),diagnostics:n});return r.advance(o.length),o}function Mm(e,t,r,n){return{chart:e,plot:t.plot,bounds:t.bounds,diagnostics:n,showLabels:t.showLabels,showLegend:t.showLegend,stackedMode:e.config?.stacked&&e.config.stacked!=="none"?e.config.stacked:void 0,nextOrder:r.next}}var vn=class{#e;#n=.01;constructor(t){this.#e=t}next=()=>this.#e+this.#n++;current(){return this.#e+this.#n}advance(t){this.#n+=t}};function Am(e,t,r,n){return e.title?[{...w({id:`chart-title-${e.id}`,order:n.next(),bounds:t,frame:{x:r.x,y:e.y+12,width:r.width,height:20},text:e.title,chart:e}),...e.titleColor?{color:e.titleColor}:{},fontWeight:e.titleWeight??"bold",fontSize:m(e.titleSize,Math.max(10,m(e.fontSize,12))+2),prop:Rc}]:[]}function Em(e,t,r){let n=2e4+t,o=Ec(e),i=new vn(n),a=[Tm(e,o.bounds,o.plot,n)];return a.push(...jc(e,o.bounds,i)),a.push(...Am(e,o.bounds,o.plot,i)),a.push(...$m(e,o,i,r)),{chart:e,layout:o,nodes:a,renderOrder:i,context:Mm(e,o,i,r)}}function Nm(e){return e.nodes.push(...nt(e.context)),e.nodes}function Om(e){return e.nodes.push(...nt(e.context)),e.nodes}function Bm(e,t,r){if(e.isVisible===!1)return[];let n=Em(e,t,r);return Ni(e.chartType)?Nm(n):Je(e)?Lm(n):Om(n)}function Oi(e,t){return e.flatMap((r,n)=>Z(Bm(r,n,t),"chart",r.id,r.chartType,r.title??"Chart"))}function UC(e){return e.length?{minX:Math.min(...e.map(t=>t.bounds.minX)),minY:Math.min(...e.map(t=>t.bounds.minY)),maxX:Math.max(...e.map(t=>t.bounds.maxX)),maxY:Math.max(...e.map(t=>t.bounds.maxY))}:Eo}function jC(e){let t=new Map,r=(n,o,i)=>{o.forEach((a,s)=>{t.set(`${n}:${a.id}`,{rank:_l(a),sequence:Fl(a,i+s)})})};return r("frame",e.frames,0),r("swimlane",e.swimlanes,5e3),r("shape",e.shapes,1e4),r("widget",e.components??e.widgets??[],1e4),r("isometric",e.isometricObjects??[],15e3),r("link",e.links.map(n=>n.link),2e4),r("chart",e.charts??[],2e4),r("path",e.paths??[],3e4),t}function XC(e,t){let r=jC(t);for(let n of e){let o=n.identity?r.get(`${n.identity.role}:${n.identity.id}`):void 0;n.rank=o?.rank??0,n.sequence=o?.sequence??0}}function Bi(e,t={}){let{measureText:r}=t,n=[...e.diagnostics??[]],o=[...id(e),...Xd(e.paths??[]),...Oi(e.charts??[],n),...jd(e.links,r),...pc(e.shapes,n,r),...No(e.components??e.widgets??[]),...sd(e.isometricObjects??[])];return XC(o,e),o.sort((i,a)=>(i.rank??0)-(a.rank??0)||(i.sequence??0)-(a.sequence??0)||i.order-a.order||(i.id<a.id?-1:i.id>a.id?1:0)),{nodes:o,bounds:UC(o),diagnostics:n}}var P=e=>String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),h=e=>Number(e.toFixed(3)).toString(),ge=e=>`sf-${e.replace(/[^A-Za-z0-9_.:-]/g,"-")}`;var Pn=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;clip(t){if(!t.clip)return;let r=JSON.stringify(t.clip),n=this.ids.get(r);if(!n){n=ge(`${this.prefix}clip-${this.ids.size}`),this.ids.set(r,n);let o=t.clip,i=o.type==="path"?`<path clip-rule="evenodd" d="${P(o.d)}"/>`:`<rect x="${h(o.x)}" y="${h(o.y)}" width="${h(o.width)}" height="${h(o.height)}" rx="${h(o.rx)}"/>`;this.addDefinition(`<clipPath id="${n}">${i}</clipPath>`)}return n}};var Ln=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;filter(t,r,n){if(t.innerShadow)return this.define(r,t.innerShadow,ZC);if(t.shadow){let o=t.shadow.blur*1.5+Math.max(Math.abs(t.shadow.dx),Math.abs(t.shadow.dy));return this.define(r,t.shadow,qC,n&&n>0?Math.max(.5,o/n):.5)}if(t.blur||t.saturate!==void 0)return this.define(r,{blur:t.blur??0,saturate:t.saturate??1},KC)}define(t,r,n,o=.5){let i=JSON.stringify(r)+n.name+o,a=this.ids.get(i);return a||(a=ge(`${this.prefix}shadow-${t}-${this.ids.size}`),this.ids.set(i,a),this.addDefinition(`<filter id="${a}" x="${h(-o*100)}%" y="${h(-o*100)}%" width="${h((1+o*2)*100)}%" height="${h((1+o*2)*100)}%">${n(r)}</filter>`)),a}};function qC(e){return`<feDropShadow dx="${h(e.dx)}" dy="${h(e.dy)}" stdDeviation="${h(e.blur/2)}" flood-color="${P(e.color)}" flood-opacity="${h(e.opacity)}"/>`}function KC(e){let t=e.blur>0?`<feGaussianBlur stdDeviation="${h(e.blur/2)}"/>`:"",r=e.saturate===1?"":`<feColorMatrix type="saturate" values="${h(e.saturate)}"/>`;return t+r}function ZC(e){return['<feComponentTransfer in="SourceAlpha" result="sf-inverted-alpha">','<feFuncA type="table" tableValues="1 0"/>',"</feComponentTransfer>",`<feGaussianBlur in="sf-inverted-alpha" stdDeviation="${h(e.blur/2)}" result="sf-blurred"/>`,`<feOffset in="sf-blurred" dx="${h(e.dx)}" dy="${h(e.dy)}" result="sf-offset"/>`,`<feFlood flood-color="${P(e.color)}" flood-opacity="${h(e.opacity)}" result="sf-color"/>`,'<feComposite in="sf-color" in2="sf-offset" operator="in" result="sf-halo"/>','<feComposite in="sf-halo" in2="SourceGraphic" operator="in" result="sf-inset"/>','<feComposite in="sf-inset" in2="SourceGraphic" operator="over"/>'].join("")}function Im(e,t,r,n){return{arrow:`<path d="M ${h(-t)} ${h(-t*.6)} L 0 0 L ${h(-t)} ${h(t*.6)}" fill="none" stroke="${r}" stroke-width="${h(n)}" stroke-linecap="round" stroke-linejoin="round"/>`,filled_arrow:`<path d="M ${h(-t)} ${h(-t*.6)} L 0 0 L ${h(-t)} ${h(t*.6)} Z" fill="${r}" stroke="${r}" stroke-width="${h(n*.5)}" stroke-linejoin="round"/>`,circle:`<circle cx="0" cy="0" r="${h(t*.5)}" fill="white" stroke="${r}" stroke-width="${h(n)}"/>`,filled_circle:`<circle cx="0" cy="0" r="${h(t*.5)}" fill="${r}"/>`,diamond:`<path d="M ${h(-t*.6)} 0 L 0 ${h(-t*.6)} L ${h(t*.6)} 0 L 0 ${h(t*.6)} Z" fill="white" stroke="${r}" stroke-width="${h(n)}"/>`,filled_diamond:`<path d="M ${h(-t*.6)} 0 L 0 ${h(-t*.6)} L ${h(t*.6)} 0 L 0 ${h(t*.6)} Z" fill="${r}" stroke="${r}" stroke-width="${h(n*.5)}"/>`,bar:`<path d="M 0 ${h(-t*.6)} V ${h(t*.6)}" stroke="${r}" stroke-width="${h(n)}" stroke-linecap="round"/>`,triangle:`<path d="M ${h(-t)} ${h(-t*.72)} L 0 0 L ${h(-t)} ${h(t*.72)} Z" fill="white" stroke="${r}" stroke-width="${h(n)}" stroke-linejoin="round"/>`,one:`<path d="M 0 ${h(-t*.62)} V ${h(t*.62)} M ${h(-t*.72)} ${h(-t*.62)} V ${h(t*.62)}" stroke="${r}" stroke-width="${h(n)}"/>`,zero_one:`<circle cx="${h(-t*.8)}" cy="0" r="${h(t*.38)}" fill="white" stroke="${r}" stroke-width="${h(n)}"/><path d="M 0 ${h(-t*.62)} V ${h(t*.62)}" stroke="${r}" stroke-width="${h(n)}"/>`,many:`<path d="M ${h(-t)} ${h(-t*.72)} L 0 0 M ${h(-t)} 0 L 0 0 M ${h(-t)} ${h(t*.72)} L 0 0" stroke="${r}" stroke-width="${h(n)}" stroke-linecap="round"/>`,one_many:`<path d="M ${h(-t)} ${h(-t*.72)} L 0 0 M ${h(-t)} 0 L 0 0 M ${h(-t)} ${h(t*.72)} L 0 0 M ${h(-t*1.45)} ${h(-t*.62)} V ${h(t*.62)}" stroke="${r}" stroke-width="${h(n)}" stroke-linecap="round"/>`,zero_many:`<circle cx="${h(-t*1.45)}" cy="0" r="${h(t*.38)}" fill="white" stroke="${r}" stroke-width="${h(n)}"/><path d="M ${h(-t)} ${h(-t*.72)} L 0 0 M ${h(-t)} 0 L 0 0 M ${h(-t)} ${h(t*.72)} L 0 0" stroke="${r}" stroke-width="${h(n)}" stroke-linecap="round"/>`}[e]}function QC(e,t,r){return Math.max(t*(e==="one_many"||e==="zero_many"?2:1.4),r*2)}function JC(e,t){return`id="${e}" markerWidth="${h(t*2)}" markerHeight="${h(t*2)}" viewBox="${h(-t)} ${h(-t)} ${h(t*2)} ${h(t*2)}" refX="0" refY="0" orient="auto-start-reverse" markerUnits="userSpaceOnUse" overflow="visible"`}var Tn=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;marker(t,r,n){if(!t||t==="none")return;let o=`${t}:${r}:${n}`,i=this.ids.get(o);if(i)return i;i=ge(`${this.prefix}marker-${t}-${this.ids.size}`),this.ids.set(o,i);let a=12+(n-2)*3,s=QC(t,a,n),l=JC(i,s);return this.addDefinition(`<marker ${l}>${Im(t,a,P(r),n)}</marker>`),i}};function eR(e,t){let r=t.points.map((i,a)=>ge(`${e}-point-${a}`)),n=t.points.map((i,a)=>{let s=Math.max(0,Math.min(100,i.x)),l=Math.max(0,Math.min(100,i.y));return`<radialGradient id="${r[a]}" gradientUnits="objectBoundingBox" cx="${h(s)}%" cy="${h(l)}%" r="75%"><stop offset="0%" stop-color="${P(i.color)}" stop-opacity="1"/><stop offset="100%" stop-color="${P(i.color)}" stop-opacity="0"/></radialGradient>`}).join(""),o=t.points.map((i,a)=>`<rect width="1" height="1" fill="url(#${r[a]})"/>`).join("");return`${n}<pattern id="${e}" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" width="1" height="1"><rect width="1" height="1" fill="${P(t.points[0]?.color??"transparent")}"/>${o}</pattern>`}function tR(e,t,r){let n=t.angle*Math.PI/180,o=(r.minX+r.maxX)/2,i=(r.minY+r.maxY)/2,a=Math.max(r.maxX-r.minX,r.maxY-r.minY)/2,s=Math.cos(n)*a,l=Math.sin(n)*a,d=t.stops.map(c=>`<stop offset="${h(Math.max(0,Math.min(100,c.offset)))}%" stop-color="${P(c.color)}"/>`).join("");return`<linearGradient id="${e}" gradientUnits="userSpaceOnUse" x1="${h(o-s)}" y1="${h(i-l)}" x2="${h(o+s)}" y2="${h(i+l)}">${d}</linearGradient>`}var $n=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;paint(t,r,n){if(!t||t.kind==="none")return"none";if(t.kind==="solid")return t.color;let o=JSON.stringify(t)+JSON.stringify(n),i=this.ids.get(o);if(!i){i=ge(`${this.prefix}gradient-${r}-${this.ids.size}`),this.ids.set(o,i);let a=t.kind==="mesh-gradient"?eR(i,t):tR(i,t,n);this.addDefinition(a)}return`url(#${i})`}};var Mn=class{constructor(t){this.prefix=t;let r=n=>{this.entries.push(n)};this.paints=new $n(r,t),this.filters=new Ln(r,t),this.markers=new Tn(r,t),this.clips=new Pn(r,t)}prefix;entries=[];paints;filters;markers;clips;elementId(t){return ge(`${this.prefix}${t}`)}paint(t,r,n){return this.paints.paint(t,r,n)}filter(t,r,n){return this.filters.filter(t,r,n)}marker(t,r,n){return this.markers.marker(t,r,n)}clip(t){return this.clips.clip(t)}};function rR(e,t){return{type:"path",id:`link-hit-${t}`,order:e.order,rank:e.rank,sequence:e.sequence,bounds:e.bounds,d:e.d,identity:{role:"link",id:t},style:{fill:{kind:"none"},stroke:{kind:"solid",color:"#000000"},strokeWidth:16,opacity:0,pointerEvents:"stroke"}}}function Gm(e){return e.flatMap(t=>t.type==="path"&&t.identity?.role==="link"&&t.identity.primary?[t,rR(t,t.identity.id)]:[t])}function Dm(e,t){let r=e.stroke;return r?.kind==="solid"?r.color:r?.kind==="linear-gradient"&&r.stops.length?(t==="start"?r.stops.reduce((o,i)=>o.offset<=i.offset?o:i):r.stops.reduce((o,i)=>o.offset>=i.offset?o:i)).color:r?.kind==="mesh-gradient"&&r.points.length?r.points[0].color:"#64748b"}function _m(e,t){let r=t.paint(e.style.stroke,`${e.id}-stroke`,e.bounds),n=t.paint(e.style.fill,`${e.id}-fill`,e.bounds),o=[`fill="${P(n)}"`,`stroke="${P(r)}"`];return nR(o,e.style),Fm(o,e,t),iR(o,e,t),o.join(" ")}function nR(e,t){t.strokeWidth!==void 0&&e.push(`stroke-width="${h(t.strokeWidth)}"`),t.dash?.length&&e.push(`stroke-dasharray="${t.dash.map(h).join(" ")}"`),t.lineCap&&e.push(`stroke-linecap="${t.lineCap}"`),t.lineJoin&&e.push(`stroke-linejoin="${t.lineJoin}"`),t.opacity!==void 0&&e.push(`opacity="${h(t.opacity)}"`),t.pointerEvents&&e.push(`pointer-events="${t.pointerEvents}"`)}function oR(e){let t=e;if(t.type==="ellipse"&&t.rx!==void 0&&t.ry!==void 0)return Math.min(t.rx,t.ry)*2;if(t.type==="rect"&&t.width!==void 0&&t.height!==void 0)return Math.min(t.width,t.height)}function Fm(e,t,r){let n=r.filter(t.style,t.id,oR(t));n&&e.push(`filter="url(#${n})"`);let o=r.clip(t.style);o&&e.push(`clip-path="url(#${o})"`)}function iR(e,t,r){if(t.type!=="path")return;let n=r.marker(t.markerStart,Dm(t.style,"start"),t.style.strokeWidth??1),o=r.marker(t.markerEnd,Dm(t.style,"end"),t.style.strokeWidth??1);n&&e.push(`marker-start="url(#${n})"`),o&&e.push(`marker-end="url(#${o})"`)}function Fe(e,t){return e&&t?` transform="rotate(${h(e)} ${h(t.x)} ${h(t.y)})"`:""}function Hm(e,t){let r=[];return e.style.opacity!==void 0&&r.push(`opacity="${h(e.style.opacity)}"`),e.style.pointerEvents&&r.push(`pointer-events="${e.style.pointerEvents}"`),Fm(r,e,t),r.join(" ")}var Vm="data-sf-symbol-points",Wm="data-sf-symbol-tension",An="data-sf-symbol-bounds",xr="data-sf-corner-radius",zm="data-sf-square-corner",En="data-sf-path-points",Nn="data-sf-path-tension",On="data-sf-path-closed",Ym="data-sf-path-point",Bn="data-sf-isometric-size",In="data-sf-isometric-label-offset";function aR(e){return e.role==="shape"?"entity":e.role}function sR(e){return[`role="${P(e.role)}"`,e.checked===void 0?void 0:`aria-checked="${e.checked}"`,e.pressed===void 0?void 0:`aria-pressed="${e.pressed}"`,e.disabled?'aria-disabled="true"':void 0]}function lR(e){return[`data-sf-role="${aR(e)}"`,`data-sf-id="${P(e.id)}"`,e.kind?`data-sf-kind="${P(e.kind)}"`:void 0,e.primary?'data-sf-primary="true"':void 0,e.parentFrameId?`data-sf-parent-frame="${P(e.parentFrameId)}"`:void 0,...e.aria?sR(e.aria):[]]}function dR(e){switch(e.of){case"chartValue":return cR(e);case"chartScale":return pR(e);case"chartSeries":return fR(e);case"pieGeometry":return uR(e);case"radarGeometry":return mR(e);case"link":return xR(e);case"frameBoundary":return hR(e);case"symbolGeometry":return gR(e);case"declaredBounds":return[Ii(e.bounds)];case"pathGeometry":return bR(e);case"isometricGeometry":return yR(e)}}function cR(e){return[`data-sf-series="${P(e.series)}"`,`data-sf-value-index="${e.valueIndex}"`,e.mark?`data-sf-mark="${e.mark}"`:void 0,e.radius!==void 0?`data-sf-bar-radius="${h(e.radius)}"`:void 0,e.colorProp?`data-sf-color-prop="${P(e.colorProp)}"`:void 0,e.hasColorOverride?'data-sf-color-override="true"':void 0,e.pieStart!==void 0?`data-sf-pie-start="${h(e.pieStart)}"`:void 0,e.pieEnd!==void 0?`data-sf-pie-end="${h(e.pieEnd)}"`:void 0,e.pieValue!==void 0?`data-sf-pie-value="${h(e.pieValue)}"`:void 0]}function uR(e){return[`data-sf-pie-geometry="${e.pieGeometry}"`]}function mR(e){return[`data-sf-radar-geometry="${e.radarGeometry}"`]}function pR(e){return[`data-sf-value-scale="${e.valueScale}"`]}function fR(e){return[`data-sf-series="${P(e.series)}"`,e.lineTension!==void 0?`data-sf-line-tension="${h(e.lineTension)}"`:void 0,e.mark?`data-sf-mark="${P(e.mark)}"`:void 0,e.pulled?'data-sf-label-pulled="true"':void 0,e.midAngle!==void 0?`data-sf-pie-mid-angle="${h(e.midAngle)}"`:void 0,e.wedgeRadius!==void 0?`data-sf-pie-wedge-radius="${h(e.wedgeRadius)}"`:void 0]}function hR(e){return[`${xr}="${h(e.cornerRadius)}"`,`${zm}="${e.squareCorner}"`]}function Ii(e){return`${An}="${h(e.x)},${h(e.y)},${h(e.width)},${h(e.height)}"`}function gR(e){return[`${Vm}="${P(JSON.stringify(e.points))}"`,`${Wm}="${h(e.tension)}"`,Ii(e.declaredBounds)]}function bR(e){return[`${En}="${P(JSON.stringify(e.points))}"`,`${Nn}="${h(e.tension)}"`,`${On}="${e.closed}"`]}function yR(e){return[`${Bn}="${h(e.width)},${h(e.height)},${h(e.depth)}"`,`${xr}="${h(e.cornerRadius)}"`,Ii(e.bounds),`${In}="${h(e.labelOffsetX)},${h(e.labelOffsetY)}"`]}function xR(e){return[e.fromId?`data-sf-from="${P(e.fromId)}"`:void 0,e.toId?`data-sf-to="${P(e.toId)}"`:void 0,e.route?`data-sf-route="${e.route}"`:void 0,e.fromSide?`data-sf-from-side="${e.fromSide}"`:void 0,e.toSide?`data-sf-to-side="${e.toSide}"`:void 0,e.segments?`data-sf-link-segments="${P(JSON.stringify(e.segments))}"`:void 0,e.fromFace?`data-sf-from-face="${e.fromFace}"`:void 0,e.toFace?`data-sf-to-face="${e.toFace}"`:void 0,e.labelGap?'data-sf-label-gap="true"':void 0]}function ot(e){let t=e.identity?.label,r=[...e.identity?lR(e.identity):[],...e.detail?dR(e.detail):[],e.prop?`data-sf-prop="${P(e.prop)}"`:void 0,e.propKind?`data-sf-prop-kind="${e.propKind}"`:void 0,e.propSolidOnly?'data-sf-prop-solid-only="true"':void 0,e.mark?`data-sf-mark="${P(e.mark)}"`:void 0,e.zoneGradient?'data-sf-zone-gradient="true"':void 0,e.zoneGradient?`data-sf-zone-axis-min="${h(e.zoneGradient.min)}"`:void 0,e.zoneGradient?`data-sf-zone-axis-max="${h(e.zoneGradient.max)}"`:void 0,t?`tabindex="0" aria-label="${P(t.replace(/\s+/g," ").trim())}"`:void 0].filter(n=>n!==void 0);return r.length?` ${r.join(" ")}`:""}function SR(e,t,r,n){if(!e.length)return`<tspan x="${h(t)}"${r} font-size="${n}"></tspan>`;let o=[];for(let i of e){let a=o[o.length-1];a&&a.bold===i.bold?a.text+=` ${i.text}`:(a&&(a.text+=" "),o.push({text:i.text,bold:i.bold}))}return o.map((i,a)=>`<tspan${a===0?` x="${h(t)}"${r}`:""} font-size="${n}" font-weight="${i.bold?"bold":"normal"}">${P(i.text)}</tspan>`).join("")}function Um(e,t){let r=CR(e),n=`${h(e.fontSize)}px`,o=kR(e,r,n),i=e.richLines?' xml:space="preserve"':"";return`<text id="${t.elementId(e.id)}"${ot(e)} x="${h(r.x)}" y="${h(r.firstY)}" font-family="${P(e.fontFamily)}" font-size="${n}" font-weight="${e.fontWeight}"${e.letterSpacing?` letter-spacing="${h(e.letterSpacing)}"`:""} fill="${P(e.color)}" text-anchor="${r.anchor}" data-sf-valign="${e.verticalAlign}" data-sf-line-height="${h(e.lineHeight)}"${i}${Fe(e.rotation,e.rotationCenter)}>${o}</text>`}function CR(e){let t=e.fontSize*e.lineHeight,n=(e.richLines?e.richLines.length:e.lines.length)*t,o=e.align==="left"?e.x:e.align==="right"?e.x+e.width:e.x+e.width/2,i=e.align==="left"?"start":e.align==="right"?"end":"middle";return{x:o,firstY:RR(e,n),linePx:t,anchor:i}}function RR(e,t){return e.verticalAlign==="top"?e.y+e.fontSize:e.verticalAlign==="bottom"?e.y+e.height-t+e.fontSize:e.y+(e.height-t)/2+e.fontSize}function kR(e,t,r){return e.richLines?e.richLines.map((n,o)=>SR(n,t.x,jm(o,t.linePx),r)).join(""):e.lines.map((n,o)=>wR(n,o,t,r)).join("")}function wR(e,t,r,n){return`<tspan x="${h(r.x)}" font-size="${n}"${jm(t,r.linePx)}>${P(e)}</tspan>`}function jm(e,t){return e?` dy="${h(t)}px"`:""}function vR(e,t){let r=Fe(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2}),n=P(JSON.stringify(e.shader.parameters)),o=e.fillColor?` data-sf-shader-fill="${P(e.fillColor)}"`:"";return`<foreignObject id="${t.elementId(e.id)}"${ot(e)} data-sf-shader="${P(e.shader.program)}" data-sf-shader-name="${P(e.shader.name)}" data-sf-shader-params="${n}" data-sf-shader-mask="${e.mask}"${o} x="${h(e.x)}" y="${h(e.y)}" width="${h(e.width)}" height="${h(e.height)}"${r} pointer-events="${e.shader.program==="ruler"||e.identity?.role==="widget"?"all":"none"}"><canvas xmlns="http://www.w3.org/1999/xhtml" data-sf-shader-canvas="true" style="display:block;width:100%;height:100%;pointer-events:none"></canvas></foreignObject>`}function PR(e,t){let r=t.componentStyle;return r.variant==="plain"?`<span xmlns="http://www.w3.org/1999/xhtml" data-sf-rolling-digit="true" style="position:relative;display:inline-block;width:.62em;height:1.1em;overflow:hidden"><span data-sf-rolling-current="true" style="position:absolute;inset:0;display:grid;place-items:center;color:${P(r.color)};font-weight:${P(r.fontWeight)};line-height:1">${P(e)}</span></span>`:`<span xmlns="http://www.w3.org/1999/xhtml" data-sf-rolling-digit="true" style="position:relative;display:inline-block;width:.72em;height:1.2em;overflow:hidden;border:1px solid ${P(r.divider)};border-radius:.09em;background:${P(r.surface)};box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -.16em .38em rgba(0,0,0,.12)"><span data-sf-rolling-current="true" style="position:absolute;inset:0;display:grid;place-items:center;color:${P(r.color)};font-weight:300;line-height:1">${P(e)}</span><span style="position:absolute;z-index:2;left:0;right:0;top:50%;height:1px;background:${P(r.divider)};pointer-events:none"></span></span>`}function LR(e,t){let r=Fe(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2}),n=e.componentStyle.fontSize>0?e.componentStyle.fontSize:Math.max(1,Math.min(e.width,e.height)*.28),o=e.label?`<span xmlns="http://www.w3.org/1999/xhtml" style="margin-bottom:.14em;color:${P(e.componentStyle.labelColor)};font-size:.16em;font-weight:600;letter-spacing:.24em;line-height:1">${P(e.label)}</span>`:"",i=[...e.value].map(s=>PR(s,e)).join(""),a=P(JSON.stringify(e.componentStyle));return`<foreignObject id="${t.elementId(e.id)}"${ot(e)} data-sf-widget="rollingNumber" data-sf-widget-value="${P(e.value)}" data-sf-widget-digits="${e.digits??""}" data-sf-widget-duration="${h(e.duration)}" data-sf-widget-style="${a}" x="${h(e.x)}" y="${h(e.y)}" width="${h(e.width)}" height="${h(e.height)}"${r}><div xmlns="http://www.w3.org/1999/xhtml" style="width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:${P(e.componentStyle.fontFamily)};font-size:${h(n)}px">${o}<div data-sf-rolling-digits="true" aria-label="${P(e.value)}" style="display:flex;gap:${e.componentStyle.variant==="plain"?".02em":".1em"};font-size:1em">${i}</div></div></foreignObject>`}function Xm(e,t){if(e.type==="text")return Um(e,t);if(e.type==="shader-surface")return vR(e,t);if(e.type==="rolling-number")return LR(e,t);if(e.type==="image")return`<image id="${t.elementId(e.id)}"${ot(e)} ${Hm(e,t)} href="${P(e.href)}" x="${h(e.x)}" y="${h(e.y)}" width="${h(e.width)}" height="${h(e.height)}" preserveAspectRatio="xMidYMid slice"/>`;let r=`id="${t.elementId(e.id)}"${ot(e)} ${_m(e,t)}`;return e.type==="rect"?`<rect ${r} x="${h(e.x)}" y="${h(e.y)}" width="${h(e.width)}" height="${h(e.height)}"${e.rx?` rx="${h(e.rx)}"`:""}${Fe(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2})}/>`:e.type==="ellipse"?`<ellipse ${r} cx="${h(e.cx)}" cy="${h(e.cy)}" rx="${h(e.rx)}" ry="${h(e.ry)}"${Fe(e.rotation,{x:e.cx,y:e.cy})}/>`:`<path ${r} d="${P(e.d)}"${Fe(e.rotation,e.rotationCenter)}/>`}function qm(e,t={}){let r=t.padding??16,n=Math.max(1,e.bounds.maxX-e.bounds.minX+r*2),o=Math.max(1,e.bounds.maxY-e.bounds.minY+r*2),i=`${h(e.bounds.minX-r)} ${h(e.bounds.minY-r)} ${h(n)} ${h(o)}`,a=new Mn(t.idPrefix?`${t.idPrefix}-`:""),l=(t.linkHitAreas?Gm(e.nodes):e.nodes).map(u=>Xm(u,a)).join(`
|
|
3
|
+
`?(this.line++,this.col=1):this.col++,t}};var Ae=class extends Error{constructor(r,o,n){super(`SFL lex error (${o}:${n}): ${r}`);this.line=o;this.col=n;this.name="SflLexError"}line;col};var ls=e=>e!==void 0&&/^[A-Za-z_]$/.test(e),bt=e=>e!==void 0&&e>="0"&&e<="9",ds=e=>e!==void 0&&/^[A-Za-z0-9_]$/.test(e);function ue(e,t,r,o={}){return{type:e,value:t,line:r.line,col:r.col,endLine:r.line,endCol:r.col,...o}}function En(e,t){return{...e,endLine:t.line,endCol:t.col}}function cs(e){return ls(e.peek())}function us(e,t){let r="";for(;ds(e.peek());)r+=e.advance();return ue("ident",r,t)}function ms(e){return e==="\r"||e===`
|
|
4
|
+
`}function ps(e,t){return e.advance()==="\r"&&e.peek()===`
|
|
5
|
+
`&&e.advance(),ue("newline",`
|
|
6
|
+
`,t)}function fs(e){return e.peek()==="/"&&e.peek(1)==="/"}function hs(e){for(;!e.done&&e.peek()!==`
|
|
7
|
+
`&&e.peek()!=="\r";)e.advance()}function gs(e){let t=e.peek();return bt(t)||t==="-"&&bt(e.peek(1))}function ys(e,t){let r="";for(e.peek()==="-"&&(r+=e.advance());bt(e.peek());)r+=e.advance();if(e.peek()==="."&&bt(e.peek(1)))for(r+=e.advance();bt(e.peek());)r+=e.advance();return ue("number",r,t,{numberValue:Number(r)})}var Lh=[["<->","bind2"],["<-","bind"],["->","action"],["&&","op"],["||","op"],[">=","op"],["<=","op"],["==","op"],["!=","op"],["+","op"],["-","op"],["*","op"],["/","op"],[">","op"],["<","op"],["!","op"]],Th=e=>e!==void 0&&/[\d.]/.test(e);function bs(e,t){let r=Lh.find(([i])=>e.startsWith(i));if(!r)return null;let[o,n]=r;if(o==="-"&&Th(e.peek(1)))return null;for(let i=0;i<o.length;i++)e.advance();return ue(n,o,t)}var Mh={"{":"lbrace","}":"rbrace","[":"lbracket","]":"rbracket","(":"lparen",")":"rparen",":":"colon",",":"comma",";":"semi",".":"dot","&":"amp"};function xs(e,t){let r=e.peek(),o=r?Mh[r]:void 0;return!r||!o||r==="&"&&e.peek(1)==="&"?null:(e.advance(),ue(o,r,t))}function Ss(e){return e===" "||e===" "}function Cs(e){e.advance()}function $h(e){let t=0;for(;e[t]===" "||e[t]===" ";)t++;return t}function Ah(e){let t=e.split(`
|
|
8
|
+
`),r=1/0;for(let o of t)o.trim()&&(r=Math.min(r,$h(o)));return!Number.isFinite(r)||r===0?e:t.map(o=>o.trim()?o.slice(r):o).join(`
|
|
9
|
+
`)}function Eh(e,t){Rs(e);let r="";for(;!e.done;){if(e.startsWith('"""'))return Rs(e),Ah(r.replace(/^\r?\n/,"").replace(/\r?\n[ \t]*$/,""));r+=e.advance()}throw new Ae("unterminated long string",t.line,t.col)}function Rs(e){e.advance(),e.advance(),e.advance()}function Nh(e,t){e.advance();let r="";for(;!e.done;){let o=e.advance();if(o==='"')return r;if(o===`
|
|
10
|
+
`||o==="\r")throw new Ae('newline in short string (use """ for multiline)',t.line,t.col);r+=o==="\\"?Oh(e,t):o}throw new Ae("unterminated string",t.line,t.col)}function Oh(e,t){if(e.done)throw new Ae("unterminated escape sequence",t.line,t.col);let r=e.advance();switch(r){case'"':return'"';case"\\":return"\\";case"n":return`
|
|
11
|
+
`;case"t":return" ";default:throw new Ae(`invalid escape '\\${r}'`,t.line,t.col)}}function Bh(e,t){return e.startsWith('"""')?Eh(e,t):Nh(e,t)}function ks(e,t){return ue("string",Bh(e,t),t)}function ws(e){let t=e.peek();if(t===void 0)return null;let r=e.position();if(ms(t))return ps(e,r);if(Ih(e,t))return null;let o=Dh(e,t,r)??Gh(e,r);if(o)return o;throw new Ae(`unexpected character '${t}'`,r.line,r.col)}function Ih(e,t){return Ss(t)?(Cs(e),!0):fs(e)?(hs(e),!0):!1}function Dh(e,t,r){let o=xs(e,r);return o||(t==='"'?ks(e,r):bs(e,r))}function Gh(e,t){return gs(e)?ys(e,t):cs(e)?us(e,t):null}function vs(e){let t=new Hr(e),r=[];for(;!t.done;){let o=ws(t);o&&r.push(En(o,t))}return r.push(En(ue("eof","",t.position()),t)),r}var Y=class extends Error{constructor(r,o,n){super(`SFL parse error (${o}:${n}): ${r}`);this.line=o;this.col=n;this.name="SflParseError"}line;col};var Vr=class{constructor(t){this.tokens=t}tokens;position=0;peek(t=0){return this.tokens[Math.min(this.position+t,this.tokens.length-1)]}at(t){return this.peek().type===t}next(){return this.tokens[this.position++]}expect(t,r){let o=this.peek();if(o.type!==t)throw new Y(`expected ${r}, got '${o.value||o.type}'`,o.line,o.col);return this.next()}expectNumber(t){let r=this.expect("number",t);if(r.numberValue===void 0)throw new Y(`expected ${t} to contain a numeric value`,r.line,r.col);return r.numberValue}skipNewlines(){for(;this.at("newline");)this.next()}};function er(e){let t=[e.expect("ident","path identifier").value];for(;e.at("dot");)e.next(),t.push(e.expect("ident",'identifier after "."').value);return t}function Ps(e){let t=er(e),r,o;if(e.at("comma")){e.next();let n=e.expect("ident",'side after ","');if(!ss(n.value))throw new Y(`expected a side (top/right/bottom/left), got '${n.value}'`,n.line,n.col);r=n.value,e.at("lparen")&&(e.next(),o=e.expectNumber('fraction inside "("'),e.expect("rparen","')'"))}return{type:"endpoint",segments:t,side:r,fraction:o}}function _h(e){e.expect("lbracket","'['");let t=[];if(e.skipNewlines(),!e.at("rbracket"))for(t.push(Wr(e,!1)),e.skipNewlines();e.at("comma")&&(e.next(),e.skipNewlines(),!e.at("rbracket"));)t.push(Wr(e,!1)),e.skipNewlines();return e.expect("rbracket","']'"),{type:"list",values:t}}function Wr(e,t=!0){let r=e.peek();switch(r.type){case"string":return e.next(),{type:"string",value:r.value};case"lbracket":return _h(e);case"number":{let o=e.expectNumber("number");if(!t||!e.at("comma"))return{type:"number",value:o};let n=[o];for(;e.at("comma");)e.next(),n.push(e.expectNumber("number in tuple"));return{type:"tuple",values:n}}case"ident":return{type:"ident",segments:er(e)};default:throw new Y(`expected a value, got '${r.value||r.type}'`,r.line,r.col)}}var Fh=new Set([">","<",">=","<=","==","!="]);function Hh(e,t){let r=e.peek();return r.type==="op"&&t.has(r.value)}function tr(e,t,r){let o=r(e);for(;Hh(e,t);)o={kind:"binary",operator:e.next().value,left:o,right:r(e)};return o}var Vh=new Set(["||"]),Wh=new Set(["&&"]),zh=new Set(["+","-"]),Yh=new Set(["*","/"]);function zr(e){return tr(e,Vh,Uh)}function Uh(e){return tr(e,Wh,Xh)}function Xh(e){return tr(e,Fh,jh)}function jh(e){return tr(e,zh,qh)}function qh(e){return tr(e,Yh,Ms)}function Ms(e){let t=e.peek();return t.type==="op"&&(t.value==="!"||t.value==="-")?(e.next(),{kind:"unary",operator:t.value,operand:Ms(e)}):Zh(e)}function Kh(e){e.expect("lparen","'('");let t=[];for(e.skipNewlines();!e.at("rparen");)if(t.push(zr(e)),e.skipNewlines(),e.at("comma"))e.next(),e.skipNewlines();else if(!e.at("rparen")){let r=e.peek();throw new Y(`expected ',' or ')', got '${r.value||r.type}'`,r.line,r.col)}return e.expect("rparen","')'"),t}function Zh(e){let t=e.peek();switch(t.type){case"number":return{kind:"number",value:e.expectNumber("number")};case"string":return e.next(),{kind:"string",value:t.value};case"lparen":{e.next();let r=zr(e);return e.expect("rparen","')'"),r}case"ident":{let r=er(e);return r.length===1&&(r[0]==="true"||r[0]==="false")?{kind:"boolean",value:r[0]==="true"}:e.at("lparen")?{kind:"call",callee:r,args:Kh(e)}:{kind:"ref",path:r}}default:throw new Y(`expected an expression, got '${t.value||t.type}'`,t.line,t.col)}}var Qh=["bind","bind2","action"];function Yr(e){return e.peek().type==="ident"&&e.peek(1).type==="colon"&&Qh.includes(e.peek(2).type)}function Ur(e){let t=e.expect("ident","bound property");e.expect("colon","':'");let r=e.next().value,o=zr(e),n=e.peek();if(!["newline","semi","rbrace","eof"].includes(n.type))throw new Y(`unexpected '${n.value||n.type}' after binding`,n.line,n.col);return{key:t.value,operator:r,expr:o,line:t.line,col:t.col}}function Ls(e){let t=e.peek(),r=er(e);e.expect("bind","'<-'");let o=zr(e);return{target:r,expr:o,line:t.line,col:t.col}}function $s(e){let t=e.peek();return t.type==="ident"&&/^on[A-Z]/.test(t.value)&&["colon","lbrace"].includes(e.peek(1).type)}function As(e){let t=e.expect("ident","event name"),r=[];if(e.at("colon"))e.next(),r.push(Ls(e)),Ts(e,"handler");else{for(e.expect("lbrace","'{'"),e.skipNewlines();!e.at("rbrace");){if(e.at("eof"))throw new Y(`unterminated handler '${t.value}'`,t.line,t.col);r.push(Ls(e)),Ts(e,"assignment"),e.skipNewlines()}e.expect("rbrace","'}'")}return{event:t.value,assignments:r,line:t.line,col:t.col}}function Ts(e,t){let r=e.peek();if(!["newline","semi","rbrace","eof"].includes(r.type))throw new Y(`unexpected '${r.value||r.type}' after ${t}`,r.line,r.col);r.type==="semi"&&e.next()}var Xr=class{constructor(t){this.cursor=t}cursor;parseLayout(){return this.cursor.next(),{properties:this.parsePropertyBlock("layout")}}parseStyle(){this.cursor.next(),this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let t=[],r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let o=this.cursor.peek();throw new Y("unterminated style block",o.line,o.col)}Yr(this.cursor)?(r.push(Ur(this.cursor)),(this.cursor.at("newline")||this.cursor.at("semi"))&&this.cursor.next()):t.push(this.parseProperty()),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r.length?{properties:t,bindings:r}:{properties:t}}parseFields(){return this.cursor.next(),this.parsePropertyBlock("fields")}parseProperty(){let t=this.cursor.expect("ident","property key").value;this.cursor.expect("colon","':'");let r=t==="from"||t==="to"?Ps(this.cursor):Wr(this.cursor);return this.consumeTerminator(),{key:t,value:r}}parsePropertyBlock(t){this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let o=this.cursor.peek();throw new Y(`unterminated ${t} block`,o.line,o.col)}r.push(this.parseProperty()),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r}consumeTerminator(){if(this.cursor.at("newline")||this.cursor.at("semi")){this.cursor.next();return}if(this.cursor.at("rbrace")||this.cursor.at("eof"))return;let t=this.cursor.peek();throw new Y(`unexpected '${t.value||t.type}' after property value`,t.line,t.col)}};var jr=class{constructor(t){this.cursor=t;this.properties=new Xr(t)}cursor;properties;parseBlock(){let t=this.cursor.expect("ident","block kind");if(!Fr(t.value))throw new Y(`unknown block kind '${t.value}'`,t.line,t.col);let r=this.cursor.expect("ident","block name"),o=this.parseComposition(),n=this.parseBlockEntries();return{kind:t.value,name:r.value,composition:o,entries:n}}parseComposition(){if(!this.cursor.at("colon"))return[];this.cursor.next();let t=[this.cursor.expect("ident",'reference name after ":"').value];for(;this.cursor.at("amp");)this.cursor.next(),t.push(this.cursor.expect("ident",'reference name after "&"').value);return t}parseBlockEntries(){return this.parseEntries(()=>this.parseBlockEntry())}parseDataEntries(){return this.parseEntries(()=>this.parseDataEntry())}parseEntries(t){this.cursor.skipNewlines(),this.cursor.expect("lbrace","'{'");let r=[];for(this.cursor.skipNewlines();!this.cursor.at("rbrace");){if(this.cursor.at("eof")){let o=this.cursor.peek();throw new Y('unterminated block (missing "}")',o.line,o.col)}r.push(t()),this.cursor.at("semi")&&this.cursor.next(),this.cursor.skipNewlines()}return this.cursor.expect("rbrace","'}'"),r}parseBlockEntry(){let t=this.cursor.peek();if(t.type!=="ident")throw new Y(`expected property, block, layout, or style \u2014 got '${t.value||t.type}'`,t.line,t.col);return Fr(t.value)&&this.cursor.peek(1).type==="ident"?{type:"block",block:this.parseBlock()}:t.value==="layout"&&this.cursor.peek(1).type==="lbrace"?{type:"layout",layout:this.properties.parseLayout()}:t.value==="style"&&this.cursor.peek(1).type==="lbrace"?{type:"style",style:this.properties.parseStyle()}:t.value==="fields"&&this.cursor.peek(1).type==="lbrace"?{type:"fields",fields:this.properties.parseFields()}:Yr(this.cursor)?{type:"binding",binding:Ur(this.cursor)}:$s(this.cursor)?{type:"handler",handler:As(this.cursor)}:t.value==="data"&&this.cursor.peek(1).type==="lbrace"?{type:"data",data:this.parseDataBlock()}:{type:"property",property:this.properties.parseProperty()}}parseDataEntry(){let t=this.cursor.peek();return t.type==="ident"&&!Fr(t.value)&&this.looksLikeSeriesEntry()?{type:"block",block:this.parseSeriesEntry()}:this.parseBlockEntry()}parseDataBlock(){return this.cursor.next(),{kind:"data",name:"",composition:[],entries:this.parseDataEntries()}}looksLikeSeriesEntry(){if(this.cursor.peek(1).type==="lbrace")return!0;if(this.cursor.peek(1).type!=="colon")return!1;let t=2;if(this.cursor.peek(t).type!=="ident")return!1;for(t++;this.cursor.peek(t).type==="amp";){if(t++,this.cursor.peek(t).type!=="ident")return!1;t++}return this.cursor.peek(t).type==="lbrace"}parseSeriesEntry(){let t=this.cursor.expect("ident","series name"),r=this.parseComposition(),o=this.parseBlockEntries();return{kind:"Series",name:t.value,composition:r,entries:o}}};var qr=class{constructor(t){this.cursor=t;this.blocks=new jr(t)}cursor;blocks;parseDocument(){this.cursor.skipNewlines();let t=this.cursor.expect("ident","'sfl' header");if(t.value!=="sfl")throw new Y(`document must start with 'sfl', got '${t.value}'`,t.line,t.col);let r=this.cursor.expect("number","version number");this.cursor.skipNewlines();let o=[];for(;!this.cursor.at("eof");)o.push(this.blocks.parseBlock()),this.cursor.skipNewlines();return{version:r.value,blocks:o}}};function Nn(e){return new qr(new Vr(vs(e))).parseDocument()}function k(e){if(e){if(e.type==="string")return e.value;if(e.type==="ident")return e.segments.join(".");if(e.type==="number")return String(e.value)}}function w(e){return e?.type==="number"?e.value:void 0}function ve(e){return e?.type==="tuple"?e.values:void 0}function Es(e){return e?.type==="list"?e.values.flatMap(t=>t.type==="number"?[t.value]:[]):void 0}function Jh(e,t){if(e.length<2)return null;let r=e[e.length-1],o=e[e.length-2],n=t.idByName.get(o);return(n?t.canvasObjectById.get(n):void 0)?.symbol?.ports?.some(a=>a.name===r)?{id:n,port:r}:null}function xt(e,t){if(e?.type!=="endpoint")return{};let r=Jh(e.segments,t);if(r)return r;let o=e.segments[e.segments.length-1];return{id:t.idByName.get(o)??o,side:e.side,fraction:e.fraction}}function H(e){let t=new Map;for(let r of e.entries)r.type==="property"&&t.set(r.property.key,r.property.value);return t}function Kr(e){let t=new Map;for(let r of e.entries)if(r.type==="style")for(let o of r.style.properties)t.set(o.key,o.value);return t}function Ns(e){let t=new Map;for(let r of e.entries)if(r.type==="layout")for(let o of r.layout.properties)t.set(o.key,o.value);return t}function j(e){return e.entries.flatMap(t=>t.type==="block"?[t.block]:[])}function Os(e){for(let t of e.entries)if(t.type==="data")return t.data}function St(e){let t=Os(e);return t?[...j(e),...j(t)]:j(e)}function Bs(e,t){let r=H(e).get(t);if(r!==void 0)return r;let o=Os(e);return o?H(o).get(t):void 0}var eg=["Entity","Shape","Text","Container","Path","Chart","Widget","Component","Isometric","Dimension"],tg=new Set(eg);function Ct(e){return tg.has(e)}function Is(e,t){for(let r of e)Ct(r.kind)&&t.set(r.name,k(H(r).get("id"))??r.name),Is(j(r),t)}function Zr(e){let t=new Map;return e&&Is(j(e),t),t}var rg=new Set(["id","from","to","text","order","segments"]);function Qr(e){let t={};for(let[r,o]of e){if(rg.has(r))continue;let n=k(o);n!==void 0&&(t[r]=n)}return t}var og=new Set(["top","bottom","front","back","left","right"]);function Ds(e){return e!==void 0&&og.has(e)?e:"front"}function Gs(e,t,r,o,n=[]){let i={idByName:Zr(e),canvasObjectById:new Map(r.map(a=>[a.id,a]))};return t.map((a,s)=>{let l=o.mergedProps(a);return{id:k(l.get("id"))??a.name,fromId:xt(l.get("from"),i).id,toId:xt(l.get("to"),i).id,fromFace:Ds(k(l.get("fromFace"))),toFace:Ds(k(l.get("toFace"))),order:w(l.get("order")),sourceIndex:n[s],props:Qr(l)}})}function _s(e,t,r){let o=t.mergedProps(e),n=xt(o.get("from"),r),i=xt(o.get("to"),r);return{id:k(o.get("id"))??e.name,fromId:n.id,toId:i.id,text:k(o.get("text")),fromSide:n.side,fromFraction:n.fraction,toSide:i.side,toFraction:i.fraction,fromPort:n.port,toPort:i.port,order:w(o.get("order")),segments:Es(o.get("segments")),props:Qr(o)}}function Fs(e,t,r,o,n=[]){let i={idByName:Zr(e),canvasObjectById:new Map(r.map(a=>[a.id,a]))};return t.map((a,s)=>({..._s(a,o,i),sourceIndex:n[s]}))}function ng(e,t){let r=t.mergedProps(e).get("members");return r?.type==="list"?r.values.flatMap(o=>o.type==="ident"?[o.segments]:[]):[]}function ig(e,t,r,o,n){let i=[{type:"property",property:{key:"from",value:{type:"endpoint",segments:t}}},{type:"property",property:{key:"to",value:{type:"endpoint",segments:r}}}];return n&&i.push({type:"property",property:{key:"text",value:{type:"string",value:n}}}),{kind:"Link",name:`${e.name}_${o+1}`,composition:[],entries:i}}function Hs(e,t){let r=ng(e,t);if(r.length<2)return[];let o=k(t.mergedProps(e).get("text"));return r.slice(1).map((n,i)=>ig(e,r[0],n,i,o))}function Vs(e,t){let r=k(t.layoutProp(e,"flow")),o=w(t.layoutProp(e,"gap"))??0,n=0;return i=>{if(r!=="horizontal"&&r!=="vertical")return;let a=r==="horizontal"?[n,0]:[0,n];return n+=(r==="horizontal"?i[0]:i[1])+o,a}}var Jr=["bar","line","scatter","radar","radial","field","heatmap","boxplot","sankey","treemap","mekko","hexbin","pie","radialBar","polarArea","custom"];function Rt(e){return e!==void 0&&Jr.includes(e)}function _e(e){if(e?.type!=="list")return;let t=e.values.flatMap(r=>{let o=w(r);return o===void 0?[]:[o]});return t.length>0?t:void 0}function Ws(e){if(e?.type==="list")return e.values.flatMap(t=>{let r=k(t);return r===void 0?[]:[r]})}function Ee(e){let t=k(e);if(t!==void 0)return t==="true"}function On(e){let t=e?H(e):new Map;return{min:w(t.get("min"))??0,max:w(t.get("max"))??10,step:w(t.get("step"))??1,label:k(t.get("label")),unit:k(t.get("unit")),thresholds:_e(t.get("thresholds"))}}function zs(e){return St(e).filter(t=>t.kind==="Rule").map(t=>{let r=H(t);return{id:t.name,at:w(r.get("at"))??0,text:k(r.get("text")),color:k(r.get("color")),strokeWidth:w(r.get("strokeWidth")),dash:_e(r.get("dash"))}})}function Ys(e){if(e.type!=="list"||e.values.length<2)return;let t=e.values.map(w);return t.every(r=>r!==void 0)?t:void 0}function Us(e){return e?.type!=="list"?[]:ag(e.values)==="tuple"?lg(e.values):sg(e.values)}function ag(e){for(let t of e){if(t.type==="number")return"scalar";if(Ys(t))return"tuple"}}function sg(e){return e.flatMap(t=>t.type==="number"?[t.value]:[])}function lg(e){return e.flatMap(t=>{let r=Ys(t);return r?[r]:[]})}function Xs(e){if(e?.type==="list")return e.values.map(dg)}function dg(e){return e.type==="ident"&&e.segments.join(".")==="none"?null:e.type==="number"?e.value:cg(e)}function cg(e){if(e.type!=="list"||e.values.length<2)return null;let t=w(e.values[0]),r=w(e.values[1]);return t!==void 0&&r!==void 0?[t,r]:null}function js(e){if(e?.type==="list")return e.values.map(ug)}function ug(e){return e.type==="ident"&&e.segments.join(".")==="none"?null:k(e)??null}function qs(e,t){if(e?.type==="list"){let n=e.values.flatMap(mg);return n.length>0?{points:n}:void 0}let r=k(e),o=r?t.get(r):void 0;if(o)return{points:o.points,normalized:!0,tension:o.tension}}function mg(e){if(e.type!=="list"||e.values.length<2)return[];let t=w(e.values[0]),r=w(e.values[1]);return t===void 0||r===void 0?[]:[[t,r]]}function Ks(e,t,r){let o=r(e);return{id:e.name,label:k(o.get("label"))??e.name,color:k(o.get("color")),colors:js(o.get("colors")),opacity:w(o.get("opacity")),group:k(o.get("group")),values:Us(o.get("values")),error:Xs(o.get("error")),source:k(o.get("source")),target:k(o.get("target")),size:w(o.get("size")),symbol:qs(o.get("symbol"),t),stroke:k(o.get("stroke")),strokeWidth:w(o.get("strokeWidth")),dash:_e(o.get("dash")),offset:w(o.get("offset")),labelOffsetX:w(o.get("labelOffsetX")),labelOffsetY:w(o.get("labelOffsetY"))}}function Zs(e){if(e?.type!=="list")return;let t=e.values.flatMap(r=>{if(r.type!=="list")return[];let o=k(r.values[0]);return o===void 0?[]:[{label:o,color:k(r.values[1]),offsetX:w(r.values[2]),offsetY:w(r.values[3])}]});return t.length>0?t:void 0}var pg=["none","true","percent","waterfall"];function fg(e){return Rt(e)?e:"bar"}function hg(e){return pg.find(t=>t===e)}function Qs(e,t,r,o){let n=St(e),i=n.filter(s=>s.kind==="Axis"),a=k(t.get("stacked"));return{chartType:fg(k(t.get("type"))),categories:Ws(Bs(e,"categories")),areaOpacity:w(t.get("areaOpacity")),stacked:hg(a),scale:k(t.get("scale")),interpolate:k(t.get("interpolate"))==="idw"?"idw":void 0,idwPower:w(t.get("idwPower")),isolines:_e(t.get("isolines")),zones:Zs(t.get("zones")),boxWidth:w(t.get("boxWidth")),orientation:k(t.get("orientation"))==="horizontal"?"horizontal":void 0,lineTension:w(t.get("lineTension")),highlightPoints:_e(t.get("highlightPoints")),barCornerRadius:w(t.get("barCornerRadius")),showBoxplotPoints:Ee(t.get("showBoxplotPoints")),barBorderColor:k(t.get("barBorderColor")),barBorderWidth:w(t.get("barBorderWidth")),barGroupGap:w(t.get("barGroupGap")),barGlow:w(t.get("barGlow")),barGap:w(t.get("barGap")),mekkoVaryHeight:Ee(t.get("mekkoVaryHeight")),hexRadius:w(t.get("hexRadius")),innerRadius:w(t.get("innerRadius")),pieCornerRadius:w(t.get("pieCornerRadius")),pieSliceGap:w(t.get("pieSliceGap")),ringThickness:w(t.get("ringThickness")),ringGap:w(t.get("ringGap")),cellGap:w(t.get("cellGap")),showValues:Ee(t.get("showValues")),squareCells:Ee(t.get("squareCells")),headerColor:k(t.get("headerColor")),tileGradient:Ee(t.get("tileGradient")),showColumnBackdrop:Ee(t.get("showColumnBackdrop")),labelPosition:k(t.get("labelPosition"))==="inside"?"inside":void 0,labelOrientation:k(t.get("labelOrientation"))==="vertical"?"vertical":void 0,labelColor:k(t.get("labelColor")),linkGradient:Ee(t.get("linkGradient")),connectPoints:Ee(t.get("connectPoints")),reverseComparison:Ee(t.get("reverseComparison")),axisX:On(i.find(s=>s.name==="x")),axisY:On(i.find(s=>s.name==="y"||s.name==="value")),series:n.filter(s=>s.kind==="Series").map(s=>Ks(s,r,o)),rules:zs(e)}}function Js(e,t,r,o,n){return{...e,objectType:"chart",chart:Qs(t,r,o,n)}}function el(e,t){let[r,o]=ve(e)??[];return{x:t.x+(r??0),y:t.y+(o??0)}}function tl(e,t){return{start:el(e.get("start"),t),end:el(e.get("end"),t),offset:w(e.get("offset"))??0,unit:k(e.get("unit"))}}function rl(e,t,r){return{...e,objectType:"dimension",dimension:tl(t,r)}}function to(e,t){return Math.max(0,t.tension??e.tension)}function ro(e){return e.points.length<3||e.points.every(t=>to(e,t)<=0)}function eo(e,t){let{points:r}=e;return e.closed?r[(t+r.length)%r.length]:r[Math.max(0,Math.min(r.length-1,t))]}function oo(e){let t=e.closed?e.points.length:e.points.length-1;return Array.from({length:Math.max(0,t)},(r,o)=>{let n=eo(e,o-1),i=eo(e,o),a=eo(e,o+1),s=eo(e,o+2),l=to(e,i)/6,d=to(e,a)/6;if(l===0&&d===0)return{from:i,to:a,controls:null};let c={x:i.x+(a.x-n.x)*l,y:i.y+(a.y-n.y)*l},u={x:a.x-(s.x-i.x)*d,y:a.y-(s.y-i.y)*d};return{from:i,to:a,controls:[c,u]}})}function gg(e,t){let{from:r,to:o,controls:n}=e,i=1-t,a=[i*i*i,3*i*i*t,3*i*t*t,t*t*t],s=[r,n[0],n[1],o];return{x:s.reduce((l,d,c)=>l+d.x*a[c],0),y:s.reduce((l,d,c)=>l+d.y*a[c],0)}}function Bn(e,t=8){if(ro(e))return e.points.map(i=>({x:i.x,y:i.y}));let r=[],o=oo(e);o.forEach(i=>{if(r.push({x:i.from.x,y:i.from.y}),i.controls){let a={...i,controls:i.controls};for(let s=1;s<t;s++)r.push(gg(a,s/t))}});let n=o[o.length-1];return!e.closed&&n&&r.push({x:n.to.x,y:n.to.y}),r}function yg(e){if(e.type!=="list"||e.values.length<2)return[];let t=w(e.values[0]),r=w(e.values[1]),o=e.values[2]===void 0?void 0:w(e.values[2]);return t===void 0||r===void 0?[]:[o===void 0?{x:t,y:r}:{x:t,y:r,tension:o}]}function ol(e,t){let r=Bn({points:e,tension:t,closed:!0});return r.length>=3?r.map(o=>[o.x,o.y]):void 0}function bg(e,t){if(e?.type==="list")return ol(e.values.flatMap(yg),0);let r=k(e),o=r?t.get(r):void 0;if(!o)return;let n=o.points.map(([i,a],s)=>{let l=o.pointTensions?.[s];return l===void 0?{x:i,y:a}:{x:i,y:a,tension:l}});return ol(n,o.tension??0)}function nl(e,t,r){return{depth:t,icon:k(e.get("icon")),footprint:bg(e.get("symbol"),r),form:k(e.get("shape"))==="sphere"?"sphere":"box"}}function il(e,t,r,o,n){let i=ve(o(t,"size"));return{...e,objectType:"isometric",isometric:nl(r,i?.[2]??24,n)}}function al(e,t){let r=e.get("points");return{points:r?.type==="list"?r.values.flatMap(n=>{if(n.type!=="list"||n.values.length<2)return[];let i=w(n.values[0]),a=w(n.values[1]),s=n.values[2]===void 0?void 0:w(n.values[2]);if(i===void 0||a===void 0)return[];let l={x:t.x+i,y:t.y+a};return[s===void 0?l:{...l,tension:s}]}):[],tension:w(e.get("tension")),startMarker:k(e.get("startMarker")),endMarker:k(e.get("endMarker")),closed:k(e.get("closed"))==="true",value:w(e.get("value"))}}function sl(e,t,r){return{...e,objectType:"path",path:al(t,r)}}function ll(e){let t=k(e.get("orientation"))==="vertical"?"vertical":"horizontal",r=e.get("lanes"),o=r?.type==="list"?r.values.flatMap((i,a)=>{if(i.type!=="list")return[];let s=k(i.values[0]),l=w(i.values[1]);if(s===void 0||l===void 0)return[];let d=k(i.values[2]);return[{id:`lane-${a+1}`,label:s,size:l,...d?{color:d}:{}}]}):[];return{orientation:t,lanes:o}}function dl(e,t){return{...e,objectType:"swimlane",swimlane:ll(t)}}function xg(e,t){return e.kind==="Path"?"path":e.kind==="Chart"?"chart":Jt(e.kind)?k(t.get("type"))??"widget":e.kind==="Text"?"text":e.kind==="Isometric"?"isometric":e.kind==="Dimension"?"dimension":k(t.get("kind"))??""}function Sg(e){return e==="frame"?"frame":e==="swimlane"?"swimlane":e==="path"?"path":e==="chart"?"chart":et(e)?"component":e==="isometric"?"isometric":e==="dimension"?"dimension":"shape"}function cl(e,t,r){let o=xg(e,t),n=k(t.get("shape")),i=n?r.get(n):void 0;return{objectType:Jt(e.kind)?"component":Sg(o),kind:o,shapeType:i?"symbol":n,symbol:i}}function ul(e,t,r,o){let n=o??ve(r(e,"position"))??[0,0],i=ve(r(e,"size"))??[0,0];return{x:t.x+(n[0]??0),y:t.y+(n[1]??0),width:i[0]??0,height:i[1]??0,rotation:w(r(e,"rotation")),order:w(r(e,"order"))}}var Cg=new Set(["id","kind","text","shape","parent","order","orientation","lanes"]);function ml(e){let t={};for(let[r,o]of e){if(Cg.has(r))continue;let n=k(o);n!==void 0&&(t[r]=n)}return t}function pl(e,t,r,o,n){let{mergedProps:i,layoutProp:a,symbolDefs:s}=r,l=i(e),d=cl(e,l,s),c=ul(e,t,a,n),u={id:k(l.get("id"))??e.name,kind:d.kind,text:k(l.get("text")),...c,parentFrameId:o??k(l.get("parent")),props:ml(l)};switch(d.objectType){case"chart":return Js(u,e,l,s,i);case"isometric":return il(u,e,l,a,s);case"path":return sl(u,l,t);case"dimension":return rl(u,l,t);case"swimlane":return dl(u,l);case"frame":return{...u,objectType:"frame"};case"component":return{...u,objectType:"component",component:{type:k(l.get("type"))??"rollingNumber",value:k(l.get("value"))??"0",digits:w(l.get("digits")),duration:w(l.get("duration")),min:w(l.get("min")),max:w(l.get("max")),label:k(l.get("label"))}};case"shape":return{...u,objectType:"shape",shapeType:d.shapeType,symbol:d.symbol}}}function fl(e){return j(e).filter(t=>Ct(t.kind)).map(t=>k(H(t).get("id"))??t.name)}var In=class{#e;#o=[];#t=[];#r=[];#n=[];#i=[];#s=0;constructor(t){this.#e=t.canvasObjectResolutionContext}resolve(t){let r=t?this.#a(t,{origin:{x:0,y:0}}):[];return{canvasObjects:this.#o,groups:r,linkBlocks:this.#t,connectionBlocks:this.#r,linkSourceIndexes:this.#n,connectionSourceIndexes:this.#i}}#a(t,r){let o=[],n=Vs(t,this.#e);for(let i of j(t))o.push(...this.#l(i,r,n));return o}#l(t,r,o){let n=this.#s++;if(t.kind==="Container")return this.#c(t,r,o,n);if(Ct(t.kind))return this.#u(t,r,o,n),[];switch(t.kind){case"Group":return[this.#m(t,r)];case"Link":return this.#t.push(t),this.#n.push(n),[];case"Connection":return this.#r.push(t),this.#i.push(n),[];case"Net":{let i=Hs(t,this.#e);return this.#t.push(...i),this.#n.push(...i.map(()=>n)),[]}default:return[]}}#c(t,r,o,n){let i=this.#d(t,r,o,n);return this.#o.push(i),this.#a(t,{origin:{x:i.x,y:i.y},frameId:i.id})}#u(t,r,o,n){this.#o.push(this.#d(t,r,o,n))}#d(t,r,o,n){let i=ve(this.#e.layoutProp(t,"size"))??[0,0];return{...pl(t,r.origin,this.#e,r.frameId,o(i)),sourceIndex:n}}#m(t,r){let o=this.#e.mergedProps(t);return{id:k(o.get("id"))??t.name,name:k(o.get("text"))??t.name,color:k(o.get("color")),icon:k(o.get("icon")),canvasObjectIds:fl(t),subGroups:this.#a(t,r),parentFrameId:r.frameId??k(o.get("parent"))}}};function hl(e,t){return new In(t).resolve(e)}function gl(e){let t=H(e),r=k(t.get("program")),o=w(t.get("surfacePadding"));if(!r)return;let n={};for(let[i,a]of t){if(i==="program"||i==="surfacePadding")continue;let s=w(a),l=k(a);s!==void 0?n[i]=s:l!==void 0&&(n[i]=l==="true"?!0:l==="false"?!1:l)}return{name:e.name,program:r,...o===void 0?{}:{surfacePadding:Math.max(0,o)},parameters:n}}function Rg(e){let t=H(e).get("points"),r=[],o=[];if(t?.type!=="list")return{points:r,tensions:o};for(let n of t.values){if(n.type!=="list"||n.values.length<2)continue;let i=w(n.values[0]),a=w(n.values[1]);i===void 0||a===void 0||(r.push([i,a]),o.push(n.values[2]===void 0?void 0:w(n.values[2])))}return{points:r,tensions:o}}function kg(e){let t=j(e).filter(r=>r.kind==="Port").flatMap(r=>{let o=ve(H(r).get("at"));return typeof o?.[0]!="number"||typeof o[1]!="number"?[]:[{name:r.name,at:[o[0],o[1]]}]});return t.length>0?t:void 0}function yl(e){let{points:t,tensions:r}=Rg(e);if(!(t.length<2))return{name:e.name,points:t,pointTensions:r.some(o=>o!==void 0)?r:void 0,tension:w(H(e).get("tension")),ports:kg(e)}}function wg(e){return j(e).find(t=>t.kind==="Model")}function bl(e){return{styles:Pg(e),layouts:Lg(e),symbols:Tg(e),shaders:vg(e),model:Mg(e)}}function vg(e){let t=new Map;for(let r of e.blocks){if(r.kind!=="Shader")continue;let o=gl(r);o&&t.set(r.name,o)}return t}function Pg(e){let t=new Map;for(let r of e.blocks)r.kind==="Style"&&t.set(r.name,r);return t}function Lg(e){let t=new Map;for(let r of e.blocks)r.kind==="Layout"&&t.set(r.name,r);return t}function Tg(e){let t=new Map;for(let r of e.blocks){if(r.kind!=="Symbol")continue;let o=yl(r);o&&t.set(r.name,o)}return t}function Mg(e){for(let t of e.blocks){if(t.kind==="Model")return t;if(t.kind==="Project"){let r=wg(t);if(r)return r}}}function xl(e,t,r){let o,n;for(let i of e)t.has(i)?o=i:r.has(i)&&(n=i);return{styleRef:o,layoutRef:n}}function Sl(e,t,r,o){for(let n of e.composition)!t.has(n)&&!r.has(n)&&o.push({severity:"warning",code:"unresolved-style-or-layout",ownerId:e.name,message:`"${n}" is not a Style or Layout defined at the top level of the document \xC3\xA2\xE2\u201A\xAC\xE2\u20AC\x9D "${e.name}" gets no shape, fill, or stroke from it.`});for(let n of j(e))Sl(n,t,r,o)}function Cl(e,t,r){let o=[];for(let n of e.blocks)Sl(n,t,r,o);return o}function Gn(e,t){return new Dn(e,t).resolveAll()}var Dn=class{#e;#o;#t=new Map;constructor(t,r){this.#e=t,this.#o=r}resolveAll(){for(let t of this.#e.keys())this.#r(t,new Set);return this.#t}#r(t,r){let o=this.#t.get(t);if(o)return o;let n=this.#e.get(t);if(!n||r.has(t))return new Map;let i=this.#n(n,new Set([...r,t]));for(let[a,s]of H(n))i.set(a,s);return this.#t.set(t,i),i}#n(t,r){let o=this.#o(t);return o?new Map(this.#r(o,r)):new Map}};function Rl(e){let{styles:t,layouts:r,symbols:o,shaders:n}=e,i=c=>xl(c.composition,t,r),a=Gn(t,c=>i(c).styleRef),s=Gn(r,c=>i(c).layoutRef);return{mergedProps:c=>{let u=new Map(a.get(i(c).styleRef??"")??[]);for(let[m,f]of H(c))u.set(m,f);for(let[m,f]of Kr(c))u.set(m,f);return u},layoutProp:(c,u)=>{let m=Ns(c);if(m.has(u))return m.get(u);let f=i(c).layoutRef;return f?s.get(f)?.get(u):void 0},symbolDefs:o,shaderDefs:n}}var $g=new Set(["radar","radial"]),kl=new Set(["scatter","custom","hexbin"]);function wl(e){let t=[],r=o=>{if(o.kind==="Chart"){let n=k(H(o).get("type"));n!==void 0&&!Rt(n)&&t.push({severity:"warning",code:"unsupported-chart-type",ownerId:o.name,message:`Unsupported chart type '${n}' \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D drawn as a plain series plot. Supported: ${Jr.join(", ")}.`})}for(let n of j(o))r(n)};for(let o of e.blocks)r(o);return t}function vl(e){let t=[],r=o=>{if(o.kind==="Chart")for(let n of St(o).filter(i=>i.kind==="Series"))H(n).has("values")||t.push({severity:"warning",code:"series-without-values",ownerId:n.name,message:`Series '${n.name}' has no values. If this was meant to be an Axis or Rule, it needs that keyword in front of the name \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D inside data{}, a bare name is read as a Series.`});for(let n of j(o))r(n)};for(let o of e.blocks)r(o);return t}function Pl(e){let t=[],r=o=>{if(o.kind==="Chart"){let n=k(H(o).get("type")),i=Rt(n)?n:"bar";k(Kr(o).get("gridShape"))==="circle"&&!kl.has(i)&&!$g.has(i)&&t.push({severity:"warning",code:"unsupported-grid-shape",ownerId:o.name,message:`gridShape: circle isn't supported on '${i}' \xC3\u0192\xC2\xA2\xC3\xA2\xE2\u20AC\u0161\xC2\xAC\xC3\xA2\xE2\u201A\xAC\xC2\x9D drawn with the standard rectangular grid instead. Supported: ${[...kl].join(", ")}.`})}for(let n of j(o))r(n)};for(let o of e.blocks)r(o);return t}function Ll(e){let t=[],r=o=>{if(Jt(o.kind)){let n=k(H(o).get("type"))??"rollingNumber";$n(n)||t.push({severity:"warning",code:"unsupported-component-type",ownerId:o.name,message:`Unsupported component type '${n}'. Supported: ${Mn().join(", ")}.`})}for(let n of j(o))r(n)};for(let o of e.blocks)r(o);return t}function Tl(e){let t=bl(e);return{model:t.model,diagnostics:[...Cl(e,t.styles,t.layouts),...wl(e),...Pl(e),...vl(e),...Ll(e)],canvasObjectResolutionContext:Rl(t)}}function Ml(e){let t=Tl(e),{canvasObjects:r,groups:o,linkBlocks:n,connectionBlocks:i,linkSourceIndexes:a,connectionSourceIndexes:s}=hl(t.model,t),l=Fs(t.model,n,r,t.canvasObjectResolutionContext,a),d=Gs(t.model,i,r,t.canvasObjectResolutionContext,s);return{canvasObjects:r,groups:o,links:l,connections:d,diagnostics:t.diagnostics,shaders:[...t.canvasObjectResolutionContext.shaderDefs.values()]}}function rr(e){return e.objectType==="dimension"&&e.dimension!==void 0}function or(e){return e.objectType==="isometric"&&e.isometric!==void 0}function $l(e){return Ml(Nn(e))}var nr=String.raw`rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z][\w-]*`;function Og(e){let t=e.match(/^gradient\(\s*([-\d.]+)\s*,\s*(.*)\)\s*$/);if(!t)return;let r=[],o=new RegExp(`(${nr})\\s+([-\\d.]+)%`,"g");for(let n of t[2].matchAll(o))r.push({color:n[1],position:Number(n[2])});return{type:"gradient",angle:Number(t[1]),stops:r}}function Bg(e){let t=e.match(/^mesh\(\s*(.*)\)\s*$/);if(!t)return;let r=[],o=new RegExp(`(${nr})\\s+([-\\d.]+)\\s*,\\s*([-\\d.]+)`,"g"),n=0;for(let i of t[1].matchAll(o))r.push({id:`mp-${Date.now()}-${n++}`,color:i[1],x:Number(i[2]),y:Number(i[3])});return{type:"mesh",points:r}}function he(e){if(!(e==null||e===""))return Og(e)??Bg(e)??e}function no(e){if(!e)return;let t=e.match(/^ramp\(\s*(.*)\)\s*$/);if(!t)return;let r=[],o=new RegExp(`(${nr})\\s+([-\\d.]+)`,"g");for(let n of t[1].matchAll(o))r.push({color:n[1],position:Number(n[2])});return{type:"ramp",stops:r}}function Ig(e,t,r){switch(t){case"color":e.color=r;break;case"opacity":e.opacity=Number(r);break;case"blur":e.blur=Number(r);break;case"angle":e.angle=Number(r);break;case"distance":e.distance=Number(r);break}}function Pe(e){if(!e)return;if(e==="on")return{enabled:!0};let t=e.match(/^shadow\((.*)\)\s*$/);if(!t)return;let r={enabled:!0};for(let o of t[1].split(",")){let n=o.split(":");n.length===2&&Ig(r,n[0].trim(),n[1].trim())}return r}var R=e=>e===void 0?void 0:Number(e);function Dg(e){try{return JSON.parse(e)}catch{return}}function Xe(e){if(e===void 0)return;let t=Dg(e);if(!Array.isArray(t))return;let r=t.filter(o=>typeof o=="number"&&Number.isFinite(o));return r.length===t.length?r:void 0}function ge(e){let t=he(e);return typeof t=="string"?t:void 0}var Gg=/^(?:#[0-9a-f]{3,8}|rgba?\([\d.,%\s]+\)|[a-z][\w-]*)$/i;function ye(e){return e&&Gg.test(e)?e:void 0}function Ne(e,t,r){return t.includes(e)?e:r}var io=["normal","bold"],Al=["normal","bold","100","200","300","400","500","600","700","800","900"],El=["top","bottom","left","right"],_n=["none","arrow","filled_arrow"];function kt(e){let t=he(e);return t===void 0||typeof t=="string"||t.type==="gradient"?t:void 0}var Nl=["left","center","right"],Ol=["top","middle","bottom"],ao=["solid","dashed","dotted"],so=["straight","curved","orthogonal"];function be(e,t){return e!==void 0&&t.includes(e)?e:void 0}var Bl=["solid","dashed","dotted","double"],Fn=["none","arrow","filled_arrow","circle","filled_circle","diamond","filled_diamond","bar","triangle","one","zero_one","many","one_many","zero_many"];function _g(e){let t=e?.match(/^image\(\s*([^,)]+?)\s*(?:,\s*(.+?))?\s*\)$/);return t?{url:t[1],overlay:t[2]}:void 0}function Fg(e){return e==="bottom"||e==="bottomLeft"||e==="bottomRight"||e==="left"||e==="right"?e:"top"}function Hg(e){return e==="dashed"||e==="dotted"?e:"solid"}function Vg(e){return{axisX:e.chart?.axisX??{min:0,max:4,step:1},axisY:e.chart?.axisY??{min:0,max:500,step:100},series:(e.chart?.series??[]).map(t=>({...t,color:he(t.color),colors:t.colors?.map(r=>r===null?null:he(r)??null),strokeWidth:t.strokeWidth})),rules:(e.chart?.rules??[]).map(t=>({id:t.id,at:t.at,text:t.text,color:t.color,strokeWidth:t.strokeWidth,dash:t.dash}))}}function Wg(e){let t=_g(e.fill);return{fillColor:t?"#111418":he(e.fill)??"#ffffff",fillImage:t,strokeColor:ge(e.stroke)??"#475569",strokeWidth:R(e.strokeWidth)??1,cornerRadius:R(e.cornerRadius)??12,shadowStyle:Pe(e.shadow)}}function zg(e){return{gridColor:e.gridColor??"#e2e8f0",gridWidth:R(e.gridWidth)??1,gridShape:e.gridShape==="circle"?"circle":"rect",gridLineStyle:Hg(e.gridLineStyle),gridRoundedCorners:e.gridRoundedCorners==="true",gridAxes:e.gridAxes==="x"||e.gridAxes==="y"?e.gridAxes:void 0,showGrid:e.showGrid!=="false"}}function Yg(e){return{axisLabelColor:e.axisLabelColor,axisLineWidth:R(e.axisLineWidth),axisLineColor:e.axisLineColor,axisLineStyle:e.axisLineStyle==="dashed"||e.axisLineStyle==="dotted"?e.axisLineStyle:void 0,tickLength:R(e.tickLength),axisFontSize:R(e.axisFontSize),axisFontFamily:e.axisFontFamily,showValueAxis:e.showValueAxis!=="false",categoryAlign:e.categoryAlign==="left"||e.categoryAlign==="inside"?e.categoryAlign:void 0,showAxisLabels:e.showAxisLabels!=="false"}}function Ug(e){return{textColor:e.textColor??"#0f172a",titleSize:R(e.titleSize),titleWeight:e.titleWeight==="normal"?"normal":void 0,titleColor:e.titleColor,fontSize:R(e.fontSize)??12,fontFamily:e.fontFamily??"Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"}}function Xg(e){return{legendColor:e.legendColor,showLegend:e.showLegend==="true",legendPosition:Fg(e.legendPosition)}}function Il(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,...Vg(e),...Wg(t),...zg(t),...Yg(t),...Ug(t),...Xg(t),order:e.order,sourceIndex:e.sourceIndex}}function Dl(e,t){return{categories:e?.categories,barCornerRadius:e?.barCornerRadius,barBorderColor:he(e?.barBorderColor),barBorderWidth:e?.barBorderWidth,barGroupGap:e?.barGroupGap,barGap:e?.barGap,barGlow:e?.barGlow,barSegments:R(t.barSegments),barSegmentGap:R(t.barSegmentGap),barSegmentSnap:t.barSegmentSnap==="false"?!1:void 0,barGlassBlur:R(t.barGlassBlur),barGlassSaturation:R(t.barGlassSaturation),barGlassTint:t.barGlassTint,barThickness:R(t.barThickness),orientation:e?.orientation,barTrack:t.barTrack==="true",barRoundedBottom:t.barRoundedBottom==="true",barLabelMaxOnly:t.barLabelMaxOnly==="true",barTrackColor:t.barTrackColor,barTrackHatch:t.barTrackHatch==="true",barTrackHatchColor:t.barTrackHatchColor,barTrackHatchAngle:R(t.barTrackHatchAngle),barTrackHatchSpacing:R(t.barTrackHatchSpacing),barTrackHatchWidth:R(t.barTrackHatchWidth),stacked:e?.stacked??"true",showBarLabels:t.showBarLabels==="true",barLabelPosition:t.barLabelPosition==="inside"||t.barLabelPosition==="center"||t.barLabelPosition==="axis"?t.barLabelPosition:void 0,barLabelFontSize:R(t.barLabelFontSize),barLabelFontFamily:t.barLabelFontFamily,barLabelFontWeight:t.barLabelFontWeight==="bold"?"bold":void 0,barLabelColor:t.barLabelColor,barLabelPill:t.barLabelPill==="true",barLabelPillColor:t.barLabelPillColor,barLabelBorderColor:t.barLabelBorderColor,barLabelBorderWidth:R(t.barLabelBorderWidth),barLabelFormat:t.barLabelFormat}}function Gl(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,lineTension:e?.lineTension,lineWidth:R(t.lineWidth),lineGlow:R(t.lineGlow),pointSize:R(t.pointSize),pointFill:t.pointFill,pointStrokeWidth:R(t.pointStrokeWidth),highlightPoints:e?.highlightPoints,highlightSize:R(t.highlightSize),highlightColor:t.highlightColor,highlightGuide:t.highlightGuide==="true",highlightLabels:t.highlightLabels==="true",highlightLabelColor:t.highlightLabelColor,highlightLabelFormat:t.highlightLabelFormat}}function _l(e,t){return{categories:e?.categories,pointSize:R(t.pointSize),pointOpacity:R(t.pointOpacity),pointStrokeWidth:R(t.pointStrokeWidth),pointStrokeColor:t.pointStrokeColor}}function Fl(e,t){return{boxWidth:e?.boxWidth,orientation:e?.orientation,barCornerRadius:e?.barCornerRadius,showBoxplotPoints:e?.showBoxplotPoints,barBorderColor:e?.barBorderColor,barBorderWidth:e?.barBorderWidth,boxWhiskerWidth:R(t.boxWhiskerWidth),boxMedianWidth:R(t.boxMedianWidth),boxMedianColor:t.boxMedianColor,boxWhiskerColor:t.boxWhiskerColor,boxCapSize:R(t.boxCapSize),boxPointSize:R(t.boxPointSize),boxPointOpacity:R(t.boxPointOpacity),boxJitter:R(t.boxJitter)}}function Hl(e){return{scale:no(e?.scale),interpolate:e?.interpolate,idwPower:e?.idwPower,isolines:e?.isolines}}function Vl(e,t){return{categories:e?.categories,zones:e?.zones,cellGap:e?.cellGap,showValues:e?.showValues,squareCells:e?.squareCells,barCornerRadius:e?.barCornerRadius,cellShape:t.cellShape==="circle"?"circle":t.cellShape==="square"?"square":void 0,cellStrokeColor:t.cellStrokeColor,cellStrokeWidth:R(t.cellStrokeWidth),cellValueSize:R(t.cellValueSize),cellValueColor:t.cellValueColor}}function Wl(e,t){return{hexRadius:e?.hexRadius,scale:no(e?.scale),hexGap:R(t.hexGap),hexStrokeWidth:R(t.hexStrokeWidth),hexStrokeColor:t.hexStrokeColor,hexMinOpacity:R(t.hexMinOpacity)}}function zl(e,t){return{categories:e?.categories,barCornerRadius:e?.barCornerRadius,mekkoVaryHeight:e?.mekkoVaryHeight,tileGradient:e?.tileGradient,showColumnBackdrop:e?.showColumnBackdrop,mekkoColumnGap:R(t.mekkoColumnGap),mekkoSegmentGap:R(t.mekkoSegmentGap),mekkoRoundAll:t.mekkoRoundAll===void 0?void 0:String(t.mekkoRoundAll)!=="false",mekkoSegmentStrokeColor:t.mekkoSegmentStrokeColor,mekkoSegmentStrokeWidth:R(t.mekkoSegmentStrokeWidth),mekkoLabelSize:R(t.mekkoLabelSize),mekkoValueSize:R(t.mekkoValueSize),mekkoTextColor:t.mekkoTextColor,showMekkoTotals:t.showMekkoTotals===void 0?void 0:String(t.showMekkoTotals)!=="false",mekkoValueFormat:t.mekkoValueFormat==="percent"?"percent":t.mekkoValueFormat==="value"?"value":void 0}}function Yl(e,t){return{innerRadius:e?.innerRadius,pieCornerRadius:e?.pieCornerRadius,pieSliceGap:e?.pieSliceGap,pieStartAngle:R(t.pieStartAngle),pieSweep:R(t.pieSweep),pieExplode:R(t.pieExplode),pieGlow:R(t.pieGlow),pieStroke:t.pieStroke,pieStrokeWidth:R(t.pieStrokeWidth),pieLabelPosition:t.pieLabelPosition==="inside"||t.pieLabelPosition==="outside"?t.pieLabelPosition:void 0,pieLabelContent:t.pieLabelContent==="percent"||t.pieLabelContent==="name"||t.pieLabelContent==="inline"?t.pieLabelContent:void 0,pieLabelColor:t.pieLabelColor,pieCenterText:t.pieCenterText,pieCenterSize:R(t.pieCenterSize),pieCenterColor:t.pieCenterColor}}function Ul(e,t){return{innerRadius:e?.innerRadius,pieCornerRadius:e?.pieCornerRadius,pieSliceGap:e?.pieSliceGap,pieStartAngle:R(t.pieStartAngle),pieStroke:t.pieStroke,pieStrokeWidth:R(t.pieStrokeWidth),polarTrackOpacity:R(t.polarTrackOpacity),polarRings:t.polarRings===void 0?void 0:String(t.polarRings)!=="false",polarTrackStroke:t.polarTrackStroke,polarTrackStrokeWidth:R(t.polarTrackStrokeWidth),polarTrackDash:t.polarTrackDash,polarValueSize:R(t.polarValueSize),polarNameSize:R(t.polarNameSize),polarValueFirst:t.polarValueFirst===void 0?void 0:String(t.polarValueFirst)!=="false",polarOutsideLabels:t.polarOutsideLabels===void 0?void 0:String(t.polarOutsideLabels)!=="false"}}function Xl(e){return{radarStrokeWidth:R(e.radarStrokeWidth),radarPointSize:R(e.radarPointSize),radarTension:R(e.radarTension),radarSpokes:e.radarSpokes===void 0?void 0:String(e.radarSpokes)!=="false"}}function jl(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,...Xl(t)}}function ql(e,t){return{categories:e?.categories,areaOpacity:e?.areaOpacity,...Xl(t)}}function Kl(e,t){return{ringThickness:e?.ringThickness,ringGap:e?.ringGap,ringTrackOpacity:R(t.ringTrackOpacity),ringCap:t.ringCap==="butt"?"butt":t.ringCap==="round"?"round":void 0,ringStartAngle:R(t.ringStartAngle),ringSweep:R(t.ringSweep)}}function Zl(e,t){return{zones:e?.zones,barCornerRadius:e?.barCornerRadius,labelPosition:e?.labelPosition,labelOrientation:e?.labelOrientation,labelColor:e?.labelColor,linkGradient:e?.linkGradient,sankeyNodeWidth:R(t.sankeyNodeWidth),sankeyNodeGap:R(t.sankeyNodeGap),sankeyLinkOpacity:R(t.sankeyLinkOpacity),sankeyLinkCurve:R(t.sankeyLinkCurve),sankeyLabelSize:R(t.sankeyLabelSize)}}function Ql(e,t){return{zones:e?.zones,cellGap:e?.cellGap,barCornerRadius:e?.barCornerRadius,headerColor:e?.headerColor,tileGradient:e?.tileGradient,tileStrokeColor:t.tileStrokeColor,tileStrokeWidth:R(t.tileStrokeWidth),tileLabelSize:R(t.tileLabelSize),tileValueSize:R(t.tileValueSize),tileTextColor:t.tileTextColor,tileLabelPadding:R(t.tileLabelPadding),showTileValues:t.showTileValues===void 0?void 0:String(t.showTileValues)!=="false",headerHeight:R(t.headerHeight)}}function Jl(e,t){return{categories:e?.categories,zones:e?.zones,orientation:e?.orientation,connectPoints:e?.connectPoints,reverseComparison:e?.reverseComparison,customConnectorWidth:R(t.customConnectorWidth),customConnectorOpacity:R(t.customConnectorOpacity),customConnectorDash:t.customConnectorDash,customBeforeFill:t.customBeforeFill,customBeforeStroke:t.customBeforeStroke,customBeforeStrokeWidth:R(t.customBeforeStrokeWidth),customLabelSize:R(t.customLabelSize),customLabelColor:t.customLabelColor}}function ed(e){let t=Il(e),r=e.chart,o=e.props,n=r?.chartType??"bar";switch(n){case"bar":return re(t,n,Dl(r,o));case"line":return re(t,n,Gl(r,o));case"scatter":return re(t,n,_l(r,o));case"boxplot":return re(t,n,Fl(r,o));case"field":return re(t,n,Hl(r));case"heatmap":return re(t,n,Vl(r,o));case"hexbin":return re(t,n,Wl(r,o));case"mekko":return re(t,n,zl(r,o));case"pie":return re(t,n,Yl(r,o));case"polarArea":return re(t,n,Ul(r,o));case"radar":return re(t,n,jl(r,o));case"radial":return re(t,n,ql(r,o));case"radialBar":return re(t,n,Kl(r,o));case"sankey":return re(t,n,Zl(r,o));case"treemap":return re(t,n,Ql(r,o));case"custom":return re(t,n,Jl(r,o))}}function re(e,t,r){return{...e,chartType:t,config:r}}function jg(e,t){let r=Number(t);if(t===void 0||t===""||!Number.isFinite(r))return e.default;let o=e.min===void 0?r:Math.max(e.min,r);return e.max===void 0?o:Math.min(e.max,o)}function qg(e,t){switch(e.type){case"number":return jg(e,t);case"boolean":return t===void 0?e.default:t==="true";case"color":return ye(t)??e.default;case"enum":return t!==void 0&&e.options.includes(t)?t:e.default;case"string":return t??e.default}}function Kg(e,t){let r={};for(let[o,n]of Object.entries(e?.properties??{}))r[o]=qg(n,t[o]);return r}function Zg(e,t){if(!e)return"";if(e.type==="boolean")return t==="true";if(e.type==="number"){let r=Number(t);return Number.isFinite(r)?r:e.default}return t}function td(e){let t=yt(e.component.type);return{id:e.id,type:e.component.type,value:t?Zg(t.value,e.component.value):e.component.value,disabled:e.props.disabled==="true",label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,properties:Kg(t,e.props)}}var Qg=/^[\w\s,'"-]+$/;function Hn(e){return e&&Qg.test(e)?e:void 0}var Jg=/^(?:[1-9]00|normal|bold)$/;function ey(e){return e==="plain"||e==="flip"?e:void 0}function ty(e){return e==="roll"||e==="fade"?e:void 0}function ry(e){let t=Number(e);return e!==void 0&&Number.isFinite(t)&&t>0?t:void 0}function Vn(e){return e&&Jg.test(e)?e:void 0}var oy=["ticks","major","radius","length","thickness","round","start","sweep","intensity"],ny=["color","accent"];function iy(e){let t=e.props,r={};for(let o of oy){let n=Number(t[o]);t[o]!==void 0&&Number.isFinite(n)&&(r[o]=n)}for(let o of ny){let n=ye(t[o]);n&&(r[o]=n)}return{id:e.id,type:"tickScale",value:e.component.value,max:e.component.max,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,parameters:r,labels:t.labels==="true"?{size:Number.isFinite(Number(t.labelSize))&&t.labelSize!==void 0?Number(t.labelSize):void 0,color:ye(t.labelColor),offset:Number.isFinite(Number(t.labelOffset))&&t.labelOffset!==void 0?Number(t.labelOffset):void 0,weight:Vn(t.labelWeight),fontFamily:Hn(t.labelFont)}:void 0}}var ay=["ticks","major","length","thickness","round","dent","spread","inset","line","gap","intensity"],sy=["color","accent","glow"],ly={color:"#8f95c4",accent:"#d9f270",glow:"#3ddc84"},dy=["core","peak"];function cy(e){let t=e.props,r={};for(let o of ay){let n=Number(t[o]);t[o]!==void 0&&Number.isFinite(n)&&(r[o]=n)}for(let o of sy)r[o]=ye(t[o])??ly[o];for(let o of dy){let n=ye(t[o]);n&&(r[o]=n)}return r.axis=t.axis==="horizontal"?"horizontal":"vertical",t.knob&&(r.knob=t.knob),{id:e.id,type:"ruler",value:e.component.value,min:e.component.min,max:e.component.max,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,parameters:r,labels:t.labels==="true"?{size:Number.isFinite(Number(t.labelSize))&&t.labelSize!==void 0?Number(t.labelSize):void 0,color:ye(t.labelColor),offset:Number.isFinite(Number(t.labelOffset))&&t.labelOffset!==void 0?Number(t.labelOffset):void 0,weight:Vn(t.labelWeight),fontFamily:Hn(t.labelFont)}:void 0}}function uy(e){let t=e.props;return{id:e.id,type:"rollingNumber",value:e.component.value,digits:e.component.digits,duration:e.component.duration,label:e.component.label,x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId,style:{color:ye(t.color),surface:ye(t.surface),divider:ye(t.divider),labelColor:ye(t.labelColor),fontFamily:Hn(t.fontFamily),variant:ey(t.variant),motion:ty(t.motion),fontWeight:Vn(t.fontWeight),fontSize:ry(t.fontSize)}}}var my={rollingNumber:uy,tickScale:iy,ruler:cy};function rd(e){let t=e.component.type;return et(t)?my[t](e):td(e)}function od(e){let t=e.props;return{id:e.id,fromId:e.fromId,toId:e.toId,fromFace:e.fromFace,toFace:e.toFace,order:e.order,sourceIndex:e.sourceIndex,style:{pathType:be(t.route,so)??"straight",color:kt(t.stroke),strokeWidth:R(t.strokeWidth),strokeStyle:be(t.strokeStyle,ao),opacity:t.opacity!==void 0?R(t.opacity):void 0}}}function nd(e){let t=e.props;return{id:e.id,start:e.dimension.start,end:e.dimension.end,offset:e.dimension.offset,text:e.text,unit:e.dimension.unit,strokeColor:ge(t.stroke),strokeWidth:R(t.strokeWidth),textColor:ge(t.textColor),fontSize:R(t.fontSize),order:e.order,sourceIndex:e.sourceIndex,parentFrameId:e.parentFrameId}}function id(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,fillColor:t.fill??"rgba(155, 66, 223, 0.05)",strokeColor:t.stroke??"#9b42df",strokeWidth:R(t.strokeWidth)??2,cornerRadius:R(t.cornerRadius)??12,textColor:t.textColor??"#ffffff",fontSize:R(t.fontSize)??14,fontWeight:Ne(t.fontWeight,io,"bold"),fontFamily:t.fontFamily,dash:Xe(t.dash),showLabel:t.showLabel!=="false",labelPosition:Ne(t.labelPosition,El,"top"),shadow:t.shadow!=="false",order:e.order,sourceIndex:e.sourceIndex}}function ad(e){let t=e.props,r=Pe(t.shadow);return{id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,depth:e.isometric.depth,footprint:e.isometric.footprint,form:e.isometric.form,rotation:e.rotation,order:e.order,sourceIndex:e.sourceIndex,text:e.text,icon:e.isometric.icon,fill:ge(t.fill)??"#f8fafc",strokeColor:ge(t.stroke)??"#111827",strokeWidth:R(t.strokeWidth)??1,cornerRadius:R(t.cornerRadius)??(e.isometric.footprint?0:8),hasShadow:r?.enabled??!1,shadowStyle:r,labelOffsetX:R(t.labelOffsetX)??0,labelOffsetY:R(t.labelOffsetY)??0,labelBackground:ge(t.labelBackground),parentFrameId:e.parentFrameId}}function sd(e){let t=e.props;return{id:e.id,fromId:e.fromId,toId:e.toId,text:e.text??"",showText:t.showText!=="false",weight:R(t.weight),showWeight:t.showWeight!=="false",style:{pathType:be(t.route,so),color:kt(t.stroke),strokeWidth:R(t.strokeWidth),strokeStyle:be(t.strokeStyle,ao),opacity:t.opacity!==void 0?R(t.opacity):void 0,fontSize:R(t.fontSize),fontFamily:t.fontFamily,startLabel:t.startLabel,endLabel:t.endLabel,shadow:Pe(t.shadow)},startMarker:be(t.markerStart,Fn),endMarker:be(t.markerEnd,Fn),segmentOffsets:e.segments,fromPoint:e.fromPort?{kind:"port",port:e.fromPort}:e.fromSide?{kind:"side",side:e.fromSide,offset:e.fromFraction}:void 0,toPoint:e.toPort?{kind:"port",port:e.toPort}:e.toSide?{kind:"side",side:e.toSide,offset:e.toFraction}:void 0,order:e.order,sourceIndex:e.sourceIndex}}function ld(e){let t=e.props;return{id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,points:e.path?.points??[],value:e.path?.value,tension:e.path?.tension??0,startMarker:Ne(e.path?.startMarker,_n,"none"),endMarker:Ne(e.path?.endMarker,_n,"none"),closed:e.path?.closed??!1,strokeColor:ge(t.stroke)??"#7c3aed",strokeWidth:R(t.strokeWidth)??2,dash:Xe(t.dash)??[],opacity:R(t.opacity)??1,fillColor:ge(t.fill)??"transparent",order:e.order,sourceIndex:e.sourceIndex}}function py(e){return e||"rectangle"}function dd(e,t){let r=e.props,o=e.kind==="text";return{id:e.id,type:"shape",text:e.text??null,shapeType:py(e.shapeType),symbol:e.symbol,x:e.x,y:e.y,width:e.width,height:e.height,w:e.width,h:e.height,rotation:e.rotation??0,fillColor:he(r.fill??(o?"none":void 0)),strokeColor:kt(r.stroke??(o?"none":void 0)),isText:o||void 0,strokeWidth:R(r.strokeWidth),textColor:r.textColor,fontSize:R(r.fontSize),fontWeight:r.fontWeight===void 0?void 0:Ne(r.fontWeight,Al,"normal"),letterSpacing:R(r.letterSpacing),lineHeight:R(r.lineHeight),fontFamily:r.fontFamily,textAlign:be(r.textAlign,Nl),textVerticalAlign:be(r.verticalAlign,Ol),cornerRadius:R(r.cornerRadius),shadowStyle:Pe(r.shadow),dash:Xe(r.dash),strokeStyle:be(r.strokeStyle,Bl),opacity:R(r.opacity),parentFrameId:e.parentFrameId,order:e.order,sourceIndex:e.sourceIndex,shader:r.shader?t.get(r.shader):void 0}}function cd(e){let t=e.props;return{id:e.id,title:e.text??null,x:e.x,y:e.y,width:e.width,height:e.height,orientation:e.swimlane?.orientation??"horizontal",lanes:e.swimlane?.lanes??[],fillColor:t.fill??"rgba(107, 114, 128, 0.05)",strokeColor:t.stroke??"#6b7280",strokeWidth:R(t.strokeWidth)??2,cornerRadius:R(t.cornerRadius)??12,dash:Xe(t.dash),shadowStyle:Pe(t.shadow),textColor:t.textColor??"#6b7280",fontSize:R(t.fontSize)??22,fontWeight:Ne(t.fontWeight,io,"bold"),fontFamily:t.fontFamily,showLaneLabels:t.showLaneLabels!=="false",order:e.order,sourceIndex:e.sourceIndex}}var Wn=e=>[...e].sort((t,r)=>(t.order??0)-(r.order??0));function ud(e){let t=Wn(e.canvasObjects),r=new Map((e.shaders??[]).map(o=>[o.name,o]));return{shapes:t.filter(o=>o.objectType==="shape").map(o=>dd(o,r)),frames:t.filter(o=>o.objectType==="frame").map(id),swimlanes:t.filter(o=>o.objectType==="swimlane").map(cd),isometricObjects:t.filter(or).map(ad),paths:t.filter(o=>o.objectType==="path").map(ld),dimensions:t.filter(rr).map(nd),charts:t.filter(o=>o.objectType==="chart").map(ed),components:t.filter(o=>o.objectType==="component"&&o.component!==void 0).map(rd),links:Wn(e.links).map(sd),connections:Wn(e.connections).map(od)}}var lo=new Set(["top","front","right"]),md=Math.PI/6,Fe=Math.cos(md),He=Math.sin(md);function zn(e){let t=Math.max(0,e.width),r=Math.max(0,e.height),o=Math.max(0,e.depth);return{x:e.x,y:e.y,width:(t+o)*Fe,height:r+(t+o)*He}}function Yn(e){let t=Math.max(0,e.width),r=Math.max(0,e.depth);return{x:e.x+(t+r)*Fe/2,y:e.y+(t+r)*He/2}}function fy(e){return{x:(e[0].x+e[1].x+e[2].x+e[3].x)/4,y:(e[0].y+e[1].y+e[2].y+e[3].y)/4}}function Un(e,t){return fy(Ve(e)[t])}function Ve(e){let{x:t,y:r}=e,o=Math.max(0,e.width),n=Math.max(0,e.height),i=Math.max(0,e.depth),a={x:t+i*Fe,y:r},s={x:o*Fe,y:o*He},l={x:-i*Fe,y:i*He},d={x:0,y:n},c={x:a.x+s.x,y:a.y+s.y},u={x:a.x+l.x,y:a.y+l.y},m={x:a.x+s.x+l.x,y:a.y+s.y+l.y},f={x:a.x+d.x,y:a.y+d.y},h={x:m.x+d.x,y:m.y+d.y},y={x:u.x+d.x,y:u.y+d.y},x={x:c.x+d.x,y:c.y+d.y};return{top:[a,c,m,u],bottom:[f,x,h,y],front:[u,m,h,y],back:[a,c,x,f],right:[m,c,x,h],left:[a,u,y,f]}}function hy(e){let t=0;for(let r=0;r<e.length;r+=1){let[o,n]=e[r],[i,a]=e[(r+1)%e.length];t+=o*a-i*n}return t/2}function co(e){let t=(e??[]).filter(o=>Array.isArray(o)&&Number.isFinite(o[0])&&Number.isFinite(o[1])),r=t.filter((o,n)=>{let i=t[(n+1)%t.length];return o[0]!==i[0]||o[1]!==i[1]});return r.length>=3?r:[]}var gy=Math.PI/12;function pd(e,t,r,o){if(!(t>0)||r<=0||o<=0)return[...e];let n=e.map(([a,s])=>({x:a*r,y:s*o})),i=[];for(let a=0;a<n.length;a+=1){let s=n[a],l=n[(a-1+n.length)%n.length],d=n[(a+1)%n.length],c={x:l.x-s.x,y:l.y-s.y},u={x:d.x-s.x,y:d.y-s.y},m=Math.hypot(c.x,c.y),f=Math.hypot(u.x,u.y),h=(c.x*u.x+c.y*u.y)/(m*f),y=Math.acos(Math.max(-1,Math.min(1,h)));if(!Number.isFinite(y)||y<.001||Math.PI-y<.001){i.push(e[a]);continue}let x=Math.min(t/Math.tan(y/2),Math.min(m,f)/2),b=x*Math.tan(y/2),C={x:c.x/m,y:c.y/m},S={x:u.x/f,y:u.y/f},v={x:s.x+C.x*x,y:s.y+C.y*x},O={x:s.x+S.x*x,y:s.y+S.y*x},E={x:C.x+S.x,y:C.y+S.y},F=Math.hypot(E.x,E.y),U=b/Math.sin(y/2),K={x:s.x+E.x/F*U,y:s.y+E.y/F*U},ke=Math.atan2(v.y-K.y,v.x-K.x),ae=Math.atan2(O.y-K.y,O.x-K.x)-ke;ae-=2*Math.PI*Math.round(ae/(2*Math.PI));let we=Math.max(2,Math.ceil(Math.abs(ae)/gy));for(let te=0;te<=we;te+=1){let Ue=ke+ae*te/we;i.push([(K.x+b*Math.cos(Ue))/r,(K.y+b*Math.sin(Ue))/o])}}return i}function Xn(e,t,r=0){let o=Math.max(0,e.width),n=Math.max(0,e.depth),i=Math.max(0,e.height),a=pd(co(t),r,o,n),s=e.x+n*Fe,l=([h,y],x)=>({x:s+(h*o-y*n)*Fe,y:e.y+(h*o+y*n)*He+x}),d=a.map(h=>l(h,0)),c=hy(a)>=0?1:-1,u=a.map((h,y)=>{let x=a[(y+1)%a.length],b=(x[0]-h[0])*o,C=(x[1]-h[1])*n,S=Math.hypot(b,C),v=S===0?0:C/S*c,O=S===0?0:-b/S*c;return{from:h,to:x,length:S,normalU:v,normalV:O,visible:S>0&&v+O>1e-9}}),m=(h,y)=>h.visible&&y.visible&&h.normalU*y.normalU+h.normalV*y.normalV>Math.cos(.5),f=[];return u.forEach((h,y)=>{if(!h.visible)return;let x=u[(y-1+u.length)%u.length],b=u[(y+1)%u.length],{from:C,to:S}=h;f.push({points:[l(C,0),l(S,0),l(S,i),l(C,i)],light:.72+.28*Math.max(0,Math.min(1,h.normalV/(Math.abs(h.normalU)+Math.abs(h.normalV)))),depth:(C[0]+S[0])/2+(C[1]+S[1])/2,smoothStart:m(x,h),smoothEnd:m(h,b)})}),f.sort((h,y)=>h.depth-y.depth),{top:d,sides:f}}function yy(e){return Math.max(0,Math.min(255,Math.round(e)))}function by(e){let t=/^#?([0-9a-fA-F]{6})$/.exec(e.trim());if(!t)return null;let r=Number.parseInt(t[1],16);return[r>>16&255,r>>8&255,r&255]}function xy(e,t,r){return`#${[e,t,r].map(o=>yy(o).toString(16).padStart(2,"0")).join("")}`}function jn(e,t){let r=by(e);if(!r)return e;let[o,n,i]=r;return xy(o*t,n*t,i*t)}function wt(e,t){return jn(e,t)}function qn(e){return{topFill:e,frontFill:jn(e,.95),sideFill:jn(e,.88)}}var Sy=Math.PI/180;function Cy(e,t){let r=t*Sy,o=Math.cos(r),n=Math.sin(r);return{x:e.x*o-e.y*n,y:e.x*n+e.y*o}}function Ry(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function fd(e,t){let r=Ry(e),o=e.rotation?Cy(t,e.rotation):t;return{x:r.x+o.x,y:r.y+o.y}}function Kn(e,t){return fd(e,{x:(t[0]-.5)*e.width,y:(t[1]-.5)*e.height})}function vt(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function Zn(e,t){let r=vt(e),o=vt(t),n=Math.atan2(o.y-r.y,o.x-r.x);return n>=-Math.PI/4&&n<Math.PI/4?{x:e.x+e.width,y:r.y}:n>=Math.PI/4&&n<3*Math.PI/4?{x:r.x,y:e.y+e.height}:n>=-3*Math.PI/4&&n<-Math.PI/4?{x:r.x,y:e.y}:{x:e.x,y:r.y}}function ky(e,t){let r=t.offset??.5;switch(t.side){case"top":return{x:e.x+e.width*r,y:e.y};case"right":return{x:e.x+e.width,y:e.y+e.height*r};case"bottom":return{x:e.x+e.width*r,y:e.y+e.height};case"left":return{x:e.x,y:e.y+e.height*r}}}function wy(e,t){let r=e.symbol?.ports?.find(o=>o.name===t.port);return r?Kn({x:e.x,y:e.y,width:e.width,height:e.height,rotation:e.rotation??void 0},r.at):vt(e)}function Qn(e,t,r){let o=vy(e,t),n=Py(o.explicit);if(n)return n;let i=hd(r,o.canvasObjectId);if(!i)return{x:0,y:0};let a=Ly(i,o.explicit);return a||Ty(i,hd(r,o.oppositeCanvasObjectId))}function vy(e,t){return t==="from"?{canvasObjectId:e.fromId,oppositeCanvasObjectId:e.toId,explicit:e.fromPoint}:{canvasObjectId:e.toId,oppositeCanvasObjectId:e.fromId,explicit:e.toPoint}}function Py(e){return e?.kind==="absolute"?{x:e.x,y:e.y}:null}function Ly(e,t){return t?.kind==="port"?wy(e,t):t?.kind==="side"?ky(e,t):null}function Ty(e,t){return t?Zn(e,t):vt(e)}function hd(e,t){return e.find(r=>r.id===t)}var My=15e3;function $y(e){return[...e.shapes,...e.frames,...e.swimlanes,...e.paths,...e.charts]}function gd(e,t){return e?Un(e,t):{x:0,y:0}}function yd(e,t){let r=e.findIndex(n=>n.id===t);if(r<0)return;let o=e[r];return{rank:o.order??0,sequence:o.sourceIndex??My+r}}function Ay(e,t){if(typeof t.order=="number")return{order:t.order,sourceIndex:t.sourceIndex};let r=[lo.has(t.fromFace)?void 0:yd(e,t.fromId),lo.has(t.toFace)?void 0:yd(e,t.toId)].filter(n=>n!==void 0);if(!r.length)return{sourceIndex:t.sourceIndex};let o=r.reduce((n,i)=>i.rank<n.rank||i.rank===n.rank&&i.sequence<n.sequence?i:n);return{order:o.rank,sourceIndex:o.sequence-.5}}function Ey(e){let t=new Map(e.isometricObjects.map(r=>[r.id,r]));return e.connections.map(r=>({link:{id:r.id,fromId:r.fromId,toId:r.toId,fromPoint:{kind:"face",face:r.fromFace},toPoint:{kind:"face",face:r.toFace},style:r.style,...Ay(e.isometricObjects,r)},from:gd(t.get(r.fromId??""),r.fromFace),to:gd(t.get(r.toId??""),r.toFace),kind:"connection"}))}function bd(e){let t=$y(e);return[...e.links.map(o=>({link:o,from:Qn(o,"from",t),to:Qn(o,"to",t)})),...Ey(e)]}function Jn(e){let t=$l(e),r=ud(t);return{shapes:r.shapes,frames:r.frames,swimlanes:r.swimlanes,isometricObjects:r.isometricObjects,paths:r.paths,dimensions:r.dimensions,charts:r.charts,components:r.components,links:bd(r),diagnostics:t.diagnostics}}function J(e,t,r,o,n,i){return e.forEach((a,s)=>{a.identity={role:t,id:r,...o?{kind:o}:{},...s===0?{primary:!0}:{},...s===0&&n?{label:n}:{},...s===0&&i?{parentFrameId:i}:{}}}),e}var ei={minX:0,minY:0,maxX:100,maxY:100};function se(e,t=0){return{minX:e.x-t,minY:e.y-t,maxX:e.x+e.width+t,maxY:e.y+e.height+t}}function N(e,t,r=0){return t?By(Ny(e,t),r):se(e,r)}function Ny(e,t){let r=e.x+e.width/2,o=e.y+e.height/2,n=t*Math.PI/180,i=Math.cos(n),a=Math.sin(n);return Oy(e).map(s=>({x:r+(s.x-r)*i-(s.y-o)*a,y:o+(s.x-r)*a+(s.y-o)*i}))}function Oy(e){return[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}]}function By(e,t){return{minX:Math.min(...e.map(r=>r.x))-t,minY:Math.min(...e.map(r=>r.y))-t,maxX:Math.max(...e.map(r=>r.x))+t,maxY:Math.max(...e.map(r=>r.y))+t}}function Le(e){if(e.points.length===0)return"";if(ro(e))return Iy(e);let t=e.points[0],r=[`M ${t.x} ${t.y}`];for(let{to:o,controls:n}of oo(e))r.push(n?`C ${n[0].x} ${n[0].y} ${n[1].x} ${n[1].y} ${o.x} ${o.y}`:`L ${o.x} ${o.y}`);return e.closed&&r.push("Z"),r.join(" ")}function Iy(e){let[t,...r]=e.points,o=r.map(n=>`L ${n.x} ${n.y}`).join(" ");return`M ${t.x} ${t.y} ${o}${e.closed?" Z":""}`}function p(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function xd(e){let t=e.order_key??e.orderKey;if(!t)return e.order??0;let r=0;for(let o=0;o<Math.min(t.length,8);o++)r=r*128+t.charCodeAt(o);return r}function Sd(e,t){return e.sourceIndex??t}function P(e,t,r){return e?typeof e=="string"?{kind:"solid",color:e}:e.type==="gradient"?{kind:"linear-gradient",angle:e.angle,stops:e.stops.map(o=>({offset:o.position,color:o.color}))}:e.points.length===0?(t.push({severity:"warning",code:"empty-mesh-gradient",ownerId:r,message:"Mesh gradient has no color points."}),{kind:"none"}):{kind:"mesh-gradient",points:e.points.map(o=>({x:o.x,y:o.y,color:o.color}))}:{kind:"none"}}var B="Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif";var Cd="#94a3b8";function Rd(e,t){let r=p(e.x,0),o=p(e.y,0),n=Math.max(0,p(e.width,120)),i=Math.max(0,p(e.height,60)),a=p(e.rotation,0),s=1e4+t,l=N({x:r,y:o,width:n,height:i},a,2);return[{id:`widget-${e.id}`,type:"rect",order:s,bounds:l,x:r,y:o,width:n,height:i,rx:6,rotation:a,style:{fill:{kind:"none"},stroke:{kind:"solid",color:Cd},strokeWidth:1,dash:[4,3]}},{id:`widget-${e.id}-label`,type:"text",order:s+.1,bounds:l,x:r,y:o,width:n,height:i,lines:[e.type],fontFamily:B,fontSize:12,fontWeight:"normal",color:Cd,align:"center",verticalAlign:"middle",lineHeight:1.3,rotation:a}]}function kd(e,t){let r=p(e.x,0),o=p(e.y,0),n=Math.max(0,p(e.width,160)),i=Math.max(0,p(e.height,90)),a=p(e.rotation,0);return[{id:`widget-${e.id}`,type:"rolling-number",order:1e4+t,bounds:N({x:r,y:o,width:n,height:i},a,2),x:r,y:o,width:n,height:i,rotation:a,value:Qt(e.value,e.digits),digits:e.digits,duration:Math.max(0,p(e.duration,420)),label:e.label,componentStyle:An(e.style)}]}function wd(e,t){let r=p(e.x,0),o=p(e.y,0),n=Math.max(0,p(e.width,200)),i=Math.max(0,p(e.height,200)),a=p(e.rotation,0),s=p(e.max,100)||100,l=Math.min(1,Math.max(0,p(Number(e.value),0)/s)),d=[{id:`widget-${e.id}`,type:"shader-surface",order:1e4+t,bounds:N({x:r,y:o,width:n,height:i},a,2),x:r,y:o,width:n,height:i,rotation:a,shader:{name:e.id,program:"tickScale",parameters:{...e.parameters,progress:l,max:s}},mask:"ellipse"}];return e.labels&&d.push(...Dy(e,{x:r,y:o,width:n,height:i,rotation:a,max:s,order:1e4+t})),d}function Dy(e,t){let r=e.labels??{},o=Math.max(1,p(Number(e.parameters.ticks),48)),n=Math.max(1,p(Number(e.parameters.major),5)),i=p(Number(e.parameters.start),225)*Math.PI/180,a=p(Number(e.parameters.sweep),270)*Math.PI/180,s=p(Number(e.parameters.radius),.9)+p(r.offset,.08),l=p(r.size,12),d=t.x+t.width/2,c=t.y+t.height/2,u=Math.floor(o/n),m=[];for(let f=0;f<=u;f+=1){let h=f*n/o,y=i-h*a,x=d+Math.cos(y)*s*(t.width/2),b=c-Math.sin(y)*s*(t.height/2),C={x:x-24,y:b-l,width:48,height:l*2};m.push({id:`widget-${e.id}-label-${f}`,type:"text",order:t.order+.1,bounds:N(C,0,2),...C,lines:[String(Math.round(t.max*h*10)/10)],fontFamily:r.fontFamily||B,fontSize:l,fontWeight:r.weight??"normal",color:r.color||"#8f95c4",align:"center",verticalAlign:"middle",lineHeight:1.3})}return m}function vd(e,t){let r=p(e.x,0),o=p(e.y,0),n=Math.max(0,p(e.width,120)),i=Math.max(0,p(e.height,360)),a=p(e.rotation,0),s=p(e.min,0),l=p(e.max,100),d=l===s?0:Math.min(1,Math.max(0,(p(Number(e.value),s)-s)/(l-s))),c=[{id:`widget-${e.id}`,type:"shader-surface",order:1e4+t,bounds:N({x:r,y:o,width:n,height:i},a,2),x:r,y:o,width:n,height:i,rotation:a,shader:{name:e.id,program:"ruler",parameters:{...e.parameters,progress:d,min:s,max:l}},mask:"rect"}];return e.labels&&c.push(...Gy(e,{x:r,y:o,width:n,height:i,min:s,max:l,order:1e4+t})),c}function Gy(e,t){let r=e.labels??{},o=e.parameters.axis==="horizontal",n=Math.max(1,p(Number(e.parameters.ticks),50)),i=Math.max(1,p(Number(e.parameters.major),5)),a=p(Number(e.parameters.inset),.05)>0?p(Number(e.parameters.inset),.05):.05,s=p(Number(e.parameters.line),.7)>0?p(Number(e.parameters.line),.7):.7,l=o?t.height:t.width,d=(p(Number(e.parameters.length),.1)>0?p(Number(e.parameters.length),.1):.1)*l*1.9,c=s*l-.12*l-d-p(r.offset,.04)*l,u=p(r.size,12),m=Math.floor(n/i),f=[];for(let h=0;h<=m;h+=1){let y=h*i/n,x=a+(1-2*a)*y,b=o?{x:t.x+t.width*x-24,y:t.y+c-u*2,width:48,height:u*2}:{x:t.x+c-48,y:t.y+t.height*(1-x)-u,width:48,height:u*2};f.push({id:`widget-${e.id}-label-${h}`,type:"text",order:t.order+.1,bounds:N(b,0,2),...b,lines:[String(Math.round((t.min+(t.max-t.min)*y)*10)/10)],fontFamily:r.fontFamily||B,fontSize:u,fontWeight:r.weight??"normal",color:r.color||"#8f95c4",align:o?"center":"right",verticalAlign:"middle",lineHeight:1.3})}return f}var _y="#94a3b8";function oe(e,t,r){return{x:p(e.x,0),y:p(e.y,0),width:Math.max(1,p(e.width,r.width)),height:Math.max(1,p(e.height,r.height)),order:1e4+t}}var $=(e,t)=>String(e.properties[t]??""),I=(e,t)=>Number(e.properties[t]??0),W=e=>({kind:"solid",color:e}),me=(e,t)=>e.disabled?_y:t;function X(e,t){let r=Number(e.properties.animate??0),o=e.disabled?{...t,opacity:.4}:t;return r>0?{...o,transition:r}:o}function ne(e,t){return{id:`widget-${e.id}`,type:"rect",order:t.order,bounds:N(t,0,0),x:t.x,y:t.y,width:t.width,height:t.height,style:{fill:{kind:"none"},stroke:{kind:"none"},pointerEvents:"all"}}}function ie(e,t,r,o,n){return{id:`widget-${e.id}-${t}`,type:"text",order:n,bounds:N(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,lines:[o.text],fontFamily:B,fontSize:o.fontSize,fontWeight:"600",color:o.color,align:o.align,verticalAlign:"middle",lineHeight:1.3}}function Pd(e,t){let r=oe(e,t,{width:120,height:40}),o=[ne(e,r),{id:`widget-${e.id}-face`,type:"rect",order:r.order+.1,bounds:N(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,rx:Math.min(I(e,"radius"),r.height/2),style:X(e,{fill:W($(e,"accent")),stroke:{kind:"none"}})}];if(e.label){let n={text:e.label,color:me(e,$(e,"textColor")),fontSize:I(e,"fontSize"),align:"center"};o.push(ie(e,"label",r,n,r.order+.2))}return o}var Fy=.22,Hy=.5,Vy=[[.24,.52],[.43,.72],[.78,.3]];function Wy(e){let[t,...r]=Vy.map(([o,n])=>`${e.x+o*e.width} ${e.y+n*e.width}`);return`M ${t} ${r.map(o=>`L ${o}`).join(" ")}`}function zy(e,t,r){let o=e.value===!0;return{id:`widget-${e.id}-box`,type:"rect",order:t.order+.1,bounds:N(r,0,2),...r,rx:r.width*Fy,style:X(e,{fill:o?W($(e,"accent")):{kind:"none"},stroke:W(o?$(e,"accent"):$(e,"stroke")),strokeWidth:1.5})}}function Yy(e,t,r){return{id:`widget-${e.id}-check`,type:"path",order:t.order+.2,bounds:N(r,0,0),d:Wy(r),style:X(e,{fill:{kind:"none"},stroke:W($(e,"check")),strokeWidth:Math.max(1.5,r.width*.12),lineCap:"round",lineJoin:"round"})}}function Uy(e,t,r,o){let n=r*Hy,i={x:t.x+r+n,y:t.y,width:Math.max(0,t.width-r-n),height:t.height},a={text:o,color:me(e,$(e,"textColor")),fontSize:I(e,"fontSize"),align:"left"};return ie(e,"label",i,a,t.order+.3)}function Ld(e,t){let r=oe(e,t,{width:160,height:24}),o=Math.min(r.height,r.width),n={x:r.x,y:r.y+(r.height-o)/2,width:o,height:o};return[ne(e,r),zy(e,r,n),...e.value===!0?[Yy(e,r,n)]:[],...e.label?[Uy(e,r,o,e.label)]:[]]}var Xy=.62;function jy(e){return e>0?String(e).split(".")[1]?.length??0:0}function qy(e,t){let r=$(e,"display");return r==="percent"?`${Math.round(t*100)}%`:r==="value"?Number(e.value).toFixed(jy(I(e,"step"))):""}function Td(e,t){let r=oe(e,t,{width:96,height:96}),o=I(e,"min"),n=I(e,"max"),i=Math.min(1,Math.max(0,(Number(e.value)-o)/(n-o||1))),a=I(e,"start"),s=Math.min(360,Math.max(1,I(e,"sweep"))),l=Math.min(I(e,"thickness"),Math.min(r.width,r.height)/3),d=r.x+r.width/2,c=r.y+r.height/2,u=Math.max(1,Math.min(r.width,r.height)/2-l/2),m=2*Math.PI*u,f=$(e,"rounded")!=="false",h=(a-i*s)*Math.PI/180,y=(v,O,E,F,U={})=>({id:`widget-${e.id}-${v}`,type:"ellipse",order:r.order+O,bounds:N({x:d-u,y:c-u,width:u*2,height:u*2},0,l),cx:d,cy:c,rx:u,ry:u,rotation:-a,style:X(e,{fill:{kind:"none"},stroke:W(E),strokeWidth:l,dash:[Math.max(.001,F),m],lineCap:f?"round":"butt",...U})}),x=Math.max(1,u-l/2-Math.max(2,l*.4)),b=l/2*Xy+1,C=[ne(e,r),y("track",.1,$(e,"track"),s/360*m),y("fill",.2,$(e,"accent"),i*s/360*m,{opacity:i>0?1:0}),{id:`widget-${e.id}-face`,type:"ellipse",order:r.order+.3,bounds:N({x:d-x,y:c-x,width:x*2,height:x*2},0,0),cx:d,cy:c,rx:x,ry:x,style:X(e,{fill:W($(e,"face")),stroke:{kind:"none"}})},{id:`widget-${e.id}-dot`,type:"ellipse",order:r.order+.4,bounds:N({x:d+u*Math.cos(h)-b,y:c-u*Math.sin(h)-b,width:b*2,height:b*2},0,0),cx:d+u*Math.cos(h),cy:c-u*Math.sin(h),rx:b,ry:b,style:X(e,{fill:W($(e,"dot")),stroke:{kind:"none"}})}],S=qy(e,i);if(S){let v={text:S,color:me(e,$(e,"textColor")),fontSize:I(e,"fontSize"),align:"center"};C.push(ie(e,"value",{x:d-x,y:c-x,width:x*2,height:x*2},v,r.order+.5))}return C}function Ky(e,t){let r=$(e,"display");return r==="percent"?`${Math.round(t*100)}%`:r==="value"?String(Number(e.value)):""}function Md(e,t){let r=oe(e,t,{width:220,height:12}),o=I(e,"min"),n=I(e,"max"),i=Math.min(1,Math.max(0,(Number(e.value)-o)/(n-o||1))),a=$(e,"rounded")!=="false",s=[ne(e,r)];if($(e,"variant")==="ring"){let d=Math.min(I(e,"thickness"),Math.min(r.width,r.height)/2),c=Math.max(1,Math.min(r.width,r.height)/2-d/2),u=2*Math.PI*c,m=r.x+r.width/2,f=r.y+r.height/2,h=(y,x,b,C)=>({id:`widget-${e.id}-${y}`,type:"ellipse",order:r.order+x,bounds:N({x:m-c,y:f-c,width:c*2,height:c*2},0,d),cx:m,cy:f,rx:c,ry:c,rotation:-90,style:X(e,{fill:{kind:"none"},stroke:W(b),strokeWidth:d,...C})});s.push(h("track",.1,$(e,"track"),{})),s.push(h("fill",.2,$(e,"accent"),{dash:[Math.max(.001,i*u),u],lineCap:a?"round":"butt",opacity:i>0?1:0}))}else{let d=$(e,"direction")==="vertical",c=a?(d?r.width:r.height)/2:0,u=(f,h,y,x,b)=>{let C=d?{x:r.x,y:r.y+r.height-y,width:r.width,height:y}:{x:r.x,y:r.y,width:y,height:r.height};return{id:`widget-${e.id}-${f}`,type:"rect",order:r.order+h,bounds:N(C,0,0),...C,rx:c,style:X(e,{fill:W(x),stroke:{kind:"none"},...b===void 0?{}:{opacity:b}})}},m=d?r.height:r.width;s.push(u("track",.1,m,$(e,"track"))),s.push(u("fill",.2,Math.max(0,i*m),$(e,"accent"),i>0?1:0))}let l=Ky(e,i);if(l){let d={text:l,color:me(e,$(e,"textColor")),fontSize:I(e,"fontSize"),align:"center"};s.push(ie(e,"value",r,d,r.order+.3))}return s}function $d(e,t){let r=oe(e,t,{width:300,height:40}),o=$(e,"options").split(",").map(u=>u.trim()).filter(Boolean),n=Math.max(1,o.length),i=Math.min(n-1,Math.max(0,Math.round(Number(e.value))||0)),a=Math.min(I(e,"inset"),r.height/2),s=Math.min(I(e,"radius"),r.height/2),l=(r.width-a*2)/n,d={y:r.y+a,height:r.height-a*2},c=[ne(e,r),{id:`widget-${e.id}-track`,type:"rect",order:r.order+.1,bounds:N(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,rx:s,style:X(e,{fill:W($(e,"track")),stroke:{kind:"none"}})},{id:`widget-${e.id}-active`,type:"rect",order:r.order+.2,bounds:N({x:r.x+a+i*l,width:l,...d},0,0),x:r.x+a+i*l,y:d.y,width:l,height:d.height,rx:Math.max(0,s-a),style:X(e,{fill:W($(e,"accent")),stroke:{kind:"none"},shadow:{color:"#000000",opacity:.18,blur:3,dx:0,dy:1}})}];return o.forEach((u,m)=>{let f={x:r.x+a+m*l,width:l,...d},h=me(e,$(e,m===i?"activeTextColor":"textColor"));c.push(ie(e,`option-${m}`,f,{text:u,color:h,fontSize:I(e,"fontSize"),align:"center"},r.order+.3))}),c}function ti(e,t){return e==="field"?Math.min(8,t/2):t/2}var Te=4,Ad=12,ri=5,Pt=1.5;function Zy(e){return e>0?String(e).split(".")[1]?.length??0:0}function Qy(e,t){let r=$(e,"display"),o=Zy(I(e,"step"));return(r==="percent"?t.two?[t.from,t.to].map(i=>`${Math.round(i*100)}%`):[`${Math.round(t.to*100)}%`]:r==="value"?t.values.map(i=>i.toFixed(o)):[]).join(" \u2013 ")}var Lt=(e,t,r,o,n,i,a={})=>({id:`widget-${e.id}-${r}`,type:"rect",order:t.order+o,bounds:N(n,0,0),...n,style:X(e,{fill:W(i),stroke:{kind:"none"},...a})});function Ed(e,t,r,o,n){let i=Math.round(I(e,"ticks")),a=$(e,"tickColor");return Array.from({length:i>=2?i:0},(s,l)=>{let d=l/(i-1),c=r?{x:t.x+n,y:t.y+t.height-o-d*(t.height-o*2)-Pt/2,width:ri,height:Pt,rx:Pt/2}:{x:t.x+o+d*(t.width-o*2)-Pt/2,y:t.y+n,width:Pt,height:ri,rx:Pt/2};return Lt(e,t,`tick-${l}`,.15,c,a)})}function Jy(e,t,r,o){let n=ti("line",o?t.width:t.height),i=n*I(e,"thumbSize")/100,a=Math.min(I(e,"trackHeight"),o?t.width:t.height),s=o?t.x+t.width/2:t.y+t.height/2,l=f=>o?t.y+t.height-n-f*(t.height-n*2):t.x+n+f*(t.width-n*2),d=(f,h)=>o?{x:s-a/2,y:Math.min(f,h),width:a,height:Math.abs(h-f),rx:a/2}:{x:Math.min(f,h),y:s-a/2,width:Math.abs(h-f),height:a,rx:a/2},c=o?d(t.y,t.y+t.height):d(t.x,t.x+t.width),u=d(r.two?l(r.from):o?t.y+t.height:t.x,l(r.to)),m=(f,h,y)=>{let x=o?s:l(h),b=o?l(h):s;return{id:`widget-${e.id}-${f}`,type:"ellipse",order:t.order+y,bounds:N({x:x-i,y:b-i,width:i*2,height:i*2},0,0),cx:x,cy:b,rx:i,ry:i,style:X(e,{fill:W($(e,"thumb")),stroke:{kind:"none"},shadow:{color:"#000000",opacity:.25,blur:3,dx:0,dy:1}})}};return[Lt(e,t,"track",.1,c,$(e,"track")),...Ed(e,t,o,n,o?t.width/2+a/2+5:t.height/2+a/2+5),Lt(e,t,"fill",.2,u,$(e,"accent")),...r.two?[m("thumb-start",r.from,.3)]:[],m(r.two?"thumb-end":"thumb",r.to,.31)]}function eb(e,t,r,o){let n=ti("field",o?t.width:t.height),i=Math.min(I(e,"radius"),Math.min(t.width,t.height)/2),a={x:t.x,y:t.y,width:t.width,height:t.height,rx:i},s=S=>o?t.y+t.height-n-S*(t.height-n*2):t.x+n+S*(t.width-n*2),l=r.two?s(r.from):o?t.y+t.height:t.x,d=s(r.to),c=Math.min(l,d)-(r.two?Te/2:0),u=Math.max(l,d)+Te/2,m=o?{...a,y:r.two?c:d-Te/2,height:r.two?u-c:Math.max(0,t.y+t.height-d+Te/2),rx:r.two?0:i}:{...a,x:r.two?c:t.x,width:r.two?u-c:Math.max(0,d+Te/2-t.x),rx:r.two?0:i},f=(o?t.width:t.height)*.5,h=(S,v)=>{let O=o?{x:t.x+(t.width-f)/2,y:v-Te/2,width:f,height:Te,rx:Te/2}:{x:v-Te/2,y:t.y+(t.height-f)/2,width:Te,height:f,rx:Te/2};return Lt(e,t,S,.3,O,$(e,"accent"))},y=[Lt(e,t,"track",.1,a,$(e,"surface")),Lt(e,t,"fill",.2,m,$(e,"fill")),...r.two?[h("handle-start",l)]:[],h(r.two?"handle-end":"handle",d)],x={color:me(e,$(e,"textColor")),fontSize:I(e,"fontSize")},b=Qy(e,r);if(o)return b&&y.push(ie(e,"value",{x:t.x,y:t.y+6,width:t.width,height:20},{...x,text:b,align:"center"},t.order+.4)),y;let C={y:t.y,height:t.height,width:Math.max(0,t.width/2-Ad)};return e.label&&y.push(ie(e,"label",{x:t.x+Ad,...C},{...x,text:e.label,align:"left"},t.order+.4)),b&&y.push(ie(e,"value",{x:t.x+t.width/2,...C},{...x,text:b,align:"right"},t.order+.4)),y.push(...Ed(e,t,!1,n,t.height-ri-5)),y}function oi(e,t){let r=$(e,"variant")==="field",o=$(e,"direction")==="vertical",i=oe(e,t,o?{width:r?56:28,height:180}:{width:220,height:r?36:28}),a=I(e,"min"),s=I(e,"max"),l=f=>Math.min(1,Math.max(0,(f-a)/(s-a||1))),d=e.type==="range",c=Number(e.value),u=d?Number(e.properties.valueEnd??s):c,m={from:l(d?Math.min(c,u):a),to:l(d?Math.max(c,u):c),values:d?[Math.min(c,u),Math.max(c,u)]:[c],two:d};return[ne(e,i),...r?eb(e,i,m,o):Jy(e,i,m,o)]}var tb=.12;function Nd(e,t){let r=oe(e,t,{width:52,height:30}),o=e.value===!0,n=r.height*tb,i=r.height/2-n,a=o?r.x+r.width-r.height/2:r.x+r.height/2,s={x:a-i,y:r.y+n,width:i*2,height:i*2};return[ne(e,r),{id:`widget-${e.id}-track`,type:"rect",order:r.order+.1,bounds:N(r,0,0),x:r.x,y:r.y,width:r.width,height:r.height,rx:r.height/2,style:X(e,{fill:W($(e,o?"accent":"track")),stroke:{kind:"none"}})},{id:`widget-${e.id}-thumb`,type:"ellipse",order:r.order+.2,bounds:N(s,0,0),cx:a,cy:r.y+r.height/2,rx:i,ry:i,style:X(e,{fill:W($(e,"thumb")),stroke:{kind:"none"},shadow:{color:"#000000",opacity:.25,blur:2,dx:0,dy:1}})}]}function Od(e,t){let r=oe(e,t,{width:120,height:40}),o=e.value===!0,n=[ne(e,r),{id:`widget-${e.id}-face`,type:"rect",order:r.order+.1,bounds:N(r,0,2),x:r.x,y:r.y,width:r.width,height:r.height,rx:r.height/2,style:X(e,{fill:o?W($(e,"accent")):{kind:"none"},stroke:W(o?$(e,"accent"):$(e,"stroke")),strokeWidth:1.5})}];if(e.label){let i={text:e.label,color:me(e,$(e,o?"onTextColor":"textColor")),fontSize:I(e,"fontSize"),align:"center"};n.push(ie(e,"label",r,i,r.order+.2))}return n}var xe=e=>(t,r)=>e(t,r),rb=new Map([["rollingNumber",xe(kd)],["tickScale",xe(wd)],["ruler",xe(vd)],["switch",xe(Nd)],["checkbox",xe(Ld)],["toggleButton",xe(Od)],["button",xe(Pd)],["slider",xe(oi)],["progress",xe(Md)],["segmented",xe($d)],["knob",xe(Td)],["range",xe(oi)]]);function Bd(e){return rb.get(e)}function ob(e){let t=yt(e.type)?.role;if(!t||!Gr(e))return;let r=typeof e.value=="boolean"?e.value:void 0;return{role:t,...r===void 0?{}:t==="button"?{pressed:r}:{checked:r},...e.disabled?{disabled:!0}:{}}}function nb(e){return e.label??(Gr(e)?e.id:String(e.value))}function ni(e){return e.flatMap((t,r)=>{let o=Bd(t.type)??Rd,n=J(o(t,r),"widget",t.id,t.type,nb(t),t.parentFrameId),i=ob(t),a=n.find(s=>s.identity?.primary);return i&&a?.identity&&(a.identity.aria=i),n})}function ii(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e} ${t+i} A ${i} ${i} 0 0 1 ${e+i} ${t} H ${e+r-i} A ${i} ${i} 0 0 1 ${e+r} ${t+i} V ${t+o} H ${e} Z`}function ai(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e} ${t} H ${e+r} V ${t+o-i} A ${i} ${i} 0 0 1 ${e+r-i} ${t+o} H ${e+i} A ${i} ${i} 0 0 1 ${e} ${t+o-i} Z`}function ir(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e} ${t+i} A ${i} ${i} 0 0 1 ${e+i} ${t} H ${e+r} V ${t+o} H ${e+i} A ${i} ${i} 0 0 1 ${e} ${t+o-i} Z`}function ar(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e} ${t} H ${e+r-i} A ${i} ${i} 0 0 1 ${e+r} ${t+i} V ${t+o-i} A ${i} ${i} 0 0 1 ${e+r-i} ${t+o} H ${e} Z`}function Id(e,t,r,o,n){let i=Math.max(0,Math.min(r,o)/2),a=Math.max(0,Math.min(n.topLeft,i)),s=Math.max(0,Math.min(n.topRight,i)),l=Math.max(0,Math.min(n.bottomRight,i)),d=Math.max(0,Math.min(n.bottomLeft,i)),c=(u,m,f)=>u>0?`A ${u} ${u} 0 0 1 ${m} ${f} `:"";return`M ${e+a} ${t} H ${e+r-s} `+c(s,e+r,t+s)+`V ${t+o-l} `+c(l,e+r-l,t+o)+`H ${e+d} `+c(d,e,t+o-d)+`V ${t+a} `+c(a,e+a,t)+"Z"}function uo(e,t,r,o){return{fill:{kind:"solid",color:e||"transparent"},stroke:{kind:"solid",color:t},strokeWidth:r,dash:o?.length?o:void 0}}var mo=8;function ib(e,t,r){let o=e.strokeWidth/2;switch(e.labelPosition){case"bottom":{let n=e.x-o,i=e.y+e.height;return{x:n,y:i,width:r,height:t,path:ai(n,i,r,t,mo)}}case"left":{let n=e.x-t,i=e.y-o;return{x:n,y:i,width:t,height:r,path:ir(n,i,t,r,mo)}}case"right":{let n=e.x+e.width,i=e.y-o;return{x:n,y:i,width:t,height:r,path:ar(n,i,t,r,mo)}}default:{let n=e.x-o,i=e.y-t;return{x:n,y:i,width:r,height:t,path:ii(n,i,r,t,mo)}}}}function Dd(e){let t=Math.max(32,e.fontSize+18),r=16,o=Math.max(120,e.title.length*e.fontSize*.62+r*2),n=ib(e,t,o),i=se(n,6),a=e.labelPosition==="left"||e.labelPosition==="right";return[{type:"path",id:e.tabId,order:e.order+.1,bounds:i,d:n.path,style:{fill:{kind:"solid",color:e.color},stroke:{kind:"none"}}},a?sb(e,n,r,i):ab(e,n,r,i)]}function ab(e,t,r,o){return{type:"text",id:e.titleId,order:e.order+.2,bounds:o,x:t.x+r,y:t.y,width:Math.max(0,t.width-r*2),height:t.height,lines:[e.title],fontFamily:e.fontFamily??B,fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.textColor,align:"left",verticalAlign:"middle",lineHeight:1.2}}function sb(e,t,r,o){let n=t.x+t.width/2,i=t.y+t.height/2,a=e.fontSize*1.4,s=Math.max(1,t.height-r*2);return{type:"text",id:e.titleId,order:e.order+.2,bounds:o,x:n-s/2,y:i-a/2,width:s,height:a,lines:[e.title],fontFamily:e.fontFamily??B,fontSize:e.fontSize,fontWeight:e.fontWeight,color:e.textColor,align:"center",verticalAlign:"middle",lineHeight:1.2,rotation:-90,rotationCenter:{x:n,y:i}}}var lb={top:"topLeft",bottom:"bottomLeft",left:"topLeft",right:"topRight"};function db(e,t,r){let o=e.shadow??!0,n=se({x:e.x,y:e.y,width:e.width,height:e.height},e.strokeWidth+(o?20:4)),i={...uo(e.fillColor,e.strokeColor,e.strokeWidth,e.dash),shadow:o?{color:"#000000",opacity:.2,blur:12,dx:0,dy:4}:void 0};if(!r)return{type:"rect",id:`frame-${e.id}`,order:t,bounds:n,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius,style:i};let a=lb[e.labelPosition??"top"],s={topLeft:e.cornerRadius,topRight:e.cornerRadius,bottomRight:e.cornerRadius,bottomLeft:e.cornerRadius,[a]:0};return{type:"path",id:`frame-${e.id}`,order:t,bounds:n,d:Id(e.x,e.y,e.width,e.height,s),detail:{of:"frameBoundary",cornerRadius:e.cornerRadius,squareCorner:a},style:i}}function Gd(e,t){if(e.isVisible===!1)return[];let r=t,o=(e.showLabel??!0)&&!!e.title,n=[db(e,r,o)];return o&&e.title&&n.push(...Dd({tabId:`frame-tab-${e.id}`,titleId:`frame-title-${e.id}`,x:e.x,y:e.y,width:e.width,height:e.height,cornerRadius:e.cornerRadius,strokeWidth:e.strokeWidth,title:e.title,color:e.strokeColor,textColor:e.textColor,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,labelPosition:e.labelPosition??"top",order:r})),n}function cb(e,t){let r=e*Math.PI/180;return{x:Math.cos(r)*t,y:Math.sin(r)*t}}function po(e){if(!e?.enabled)return;let t=cb(e.angle??45,e.distance??5);return{color:e.color??"#000000",opacity:e.opacity??.25,blur:e.blur??10,dx:t.x,dy:t.y}}function ub(e,t){let{swimlane:r}=e;return r.orientation==="horizontal"?`M ${r.x} ${r.y+t} H ${r.x+r.width}`:`M ${r.x+t} ${r.y} V ${r.y+r.height}`}function _d(e){return e.lanes.slice(1).map((t,r)=>({type:"path",id:`swimlane-divider-${e.swimlane.id}-${r}`,order:e.order+.1+r/100,bounds:e.bounds,d:ub(e,t.offset),style:{fill:{kind:"none"},stroke:{kind:"solid",color:e.swimlane.strokeColor},strokeWidth:e.swimlane.strokeWidth}}))}function Fd(e,t,r){return{type:"text",id:`swimlane-label-${e.swimlane.id}-${t.id}`,order:e.order+.5+r/100,lines:[t.label],fontFamily:e.swimlane.fontFamily??B,fontSize:e.swimlane.fontSize,fontWeight:e.swimlane.fontWeight,color:e.swimlane.textColor,lineHeight:1.2}}function mb(e,t,r){let o=e.swimlane.fontSize*1.4,n=e.swimlane.x+10+o/2,i=e.swimlane.y+t.offset+t.size/2,a=Math.max(20,t.size-16),s=n-a/2,l=i-o/2;return{...Fd(e,t,r),bounds:N({x:s,y:l,width:a,height:o},-90,12),x:s,y:l,width:a,height:o,align:"center",verticalAlign:"middle",rotation:-90,rotationCenter:{x:n,y:i}}}function pb(e,t,r){return{...Fd(e,t,r),bounds:e.bounds,x:e.swimlane.x+t.offset+8,y:e.swimlane.y+8,width:Math.max(0,t.size-16),height:Math.max(0,e.swimlane.height-16),align:"left",verticalAlign:"top"}}function Hd(e){if(!e.swimlane.showLaneLabels)return[];let t=e.swimlane.orientation==="horizontal"?mb:pb;return e.lanes.map((r,o)=>t(e,r,o))}function fb(e){let t=e.orientation==="horizontal"?e.height:e.width,r=e.lanes.reduce((o,n)=>o+n.size,0);return r<=0||t<=0?e.lanes:e.lanes.map(o=>({...o,size:o.size*(t/r)}))}function hb(e){let t=0;return fb(e).map(r=>{let o={...r,offset:t};return t+=r.size,o})}function Vd(e,t){return{swimlane:e,order:5e3+t,bounds:se({x:e.x,y:e.y,width:e.width,height:e.height},e.strokeWidth+4),lanes:hb(e)}}function Wd(e,t){if(e.isVisible===!1)return[];let r=Vd(e,t);return[{type:"rect",id:`swimlane-${e.id}`,order:r.order,bounds:r.bounds,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius,style:{...uo(e.fillColor,e.strokeColor,e.strokeWidth,e.dash),shadow:po(e.shadowStyle)}},..._d(r),...Hd(r)]}function zd(e){return[...e.frames.flatMap((t,r)=>J(Gd(t,r),"frame",t.id,void 0,t.title??void 0)),...e.swimlanes.flatMap((t,r)=>J(Wd(t,r),"swimlane",t.id))]}var sr=(e,t,r)=>({x:e.x+t.x*r,y:e.y+t.y*r});function si(e){return Math.hypot(e.end.x-e.start.x,e.end.y-e.start.y)}function fo(e){return e.text!==void 0?e.text:`${Math.round(si(e)*10)/10}${e.unit?` ${e.unit}`:""}`}function li(e){let t=si(e),r=t===0?{x:1,y:0}:{x:(e.end.x-e.start.x)/t,y:(e.end.y-e.start.y)/t},o={x:r.y,y:-r.x},n=e.offset<0?-1:1,i=[sr(e.start,o,e.offset),sr(e.end,o,e.offset)],a=Math.abs(e.offset)<=4?[]:[e.start,e.end].map(c=>[sr(c,o,4*n),sr(c,o,e.offset+6*n)]),s=((e.fontSize??11)*.75+2)*n,l={x:(i[0].x+i[1].x)/2,y:(i[0].y+i[1].y)/2},d=Math.atan2(r.y,r.x)*180/Math.PI;return d>90?d-=180:d<=-90&&(d+=180),{length:t,line:i,extensions:a,label:{center:sr(l,o,s),angle:d}}}var Ud="#475569",gb=.6,yb=e=>e.map(([t,r])=>`M ${t.x} ${t.y} L ${r.x} ${r.y}`).join(" ");function Yd(e,t,r,o){let n=Math.max(0,p(e.strokeWidth,1)),i=o.flat();return{type:"path",id:`dimension-${e.id}-${t}`,order:r,bounds:{minX:Math.min(...i.map(a=>a.x))-n,minY:Math.min(...i.map(a=>a.y))-n,maxX:Math.max(...i.map(a=>a.x))+n,maxY:Math.max(...i.map(a=>a.y))+n},d:yb(o),style:{fill:{kind:"none"},stroke:{kind:"solid",color:e.strokeColor??Ud},strokeWidth:n,lineCap:"round"}}}function bb(e,t,r,o,n){let i=p(e.fontSize,11),a=Math.max(24,r.length*i*gb+8),s=i*1.3;return{type:"text",id:`dimension-${e.id}-label`,order:t,bounds:{minX:o.x-a/2,minY:o.y-s/2,maxX:o.x+a/2,maxY:o.y+s/2},x:o.x-a/2,y:o.y-s/2,width:a,height:s,lines:[r],fontFamily:B,fontSize:i,fontWeight:"normal",color:e.textColor??e.strokeColor??Ud,align:"center",verticalAlign:"middle",lineHeight:1.2,rotation:n,rotationCenter:o}}function xb(e,t){let r=li(e),o=31e3+t,n={...Yd(e,"line",o+.1,[r.line]),markerStart:"filled_arrow",markerEnd:"filled_arrow"},i=r.extensions.length>0?[Yd(e,"extensions",o,r.extensions)]:[],a=fo(e);return[...i,n,bb(e,o+.2,a,r.label.center,r.label.angle)]}function Xd(e){return e.flatMap((t,r)=>J(xb(t,r),"dimension",t.id,"dimension",fo(t),t.parentFrameId))}function di(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function jd(e,t,r){let o=di(e,t);if(o===0)return e;let n=r/o;return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function Sb(e,t,r,o){let n=Math.max(0,Math.min(o,di(t,e)/2,di(t,r)/2));return{vertex:t,start:jd(t,e,n),end:jd(t,r,n)}}function tt(e,t){if(e.length<3)return"";let r=a=>typeof t=="number"?t:t[a]??0;if(e.every((a,s)=>r(s)<=0)){let[a,...s]=e;return`M ${a.x} ${a.y} ${s.map(l=>`L ${l.x} ${l.y}`).join(" ")} Z`}let o=e.map((a,s)=>Sb(e[(s-1+e.length)%e.length],a,e[(s+1)%e.length],r(s))),n=[`M ${o[0].end.x} ${o[0].end.y}`];for(let a=1;a<o.length;a++){let s=o[a];n.push(`L ${s.start.x} ${s.start.y}`,`Q ${s.vertex.x} ${s.vertex.y} ${s.end.x} ${s.end.y}`)}let i=o[0];return n.push(`L ${i.start.x} ${i.start.y}`,`Q ${i.vertex.x} ${i.vertex.y} ${i.end.x} ${i.end.y}`,"Z"),n.join(" ")}var Cb={prop:"style.fill",propKind:"color",propSolidOnly:!0};function Tt(e,t){let r=Math.max(0,p(e.strokeWidth,1)),o=p(e.rotation,0),n=zn(e),i={x:n.x+n.width/2,y:n.y+n.height/2};return{object:e,index:t,order:15e3+t,rotation:o,rotationCenter:i,box:n,strokeWidth:r,common:{type:"path",bounds:N(n,o,r+2),rotation:o,rotationCenter:i,style:{stroke:{kind:"solid",color:e.strokeColor??"#111827"},strokeWidth:r,lineJoin:"round"}}}}function lr(e,t,r,o,n){return{...e.common,id:`isometric-${e.object.id}-${t}`,order:e.order+r,d:tt([...o],0),style:n,...Cb}}function ci(e){let t=Ve(e);return[t.top[0],t.top[1],t.right[2],t.front[2],t.front[3],t.top[3]]}function ui(e,t,r){let{object:o,order:n,common:i,box:a}=e;return{...i,id:`isometric-${o.id}-hull`,order:n+.24,d:t,detail:{of:"isometricGeometry",width:Math.max(0,o.width),height:Math.max(0,o.height),depth:Math.max(0,o.depth),cornerRadius:r,bounds:a,labelOffsetX:p(o.labelOffsetX,0),labelOffsetY:p(o.labelOffsetY,0)},style:{...i.style,fill:{kind:"none"}}}}function ho(e){return{...ui(e,tt(ci(e.object),0),0),style:{...e.common.style,fill:{kind:"none"},stroke:{kind:"none"}}}}var mi=20,Rb=12,kb=6,go=3,wb=6.5;function vb(e){let{object:t}=e,r=Yn(t),o=r.y-Rb+p(t.labelOffsetY,0);return{anchor:r,centerX:r.x+p(t.labelOffsetX,0),topY:o-mi,bottomY:o}}function Pb(e,t,r){let{object:o,order:n,rotation:i,rotationCenter:a,box:s}=e,{centerX:l,topY:d,bottomY:c}=t;return{type:"text",id:`isometric-${o.id}-label`,order:n+.3,bounds:{minX:l-s.width/2,minY:d,maxX:l+s.width/2,maxY:c},x:l-s.width/2,y:d,width:s.width,height:mi,lines:[r],fontFamily:B,fontSize:12,fontWeight:"normal",color:"#111827",align:"center",verticalAlign:"middle",lineHeight:1.2,rotation:i,rotationCenter:a,mark:"isometric-label"}}function Lb(e,t){let{object:r,order:o,rotation:n,rotationCenter:i}=e,{anchor:a,centerX:s,bottomY:l}=t;return{type:"path",id:`isometric-${r.id}-label-guide`,order:o+.25,bounds:{minX:Math.min(a.x,s),minY:Math.min(a.y,l),maxX:Math.max(a.x,s),maxY:Math.max(a.y,l)},d:`M ${a.x} ${a.y} L ${s} ${l}`,rotation:n,rotationCenter:i,style:{fill:{kind:"none"},stroke:{kind:"solid",color:"#cbd5e1"},strokeWidth:1,lineCap:"round",pointerEvents:"none"}}}function Tb(e,t,r,o){let{object:n,order:i,rotation:a}=e,{centerX:s,topY:l,bottomY:d}=t,c=Math.max(24,r.length*wb+kb*2);return{type:"rect",id:`isometric-${n.id}-label-background`,order:i+.28,x:s-c/2,y:l-go,width:c,height:mi+go*2,rx:4,bounds:{minX:s-c/2,minY:l-go,maxX:s+c/2,maxY:d+go},rotation:a,mark:"isometric-label",style:{fill:{kind:"solid",color:o},stroke:{kind:"none"}}}}function Mt(e,t){let r=vb(e),o=Pb(e,r,t),n=Lb(e,r),i=e.object.labelBackground;return i?[n,Tb(e,r,t,i),o]:[n,o]}function yo(e,t){let{object:r,index:o,rotation:n,rotationCenter:i}=e;if(!r.hasShadow)return;let a=Math.max(0,r.height),s=.6+Math.min(1,a/150)*.7,l=a+p(r.shadowStyle?.distance,0),d=t.map(y=>({x:y.x,y:y.y+l})),c={x:d.reduce((y,x)=>y+x.x,0)/d.length,y:d.reduce((y,x)=>y+x.y,0)/d.length},u=1.3,m=d.map(y=>({x:c.x+(y.x-c.x)*u,y:c.y+(y.y-c.y)*u})),f=m.map(y=>y.x),h=m.map(y=>y.y);return{type:"path",id:`isometric-${r.id}-ground-shadow`,order:14e3+o,bounds:{minX:Math.min(...f),minY:Math.min(...h),maxX:Math.max(...f),maxY:Math.max(...h)},d:tt(m,0),rotation:n,rotationCenter:i,style:{fill:{kind:"solid",color:r.shadowStyle?.color??"#000000"},stroke:{kind:"none"},opacity:Math.min(1,(r.shadowStyle?.opacity??.18)*s),blur:p(r.shadowStyle?.blur,8),pointerEvents:"none"}}}function qd(e,t){let{object:r,index:o,box:n}=e;if(!r.hasShadow)return;let i=Math.max(0,r.width),a=Math.max(0,r.depth),s={x:n.x+n.width/2,y:r.y+Math.max(0,r.height)+(i+a)*He/2};return{type:"ellipse",id:`isometric-${r.id}-ground-shadow`,order:14e3+o,bounds:{minX:s.x-t*1.1,minY:s.y-t*.6,maxX:s.x+t*1.1,maxY:s.y+t*.6},cx:s.x,cy:s.y,rx:t*1.05,ry:t*.52,style:{fill:{kind:"solid",color:r.shadowStyle?.color??"#000000"},stroke:{kind:"none"},opacity:r.shadowStyle?.opacity??.2,blur:p(r.shadowStyle?.blur,8),pointerEvents:"none"}}}function Mb(e,t,r){let{object:o,common:n}=e,i={...n.style,stroke:{kind:"none"}},a=qn(o.fill??"#f8fafc"),s=(l,d,c,u)=>lr(e,l,d,c,{...i,fill:{kind:"solid",color:u},clip:r});return[s("top",0,t.top,a.topFill),s("front",.1,t.front,a.frontFill),s("side",.2,t.right,a.sideFill)]}function $b(e,t,r){let{object:o,order:n,common:i,strokeWidth:a}=e;return{...i,id:`isometric-${o.id}-seams`,order:n+.22,d:`M ${t.top[3].x} ${t.top[3].y} L ${t.top[2].x} ${t.top[2].y} L ${t.top[1].x} ${t.top[1].y} M ${t.top[2].x} ${t.top[2].y} L ${t.front[2].x} ${t.front[2].y}`,style:{...i.style,fill:{kind:"none"},stroke:{kind:"solid",color:"#cbd5e1"},strokeWidth:Math.min(a,1),clip:r}}}function Kd(e,t){let r=Tt(e,t),o=Ve(e),n=Math.max(0,p(e.cornerRadius,8)),i=tt(ci(e),n),a={type:"path",d:i},s=yo(r,o.top),l=$b(r,o,a),d=ui(r,i,n),c=Mb(r,o,a),u=s?[d,...c,s,l]:[d,...c,l];return e.text?[...u,...Mt(r,e.text)]:u}function Ab(e,t,r,o){let n=wt(o,t.light);return lr(e,`side-${r}`,.05+r*.001,t.points,{...e.common.style,stroke:{kind:"solid",color:n},strokeWidth:.6,fill:{kind:"solid",color:n}})}function Eb(e,t,r){let[o,n,i,a]=t.points,s=[`M ${a.x} ${a.y} L ${i.x} ${i.y}`,...t.smoothStart?[]:[`M ${o.x} ${o.y} L ${a.x} ${a.y}`],...t.smoothEnd?[]:[`M ${n.x} ${n.y} L ${i.x} ${i.y}`]];return{...e.common,id:`isometric-${e.object.id}-side-${r}-edges`,order:e.order+.0505+r*.001,d:s.join(" "),style:{...e.common.style,fill:{kind:"none"}}}}function Zd(e,t,r){let o=Tt(e,t),{top:n,sides:i}=Xn(e,r,Math.max(0,p(e.cornerRadius,0))),a=e.fill??"#f8fafc",s=yo(o,n),l=lr(o,"top",.2,n,{...o.common.style,fill:{kind:"solid",color:a}}),d=[ho(o),...s?[s]:[],...i.flatMap((c,u)=>[Ab(o,c,u,a),Eb(o,c,u)]),l];return e.text?[...d,...Mt(o,e.text)]:d}function Qd(e,t){let r=Tt(e,t),{order:o,common:n,box:i}=r,a=Math.max(0,Math.min(e.width,e.height,e.depth))/2,s=i.x+i.width/2,l=i.y+i.height/2,d=e.fill??"#f8fafc",c={minX:s-a,minY:l-a,maxX:s+a,maxY:l+a},u={type:"ellipse",id:`isometric-${e.id}-sphere`,order:o+.1,bounds:c,cx:s,cy:l,rx:a,ry:a,style:{...n.style,fill:{kind:"linear-gradient",angle:135,stops:[{offset:0,color:wt(d,1.22)},{offset:.5,color:d},{offset:1,color:wt(d,.82)}]}},prop:"style.fill",propKind:"color",propSolidOnly:!0},m={type:"ellipse",id:`isometric-${e.id}-highlight`,order:o+.2,bounds:c,cx:s-a*.32,cy:l-a*.38,rx:a*.26,ry:a*.18,rotation:-35,style:{fill:{kind:"solid",color:"#ffffff"},stroke:{kind:"none"},opacity:.45,blur:a*.1,pointerEvents:"none"}},f=qd(r,a),h=[ho(r),...f?[f]:[],u,m];return e.text?[...h,...Mt(r,e.text)]:h}function Nb(e,t){if(e.form==="sphere")return Qd(e,t);let r=co(e.footprint);return r.length>0?Zd(e,t,r):Kd(e,t)}function Jd(e){return e.flatMap((t,r)=>J(Nb(t,r),"isometric",t.id,"isometric",t.text??"Isometric object",t.parentFrameId))}function Ob(e,t){let r=t==="start"?0:e.length-2,o=t==="start"?2:e.length-4,n=e[r],i=e[r+1],a=e[o]-n,s=e[o+1]-i,l=Math.hypot(a,s)||1,d=a/l,c=s/l;return{x:n+d*20-c*13,y:i+c*20+d*13}}function ec(e,t,r){let o=(t==="start"?e.link.style?.startLabel:e.link.style?.endLabel)?.trim();if(!o)return[];let n=p(e.link.style?.fontSize,10),i=Ob(e.points,t),a=90;return[{type:"text",id:`link-${t}-label-${e.link.id}`,order:e.order+.55+r*.01,bounds:e.bounds,x:i.x-a/2,y:i.y-n,width:a,height:n*2,lines:[o],fontFamily:e.link.style?.fontFamily??B,fontSize:n,fontWeight:"normal",color:e.color,align:"center",verticalAlign:"middle",lineHeight:1.4}]}function tc(e){return[...ec(e,"start",0),...ec(e,"end",1)]}function rc(e){return e.label.visible?[{type:"text",id:`link-text-${e.link.id}`,order:e.order+.5,bounds:e.bounds,x:e.midpoint.x-e.label.width/2,y:e.midpoint.y-e.label.fontSize,width:e.label.width,height:e.label.fontSize*2,lines:e.label.lines,fontFamily:e.link.style?.fontFamily??B,fontSize:e.label.fontSize,fontWeight:"normal",color:e.color,align:"center",verticalAlign:"middle",lineHeight:1.4}]:[]}var pi=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16),a:t[4]===void 0?1:parseInt(t[4],16)/255}:{r:255,g:255,b:255,a:1}},oc=(e,t,r,o)=>{let n=a=>{let s=Math.max(0,Math.min(255,Math.round(a))).toString(16);return s.length===1?`0${s}`:s},i=o===void 0||o>=1?"":n(o*255);return`#${n(e)}${n(t)}${n(r)}${i}`};function Bb(e,t,r){let o=pi(e),n=pi(t),i=o.a??1,a=n.a??1;return oc(Math.round(o.r+(n.r-o.r)*r),Math.round(o.g+(n.g-o.g)*r),Math.round(o.b+(n.b-o.b)*r),i+(a-i)*r)}function dr(e,t){let r=[...e].sort((i,a)=>i.position-a.position),o=r[0],n=r[r.length-1];if(t<=o.position)return o.color;if(t>=n.position)return n.color;for(let i=0;i<r.length-1;i++){let a=r[i],s=r[i+1];if(t>=a.position&&t<=s.position){let l=s.position-a.position,d=l===0?0:(t-a.position)/l;return Bb(a.color,s.color,d)}}return n.color}function nc(e){if(e){if(typeof e=="string")return e;if(e.type==="gradient")return e.stops?.[0]?.color;if(e.type==="solid")return e.color}}var ic=(e,t)=>{switch(t){case"dashed":return[e*8,e*4];case"dotted":return[e*2,e*3];default:return}};function Oe(e,t,r,o){let n=Math.max(1,Math.floor(t/Math.max(1,r*.58))),i=o?(s,l)=>o.measure(s,!1)+o.spaceWidth+o.measure(l,!1)<=t:(s,l)=>`${s} ${l}`.length<=n,a=[];for(let s of e.split(`
|
|
12
|
+
`)){let l=s.split(/\s+/).filter(Boolean);if(!l.length){a.push("");continue}let d="";for(let c of l)d?i(d,c)?d+=` ${c}`:(a.push(d),d=c):d=c;a.push(d)}return a}function bo(e,t,r,o){if(We(e,r,o)<=t)return e;let n=e.length;for(;n>1&&We(`${e.slice(0,n)}\u2026`,r,o)>t;)n-=1;return`${e.slice(0,n)}\u2026`}function We(e,t,r){return e.length*t*(r?.64:.58)}function ac(e){return{measure:(t,r)=>We(t,e,r),spaceWidth:e*.58}}var rt=(e,t,r)=>({x:e.x+(t.x-e.x)*r,y:e.y+(t.y-e.y)*r});function fi(e,t,r,o,n){let i=1-n;return{x:i*i*i*e.x+3*i*i*n*t.x+3*i*n*n*r.x+n*n*n*o.x,y:i*i*i*e.y+3*i*i*n*t.y+3*i*n*n*r.y+n*n*n*o.y}}function hi(e,t,r,o,n){let i=rt(e,t,n),a=rt(t,r,n),s=rt(r,o,n),l=rt(i,a,n),d=rt(a,s,n),c=rt(l,d,n);return{left:[e,i,l,c],right:[c,d,s,o]}}function xo(e,t){let r=e.length-2;if(t<=0)return{point:{x:e[0],y:e[1]},segmentIndex:0};let o=0;for(let n=0;n<r;n+=2){let i={x:e[n],y:e[n+1]},a={x:e[n+2],y:e[n+3]},s=Math.hypot(a.x-i.x,a.y-i.y);if(o+s>=t){let l=s===0?0:(t-o)/s;return{point:rt(i,a,l),segmentIndex:n}}o+=s}return{point:{x:e[r],y:e[r+1]},segmentIndex:r}}function So(e){let t=0;for(let r=0;r<e.length-2;r+=2)t+=Math.hypot(e[r+2]-e[r],e[r+3]-e[r+1]);return t}function sc(e,t,r,o,n=40){let i=0,a=e;for(let s=1;s<=n;s++){let l=fi(e,t,r,o,s/n);i+=Math.hypot(l.x-a.x,l.y-a.y),a=l}return i}var $t=40;function Ib(e){let t=[0],r=e[0];for(let o=1;o<=$t;o++){let n=fi(...e,o/$t);t.push(t[o-1]+Math.hypot(n.x-r.x,n.y-r.y)),r=n}return t}function lc(e,t){let r=e[$t];if(t<=0)return 0;if(t>=r)return 1;for(let o=1;o<=$t;o++)if(e[o]>=t){let n=(t-e[o-1])/(e[o]-e[o-1]||1);return(o-1+n)/$t}return 1}function Db(e,t,r){let[o,n,i,a]=e,s=.75*(n.x-o.x)+1.5*(i.x-n.x)+.75*(a.x-i.x),l=.75*(n.y-o.y)+1.5*(i.y-n.y)+.75*(a.y-i.y),d=Math.hypot(s,l),c=d===0?1:Math.abs(s)/d,u=d===0?0:Math.abs(l)/d;return Math.min(t.halfWidth*c+t.halfHeight*u,r)}function dc(e,t){if(e.length<8)return null;let r=Gb(e),o=Ib(r),n=o[$t];if(n===0)return null;let i=n/2,a=Math.max(0,i-t.minimumVisibleStub),s=Db(r,t,a),l=lc(o,i-s),d=lc(o,i+s);return{before:_b(r,l),after:Fb(r,d),bezier:!0}}function Gb(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}function _b(e,t){return t<=.01?null:hi(...e,t).left.flatMap(r=>[r.x,r.y])}function Fb(e,t){return t>=.99?null:hi(...e,t).right.flatMap(r=>[r.x,r.y])}function cc(e,t){if(e.length<4)return null;let r=So(e);if(r===0)return null;let o=Hb(e,r,t);return{before:Wb(e,o.beforeLength),after:zb(e,o.afterLength,r),bezier:!1}}function Hb(e,t,r){let o=t/2,n=xo(e,o),i={x:e[n.segmentIndex],y:e[n.segmentIndex+1]},a={x:e[n.segmentIndex+2],y:e[n.segmentIndex+3]},s=Vb(i,a,r,o);return{beforeLength:o-s,afterLength:o+s}}function Vb(e,t,r,o){let n=Math.hypot(t.x-e.x,t.y-e.y),i=n===0?1:Math.abs(t.x-e.x)/n,a=n===0?0:Math.abs(t.y-e.y)/n,s=r.halfWidth*i+r.halfHeight*a;return Math.min(s,Math.max(0,o-r.minimumVisibleStub))}function Wb(e,t){if(t<=.5)return null;let r=xo(e,t);return[...e.slice(0,r.segmentIndex+2),r.point.x,r.point.y]}function zb(e,t,r){if(t>=r-.5)return null;let o=xo(e,t);return[o.point.x,o.point.y,...e.slice(o.segmentIndex+2)]}var uc=3,Yb=10;function Ub(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}function gi(e,t){return t?sc(...Ub(e)):So(e)}function mc(e,t,r,o){let n={halfWidth:(r+uc)/2,halfHeight:(o+uc)/2,minimumVisibleStub:Yb};return t==="curved"?dc(e,n):cc(e,n)}function yi(e,t,r,o){let n=mc(e,t,r,o);if(!n||!n.before&&!n.after)return null;let i=gi(e,n.bezier),a=n.before?gi(n.before,n.bezier):0,s=n.after?gi(n.after,n.bezier):0,l=Math.max(0,i-a-s);return l<=0?null:{dashBefore:a,gapLength:l}}function Xb(e){let[t,r,o,n,i,a,s,l]=e,d=.5,c=1-d;return{x:c*c*c*t+3*c*c*d*o+3*c*d*d*i+d*d*d*s,y:c*c*c*r+3*c*c*d*n+3*c*d*d*a+d*d*d*l}}function jb(e,t){let r=0,o=[];for(let a=0;a<e.length-2;a+=2){let s={x:e[a],y:e[a+1]},l={x:e[a+2],y:e[a+3]},d=Math.sqrt((l.x-s.x)**2+(l.y-s.y)**2);r+=d,o.push({start:s,end:l,length:d})}let n=r/2,i=0;for(let a of o){if(i+a.length>=n){let s=(n-i)/a.length;return{x:a.start.x+s*(a.end.x-a.start.x),y:a.start.y+s*(a.end.y-a.start.y)}}i+=a.length}return t}function bi(e,t,r,o){if(t==="curved")return Xb(e);let n={x:(r.x+o.x)/2,y:(r.y+o.y)/2};return t==="orthogonal"?jb(e,n):n}function At(e){switch(e){case"top":return[0,-1];case"right":return[1,0];case"bottom":return[0,1];case"left":return[-1,0]}}function qb(e,t,r,o,n){let i=n?.min??50,a=n?.max??240,s=n?.perpendicularScale??.9,l=t.x-e.x,d=t.y-e.y,c=Math.abs(l*r[0]+d*r[1]),u=Math.abs(l*o[0]+d*o[1]),m=Math.abs(l*r[1]-d*r[0]),f=Math.abs(l*o[1]-d*o[0]),h=r[0]===o[0]&&r[1]===o[1]||r[0]===-o[0]&&r[1]===-o[1],y=Math.max(i,Math.min(a,Math.max(c,m*s))),x=Math.max(i,Math.min(a,Math.max(u,f*s)));return h&&(y=Math.min(a,y+m*.75),x=Math.min(a,x+f*.75)),{fromDistance:y,toDistance:x}}function pc(e,t,r,o,n){let i=At(r),a=At(o),{fromDistance:s,toDistance:l}=qb(e,t,i,a,n);return{p0:[e.x,e.y],p1:[e.x+i[0]*s,e.y+i[1]*s],p2:[t.x+a[0]*l,t.y+a[1]*l],p3:[t.x,t.y]}}function fc(e,t,r,o){let{p0:n,p1:i,p2:a,p3:s}=pc(e,t,r,o,{min:35,max:90,perpendicularScale:.5});return{points:[...n,...i,...a,...s],segments:[]}}function gc(e,t,r,o){let i=["top","bottom"].includes(r)&&["top","bottom"].includes(o),a=["left","right"].includes(r)&&["left","right"].includes(o);return i&&Math.abs(t.x-e.x)<6?[e,{...t,x:e.x}]:a&&Math.abs(t.y-e.y)<6?[e,{...t,y:e.y}]:[e,t]}function yc(e,t,r){return r?.toEdge?r.toEdge==="left"||r.toEdge==="right":r?.fromEdge?r.fromEdge==="left"||r.fromEdge==="right":Math.abs(t.x-e.x)>Math.abs(t.y-e.y)}function bc(e,t,r,o,n){let i=40,a=40,s=n?0:1,l=n?t.x-e.x:t.y-e.y;if(r[s]!==0&&r[s]===-o[s]){let d=l*r[s];d>0&&d<i+a&&(i=d/2,a=d/2)}else if(r[s]===0){let d=l*-o[s];d>0&&d<a&&(a=d)}return[i,a]}function xc(e){let{fromConnection:t,toConnection:r,to:o,horizontalFirst:n}=e,i=t.stub,a=r.stub,s=(i[0]+a[0])/2,l=(i[1]+a[1])/2,d=hc(t.side),c=hc(r.side);return d!==c?n?s=(i[0]-o.x)*r.normal[0]>=0?i[0]:a[0]:l=(i[1]-o.y)*r.normal[1]>=0?i[1]:a[1]:t.side===r.side&&(n?s=t.normal[0]<0?Math.min(i[0],a[0]):Math.max(i[0],a[0]):l=t.normal[1]<0?Math.min(i[1],a[1]):Math.max(i[1],a[1])),[s,l]}function hc(e){return e==="left"||e==="right"}function Sc(e){let t=[];for(let r=0;r<e.length-2;r+=2)t.push({x:(e[r]+e[r+2])/2,y:(e[r+1]+e[r+3])/2});return t}function Cc(e,t){let{from:r,to:o,fromConnection:n,toConnection:i,horizontalFirst:a}=e,s=n.stub,l=i.stub,d=[r.x,r.y,s[0],s[1]];return a?d.push(t[0],s[1],t[0],l[1]):d.push(s[0],t[1],l[0],t[1]),d.push(l[0],l[1],o.x,o.y),d}function Rc(e,t,r){let o=e?["left","right"]:["top","bottom"];return[!o.includes(t),!o.includes(r)]}function kc(e,t,r,o){let{from:n,to:i,fromConnection:a,toConnection:s,horizontalFirst:l}=e,d=a.stub,c=s.stub,u=o[0]&&r?.[1]||0,m=r?.[2]||0,f=o[1]&&r?.[3]||0;if(l){let b=d[1]+u,C=t[0]+m,S=c[1]+f;return[n.x,n.y,d[0],b,C,b,C,S,c[0],S,i.x,i.y]}let h=d[0]+u,y=t[1]+m,x=c[0]+f;return[n.x,n.y,h,d[1],h,y,x,y,x,c[1],i.x,i.y]}function wc(e,t,r,o){let n=(e.length-2)/2;return t.map((i,a)=>{let s=a*2,l={x:e[s],y:e[s+1]},d={x:e[s+2],y:e[s+3]},c={x:(l.x+d.x)/2,y:(l.y+d.y)/2},u=a>0&&a<n-1,m=a===1?r:a===n-2?o:!0,f=Math.hypot(d.x-l.x,d.y-l.y)>=1;return{start:l,end:d,midpoint:c,originalMidpoint:i,isHorizontal:Math.abs(d.x-l.x)>Math.abs(d.y-l.y),canMove:u&&m&&f}})}function Co(e,t){if(e.length<6)return e;let r=Jb(e),o=[r[0]];for(let n=1;n<r.length-1;n++){let i=Kb(r[n-1],r[n],r[n+1],t);o.push(...i?Qb(i):[r[n]])}return o.push(r[r.length-1]),o.flatMap(n=>[n.x,n.y])}function Kb(e,t,r,o){let n={x:t.x-e.x,y:t.y-e.y},i={x:r.x-t.x,y:r.y-t.y},a=n.x===0||n.y===0,s=i.x===0||i.y===0,l=n.x===0&&i.x===0||n.y===0&&i.y===0;if(!a||!s||l)return null;let d=Math.min(o,vc(n)*.4,vc(i)*.4);if(d<=0)return null;let c=Pc(n),u=Pc(i),m=xi(t,c,-d),f=xi(t,u,d),h=xi(m,u,d),y=Math.atan2(m.y-h.y,m.x-h.x),x=Math.atan2(f.y-h.y,f.x-h.x);return{entry:m,exit:f,center:h,radius:d,startAngle:y,angleSweep:Zb(x-y)}}function xi(e,t,r){return{x:e.x+t.x*r,y:e.y+t.y*r}}function vc(e){return Math.abs(e.x)+Math.abs(e.y)}function Pc(e){return{x:e.x!==0?Math.sign(e.x):0,y:e.y!==0?Math.sign(e.y):0}}function Zb(e){return e>Math.PI?e-2*Math.PI:e<-Math.PI?e+2*Math.PI:e}function Qb(e){let t=[e.entry];for(let r=1;r<7;r++){let o=r/7,n=e.startAngle+e.angleSweep*o;t.push({x:e.center.x+Math.cos(n)*e.radius,y:e.center.y+Math.sin(n)*e.radius})}return t.push(e.exit),t}function Jb(e){let t=[];for(let r=0;r<e.length;r+=2)t.push({x:e[r],y:e[r+1]});return t}function Si(e){let t=e0(e),r=xc(t),o=Cc(t,r),n=Sc(o),i=Rc(t.horizontalFirst,e.fromSide,e.toSide),a=kc(t,r,e.segmentOffsets,i),s=wc(a,n,i[0],i[1]);return{points:Co(a,10),segments:s}}function e0(e){let[t,r]=gc(e.from,e.to,e.fromSide,e.toSide),o=At(e.fromSide),n=At(e.toSide),i=yc(t,r,e.endpointEdges),[a,s]=bc(t,r,o,n,i);return{from:t,to:r,fromConnection:Lc(t,e.fromSide,o,a),toConnection:Lc(r,e.toSide,n,s),horizontalFirst:i}}function Lc(e,t,r,o){return{side:t,normal:r,stub:[e.x+r[0]*o,e.y+r[1]*o]}}var Tc=.5;function Mc(e,t,r){let o=[e,...t,r],n=[];for(let a of o)n.push(a.x,a.y);let i=[];for(let a=0;a<n.length-2;a+=2){let s={x:n[a],y:n[a+1]},l={x:n[a+2],y:n[a+3]},d={x:(s.x+l.x)/2,y:(s.y+l.y)/2};i.push({start:s,end:l,midpoint:d,originalMidpoint:d,isHorizontal:Math.abs(l.x-s.x)>Math.abs(l.y-s.y),canMove:!1})}return{points:Co(n,10),segments:i}}function Ci(e){return e.every(t=>{let r=Math.abs(t.end.x-t.start.x),o=Math.abs(t.end.y-t.start.y);return r<=Tc||o<=Tc})}function $c(e,t,r,o,n){if(e.waypoints&&e.waypoints.length>0){let l=Mc(t,e.waypoints,r);if(Ci(l.segments))return l}let i={fromEdge:o,toEdge:n},a={from:t,to:r,fromSide:o,toSide:n,segmentOffsets:e.segmentOffsets,endpointEdges:i},s=Si(a);return Ci(s.segments)?s:Si({...a,segmentOffsets:void 0})}function Ac(e,t){let r=Math.atan2(t.y-e.y,t.x-e.x);return r>=-Math.PI/4&&r<Math.PI/4?"right":r>=Math.PI/4&&r<3*Math.PI/4?"bottom":r>=-3*Math.PI/4&&r<-Math.PI/4?"top":"left"}function Ec(e,t,r){let o=e.fromPoint?.kind==="side"?e.fromPoint.side:Ac(t,r),n=e.toPoint?.kind==="side"?e.toPoint.side:Ac(r,t);return{fromSide:o,toSide:n}}function Nc(e,t){return{points:[e.x,e.y,t.x,t.y],segments:[]}}function Oc(e,t,r,o){let{fromSide:n,toSide:i}=Ec(e,t,r);return o==="curved"?fc(t,r,n,i):o==="orthogonal"?$c(e,t,r,n,i):Nc(t,r)}function t0(e,t){let r=e.filter((n,i)=>i%2===0),o=e.filter((n,i)=>i%2===1);return{minX:Math.min(...r)-t,minY:Math.min(...o)-t,maxX:Math.max(...r)+t,maxY:Math.max(...o)+t}}function r0(e,t){let r=!!(e.showText&&e.text),o=p(e.style?.fontSize,10),n=Math.min(250,Math.max(o*2,(e.text?.length??0)*o*.65+10)),i=t?.(e.style?.fontFamily??B,o),a=r?Oe(e.text??"",n,o,i):[];return{visible:r,fontSize:o,width:n,height:a.length*o*1.4,lines:a}}function o0(e,t,r,o){let n=e.link,i=typeof n.style?.color=="object"&&n.style.color.type==="gradient"?{kind:"linear-gradient",angle:0,stops:n.style.color.stops.map(a=>({offset:a.position,color:a.color}))}:{kind:"solid",color:r};return{fill:{kind:"none"},stroke:i,strokeWidth:t,dash:o,lineCap:"round",lineJoin:"round",opacity:p(n.style?.opacity,1),shadow:po(n.style?.shadow)}}function Bc(e,t,r){let{link:o,from:n,to:i}=e,a=o.style?.pathType??"orthogonal",{points:s,segments:l}=Oc(o,n,i,a),d=p(o.style?.strokeWidth,2),c=nc(o.style?.color)||"#64748b",u=r0(o,r),m=ic(d,o.style?.strokeStyle??"solid"),f=u.visible&&!m?yi(s,a,u.width,u.height):null,h=f?[f.dashBefore,f.gapLength,1e6]:m;return{link:o,pathType:a,points:s,segments:l,midpoint:bi(s,a,n,i),strokeWidth:d,bounds:t0(s,d+14),color:c,order:2e4+t,style:o0(e,d,c,h),label:u,hasLabelGap:!!f}}function Ri(e,t){let r=t==="start"?e.startMarker:e.endMarker;if(r)return r;let o=e.style?.arrowDirection??"forward";return o==="bidirectional"||t==="start"&&o==="backward"||t==="end"&&o==="forward"?"arrow":"none"}function Ic(e,t){if(e.length===0)return"";let r=[e[0].start,...e.map(s=>s.end)],o=r.filter((s,l)=>l===0||s.x!==r[l-1].x||s.y!==r[l-1].y),n=o.filter((s,l)=>{if(l===0||l===o.length-1)return!0;let d=o[l-1],c=o[l+1];return!(d.x===s.x&&s.x===c.x||d.y===s.y&&s.y===c.y)});if(n.length<2)return"";let i=`M ${n[0].x} ${n[0].y}`;for(let s=1;s<n.length-1;s++){let l=n[s-1],d=n[s],c=n[s+1],u=Math.hypot(d.x-l.x,d.y-l.y),m=Math.hypot(c.x-d.x,c.y-d.y);if(u===0||m===0){i+=` L ${d.x} ${d.y}`;continue}let f=Math.min(t,u*.4,m*.4),h={x:d.x+(l.x-d.x)/u*f,y:d.y+(l.y-d.y)/u*f},y={x:d.x+(c.x-d.x)/m*f,y:d.y+(c.y-d.y)/m*f};i+=` L ${h.x} ${h.y} Q ${d.x} ${d.y} ${y.x} ${y.y}`}let a=n[n.length-1];return`${i} L ${a.x} ${a.y}`}function n0(e){let t=`M ${e[0]} ${e[1]}`;for(let r=2;r<e.length;r+=2)t+=` L ${e[r]} ${e[r+1]}`;return t}function i0(e,t,r,o){return e.length<4?"":t==="curved"&&e.length>=8?`M ${e[0]} ${e[1]} C ${e[2]} ${e[3]} ${e[4]} ${e[5]} ${e[6]} ${e[7]}`:t==="orthogonal"&&r.length>0?Ic(r,Math.max(16,o*4)):n0(e)}var Et=e=>Math.round(e*100)/100;function a0(e,t){if(!(e!=="orthogonal"||!t.some(r=>r.canMove)))return t.map(r=>({ax:Et(r.start.x),ay:Et(r.start.y),bx:Et(r.end.x),by:Et(r.end.y),ox:Et(r.originalMidpoint.x),oy:Et(r.originalMidpoint.y),movable:r.canMove}))}function Dc(e){let{link:t}=e;return{type:"path",id:`link-${t.id}`,order:e.order,bounds:e.bounds,d:i0(e.points,e.pathType,e.segments,e.strokeWidth),style:e.style,markerStart:Ri(t,"start"),markerEnd:Ri(t,"end"),detail:{of:"link",fromId:t.fromId,toId:t.toId,route:e.pathType,fromSide:t.fromPoint?.kind==="side"?t.fromPoint.side:void 0,toSide:t.toPoint?.kind==="side"?t.toPoint.side:void 0,fromFace:t.fromPoint?.kind==="face"?t.fromPoint.face:void 0,toFace:t.toPoint?.kind==="face"?t.toPoint.face:void 0,labelGap:e.hasLabelGap,segments:a0(e.pathType,e.segments)}}}function Gc(e){let{link:t}=e;if(t.weight===void 0||t.weight===null||t.showWeight===!1)return[];let r=t.weight.toFixed(1),o=Math.max(30,r.length*8+12),n=16,i=e.midpoint.y+(e.label.visible?e.label.height/2+10:0);return[{type:"rect",id:`link-weight-badge-${t.id}`,order:e.order+.6,bounds:e.bounds,x:e.midpoint.x-o/2,y:i-n/2,width:o,height:n,rx:n/2,style:{fill:{kind:"solid",color:e.color},stroke:{kind:"none"},opacity:.92}},{type:"text",id:`link-weight-${t.id}`,order:e.order+.61,bounds:e.bounds,x:e.midpoint.x-o/2,y:i-n/2,width:o,height:n,lines:[r],fontFamily:"Arial, sans-serif",fontSize:10,fontWeight:"bold",color:"#ffffff",align:"center",verticalAlign:"middle",lineHeight:1}]}function s0(e,t,r){if(e.link.isVisible===!1)return[];let o=Bc(e,t,r);return[Dc(o),...rc(o),...Gc(o),...tc(o)]}function _c(e,t){return e.flatMap((r,o)=>J(s0(r,o,t),"link",r.link.id,r.kind,r.link.text||`${r.link.fromId} \u2192 ${r.link.toId}`))}function l0(e,t){if(e.isVisible===!1||e.points.length<2)return[];let r=p(e.strokeWidth,2),o=r+12,n={minX:Math.min(...e.points.map(s=>s.x))-o,minY:Math.min(...e.points.map(s=>s.y))-o,maxX:Math.max(...e.points.map(s=>s.x))+o,maxY:Math.max(...e.points.map(s=>s.y))+o},i=p(e.tension,0),a=e.closed===!0;return[{type:"path",id:`path-${e.id}`,order:3e4+t,bounds:n,d:Le({points:e.points,tension:i,closed:a}),markerStart:e.startMarker,markerEnd:e.endMarker,detail:{of:"pathGeometry",points:e.points.map(s=>[s.x,s.y]),tension:i,closed:a},style:{fill:e.closed?{kind:"solid",color:e.fillColor??"transparent"}:{kind:"none"},stroke:{kind:"solid",color:e.strokeColor??"#7c3aed"},strokeWidth:r,dash:e.dash?.length?e.dash:void 0,lineCap:"round",lineJoin:"round",opacity:p(e.opacity,1)}}]}function Fc(e){return e.flatMap((t,r)=>J(l0(t,r),"path",t.id,"path","Path"))}function cr(e){return{id:e.id,order:e.order,bounds:e.bounds,rotation:e.rotation,style:e.style}}var d0=[[30,64,24],[52,40,22],[86,32,28],[118,42,24],[132,64,24]],Ro=Math.PI/2,c0=4*Ro,Hc=Math.PI/2,u0=1e-9;function ki([e,t,r],o){return[e+r*Math.cos(o),t+r*Math.sin(o)]}function Vc([e,t],r){return Math.atan2(r[1]-t,r[0]-e)}function Wc(e,t,r){let o=t[0]-e[0],n=t[1]-e[1],i=Math.hypot(o,n),a=(e[2]**2-t[2]**2+i**2)/(2*i),s=Math.sqrt(Math.max(0,e[2]**2-a**2)),l=e[0]+a*o/i,d=e[1]+a*n/i,c=[[l-s*n/i,d+s*o/i],[l+s*n/i,d-s*o/i]],u=m=>Math.hypot(m[0]-r[0],m[1]-r[1]);return u(c[0])>u(c[1])?c[0]:c[1]}function m0(e){let t=[e.reduce((r,o)=>r+o[0],0)/e.length,e.reduce((r,o)=>r+o[1],0)/e.length];return e.map((r,o)=>{let n=o===0?Hc:Vc(r,Wc(e[o-1],r,t)),a=o===e.length-1?Hc:Vc(r,Wc(r,e[o+1],t));for(;a<=n;)a+=c0;return{lobe:r,from:n,to:a}})}function p0(e,t){let r=[];for(let o=Math.floor(e/Ro)+1;o*Ro<t-u0;o++)r.push(o*Ro);return[...r,t]}function f0({lobe:e,from:t,to:r}){let o=ki(e,t),n=[],i=t;for(let a of p0(t,r)){let s=1.3333333333333333*Math.tan((a-i)/4)*e[2],l=ki(e,i),d=ki(e,a);n.push([[l[0]-s*Math.sin(i),l[1]+s*Math.cos(i)],[d[0]+s*Math.sin(a),d[1]-s*Math.cos(a)],d]),i=a}return{start:o,curves:n}}function h0(){let e=m0(d0).map(f0),t=e[0].start,r=e.flatMap(d=>d.curves),o=[t,...r.map(d=>d[2])],n=Math.min(...o.map(d=>d[0])),i=Math.max(...o.map(d=>d[0])),a=Math.min(...o.map(d=>d[1])),s=Math.max(...o.map(d=>d[1])),l=d=>[(d[0]-n)/(i-n),(d[1]-a)/(s-a)];return{start:l(t),curves:r.map(([d,c,u])=>[l(d),l(c),l(u)])}}var zc=h0();function Yc(e,t,r,o){let n=([a,s])=>`${e+a*r} ${t+s*o}`,i=zc.curves.map(([a,s,l])=>`C ${n(a)} ${n(s)} ${n(l)}`);return`M ${n(zc.start)} ${i.join(" ")} Z`}function Uc(e,t,r,o){let n=Math.min(o*.22,r*.2),i=r/2,a=e+i,s=e,l=e+r,d=t+n,c=t+o-n,u=`M ${s} ${d} C ${s} ${d+.5523*n} ${a-.5523*i} ${d+n} ${a} ${d+n} C ${a+.5523*i} ${d+n} ${l} ${d+.5523*n} ${l} ${d} C ${l} ${d-.5523*n} ${a+.5523*i} ${t} ${a} ${t} C ${a-.5523*i} ${t} ${s} ${d-.5523*n} ${s} ${d} Z`,m=`M ${s} ${d} L ${s} ${c} C ${s} ${c+.5523*n} ${a-.5523*i} ${t+o} ${a} ${t+o} C ${a+.5523*i} ${t+o} ${l} ${c+.5523*n} ${l} ${c} L ${l} ${d}`;return`${u} ${m}`}function Xc(e,t,r,o){let n=Math.min(r/4,o/4.35),i=n,a=n*2,s=n*4.35,l=t+(o-s)/2;return{head:i,body:a,centerX:e+r/2,headCenterY:l+i,bottom:l+s}}function jc(e,t,r,o){let{body:n,centerX:i,bottom:a}=Xc(e,t,r,o);return{x:i-n,y:a-n,width:n*2,height:n}}function qc(e,t,r,o){let{head:n,body:i,centerX:a,headCenterY:s,bottom:l}=Xc(e,t,r,o),d=`M ${a} ${s-n} C ${a+.5523*n} ${s-n} ${a+n} ${s-.5523*n} ${a+n} ${s} C ${a+n} ${s+.5523*n} ${a+.5523*n} ${s+n} ${a} ${s+n} C ${a-.5523*n} ${s+n} ${a-n} ${s+.5523*n} ${a-n} ${s} C ${a-n} ${s-.5523*n} ${a-.5523*n} ${s-n} ${a} ${s-n} Z`,c=`M ${a-i} ${l} C ${a-i} ${l-.5523*i} ${a-.5523*i} ${l-i} ${a} ${l-i} C ${a+.5523*i} ${l-i} ${a+i} ${l-.5523*i} ${a+i} ${l} Z`;return`${d} ${c}`}var g0=e=>e.length<4?"":`M ${e[0]} ${e[1]} ${e.slice(2).reduce((t,r,o)=>t+(o%2?` ${r}`:` L ${r}`),"")} Z`,y0=.1,b0=Math.PI/6,x0=.25,S0=.15;function Kc(e,t){return Math.min(e,t)/2}function Zc(e,t,r,o,n){let i=(...a)=>g0(a);switch(e){case"diamond":return i(t+o/2,r,t+o,r+n/2,t+o/2,r+n,t,r+n/2);case"triangle":return i(t+o/2,r,t,r+n,t+o,r+n);case"parallelogram":return i(t+o*.15,r,t+o,r,t+o*.85,r+n,t,r+n);case"trapezoid":return i(t+o*.2,r,t+o*.8,r,t+o,r+n,t,r+n);case"hexagon":{let a=Math.min(o,n)/4;return i(t+a,r,t+o-a,r,t+o,r+n/2,t+o-a,r+n,t+a,r+n,t,r+n/2)}case"document":{let a=n*y0,s=r+n-a,l=o/4,d=a*b0;return`M ${t} ${r} L ${t+o} ${r} L ${t+o} ${s} C ${t+o-l/3} ${s-d} ${t+o-l*2/3} ${s-a} ${t+o-l} ${s-a} C ${t+o-l-l/3} ${s-a} ${t+o/2+l/3} ${s-d} ${t+o/2} ${s} C ${t+o/2-l/3} ${s+d} ${t+o/2-l*2/3} ${s+a} ${t+l} ${s+a} C ${t+l-l/3} ${s+a} ${t+l/3} ${s+d} ${t} ${s} Z`}case"note":{let a=Math.min(o,n)*x0;return`M ${t} ${r} L ${t+o-a} ${r} L ${t+o} ${r+a} L ${t+o} ${r+n} L ${t} ${r+n} Z M ${t+o} ${r+a} L ${t+o-a} ${r+a} L ${t+o-a} ${r}`}case"cloud":return Yc(t,r,o,n);case"cylinder":return Uc(t,r,o,n);case"person":return qc(t,r,o,n);case"predefined_process":{let a=Math.min(o,n)*S0;return`M ${t} ${r} L ${t+o} ${r} L ${t+o} ${r+n} L ${t} ${r+n} Z M ${t+a} ${r} L ${t+a} ${r+n} M ${t+o-a} ${r} L ${t+o-a} ${r+n}`}default:return null}}function Se(e){let t=Zc(e.shape.shapeType,e.x,e.y,e.width,e.height);return t?[{...cr(e),type:"path",d:t,rotationCenter:e.rotationCenter}]:[]}function Qc(e){return Se(e).map(t=>({...t,detail:{of:"declaredBounds",bounds:{x:e.x,y:e.y,width:e.width,height:e.height}}}))}function Nt(e){let t=e.shape.shapeType==="pill"?Kc(e.width,e.height):e.shape.shapeType==="rounded_rectangle"?p(e.shape.cornerRadius,8):0;return[{...cr(e),type:"rect",x:e.x,y:e.y,width:e.width,height:e.height,rx:t}]}function wi(e){return[{...cr(e),type:"ellipse",cx:e.x+e.width/2,cy:e.y+e.height/2,rx:e.width/2,ry:e.height/2}]}function Jc(e){if(!e.shape.symbol||e.shape.symbol.points.length<2)return Nt(e);let t=p(e.shape.symbol.tension,0),r=e.shape.symbol.points.map(([o,n])=>({x:e.x+o*e.width,y:e.y+n*e.height}));return[{...cr(e),type:"path",d:Le({points:r,tension:t,closed:!0}),rotationCenter:e.rotationCenter,detail:{of:"symbolGeometry",points:e.shape.symbol.points,tension:t,declaredBounds:{x:e.x,y:e.y,width:e.width,height:e.height}}}]}var C0={cloud:Se,cylinder:Se,diamond:Se,document:Se,hexagon:Se,note:Se,oval:wi,circle:wi,parallelogram:Se,person:Qc,pill:Nt,predefined_process:Se,rectangle:Nt,rounded_rectangle:Nt,symbol:Jc,trapezoid:Se,triangle:Se};function ur(e){return(C0[e.shape.shapeType]??Nt)(e)}var R0=new Set(["reactivePanel","ledMatrix","lightBand","silkFolds"]);function k0(e){if(e.shape.shapeType==="circle"||e.shape.shapeType==="oval")return"ellipse";if((e.shape.shapeType==="rectangle"||e.shape.shapeType==="rounded_rectangle")&&e.shape.shader&&R0.has(e.shape.shader.program))return"rect"}function eu(e){if(!e.shape.shader)return;let t=k0(e);if(!t)return;let r=t==="rect"?Math.max(0,e.shape.shader.surfacePadding??0):0,o={x:e.x-r,y:e.y-r,width:e.width+r*2,height:e.height+r*2};return{id:`${e.id}-shader`,type:"shader-surface",order:e.order,bounds:N(o,e.rotation,0),...o,rotation:e.rotation,shader:e.shape.shader,mask:t,fillColor:e.style.fill?.kind==="solid"?e.style.fill.color:void 0}}var w0={container_rectangle:" (use 'rectangle' with strokeStyle: dashed)"},ee={strokeColor:"#cbd5e1",strokeWidth:2,fillColor:"#ffffff",dash:[],strokeStyle:"solid",fontSize:14,fontWeight:"normal",textAlign:"center",textVerticalAlign:"middle",lineHeight:1.3,hasShadow:!1,opacity:1},tu={rectangle:ee,rounded_rectangle:{...ee,cornerRadius:8},triangle:{...ee,rotation:0},diamond:{...ee,rotation:0},hexagon:{...ee,rotation:0},oval:{...ee,rotation:0},circle:{...ee,rotation:0},document:{...ee,rotation:0},parallelogram:{...ee,rotation:0},trapezoid:{...ee,rotation:0},cylinder:{...ee,rotation:0},note:{...ee,rotation:0},cloud:{...ee,rotation:0},predefined_process:{...ee,rotation:0},pill:ee,person:{...ee,rotation:0},symbol:{...ee,rotation:0}};function vi(e,t){let r=tu[e.shapeType];return r||(t.push({severity:"warning",code:"unknown-shape-type",ownerId:e.id,message:`Unknown shapeType '${e.shapeType}'${w0[e.shapeType]??""}, falling back to rectangle defaults.`}),tu.rectangle)}function v0(e,t){return e.strokeStyle==="dotted"?[.001,t*2]:e.strokeStyle==="dashed"?[t*4,t*2]:e.dash?.length?e.dash:void 0}function ru(e,t){let r=vi(e,t),o=p(e.strokeWidth,r.strokeWidth),n=e.shadowStyle??(e.hasShadow?{enabled:!0,color:"#000000",opacity:.25,blur:10,angle:45,distance:5}:void 0),i=p(n?.angle,45)*Math.PI/180;return{fill:P(e.fillColor,t,e.id),stroke:P(e.strokeColor,t,e.id),strokeWidth:o,dash:v0(e,o),lineCap:e.strokeStyle==="dotted"?"round":"butt",opacity:p(e.opacity,r.opacity),shadow:n?.enabled?{color:n.color??"#000000",opacity:p(n.opacity,.25),blur:p(n.blur,10),dx:Math.cos(i)*p(n.distance,5),dy:Math.sin(i)*p(n.distance,5)}:void 0}}var Pi=/\*\*([^*]+)\*\*/g;function ou(e){return/\*\*[^*]+\*\*/.test(e)}function P0(e){let t=[],r=0;Pi.lastIndex=0;let o;for(;o=Pi.exec(e);)o.index>r&&t.push({text:e.slice(r,o.index),bold:!1}),o[1]&&t.push({text:o[1],bold:!0}),r=Pi.lastIndex;return r<e.length&&t.push({text:e.slice(r),bold:!1}),t.length?t:[{text:e,bold:!1}]}function L0(e){return e.split(`
|
|
13
|
+
`).map(P0)}function T0(e){let t=[];for(let r of e)for(let o of r.text.split(/\s+/))o&&t.push({text:o,bold:r.bold});return t}function M0(e,t,r,o){let n=T0(e);if(!n.length)return[[]];let i=[],a=[],s=0;for(let l of n){let d=r(l.text,l.bold),c=a.length?o+d:d;a.length&&s+c>t?(i.push(a),a=[l],s=d):(a.push(l),s+=c)}return i.push(a),i}function nu(e,t,r,o){return L0(e).flatMap(n=>M0(n,Math.max(1,t),r,o))}function iu(e,t,r){let{shape:o,bounds:n,order:i,rotation:a,rotationCenter:s,x:l,y:d,width:c,height:u}=e;if(!o.text)return null;let m=p(o.fontSize,vi(o,[]).fontSize),f=o.isText?0:Math.max(8,t*2),h=o.shapeType==="person"?jc(l,d,c,u):{x:l,y:d,width:c,height:u},y=Math.max(0,h.width-f*2),x=o.fontFamily||B,b=r?.(x,m),C={type:"text",id:`shape-text-${o.id}`,order:i+.5,bounds:n,x:h.x+f,y:h.y+f,width:y,height:Math.max(0,h.height-f*2),lines:Oe(o.text,y,m,b),fontFamily:x,fontSize:m,fontWeight:o.fontWeight??"normal",letterSpacing:o.letterSpacing,color:o.textColor||"#111827",align:o.textAlign??"center",verticalAlign:o.textVerticalAlign??"middle",lineHeight:p(o.lineHeight,1.3),rotation:a,rotationCenter:s};if(ou(o.text)){let{measure:S,spaceWidth:v}=b??ac(m);C.richLines=nu(o.text,y,S,v)}return C}function $0(e,t){let r=Math.max(0,e.width-2*t),o=Math.max(0,e.height-2*t),n={...e.style,fill:{kind:"none"},strokeWidth:Math.max(1,t/3),dash:void 0,shadow:void 0},i=ur({...e,style:n});if(r<=0||o<=0)return i;let a={...e,x:e.x+t,y:e.y+t,width:r,height:o};return i.push(...ur({...a,id:`${e.id}-fill`,style:{...e.style,stroke:{kind:"none"},strokeWidth:0,dash:void 0}}),...ur({...a,id:`${e.id}-inner`,style:n})),i}function A0(e,t,r){let o=p(e.x,0),n=p(e.y,0),i=Math.max(0,p(e.width,100)),a=Math.max(0,p(e.height,100)),s=p(e.rotation,0),l=p(e.strokeWidth,2);return{strokeWidth:l,context:{shape:e,id:`shape-${e.id}`,order:1e4+t,bounds:N({x:o,y:n,width:i,height:a},s,l+(e.hasShadow?20:2)),rotation:s,rotationCenter:{x:o+i/2,y:n+a/2},style:ru(e,r),x:o,y:n,width:i,height:a}}}function E0(e,t,r,o){if(e.isVisible===!1)return[];let{context:n,strokeWidth:i}=A0(e,t,r),a=e.strokeStyle==="double"?$0(n,i||1):ur(n),s=eu(n);if(s){for(let d of a)(d.type==="ellipse"||d.type==="path"||d.type==="rect")&&(d.style={...d.style,pointerEvents:"all"});a.push(s)}let l=iu(n,i,o);return l&&a.push(l),a}function au(e,t,r){return e.flatMap((o,n)=>J(E0(o,n,t,r),"shape",o.id,o.shapeType,o.text||o.shapeType,o.parentFrameId??void 0))}var A=["#7c3aed","#0ea5e9","#f97316","#10b981","#ec4899","#eab308"],q="#94a3b8",mr=[{label:"Low",color:"#ddd6fe"},{label:"Medium",color:"#a78bfa"},{label:"High",color:"#6d28d9"}],Li=14;function M(e,t,r){return t.max===t.min?0:(e-t.min)/(t.max-t.min)*r}function z(e){if(!(e.step>0))return e.min===e.max?[e.min]:[e.min,e.max];let t=e.min<=e.max,r=t?e.step:-e.step,o=[];for(let n=e.min;(t?n<=e.max+1e-9:n>=e.max-1e-9)&&o.length<1e3;n+=r)o.push(Math.round(n*1e3)/1e3);return o}function pr(e){let t=[...e.thresholds??[]].filter(r=>r>e.min&&r<e.max).sort((r,o)=>r-o);return[e.min,...t,e.max]}function fr(e,t,r){let o=Math.max(0,t.length-1),n=r.slice(0,o).map((i,a)=>({position:t[a+1]??t[t.length-1],color:i.color??q}));return n.length?dr(n,e):q}function Ce(e){return Math.max(1,e.config?.categories?.length??0,...e.series.map(t=>t.values.length))}var Re={padX:8,padY:3,charWidth:.58,lineHeight:1.2,gap:4};function Ti(e,t){return(t||"{value}").replace("{value}",String(Math.round(e*100)/100))}function Mi(e,t,r){let o=r?Re.padX:0,n=r?Re.padY:0,i=t*Re.lineHeight;return{width:e.length*t*Re.charWidth+o*2,height:i+n*2,lineHeight:i,padX:o,padY:n}}function $i(e,t,r,o){let n=o/2;return`M ${e+n} ${t} H ${e+r-n} A ${n} ${n} 0 0 1 ${e+r-n} ${t+o} H ${e+n} A ${n} ${n} 0 0 1 ${e+n} ${t} Z`}function ko(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e} ${t+i} Q ${e} ${t} ${e+i} ${t} H ${e+r-i} Q ${e+r} ${t} ${e+r} ${t+i} V ${t+o} H ${e} Z`}function Be(e,t,r,o,n){let i=Math.max(0,Math.min(n,r/2,o/2));return i===0?`M ${e} ${t} H ${e+r} V ${t+o} H ${e} Z`:`M ${e+i} ${t} H ${e+r-i} Q ${e+r} ${t} ${e+r} ${t+i} V ${t+o-i} Q ${e+r} ${t+o} ${e+r-i} ${t+o} H ${e+i} Q ${e} ${t+o} ${e} ${t+o-i} V ${t+i} Q ${e} ${t} ${e+i} ${t} Z`}function ot(e,t,r,o,n,i){return i?Be(e,t,r,o,n):ko(e,t,r,o,n)}function Ai(e,t){if(e.length===1)return e[0];let r=(e.length-1)*t,o=Math.floor(r),n=Math.ceil(r);return o===n?e[o]:e[o]+(r-o)*(e[n]-e[o])}function Ei(e){if(!e?.length)return null;let t=[...e].sort((r,o)=>r-o);return{min:t[0],q1:Ai(t,.25),median:Ai(t,.5),q3:Ai(t,.75),max:t[t.length-1]}}function hr(e){if(e?.[0]!=="#")return;let t=e.length===4?e.slice(1).split("").map(i=>parseInt(i+i,16)):[1,3,5].map(i=>parseInt(e.slice(i,i+2),16)),[r,o,n]=t;return[r,o,n].some(i=>Number.isNaN(i))?void 0:[r,o,n]}function Ni(e,t){let r=hr(e),o=Math.max(0,Math.min(1,t));if(!r)return o<=0?"transparent":e??"transparent";let[n,i,a]=r;return`rgba(${n}, ${i}, ${a}, ${o})`}function Oi(e,t,r){let o=n=>Math.round(Math.max(0,Math.min(255,n))).toString(16).padStart(2,"0");return`#${o(e)}${o(t)}${o(r)}`}function vo(e,t,r){let o=e/255,n=t/255,i=r/255,a=Math.max(o,n,i),s=Math.min(o,n,i),l=(a+s)/2,d=a-s;if(d===0)return[0,0,l];let c=d/(1-Math.abs(2*l-1)),u;return a===o?u=(n-i)/d%6:a===n?u=(i-o)/d+2:u=(o-n)/d+4,u*=60,u<0&&(u+=360),[u,c,l]}function Bi(e,t,r){let o=(1-Math.abs(2*r-1))*t,n=o*(1-Math.abs(e/60%2-1)),i=r-o/2,[a,s,l]=[0,0,0];return e<60?[a,s,l]=[o,n,0]:e<120?[a,s,l]=[n,o,0]:e<180?[a,s,l]=[0,o,n]:e<240?[a,s,l]=[0,n,o]:e<300?[a,s,l]=[n,0,o]:[a,s,l]=[o,0,n],[(a+i)*255,(s+i)*255,(l+i)*255]}function su(e,t,r){let o=n=>{let i=n/255;return i<=.03928?i/12.92:((i+.055)/1.055)**2.4};return .2126*o(e)+.7152*o(t)+.0722*o(r)}function N0(e,t){let r=Math.max(e,t),o=Math.min(e,t);return(r+.05)/(o+.05)}var wo=.35,lu=.08,du=.22,cu=.78,uu=.92,O0=3;function le(e){let t=hr(e);if(!t)return"#0f172a";let[r,o,n]=t,i=(.299*r+.587*o+.114*n)/255>.6?"#0f172a":"#ffffff",[a,s,l]=vo(r,o,n);if(s===0)return i;let d=l>.5?Math.max(lu,Math.min(l-wo,du)):Math.min(uu,Math.max(l+wo,cu)),c=Bi(a,s,d);return N0(su(r,o,n),su(...c))>=O0?Oi(...c):i}function Ot(e,t){let r=hr(e);if(!r)return t;let[o,n,i]=r,[a,s,l]=vo(o,n,i);if(s===0)return t;let d=l>.5?Math.max(lu,Math.min(l-wo,du)):Math.min(uu,Math.max(l+wo,cu));return Oi(...Bi(a,s,d))}function Po(e){let t=hr(e);return t?vo(...t)[2]>.5:!1}function je(e,t){let r=hr(e);if(!r)return;let[o,n]=vo(...r);if(n!==0)return Oi(...Bi(o,n,t))}function G(e,t){return e?typeof e=="string"?e:e.type==="gradient"?e.stops[0]?.color??t:e.points[0]?.color??t:t}function gr(e,t){return Array.isArray(t)?[e-t[0],e+t[1]]:[e-t,e+t]}function yr(e){return{type:"path",id:e.id,order:e.order,bounds:e.bounds,d:B0(e.geometry),detail:{of:"chartValue",series:e.valueReference.seriesId,valueIndex:e.valueReference.valueIndex},style:{fill:{kind:"none"},stroke:{kind:"solid",color:e.color},strokeWidth:1}}}function B0(e){let{centerX:t,startY:r,endY:o}=e,n=t-5,i=t+5;return`M ${t} ${r} L ${t} ${o} M ${n} ${r} L ${i} ${r} M ${n} ${o} L ${i} ${o}`}function Me(e){return Number.isInteger(e)?String(e):e.toFixed(2).replace(/\.?0+$/,"")}var To=18,Lo=e=>e.config;function de(e){return e.chartType==="bar"&&Lo(e)?.orientation==="horizontal"}function Bt(e,t){let r=Ce({series:e.series,config:Lo(e)}),o=t.height/r,n=Math.min(Math.max(0,p(Lo(e)?.barGroupGap,8)),Math.max(0,o-1)),i=e.categoryAlign==="left"?To:0,a=Math.max(1,o-n-i),s=p(Lo(e)?.barThickness,0),l=s>0?Math.min(a,s):a;return{count:r,slotHeight:o,groupGap:n,labelRow:i,barsHeight:l,offset:(a-l)/2}}function It(e,t,r){return t.y+r*e.slotHeight+e.groupGap/2+e.offset}function Dt(e,t){return t>0?Le({points:e,tension:t,closed:!1}):`M ${e.map((o,n)=>`${n?"L":""} ${o.x} ${o.y}`).join(" ")}`}function Mo(e,t,r,o){let n=Math.max(1,Math.min(e,t)/2-4),i=Math.max(0,Math.min(r??0,n-1)),a=Math.max(0,Math.min(o??0,n/2)),s=Math.max(1,n-a),l=i>0?Math.min(i+a,s-1):0;return{outerRadius:s,innerRadius:l,cornerRadius:a}}function Z(e,t,r){return{x:e.centerX+r*Math.cos(t),y:e.centerY+r*Math.sin(t)}}function br(e,t,r,o){let n=t.x-e.x,i=t.y-e.y,a=0,s=1;if(Math.abs(n)>1e-6){let d=(t.x-r-e.x)/n,c=(t.x+r-e.x)/n;a=Math.max(a,Math.min(d,c)),s=Math.min(s,Math.max(d,c))}if(Math.abs(i)>1e-6){let d=(t.y-o-e.y)/i,c=(t.y+o-e.y)/i;a=Math.max(a,Math.min(d,c)),s=Math.min(s,Math.max(d,c))}let l=a<=s?a:1;return{x:e.x+l*n,y:e.y+l*i}}function _t(e,t){return Math.abs(t-e)>Math.PI?1:0}function nt(e,t){return e<=0||t<=0?0:Math.asin(Math.min(1,e/t))}function mu(e,t){return{start:e.start+t,end:e.end-t}}function it(e,t,r){if(e<=0)return 0;let o=Math.min(Math.abs(t)/2,Math.PI/2),n=Math.sin(o);return n<=1e-6?r:Math.min(e/n,r)}function I0(e,t,r){let o=Z(e,t.start,e.outerRadius),n=Z(e,t.end,e.outerRadius);return[`M ${r.x} ${r.y}`,`L ${o.x} ${o.y}`,`A ${e.outerRadius} ${e.outerRadius} 0 ${_t(t.start,t.end)} 1 ${n.x} ${n.y}`,"Z"].join(" ")}function D0(e,t,r,o){let n=Z(e,r.start,e.outerRadius),i=Z(e,r.end,e.outerRadius),a=Z(e,o.end,t),s=Z(e,o.start,t);return[`M ${n.x} ${n.y}`,`A ${e.outerRadius} ${e.outerRadius} 0 ${_t(r.start,r.end)} 1 ${i.x} ${i.y}`,`L ${a.x} ${a.y}`,`A ${t} ${t} 0 ${_t(o.start,o.end)} 0 ${s.x} ${s.y}`,"Z"].join(" ")}var pu=.82;function Gt(e,t,r,o,n,i){let a=Math.min(1,n/r),s=o+i*Math.asin(a),l=Math.sqrt(Math.max(0,r*r-n*n));return{lineTangent:{x:e.centerX+l*Math.cos(o),y:e.centerY+l*Math.sin(o)},arcTangent:Z(e,s,t),angle:s}}function xr(e,t,r){let o=Math.min(Math.abs(r)/2,Math.PI/2),n=Math.sin(o*pu),i=e*n/(1+n),a=t>0?t*n:Number.POSITIVE_INFINITY,s=t>0?(e-t)/2:e/2;return Math.max(0,Math.min(i,a,s))}function Sr(e,t,r){let o=Math.min(Math.abs(r)/2,Math.PI/2),n=Math.sin(o*pu),i=e*n/(1+n),a=(e*e-t*t)/(2*e);return Math.max(0,Math.min(i,a))}function G0(e,t,r,o){let{outerRadius:n}=e,i=n-r,a=Gt(e,n,i,t.start,r,1),s=Gt(e,n,i,t.end,r,-1);return[`M ${o.x} ${o.y}`,`L ${a.lineTangent.x} ${a.lineTangent.y}`,`A ${r} ${r} 0 0 1 ${a.arcTangent.x} ${a.arcTangent.y}`,`A ${n} ${n} 0 ${_t(a.angle,s.angle)} 1 ${s.arcTangent.x} ${s.arcTangent.y}`,`A ${r} ${r} 0 0 1 ${s.lineTangent.x} ${s.lineTangent.y}`,"Z"].join(" ")}function _0(e,t,r,o,n){let{outerRadius:i}=e,a=i-n,s=Gt(e,i,a,r.start,n,1),l=Gt(e,i,a,r.end,n,-1),d=t+n,c=Gt(e,t,d,o.start,n,1),u=Gt(e,t,d,o.end,n,-1);return[`M ${s.lineTangent.x} ${s.lineTangent.y}`,`A ${n} ${n} 0 0 1 ${s.arcTangent.x} ${s.arcTangent.y}`,`A ${i} ${i} 0 ${_t(s.angle,l.angle)} 1 ${l.arcTangent.x} ${l.arcTangent.y}`,`A ${n} ${n} 0 0 1 ${l.lineTangent.x} ${l.lineTangent.y}`,`L ${u.lineTangent.x} ${u.lineTangent.y}`,`A ${n} ${n} 0 0 1 ${u.arcTangent.x} ${u.arcTangent.y}`,`A ${t} ${t} 0 ${_t(u.angle,c.angle)} 0 ${c.arcTangent.x} ${c.arcTangent.y}`,`A ${n} ${n} 0 0 1 ${c.lineTangent.x} ${c.lineTangent.y}`,"Z"].join(" ")}function Ft(e,t,r){let o=Math.max(0,r)/2,n=it(o,t.end-t.start,e.outerRadius);return e.innerRadius>0&&e.innerRadius>=n}function at(e,t,r=0,o=0){let n=Math.max(0,o)/2,i=mu(t,nt(n,e.outerRadius));if(!Ft(e,t,o)){let s=it(n,t.end-t.start,e.outerRadius),l=Z(e,(t.start+t.end)/2,s);return r>0?G0(e,i,r,l):I0(e,i,l)}let a=mu(t,nt(n,e.innerRadius));return r>0?_0(e,e.innerRadius,i,a,r):D0(e,e.innerRadius,i,a)}function ze(e,t,r,o,n,i,a){let s=t==="horizontal",l=s?e.width:e.height,d=Math.max(1,(l-o*(r-1))/r),c=Math.min(r,Math.max(0,i*r)),u=a?Math.round(c):c,m=[];for(let f=0;f<r;f++){let h=Math.min(1,Math.max(0,u-f))*d;if(h<.5)continue;let y=f*(d+o);m.push(s?Be(e.x+y,e.y,h,e.height,n):Be(e.x,e.y+e.height-y-h,e.width,h,n))}return m.join(" ")}function _(e){if(!e?.enabled)return;let t=p(e.angle,45)*Math.PI/180,r=p(e.distance,5);return{color:e.color??"#000000",opacity:p(e.opacity,.25),blur:p(e.blur,10),dx:Math.cos(t)*r,dy:Math.sin(t)*r}}function Cr(e,t,r,o,n){let i=e.series[o].values[r]??0;return t==="waterfall"?F0(e,r,o,n,i):t==="percent"?H0(e,r,o,n,i):V0(e,r,o,n,i)}function F0(e,t,r,o,n){let i=0;for(let a=0;a<t;a++)i+=e.series[r].values[a]??0;return fu(n,i,i+n,e,o)}function H0(e,t,r,o,n){let i=e.series.reduce((l,d)=>l+Math.abs(d.values[t]??0),0)||1,a=0;for(let l=0;l<r;l++)a+=Math.abs(e.series[l].values[t]??0);let s=Math.abs(n);return{value:n,pixelStart:a/i*o,pixelEnd:(a+s)/i*o}}function V0(e,t,r,o,n){let i=0;for(let a=0;a<r;a++)i+=e.series[a].values[t]??0;return fu(n,i,i+n,e,o)}function fu(e,t,r,o,n){return{value:e,pixelStart:M(t,o.axisY,n),pixelEnd:M(r,o.axisY,n)}}function L(e){let{chart:t,frame:r}=e;return{type:"text",id:e.id,order:e.order,bounds:e.bounds,...r,lines:[e.text],fontFamily:(e.role==="axis"?t.axisFontFamily:void 0)??t.fontFamily??B,fontSize:Math.max(9,p(e.role==="axis"?t.axisFontSize??t.fontSize:t.fontSize,12)),fontWeight:"normal",color:(e.role==="axis"?t.axisLabelColor:e.role==="legend"?t.legendColor:void 0)??t.textColor??"#0f172a",align:e.align??"left",verticalAlign:"top",lineHeight:1.2,rotation:e.rotation,rotationCenter:e.rotation?{x:r.x,y:r.y}:void 0}}var W0=/^[A-Za-z_][A-Za-z0-9_]*$/;function Ht(e,t,r){return W0.test(t)?`${e}[${t}].${r}`:void 0}var hu="text";function Ii(e){return`Axis[${e}].label`}function $o(e){return Number.isInteger(e)&&e>=0?`categories[${e}]`:void 0}function Ie(e){return Ht("Series",e,"label")}function gu(e){return Ht("Series",e,"color")}function ce(e,t){return Number.isInteger(t)&&t>=0?Ht("Series",e,`values[${t}]`):void 0}function Vt(e,t){return Number.isInteger(t)&&t>=0?Ht("Series",e,`colors[${t}]`):void 0}function yu(e){return Ht("Rule",e,"text")}function bu(e){return Ht("Rule",e,"at")}function z0(e,t,r){return e.axisX.label?{...L({role:"axis",id:`chart-x-label-${e.id}`,order:r,bounds:t.bounds,frame:{x:t.plot.x,y:e.y+e.height-18,width:t.plot.width,height:18},text:e.axisX.label,chart:e,align:"center"}),prop:Ii("x")}:null}function Y0(e,t,r){return!e.axisY.label||e.showValueAxis===!1?null:{...L({role:"axis",id:`chart-y-label-${e.id}`,order:r,bounds:t.bounds,frame:{x:e.x+12,y:t.plot.y+t.plot.height,width:t.plot.height,height:18},text:e.axisY.label,chart:e,align:"center",rotation:-90}),prop:Ii("y")}}function xu(e,t,r){let o=[],n=z0(e,t,r);n&&o.push(n);let i=Y0(e,t,r+o.length);return i&&o.push(i),o}function Su(e,t,r){let o=Math.max(1,e.series.length),n=t.plot.height/o;return e.series.map((i,a)=>{let s=t.plot.y+(a+.5)*n;return{...L({role:"axis",id:`chart-y-tick-${e.id}-${a}`,order:r+a,bounds:t.bounds,frame:{x:e.x,y:s-9,width:t.padLeft-8,height:18},text:i.label||i.id,chart:e,align:"right"}),prop:Ie(i.id)}})}var U0=new Set(["heatmap","boxplot","sankey","treemap","mekko"]);function Cu(e){return X0(e.chart)?Q0(e).flatMap(t=>J0(e,t)):[]}function X0(e){let t=e.chartType==="custom"&&!!e.config?.connectPoints;return e.showLegend!==!1&&!U0.has(e.chartType)&&!t}function Di(e){return e.chartType==="field"?e.series.filter(t=>t.values[0]?.length===4):e.series}var Gi=22,Ao=16;function _i(e){return e==="bottomLeft"||e==="bottomRight"}function Fi(e){return Di(e).map(t=>Math.max(42,t.label.length*p(e.fontSize,12)*.58+22))}function Ru(e){let t=Fi(e);return t.length?Math.max(...t):0}function j0(e,t,r){return e.legendPosition==="bottom"?t.x+(t.width-r)/2:t.x+t.width-r}function q0(e,t){return(e.legendPosition??"top")==="top"?e.y+16:t.y+t.height+16}function K0(e){let{chart:t,plot:r,order:o}=e,n=Di(t),i=Fi(t),a=Math.max(...i),s=t.legendPosition==="bottomLeft"?r.x-Ao-a:r.x+r.width+Ao,l=r.y+r.height-15;return n.map((d,c)=>({series:d,seriesIndex:c,x:s,y:l-(n.length-1-c)*Gi,width:i[c],order:o+(n.length-1-c)*2}))}function Z0(e){let{chart:t,plot:r,order:o}=e,n=Di(t),i=Fi(t),a=i.reduce((d,c)=>d+c,0),s=q0(t,r),l=j0(t,r,a);return n.map((d,c)=>{let u=i[c],m=l;return l+=u,{series:d,seriesIndex:c,x:m,y:s,width:u,order:o+(n.length-1-c)*2}})}function Q0(e){return _i(e.chart.legendPosition)?K0(e):Z0(e)}function J0(e,t){return[ex(e,t),tx(e,t)]}function ex(e,t){let{chart:r,bounds:o,diagnostics:n}=e,i=A[t.seriesIndex%A.length],a=r.chartType==="line",s=a?G(t.series.color,i):t.series.color??i;return{type:"rect",id:`chart-legend-swatch-${r.id}-${t.series.id}`,order:t.order,bounds:o,x:t.x,y:t.y,width:10,height:10,rx:3,prop:gu(t.series.id),propKind:"color",propSolidOnly:a,style:{fill:P(s,n,r.id)}}}function tx(e,t){let{chart:r,bounds:o}=e;return{...L({role:"legend",id:`chart-legend-${r.id}-${t.series.id}`,order:t.order+1,bounds:o,frame:{x:t.x+15,y:t.y-3,width:t.width-15,height:18},text:t.series.label,chart:r}),prop:Ie(t.series.id)}}var wu=new Set(["bar","line","scatter","boxplot","hexbin","custom","field"]),rx=new Set(["heatmap","sankey","treemap","mekko","pie","radialBar","polarArea"]);function st(e){return!rx.has(e.chartType)}function qe(e){return st(e)?Math.max(0,p(e.tickLength,0)):0}function ox(e){return e.chartType==="boxplot"&&e.config?.orientation==="horizontal"}function nx(e){let t=p(e.fontSize,12);return Math.max(0,...e.series.map(o=>(o.label||o.id).length))*t*.58+16}var ku=66;function ix(e,t){return e.chartType!=="treemap"||!t?null:e.legendPosition==="left"?"left":e.legendPosition==="right"?"right":null}function ax(e){let t=p(e.axisFontSize??e.fontSize,12),r=e.config?.categories??[];return Math.max(0,...r.map(o=>o.length))*t*.58+16}function sx(e){return ox(e)?nx(e):de(e)?e.categoryAlign==="left"||e.categoryAlign==="inside"?20:ax(e):e.showValueAxis===!1?20:e.axisY.label?60:46}function vu(e){let t=e.showAxisLabels!==!1,r=e.showLegend!==!1,o=e.legendPosition??"top",n=o==="top",i=r&&e.series.length>0,a=i&&_i(o),s=a?Ru(e)+Ao:0,l=ix(e,r),d=qe(e),c=d+(t?sx(e):12)+(o==="bottomLeft"?s:0)+(l==="left"?ku:0),u=24+(o==="bottomRight"?s:0)+(l==="right"?ku:0),m=e.chartType==="bar"&&e.config?.showBarLabels===!0&&e.config.barLabelPosition==="axis",f=de(e)&&e.showValueAxis!==!1,h=t?de(e)?f?34:12:(e.axisX.label?52:34)+(m?18:0):12,y=e.chartType==="field"&&r&&!!e.config?.scale?.stops.length,x=i&&!n&&!a,b=d+h+(y?44:0)+(x?16+Gi:0),S=(e.title?Math.max(44,20+p(e.titleSize,14)*1.6):0)||(n&&i?44:24);return{bounds:se({x:e.x,y:e.y,width:e.width,height:e.height},p(e.strokeWidth,1)+2),plot:{x:e.x+c,y:e.y+S,width:Math.max(1,e.width-c-u),height:Math.max(1,e.height-S-b)},showLabels:t,showLegend:r,padLeft:c}}function lx(e,t){return e.config?.categories?.length?e.config.categories:Array.from({length:t},(r,o)=>String(o+1))}function Pu(e,t,r){let o=Ce(e),n=t.plot.width/o,i=lx(e,o),a=!!e.config?.categories?.length,s=e.categoryAlign==="left",l=s?Math.min(Math.max(0,p(e.config?.barGroupGap,8)),Math.max(0,n-1)):0;return Array.from({length:o},(d,c)=>{let u=t.plot.x+(c+.5)*n;return{...L({role:"axis",id:`chart-x-tick-${e.id}-${c}`,order:r+c,bounds:t.bounds,frame:{x:s?t.plot.x+c*n+l/2:u-n/2,y:t.plot.y+t.plot.height+4+qe(e),width:s?n-l:n,height:18},text:i[c]??String(c+1),chart:e,align:s?"left":"center"}),prop:a?$o(c):void 0}})}function Lu(e,t,r){let o=Math.max(1,e.series.length),n=t.plot.width/o;return e.series.map((i,a)=>{let s=t.plot.x+(a+.5)*n;return{...L({role:"axis",id:`chart-x-tick-${e.id}-${a}`,order:r+a,bounds:t.bounds,frame:{x:s-n/2,y:t.plot.y+t.plot.height+4+qe(e),width:n,height:18},text:i.label||i.id,chart:e,align:"center"}),prop:Ie(i.id)}})}function Tu(e,t,r){return z(e.axisX).map((o,n)=>{let i=t.plot.x+M(o,e.axisX,t.plot.width);return L({role:"axis",id:`chart-x-tick-${e.id}-${o}`,order:r+n,bounds:t.bounds,frame:{x:i-20,y:t.plot.y+t.plot.height+10+qe(e),width:40,height:18},text:String(o),chart:e,align:"center"})})}function Mu(e,t,r){return z(e.axisY).map((o,n)=>{let i=t.plot.y+t.plot.height-M(o,e.axisY,t.plot.height);return L({role:"axis",id:`chart-y-tick-${e.id}-${o}`,order:r+n,bounds:t.bounds,frame:{x:e.x,y:i-6,width:t.padLeft-14-qe(e),height:18},text:String(o),chart:e,align:"right"})})}function Hi(e){return e.chartType==="boxplot"&&e.config?.orientation==="horizontal"}function dx(e,t,r){return e.chartType==="bar"?Pu(e,t,r):e.chartType==="boxplot"&&!Hi(e)?Lu(e,t,r):Tu(e,t,r)}function cx(e,t,r){return Hi(e)?Su(e,t,r):e.showValueAxis===!1?[]:Mu(e,t,r)}function ux(e,t){let{plot:r}=t;if(e.chartType==="bar"){let o=Ce(e);return Array.from({length:o},(n,i)=>r.x+(i+.5)*r.width/o)}return z(e.axisX).map(o=>r.x+M(o,e.axisX,r.width))}function mx(e,t){return e.axisLineStyle==="dashed"?{dash:[t*3,t*2]}:e.axisLineStyle==="dotted"?{dash:[.1,t*3],lineCap:"round"}:{}}function px(e,t,r){let o=p(e.axisLineWidth,0),n=p(e.tickLength,0);if(o<=0&&n<=0)return[];let{plot:i,bounds:a}=t,s=i.y+i.height,l={fill:{kind:"none"},stroke:{kind:"solid",color:e.axisLineColor??e.gridColor??"#94a3b8"},strokeWidth:o>0?o:1,pointerEvents:"none",...mx(e,o>0?o:1)},d=[],c=(u,m)=>d.push({type:"path",id:`chart-axis-${u}-${e.id}`,order:r+d.length,bounds:a,d:m,style:l});if(o>0&&(e.showValueAxis!==!1&&c("line-y",`M ${i.x} ${i.y} L ${i.x} ${s}`),c("line-x",`M ${i.x} ${s} L ${i.x+i.width} ${s}`)),n>0&&de(e)){z(e.axisY).forEach(m=>{let f=i.x+M(m,e.axisY,i.width);c(`tick-v-${m}`,`M ${f} ${s} L ${f} ${s+n}`)});let u=Bt(e,i);for(let m=0;m<u.count;m++){let f=It(u,i,m)+u.labelRow+u.barsHeight/2;c(`tick-c-${m}`,`M ${i.x-n} ${f} L ${i.x} ${f}`)}}return n>0&&!Hi(e)&&!de(e)&&(z(e.axisY).forEach(u=>{let m=s-M(u,e.axisY,i.height);c(`tick-y-${u}`,`M ${i.x-n} ${m} L ${i.x} ${m}`)}),ux(e,t).forEach((u,m)=>{c(`tick-x-${m}`,`M ${u} ${s} L ${u} ${s+n}`)})),d}function fx(e,t){let r=e.config?.categories;return Array.from({length:t},(o,n)=>r?.[n]??String(n+1))}function hx(e,t,r){let{plot:o,bounds:n}=t,i=Bt(e,o),a=e.categoryAlign==="left",s=e.categoryAlign==="inside",l=!!e.config?.categories?.length,d=fx(e,i.count).map((c,u)=>{let m=It(i,o,u);return{...L({role:"axis",id:`chart-y-category-${e.id}-${u}`,order:r+u,bounds:n,frame:a?{x:o.x,y:m,width:o.width,height:i.labelRow}:s?{x:o.x+14,y:m+i.barsHeight/2-9,width:o.width-28,height:18}:{x:e.x+8,y:m+i.barsHeight/2-9,width:o.x-e.x-16,height:18},text:c,chart:e,align:a||s?"left":"right"}),prop:l?$o(u):void 0}});return e.showValueAxis!==!1&&z(e.axisY).forEach((c,u)=>{let m=o.x+M(c,e.axisY,o.width);d.push(L({role:"axis",id:`chart-x-tick-${e.id}-${c}`,order:r+i.count+u,bounds:n,frame:{x:m-20,y:o.y+o.height+4+p(e.tickLength,0),width:40,height:18},text:String(c),chart:e,align:"center"}))}),d}function $u(e,t,r){if(!st(e))return[];let o=px(e,t,r);if(!t.showLabels)return o;if(r+=o.length,de(e))return[...o,...hx(e,t,r)];let n=dx(e,t,r),i=cx(e,t,r+n.length),a=xu(e,t,r+n.length+i.length);return[...o,...n,...i,...a]}function Au(e,t,r,o){let n=0,i=0;for(let a of e){let s=a.x-t,l=a.y-r,d=s*s+l*l;if(d===0)return a.value;let c=1/d**(o/2);n+=c*a.value,i+=c}return i===0?0:n/i}var Vi=32;function Rr(e,t){return{type:"rect",x:t.x,y:t.y,width:t.width,height:t.height,rx:e.cornerRadius??12}}function Eu(e,t,r,o){let n=t>0&&r>0?t/r:1,i=Math.max(2,Math.min(Vi,Math.round(Math.sqrt(Vi*Vi*n)))),a=Math.max(2,Math.round(i/n)),s=new Float32Array(i*a);for(let l=0;l<a;l++){let d=r*(l/(a-1));for(let c=0;c<i;c++){let u=t*(c/(i-1));s[l*i+c]=e.length?Au(e,u,d,o):0}}return{grid:s,cols:i,rows:a}}var Nu=new Set(["scatter","custom","hexbin"]);var Ou=-Math.PI/2,gx=.5,yx=6;function bx(e){return Math.max(38,e*3.2)}function Eo(e,t,r,o=!0){let n=o?bx(r):yx;return Math.max(8,Math.min(e,t)/2-n)}function No(e,t){return Math.max(3,e||t)}function xx(e,t){return Ou+t*Math.PI*2/e}function Wi(e,t,r){let o=t===e?0:(r-e)/(t-e);return Ou+o*Math.PI*2}function Bu(e,t,r){let o=xx(e.count,t);return{x:e.centerX+Math.cos(o)*r,y:e.centerY+Math.sin(o)*r}}function Iu(e,t){let r=e.max-e.min;return(r===0?0:Math.max(0,Math.min(1,(t-e.min)/r)))*e.radius}function Oo(e,t,r=gx){return e.length===0?"":t?Le({points:e,tension:r,closed:!0}):`M ${e.map((n,i)=>`${i?"L ":""}${n.x} ${n.y}`).join(" ")} Z`}function Bo(e,t,r,o,n,i,a,s){let l=Math.max(1,a*1.5),d={fill:{kind:"solid",color:e.gridColor??"#e2e8f0"},clip:s};if(e.gridRoundedCorners===!0)return{type:"ellipse",id:t,order:r,bounds:o,cx:n,cy:i,rx:l,ry:l,style:d};let c=l*2;return{type:"rect",id:t,order:r,bounds:o,x:n-l,y:i-l,width:c,height:c,style:d}}function kr(e,t){if(e.gridLineStyle!=="dashed")return{};let r=e.gridRoundedCorners===!0;return{dash:[t*3,t*2],lineCap:r?"round":"butt"}}function Du(e,t,r,o){let n=t.x+t.width/2,i=t.y+t.height/2,a=Math.max(0,Math.min(t.width,t.height)/2),s=p(e.gridWidth,1);if(e.gridLineStyle==="dotted")return Sx(e,r,o,n,i,a,s);let l={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:s,...kr(e,s)},d=[];return z(e.axisY).filter(c=>c>e.axisY.min).forEach(c=>{let u=a*Gu(e,c);d.push({type:"ellipse",id:`chart-grid-ring-${e.id}-${c}`,order:o+d.length,bounds:r,cx:n,cy:i,rx:u,ry:u,style:l})}),z(e.axisX).forEach(c=>{let u=Wi(e.axisX.min,e.axisX.max,c),m=n+Math.cos(u)*a,f=i+Math.sin(u)*a;d.push({type:"path",id:`chart-grid-spoke-${e.id}-${c}`,order:o+d.length,bounds:r,d:`M ${n} ${i} L ${m} ${f}`,style:l})}),d}function Sx(e,t,r,o,n,i,a){let s=z(e.axisY).filter(c=>c>e.axisY.min),l=z(e.axisX),d=[];return s.forEach(c=>{let u=i*Gu(e,c);l.forEach(m=>{let f=Wi(e.axisX.min,e.axisX.max,m),h=o+Math.cos(f)*u,y=n+Math.sin(f)*u,x=`chart-grid-dot-${e.id}-${m}-${c}`;d.push(Bo(e,x,r+d.length,t,h,y,a,void 0))})}),d}function Gu(e,t){let r=e.axisY.max-e.axisY.min;return r===0?0:Math.max(0,Math.min(1,(t-e.axisY.min)/r))}function Io(e,t,r,o){if(e.showGrid===!1||!st(e))return[];if(e.gridShape==="circle"&&Nu.has(e.chartType))return Du(e,t,r,o);let n=p(e.gridWidth,1);if(de(e))return Cx(e,t,r,o,n);let i=e.chartType==="field"?Rr(e,t):void 0;if(e.gridLineStyle==="dotted")return Rx(e,t,r,o,n,i);let a={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:n,...kr(e,n),clip:i},s=[];return(e.gridAxes==="y"?[]:z(e.axisX)).forEach(l=>{let d=t.x+M(l,e.axisX,t.width);s.push({type:"path",id:`chart-grid-x-${e.id}-${l}`,order:o+s.length,bounds:r,d:`M ${d} ${t.y} L ${d} ${t.y+t.height}`,style:a})}),(e.gridAxes==="x"?[]:z(e.axisY)).forEach(l=>{let d=t.y+t.height-M(l,e.axisY,t.height);s.push({type:"path",id:`chart-grid-y-${e.id}-${l}`,order:o+s.length,bounds:r,d:`M ${t.x} ${d} L ${t.x+t.width} ${d}`,style:a})}),s}function Cx(e,t,r,o,n){if(e.gridAxes==="y")return[];let i={fill:{kind:"none"},stroke:{kind:"solid",color:e.gridColor??"#e2e8f0"},strokeWidth:n,...e.gridLineStyle==="dotted"?{dash:[.1,n*3],lineCap:"round"}:kr(e,n)};return z(e.axisY).map((a,s)=>{let l=t.x+M(a,e.axisY,t.width);return{type:"path",id:`chart-grid-x-${e.id}-${a}`,order:o+s,bounds:r,d:`M ${l} ${t.y} L ${l} ${t.y+t.height}`,style:i}})}function Rx(e,t,r,o,n,i){let a=z(e.axisX),s=z(e.axisY),l=[];return a.forEach(d=>{let c=t.x+M(d,e.axisX,t.width);s.forEach(u=>{let m=t.y+t.height-M(u,e.axisY,t.height),f=`chart-grid-dot-${e.id}-${d}-${u}`;l.push(Bo(e,f,o+l.length,r,c,m,n,i))})}),l}function _u(e){return e.chart.rules?.length?kx(e).flatMap(t=>wx(e,t)):[]}function kx(e){let t=e.order;return(e.chart.rules??[]).map(r=>{let o=t++,n=r.text?t++:void 0;return{rule:r,color:r.color||e.chart.strokeColor||"#475569",y:e.plot.y+e.plot.height-M(r.at,e.chart.axisY,e.plot.height),lineOrder:o,labelOrder:n}})}function wx(e,t){let r=[vx(e,t)];return t.rule.text&&t.labelOrder!==void 0&&r.push(Px(e,t)),r}function vx(e,t){return{type:"path",id:`chart-rule-${e.chart.id}-${t.rule.id}`,order:t.lineOrder,bounds:e.bounds,d:`M ${e.plot.x} ${t.y} L ${e.plot.x+e.plot.width} ${t.y}`,prop:bu(t.rule.id),propKind:"value",style:{fill:{kind:"none"},stroke:{kind:"solid",color:t.color},strokeWidth:t.rule.strokeWidth??1,dash:t.rule.dash}}}function Px(e,t){let r=Math.max(9,p(e.chart.fontSize,12)-2);return{...L({id:`chart-rule-label-${e.chart.id}-${t.rule.id}`,order:t.labelOrder??t.lineOrder+1,bounds:e.bounds,frame:{x:e.plot.x+4,y:t.y-r-2,width:160,height:r+2},text:t.rule.text??"",chart:e.chart}),color:t.color,prop:yu(t.rule.id)}}function zi(e){let t=p(e.strokeWidth,1)/2;return{x:e.x+t,y:e.y+t,width:Math.max(1,e.width-t*2),height:Math.max(1,e.height-t*2),rx:Math.max(0,p(e.cornerRadius,12)-t)}}function Fu(e,t,r){if(!e.fillImage)return[];let o=zi(e),n=[{type:"image",id:`chart-image-${e.id}`,order:r.next(),bounds:t,x:o.x,y:o.y,width:o.width,height:o.height,href:e.fillImage.url,style:{clip:{type:"rect",...o},pointerEvents:"none"}}];return e.fillImage.overlay&&n.push({type:"rect",id:`chart-image-overlay-${e.id}`,order:r.next(),bounds:t,x:o.x,y:o.y,width:o.width,height:o.height,rx:o.rx,style:{fill:{kind:"solid",color:e.fillImage.overlay},pointerEvents:"none"}}),n}function Wt(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=p(o.config?.barGlassBlur,0);if(a<=0||!o.fillImage)return[];let s=zi(o),l=[{type:"image",id:`chart-bar-glass-${o.id}-${t}`,order:i(),bounds:n,x:s.x,y:s.y,width:s.width,height:s.height,href:o.fillImage.url,style:{blur:a,saturate:p(o.config?.barGlassSaturation,1),clip:{type:"path",d:r},pointerEvents:"none"}}];return o.fillImage.overlay&&l.push({type:"path",id:`chart-bar-glass-overlay-${o.id}-${t}`,order:i(),bounds:n,d:r,style:{fill:{kind:"solid",color:o.fillImage.overlay},pointerEvents:"none"}}),o.config?.barGlassTint&&l.push({type:"path",id:`chart-bar-glass-tint-${o.id}-${t}`,order:i(),bounds:n,d:r,style:{fill:{kind:"solid",color:o.config.barGlassTint},pointerEvents:"none"}}),l.push(...Io(o,e.plot,n,0).map(d=>({...d,id:`${d.id}-glass-${t}`,order:i(),style:{..."style"in d?d.style:{},clip:{type:"path",d:r},pointerEvents:"none"}}))),l}function zt(e,t,r,o,n,i=e.bounds){let{chart:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:t,order:l(),bounds:i,d:r,style:{fill:P(o,s,a.id),shadow:{color:G(o,"#ffffff"),opacity:.9,blur:n,dx:0,dy:0},pointerEvents:"none"}}}function Yt(e){return e.chart.config?.showBarLabels===!0}function Lx(e,t){let r=e.frame.height>=t.height+Re.gap*2;return e.placement!=="outside"&&!r?"outside":e.placement}function Tx(e,t,r){return e==="outside"?t.y-r-Re.gap:e==="inside"?t.y+Re.gap:t.y+t.height/2-r/2}function Mx(e,t,r,o){let{chart:n,bounds:i,diagnostics:a,nextOrder:s}=e,l=n.config;return{type:"path",id:`${t}-pill`,order:s(),bounds:i,d:$i(r.left,r.top,r.width,r.height),style:{fill:l?.barLabelPillColor?P(l.barLabelPillColor,a,n.id):{kind:"none"},stroke:P(l?.barLabelBorderColor??o,a,n.id),strokeWidth:p(l?.barLabelBorderWidth,1),pointerEvents:"none"}}}function $x(e,t,r,o,n,i,a){let{chart:s,bounds:l,nextOrder:d}=e,c=s.config;return{...L({id:t,order:d(),bounds:l,frame:{x:r.left,y:r.top+r.padY,width:r.width,height:r.lineHeight},text:o,chart:s,align:"center"}),mark:`bar-label|${n}|${c?.barLabelFormat??""}`,color:a,fontSize:i,fontFamily:c?.barLabelFontFamily??s.fontFamily??"Inter, sans-serif",fontWeight:c?.barLabelFontWeight??"normal"}}function Ax(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,l=n.config,d=i.y+i.height+4+16+Math.max(0,n.tickLength??0);return{...L({id:t.id,order:s(),bounds:a,frame:t.horizontal?n.categoryAlign==="inside"?{x:i.x,y:t.frame.y+t.frame.height/2-o*.6,width:i.width-14,height:o*1.2}:{x:i.x,y:t.frame.y-To,width:i.width,height:o*1.2}:{x:t.frame.x,y:d,width:t.frame.width,height:o*1.2},text:r,chart:n,align:t.horizontal?"right":n.categoryAlign==="left"?"left":"center"}),mark:`bar-label|axis|${l?.barLabelFormat??""}`,color:l?.barLabelColor??n.textColor??"#0f172a",fontSize:o,fontFamily:l?.barLabelFontFamily??n.fontFamily??"Inter, sans-serif",fontWeight:l?.barLabelFontWeight??"normal"}}function Ex(e,t){let r=e.placement==="axis"?"outside":e.placement,o=e.frame.width>=t.width+Re.gap*2;return r!=="outside"&&!o?"outside":r}function Nx(e,t,r){let{frame:o}=e,n=r==="outside"?o.x+o.width+Re.gap:r==="inside"?o.x+o.width-t.width-Re.gap:o.x+o.width/2-t.width/2;return{...t,left:n,top:o.y+o.height/2-t.height/2}}function Ut(e,t){let{chart:r}=e,o=r.config,n=Math.max(8,p(o?.barLabelFontSize,p(r.fontSize,12))),i=Ti(t.value,o?.barLabelFormat);if(t.placement==="axis")return[Ax(e,t,i,n)];let a=o?.barLabelPill===!0,s=Mi(i,n,a),l=t.horizontal?Ex(t,s):Lx(t,s),d=t.horizontal?Nx(t,s,l):{...s,left:t.frame.x+t.frame.width/2-s.width/2,top:Tx(l,t.frame,s.height)},c=o?.barLabelColor??r.textColor??"#0f172a",u=[];return a&&u.push(Mx(e,t.id,d,c)),u.push($x(e,t.id,d,i,l,n,c)),u}var Yi={angle:45,spacing:7,width:1.5},Ox=2;function Bx(e,t,r,o,n,i){let a=n*Math.PI/180,s={x:Math.cos(a),y:Math.sin(a)},l={x:-s.y,y:s.x},d={x:e+r/2,y:t+o/2},c=Math.hypot(r,o)/2,u=[];for(let m=-c;m<=c;m+=i){let f=d.x+l.x*m,h=d.y+l.y*m;u.push(`M ${f-s.x*c} ${h-s.y*c} L ${f+s.x*c} ${h+s.y*c}`)}return u.join(" ")}function Xt(e,t){if(lt(e))return{type:"path",d:Be(t.x,t.y,t.width,t.height,e.chart.config?.barCornerRadius??2)}}function lt(e){return e.chart.config?.barTrack===!0}function jt(e,t,r,o="vertical"){let{chart:n,bounds:i,diagnostics:a,nextOrder:s}=e,l=n.config,d=l?.barCornerRadius??2,c=p(l?.barSegments,0),u=c>0?ze(r,o,c,p(l?.barSegmentGap,4),d,1,!0):Be(r.x,r.y,r.width,r.height,d),m=[{type:"path",id:`chart-bar-track-${n.id}-${t}`,order:s(),bounds:i,d:u,style:{fill:P(l?.barTrackColor??n.gridColor??"#e2e8f0",a,n.id),pointerEvents:"none"}}];return l?.barTrackHatch&&m.push({type:"path",id:`chart-bar-track-hatch-${n.id}-${t}`,order:s(),bounds:i,d:Bx(r.x,r.y,r.width,r.height,p(l.barTrackHatchAngle,Yi.angle),Math.max(Ox,p(l.barTrackHatchSpacing,Yi.spacing))),style:{fill:{kind:"none"},stroke:P(l.barTrackHatchColor??n.gridColor??"#cbd5e1",a,n.id),strokeWidth:p(l.barTrackHatchWidth,Yi.width),pointerEvents:"none",clip:{type:"path",d:u}}}),m}function Hu(e){let t=_x(e),r=e.chart.series.flatMap((a,s)=>Fx(e,t,a,s)),o=lt(e)?r.flatMap(a=>jt(e,`${a.seriesId}-${a.valueIndex}`,{x:a.frame.x,y:e.plot.y,width:a.frame.width,height:e.plot.height})):[],n=r.flatMap(a=>Hx(e,a)),i=Yt(e)?r.flatMap(a=>Dx(e,a,r)):[];return[...o,...n,...r.flatMap(a=>Gx(e,a)),...i]}function Ix(e,t){let r=t.filter(o=>o.seriesId===e.seriesId).map(o=>o.value);return e.value>=Math.max(...r)}function Dx(e,t,r){let{chart:o}=e;return o.config?.barLabelMaxOnly&&!Ix(t,r)?[]:Ut(e,{id:`chart-bar-label-${o.id}-${t.seriesId}-${t.valueIndex}`,value:t.value,frame:t.frame,placement:o.config?.barLabelPosition??"outside"})}function Vu(e,t){let{chart:r,plot:o}=e,n=r.config,i=n?.barCornerRadius??2,a=p(n?.barSegments,0);return a>0?ze({x:t.x,y:o.y,width:t.width,height:o.height},"vertical",a,p(n?.barSegmentGap,4),i,t.height/o.height,n?.barSegmentSnap!==!1):ot(t.x,t.y,t.width,t.height,i,n?.barRoundedBottom===!0)}function Gx(e,t){let{chart:r}=e,o=p(r.config?.barGlow,0);if(o<=0||t.frame.height<=0)return[];let n=Vu(e,t.frame);return[zt(e,`chart-bar-glow-${r.id}-${t.seriesId}-${t.valueIndex}`,n,t.color,o)]}function _x(e){let{chart:t,plot:r}=e,o=Ce(t),n=r.width/o,i=Math.min(Math.max(0,p(t.config?.barGroupGap,8)),Math.max(0,n-1)),a=Math.max(0,p(t.config?.barGap,2));return{slotWidth:n,seriesWidth:Math.max(1,(n-i)/Math.max(1,t.series.length)),groupGap:i,barGap:a}}function Fx(e,t,r,o){let{chart:n,plot:i}=e,a=r.color??A[o%A.length];return r.values.map((s,l)=>{let d=Array.isArray(s)?s[1]:s,c=Math.max(0,M(d,n.axisY,i.height));return{seriesId:r.id,valueIndex:l,value:d,error:r.error?.[l],color:r.colors?.[l]??a,hasColorOverride:r.colors?.[l]!=null,frame:{x:i.x+l*t.slotWidth+t.groupGap/2+o*t.seriesWidth,y:i.y+i.height-c,width:Math.max(1,t.seriesWidth-t.barGap),height:c}}})}function Hx(e,t){let r=Wx(e,t),o=zx(e,t);return o&&r.push(o),r}function Vx(e){let{x:t,y:r,width:o,height:n}=e;return`M ${t} ${r} H ${t+o} V ${r+n} H ${t} Z`}function Wx(e,t){let{chart:r,plot:o,bounds:n,diagnostics:i,nextOrder:a}=e,s=r.config?.barCornerRadius??2,{x:l,width:d}=t.frame,c=Vu(e,t.frame),u=P(t.color,i,r.id),m=P(r.config?.barBorderColor||"#000000",i,r.id),f=p(r.config?.barBorderWidth,0),h=_(r.shadowStyle),y=h?{type:"path",id:`chart-bar-shadow-${r.id}-${t.seriesId}-${t.valueIndex}`,order:a(),bounds:n,d:c,style:{fill:u,stroke:m,strokeWidth:f,shadow:h,clip:Xt(e,{x:l,y:o.y,width:d,height:o.height})??{type:"path",d:Vx(o)}}}:void 0,x={type:"path",id:`chart-bar-${r.id}-${t.seriesId}-${t.valueIndex}`,order:a(),bounds:n,d:c,detail:{of:"chartValue",series:t.seriesId,valueIndex:t.valueIndex,mark:"bar",radius:s,colorProp:Vt(t.seriesId,t.valueIndex),hasColorOverride:t.hasColorOverride},prop:ce(t.seriesId,t.valueIndex),style:{fill:u,stroke:m,strokeWidth:f,innerShadow:h}},b=Wt(e,`${t.seriesId}-${t.valueIndex}`,c);return y?[y,...b,x]:[...b,x]}function zx(e,t){if(t.error==null)return null;let{chart:r,plot:o,bounds:n,nextOrder:i}=e,[a,s]=gr(t.value,t.error);return yr({id:`chart-bar-error-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:n,geometry:{centerX:t.frame.x+t.frame.width/2,startY:o.y+o.height-M(a,r.axisY,o.height),endY:o.y+o.height-M(s,r.axisY,o.height)},color:r.textColor??"#0f172a",valueReference:{seriesId:t.seriesId,valueIndex:t.valueIndex}})}function Yx(e,t,r,o,n){let{chart:i,plot:a}=e,s=It(t,a,o)+t.labelRow;if(e.stackedMode){let u=Cr(i,e.stackedMode,o,r,a.width),m=Math.min(u.pixelStart,u.pixelEnd);return{x:a.x+m,y:s,width:Math.max(1,Math.abs(u.pixelEnd-u.pixelStart)),height:t.barsHeight}}let l=Math.max(0,p(i.config?.barGap,2)),d=t.barsHeight/Math.max(1,i.series.length),c=Math.max(0,M(n,i.axisY,a.width));return{x:a.x,y:s+r*d,width:c,height:Math.max(1,d-l)}}function Ux(e,t){let{chart:r,plot:o}=e,n=r.config,i=e.stackedMode&&r.series.length>1?0:p(n?.barSegments,0);return i>0?ze({x:o.x,y:t.y,width:o.width,height:t.height},"horizontal",i,p(n?.barSegmentGap,4),n?.barCornerRadius??2,t.width/o.width,n?.barSegmentSnap!==!1):Be(t.x,t.y,t.width,t.height,n?.barCornerRadius??2)}function Xx(e,t,r,o,n,i){let{plot:a}=e,s=Yx(e,t,o,n,i);return{id:`${r.id}-${n}`,series:r,seriesIndex:o,valueIndex:n,value:i,frame:s,trackFrame:{x:a.x,y:s.y,width:a.width,height:s.height},bounds:{minX:s.x,maxX:s.x+Math.max(s.width,1),minY:s.y,maxY:s.y+s.height},path:Ux(e,s),color:r.colors?.[n]??r.color??A[o%A.length]}}function jx(e,t){let{chart:r,diagnostics:o,nextOrder:n}=e,i=r.config,a=P(i?.barBorderColor||"#000000",o,r.id),s=p(i?.barBorderWidth,0),l=_(r.shadowStyle),d=P(t.color,o,r.id),c=[...Wt(e,t.id,t.path)];return l&&c.push({type:"path",id:`chart-bar-shadow-${r.id}-${t.id}`,order:n(),bounds:t.bounds,d:t.path,style:{fill:d,stroke:a,strokeWidth:s,shadow:l,clip:Xt(e,t.trackFrame)}}),c.push({type:"path",id:`chart-bar-${r.id}-${t.id}`,order:n(),bounds:t.bounds,d:t.path,detail:{of:"chartValue",series:t.series.id,valueIndex:t.valueIndex,mark:"bar",radius:i?.barCornerRadius??2,colorProp:Vt(t.series.id,t.valueIndex),hasColorOverride:t.series.colors?.[t.valueIndex]!=null},style:{fill:d,stroke:a,strokeWidth:s,innerShadow:l}}),c}function qx(e,t,r){let{chart:o}=e,n=o.config,i=Yt(e)&&(!n?.barLabelMaxOnly||t.value>=r),a=t.seriesIndex===o.series.length-1;return!i||e.stackedMode&&!a&&n?.barLabelPosition==="outside"?[]:Ut(e,{id:`chart-bar-label-${o.id}-${t.id}`,value:t.value,frame:t.frame,placement:n?.barLabelPosition??"outside",horizontal:!0})}function Kx(e,t,r,o,n,i,a,s){let{chart:l}=e,d=Xx(e,t,o,n,i,a);lt(e)&&(!e.stackedMode||n===0)&&r.tracks.push(...jt(e,d.id,d.trackFrame,"horizontal")),r.bars.push(...jx(e,d));let c=p(l.config?.barGlow,0);c>0&&d.frame.width>0&&r.glows.push(zt(e,`chart-bar-glow-${l.id}-${d.id}`,d.path,d.color,c,d.bounds)),r.labels.push(...qx(e,d,s))}function Wu(e){let t=Bt(e.chart,e.plot),r={tracks:[],bars:[],glows:[],labels:[]};return e.chart.series.forEach((o,n)=>{let i=o.values.map(s=>typeof s=="number"?s:s[1]),a=Math.max(...i);i.forEach((s,l)=>{Kx(e,t,r,o,n,l,s,a)})}),[...r.tracks,...r.bars,...r.glows,...r.labels]}function Zx(e,t){let{chart:r,plot:o}=e,n=o.width/Ce(r),i=Math.min(Math.max(0,p(r.config?.barGroupGap,8)),Math.max(0,n-1));return{slotWidth:n,groupGap:i,barWidth:Math.max(1,n-i),cornerRadius:r.config?.barCornerRadius??2,outerSeriesIndex:t==="waterfall"?null:r.series.length-1}}function Qx(e,t,r,o,n,i){let{chart:a,plot:s}=e,l=a.series.length===1?p(a.config?.barSegments,0):0;return l>0?ze({x:t,y:s.y,width:n.barWidth,height:s.height},"vertical",l,p(a.config?.barSegmentGap,4),i,o/s.height,a.config?.barSegmentSnap!==!1):ot(t,r,n.barWidth,o,i,a.config?.barRoundedBottom===!0)}function Jx(e,t,r,o,n,i,a){let{chart:s}=e,l=s.config;if(!(Yt(e)&&!(l?.barLabelMaxOnly&&!oS(r.values,n))&&(l?.barLabelPosition!=="axis"||o===i.outerSeriesIndex)))return;let c=l?.barLabelPosition??"outside",u=r.values[n];t.labels.push(...Ut(e,{id:`chart-bar-label-${s.id}-${r.id}-${n}`,value:Array.isArray(u)?u[1]:u??0,frame:a,placement:c==="outside"&&o!==i.outerSeriesIndex?"center":c}))}function eS(e,t,r,o,n,i){let{chart:a,plot:s}=e,l=Cr(a,t,i,n,s.height),d=r.outerSeriesIndex===null||n===r.outerSeriesIndex?r.cornerRadius:0,c=s.x+i*r.slotWidth+r.groupGap/2,u=s.y+s.height-Math.max(l.pixelStart,l.pixelEnd),m=Math.max(1,Math.abs(l.pixelEnd-l.pixelStart));return{series:o,valueIndex:i,radius:d,color:o.colors?.[i]??o.color??A[n%A.length],x:c,y:u,height:m,path:Qx(e,c,u,m,r,d),column:{x:c,y:s.y,width:r.barWidth,height:s.height}}}function tS(e,t){let{chart:r,plot:o,bounds:n,diagnostics:i,nextOrder:a}=e,{series:s,valueIndex:l,path:d}=t,c=P(t.color,i,r.id),u=P(r.config?.barBorderColor||"#000000",i,r.id),m=p(r.config?.barBorderWidth,0),f=_(r.shadowStyle),h=[];if(f){let y=`M ${o.x} ${o.y} H ${o.x+o.width} V ${o.y+o.height} H ${o.x} Z`;h.push({type:"path",id:`chart-bar-shadow-${r.id}-${s.id}-${l}`,order:a(),bounds:n,d,style:{fill:c,stroke:u,strokeWidth:m,shadow:f,clip:Xt(e,t.column)??{type:"path",d:y}}})}return h.push(...Wt(e,`${s.id}-${l}`,d)),h.push({type:"path",id:`chart-bar-${r.id}-${s.id}-${l}`,order:a(),bounds:n,d,detail:{of:"chartValue",series:s.id,valueIndex:l,mark:"bar",radius:t.radius,colorProp:Vt(s.id,l),hasColorOverride:s.colors?.[l]!=null},prop:ce(s.id,l),style:{fill:c,stroke:u,strokeWidth:m,innerShadow:f}}),h}function rS(e,t,r,o,n,i,a){let{chart:s}=e,l=eS(e,t,o,n,i,a);i===0&<(e)&&r.tracks.push(...jt(e,String(a),l.column)),r.bars.push(...tS(e,l));let d={x:l.x,y:l.y,width:o.barWidth,height:l.height};Jx(e,r,n,i,a,o,d);let c=p(s.config?.barGlow,0);c>0&&r.glows.push(zt(e,`chart-bar-glow-${s.id}-${n.id}-${a}`,l.path,l.color,c))}function zu(e,t){let{chart:r}=e,o={tracks:[],bars:[],glows:[],labels:[]},n=Zx(e,t),i=Ce(r);for(let a=0;a<i;a++)r.series.forEach((s,l)=>{rS(e,t,o,n,s,l,a)});return[...o.tracks,...o.bars,...o.glows,...o.labels]}function oS(e,t){let r=e.map(o=>typeof o=="number"?o:o[1]);return r[t]>=Math.max(...r)}function Yu(e){return de(e.chart)?Wu(e):e.stackedMode?zu(e,e.stackedMode):Hu(e)}function Uu(e){let{chart:t,plot:r}=e,o=t.config?.orientation??"vertical",n=Math.max(1,t.series.length),i=(o==="horizontal"?r.height:r.width)/n,a=G(t.config?.barBorderColor,"#000000"),s=Math.min(1,Math.max(.05,t.config?.boxWidth??.6));return{orientation:o,slotWidth:i,boxWidth:Math.max(4,i*s),cornerRadius:t.config?.barCornerRadius??2,showPoints:t.config?.showBoxplotPoints??!0,borderColor:a,borderWidth:p(t.config?.barBorderWidth,1),whiskerWidth:Math.max(0,p(t.config?.boxWhiskerWidth,1)),medianWidth:Math.max(0,p(t.config?.boxMedianWidth,2)),medianColor:t.config?.boxMedianColor??a,whiskerColor:t.config?.boxWhiskerColor,capSize:Math.max(0,p(t.config?.boxCapSize,.4)),pointSize:Math.max(0,p(t.config?.boxPointSize,3)),pointOpacity:Math.min(1,Math.max(0,p(t.config?.boxPointOpacity,.7))),jitter:Math.max(0,p(t.config?.boxJitter,1))}}function pe(e,t,r){return e==="horizontal"?{x:r,y:t}:{x:t,y:r}}function Xu(e,t,r,o){let{chart:n,plot:i}=e,{orientation:a}=t,s=d=>a==="horizontal"?i.x+M(d,n.axisX,i.width):i.y+i.height-M(d,n.axisY,i.height);return{center:i[a==="horizontal"?"y":"x"]+r*t.slotWidth+t.slotWidth/2,min:s(o.min),q1:s(o.q1),median:s(o.median),q3:s(o.q3),max:s(o.max)}}function ju(e,t,r){let{chart:o,plot:n,bounds:i,diagnostics:a,nextOrder:s}=e,l=d=>t.orientation==="horizontal"?n.x+M(d,o.axisX,n.width):n.y+n.height-M(d,o.axisY,n.height);return t.pointSize<=0?[]:r.series.values.map((d,c)=>{let u=r.geometry.center+nS(r.seriesIndex*1e4+c)*t.jitter*t.boxWidth,{x:m,y:f}=pe(t.orientation,u,l(d));return{type:"ellipse",id:`chart-box-point-${r.id}-${c}`,order:s(),bounds:i,cx:m,cy:f,rx:t.pointSize,ry:t.pointSize,style:{fill:P(r.color,a,o.id),opacity:t.pointOpacity}}})}function nS(e){let t=Math.sin(e*12.9898)*43758.5453;return t-Math.floor(t)-.5}function Ku(e,t,r){let o=t.whiskerWidth>0?[aS(t,r),sS(t,r)]:[],n=t.whiskerWidth>0&&t.capSize>0?[lS(t,r),dS(t,r)]:[],i=t.medianWidth>0?[cS(t,r)]:[];return[...[...o,...n].map(a=>qu(e,t,{...a,color:iS(t,r)})),uS(e,t,r),...i.map(a=>qu(e,t,a))]}function iS(e,t){return e.whiskerColor==="series"?G(t.color,e.borderColor):e.whiskerColor}function aS(e,t){let{center:r,min:o,q1:n}=t.geometry;return{id:`chart-box-whisker-lo-${t.id}`,from:pe(e.orientation,r,o),to:pe(e.orientation,r,n),strokeWidth:e.whiskerWidth}}function sS(e,t){let{center:r,q3:o,max:n}=t.geometry;return{id:`chart-box-whisker-hi-${t.id}`,from:pe(e.orientation,r,o),to:pe(e.orientation,r,n),strokeWidth:e.whiskerWidth}}function lS(e,t){return Zu(`chart-box-cap-lo-${t.id}`,e,t.geometry.center,t.geometry.min)}function dS(e,t){return Zu(`chart-box-cap-hi-${t.id}`,e,t.geometry.center,t.geometry.max)}function Zu(e,t,r,o){let n=t.boxWidth*t.capSize/2;return{id:e,from:pe(t.orientation,r-n,o),to:pe(t.orientation,r+n,o),strokeWidth:t.whiskerWidth}}function cS(e,t){let r=e.boxWidth/2;return{id:`chart-box-median-${t.id}`,from:pe(e.orientation,t.geometry.center-r,t.geometry.median),to:pe(e.orientation,t.geometry.center+r,t.geometry.median),strokeWidth:e.medianWidth,color:e.medianColor}}function qu(e,t,r){return{type:"path",id:r.id,order:e.nextOrder(),bounds:e.bounds,d:`M ${r.from.x} ${r.from.y} L ${r.to.x} ${r.to.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.color??t.borderColor},strokeWidth:r.strokeWidth}}}function uS(e,t,r){let{chart:o,bounds:n,diagnostics:i,nextOrder:a}=e,{geometry:s}=r,l=t.boxWidth/2,d=pe(t.orientation,s.center-l,s.q1),c=pe(t.orientation,s.center+l,s.q3),u=Math.min(d.x,c.x),m=Math.min(d.y,c.y),f=Math.max(1,Math.abs(c.x-d.x)),h=Math.max(1,Math.abs(c.y-d.y));return{type:"rect",id:`chart-box-${r.id}`,order:a(),bounds:n,x:u,y:m,width:f,height:h,rx:t.cornerRadius,style:{fill:P(r.color,i,o.id),stroke:{kind:"solid",color:t.borderColor},strokeWidth:t.borderWidth}}}function Qu(e,t,r,o){let n=Ei(r.values);if(!n)return[];let i=Xu(e,t,o,n),a=r.color??A[o%A.length],s={id:`${e.chart.id}-${r.id}`,series:r,seriesIndex:o,color:a,geometry:i},l=Ku(e,t,s);return t.showPoints&&l.push(...ju(e,t,s)),l}function Ju(e){let t=Uu(e),r=[];return e.chart.series.forEach((o,n)=>{r.push(...Qu(e,t,o,n))}),r}var mS="#94a3b8",em=8,Ui=140;function rm(e){return e.chart.config?.connectPoints&&e.chart.series.length>=2?gS(e):e.chart.series.flatMap((t,r)=>pS(e,t,r))}function pS(e,t,r){let o=fS(e,t,r);return Xi(e,t).map((n,i)=>{let a=ji(e,n),s={series:t,valueIndex:i,point:a,style:o};return t.symbol?.points.length?hS(e,s):qi(e,s)})}function Ki(e){return e.config?.orientation==="horizontal"}function Xi(e,t){let{chart:r}=e;return t.values.length>0&&Array.isArray(t.values[0])?t.values.map(n=>[n[0],n[1]]):Ki(r)?t.values.map((n,i)=>[n,r.axisY.min+i*r.axisY.step]):t.values.map((n,i)=>[r.axisX.min+i*r.axisX.step,n])}function tm(e,t){return Ki(e)?t[0]:t[1]}function ji(e,t){return{x:e.plot.x+M(t[0],e.chart.axisX,e.plot.width),y:e.plot.y+e.plot.height-M(t[1],e.chart.axisY,e.plot.height)}}function fS(e,t,r){let o=t.color??A[r%A.length];return{fill:P(o,e.diagnostics,e.chart.id),stroke:t.stroke?{kind:"solid",color:t.stroke}:void 0,strokeWidth:t.stroke?p(t.strokeWidth,1):void 0}}function hS(e,t){let r=t.series.symbol,o=p(t.series.size,3),n=r?.normalized?o*2:1,i=r?.normalized?.5:0,a=(r?.points??[]).map(([s,l])=>({x:t.point.x+(s-i)*n,y:t.point.y+(l-i)*n}));return{type:"path",id:om(e.chart,t.series,t.valueIndex),order:e.nextOrder(),bounds:e.bounds,d:Le({points:a,tension:p(r?.tension,0),closed:!0}),style:t.style}}function qi(e,t){let r=p(t.series.size,3);return{type:"ellipse",id:om(e.chart,t.series,t.valueIndex),order:e.nextOrder(),bounds:e.bounds,cx:t.point.x,cy:t.point.y,rx:r,ry:r,style:t.style}}function om(e,t,r){return`chart-custom-mark-${e.id}-${t.id}-${r}`}function gS(e){let{chart:t}=e,[r,o]=t.series,n=Xi(e,r),i=Xi(e,o),a=t.config?.zones??[],s=a[0]?.color??"#10b981",l=a[1]?.color??"#ec4899",d=a[2]?.color??q,c=!!t.config?.reverseComparison,u=Math.min(n.length,i.length),m=t.config?.categories??[],f=[];for(let h=0;h<u;h++){let y=n[h],x=i[h],b=ji(e,y),C=ji(e,x),S=tm(t,y),v=tm(t,x),O=c?v<S:v>S,E=c?v>S:v<S,F=O?s:E?l:d,U=p(o.size,3);f.push(bS(e,h,b,C,F)),f.push(qi(e,{series:r,valueIndex:h,point:b,style:{fill:P(t.config?.customBeforeFill??t.gridColor??"#e2e8f0",e.diagnostics,t.id),stroke:{kind:"solid",color:t.config?.customBeforeStroke??mS},strokeWidth:p(t.config?.customBeforeStrokeWidth,1.5)}})),f.push(qi(e,{series:o,valueIndex:h,point:C,style:{fill:P(F,e.diagnostics,t.id),stroke:void 0,strokeWidth:void 0}})),e.showLabels&&m[h]&&f.push(xS(e,h,b,C,U,m[h]))}return f}function yS(e){let t=(e??"").split(/[ ,]+/).map(Number).filter(r=>Number.isFinite(r)&&r>0);return t.length>0?t:void 0}function bS(e,t,r,o,n){let{chart:i}=e;return{type:"path",id:`chart-custom-connector-${i.id}-${t}`,order:e.nextOrder(),bounds:e.bounds,d:`M ${r.x} ${r.y} L ${o.x} ${o.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:n},strokeWidth:p(i.config?.customConnectorWidth,2),opacity:i.config?.customConnectorOpacity,dash:yS(i.config?.customConnectorDash)}}}function xS(e,t,r,o,n,i){let{chart:a,bounds:s,nextOrder:l}=e,d=Ki(a),c=d?{x:Math.max(r.x,o.x)+n+em,y:Math.min(r.y,o.y)-8,width:Ui,height:16}:{x:Math.min(r.x,o.x)-Ui/2,y:Math.min(r.y,o.y)-n-em-14,width:Ui,height:16};return{...L({id:`chart-custom-label-${a.id}-${t}`,order:l(),bounds:s,frame:c,text:i,chart:a,align:d?"left":"center"}),fontSize:Math.max(6,p(a.config?.customLabelSize,Math.max(9,p(a.fontSize,12))-2)),...a.config?.customLabelColor?{color:a.config.customLabelColor}:{}}}function im(e){let{chart:t,plot:r}=e,o=t.series.filter(a=>nm(a.values[0])===3),n=t.series.filter(a=>nm(a.values[0])===4);return{scalarSamples:o.flatMap(a=>a.values.map(([s,l,d])=>({x:M(s,t.axisX,r.width),y:r.height-M(l,t.axisY,r.height),value:d}))),vectorSeries:n}}function nm(e){return Array.isArray(e)?e.length:void 0}function am(e){let t=e.chart.config?.scale?.stops;if(!e.showLegend||!t?.length)return[];let r=[...t].sort((a,s)=>a.position-s.position),o=r[0].position,n=r[r.length-1].position,i=SS(e);return[CS(e,r,o,n,i),...RS(e,o,n,i)]}function SS(e){let{plot:t}=e,r=Math.min(220,t.width);return{x:t.x+(t.width-r)/2,y:t.y+t.height+46,width:r,height:8}}function CS(e,t,r,o,n){let{chart:i,bounds:a,nextOrder:s}=e,l=o-r;return{type:"rect",id:`chart-field-colorbar-${i.id}`,order:s(),bounds:a,x:n.x,y:n.y,width:n.width,height:n.height,rx:2,style:{fill:{kind:"linear-gradient",angle:0,stops:t.map(d=>({offset:l===0?0:(d.position-r)/l*100,color:d.color}))}}}}function RS(e,t,r,o){let{chart:n,bounds:i,nextOrder:a}=e,s=o.y+o.height+3;return[L({id:`chart-field-colorbar-min-${n.id}`,order:a(),bounds:i,frame:{x:o.x,y:s,width:80,height:16},text:Me(t),chart:n}),L({id:`chart-field-colorbar-max-${n.id}`,order:a(),bounds:i,frame:{x:o.x+o.width-80,y:s,width:80,height:16},text:Me(r),chart:n,align:"right"})]}var kS="#94a3b8";function Do(e,t){return e?.stops.length?dr(e.stops,t):kS}function sm(e){if(e.length===0)return[];let t=s=>`${Math.round(s[0]*1e3)}:${Math.round(s[1]*1e3)}`,r=new Map,o=(s,l,d)=>{let c=t(s),u=r.get(c),m={point:l,segment:d};u?u.push(m):r.set(c,[m])};e.forEach((s,l)=>{let d=[s.x1,s.y1],c=[s.x2,s.y2];o(d,c,l),o(c,d,l)});let n=new Array(e.length).fill(!1),i=(s,l)=>{let d=l;for(;;){let u=r.get(t(d))?.find(m=>!n[m.segment]);if(!u)return;n[u.segment]=!0,s.push(u.point),d=u.point}},a=[];return e.forEach((s,l)=>{if(n[l])return;n[l]=!0;let d=[[s.x1,s.y1],[s.x2,s.y2]];i(d,d[d.length-1]);let c=[];i(c,d[0]),c.reverse(),a.push([...c,...d])}),a}function lm(e,t){let r=[];for(let o=0;o<e.rows-1;o++)for(let n=0;n<e.columns-1;n++){let i=wS(e,o,n),a=vS(i,t);a!==0&&a!==15&&r.push(...PS(i,a,t))}return r}function wS(e,t,r){return{topLeft:Go(e,t,r),topRight:Go(e,t,r+1),bottomRight:Go(e,t+1,r+1),bottomLeft:Go(e,t+1,r)}}function Go(e,t,r){return{x:e.width*(r/(e.columns-1)),y:e.height*(t/(e.rows-1)),value:e.values[t*e.columns+r]}}function vS(e,t){return(_o(e.topLeft,t)?8:0)|(_o(e.topRight,t)?4:0)|(_o(e.bottomRight,t)?2:0)|(_o(e.bottomLeft,t)?1:0)}function _o(e,t){return e.value>=t}function PS(e,t,r){let o=LS(e,r);switch(t){case 1:case 14:return[De(o.left,o.bottom)];case 2:case 13:return[De(o.bottom,o.right)];case 3:case 12:return[De(o.left,o.right)];case 4:case 11:return[De(o.top,o.right)];case 5:return[De(o.left,o.top),De(o.bottom,o.right)];case 6:case 9:return[De(o.top,o.bottom)];case 7:case 8:return[De(o.left,o.top)];case 10:return[De(o.top,o.right),De(o.left,o.bottom)];default:return[]}}function LS(e,t){return{top:Fo(e.topLeft,e.topRight,t),right:Fo(e.topRight,e.bottomRight,t),bottom:Fo(e.bottomLeft,e.bottomRight,t),left:Fo(e.topLeft,e.bottomLeft,t)}}function Fo(e,t,r){let o=t.value===e.value?.5:(r-e.value)/(t.value-e.value);return[e.x+(t.x-e.x)*o,e.y+(t.y-e.y)*o]}function De(e,t){return{x1:e[0],y1:e[1],x2:t[0],y2:t[1]}}var TS=.5;function dm(e,t){if(!t.length||e.plot.width<=0||e.plot.height<=0)return[];let r=MS(e,t);return[...$S(e,r),...ES(e,r)]}function MS(e,t){let{plot:r,chart:o}=e,n=Eu(t,r.width,r.height,o.config?.idwPower??2);return{values:n.grid,columns:n.cols,rows:n.rows,cellWidth:r.width/Math.max(1,n.cols-1),cellHeight:r.height/Math.max(1,n.rows-1)}}function $S(e,t){let r=[];for(let o=0;o<t.rows;o++)for(let n=0;n<t.columns;n++)r.push(AS(e,t,o,n));return r}function AS(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,l=i.x+i.width*(o/(t.columns-1)),d=i.y+i.height*(r/(t.rows-1)),c=Do(n.config?.scale,t.values[r*t.columns+o]);return{type:"rect",id:`chart-field-cell-${n.id}-${r}-${o}`,order:s(),bounds:a,x:l-t.cellWidth/2,y:d-t.cellHeight/2,width:t.cellWidth,height:t.cellHeight,style:{fill:{kind:"solid",color:c},clip:Rr(n,i)}}}function ES(e,t){let r=[];return(e.chart.config?.isolines??[]).forEach((o,n)=>{let i=NS(e,t,o,n);i&&r.push(i)}),r}function NS(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,l=lm({values:t.values,columns:t.columns,rows:t.rows,width:i.width,height:i.height},r);if(!l.length)return null;let c=sm(l).map(u=>Dt(u.map(([m,f])=>({x:i.x+m,y:i.y+f})),TS)).join(" ");return{type:"path",id:`chart-field-isoline-${n.id}-${o}`,order:s(),bounds:a,d:c,style:{fill:{kind:"none"},stroke:{kind:"solid",color:"rgba(15, 23, 42, 0.55)"},strokeWidth:1,clip:Rr(n,i)}}}function cm(e,t){let r=[];return t.forEach((o,n)=>{let i=o.color??A[n%A.length];o.values.forEach((a,s)=>{r.push(OS(e,o.id,a,s,i))})}),r}function OS(e,t,r,o,n){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,[c,u,m,f]=r,h=a.x+M(c,i.axisX,a.width),y=a.y+a.height-M(u,i.axisY,a.height),x=a.x+M(c+Math.cos(m)*f,i.axisX,a.width),b=a.y+a.height-M(u+Math.sin(m)*f,i.axisY,a.height);return{type:"path",id:`chart-field-vector-${i.id}-${t}-${o}`,order:d(),bounds:s,d:`M ${h} ${y} L ${x} ${b}`,markerEnd:"filled_arrow",style:{fill:{kind:"none"},stroke:P(n,l,i.id),strokeWidth:2}}}function um(e){let t=im(e),r=[];return r.push(...dm(e,t.scalarSamples)),r.push(...cm(e,t.vectorSeries)),r.push(...am(e)),r}function mm(e,t){let r=[];return t.rows.forEach((o,n)=>{r.push(...BS(e,t,o,n))}),r}function BS(e,t,r,o){return t.columns.flatMap((n,i)=>{let a=IS(t,r,o,i);return GS(e,t,a)})}function IS(e,t,r,o){let n=t.values[o]??0,{cellGap:i}=e.grid;return{seriesId:t.id,columnIndex:o,value:n,color:DS(n,e),frame:{x:e.grid.x+o*e.grid.cellWidth+i/2,y:e.grid.y+r*e.grid.cellHeight+i/2,width:Math.max(0,e.grid.cellWidth-i),height:Math.max(0,e.grid.cellHeight-i)}}}function DS(e,t){return fr(e,t.bands,t.zones)}function GS(e,t,r){let o=_S(e,t,r);return e.chart.config?.showValues===!1?[o]:[o,FS(e,t,r)]}function _S(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=`chart-heatmap-cell-${o.id}-${r.seriesId}-${r.columnIndex}`,s={fill:{kind:"solid",color:r.color},stroke:{kind:"solid",color:o.config?.cellStrokeColor??o.gridColor??"#e2e8f0"},strokeWidth:p(o.config?.cellStrokeWidth,p(o.gridWidth,1))};return o.config?.cellShape==="circle"?{type:"ellipse",id:a,order:i(),bounds:n,cx:r.frame.x+r.frame.width/2,cy:r.frame.y+r.frame.height/2,rx:r.frame.width/2,ry:r.frame.height/2,style:s}:{type:"rect",id:a,order:i(),bounds:n,...r.frame,rx:t.grid.cellRadius,style:s}}function FS(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=Math.max(6,p(o.config?.cellValueSize,t.fontSize));return{...L({id:`chart-heatmap-value-${o.id}-${r.seriesId}-${r.columnIndex}`,order:i(),bounds:n,frame:{x:r.frame.x,y:r.frame.y+r.frame.height/2-a/2,width:r.frame.width,height:a+2},text:String(r.value),chart:o,align:"center"}),...o.config?.cellValueSize===void 0?{}:{fontSize:a},color:o.config?.cellValueColor??le(r.color)}}function pm(e,t){return[...HS(e,t),...WS(e,t)]}function HS(e,t){return t.reservedSpace.rowHeaders<=0?[]:t.rows.map((r,o)=>VS(e,t,r,o))}function VS(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e;return L({id:`chart-heatmap-row-${n.id}-${r.id}`,order:s(),bounds:a,frame:{x:i.x,y:t.grid.y+o*t.grid.cellHeight+t.grid.cellHeight/2-t.fontSize/2,width:t.reservedSpace.rowHeaders-8,height:t.fontSize+2},text:r.label,chart:n})}function WS(e,t){return t.reservedSpace.columnHeaders<=0?[]:t.columns.map((r,o)=>zS(e,t,r,o))}function zS(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e;return L({id:`chart-heatmap-col-${n.id}-${o}`,order:s(),bounds:a,frame:{x:t.grid.x+o*t.grid.cellWidth,y:i.y,width:t.grid.cellWidth,height:t.fontSize+2},text:r,chart:n,align:"center"})}function fm(e){let{chart:t}=e,r=YS(e),o=US(e);return{rows:t.series,columns:r,bands:pr(t.axisY),zones:t.config?.zones?.length?t.config.zones:mr,fontSize:Math.max(9,p(t.fontSize,12)),reservedSpace:o,grid:XS(e,o,r.length)}}function YS(e){let{chart:t}=e;return t.config?.categories?.length?t.config.categories:t.series[0]?.values?.map((r,o)=>String(o+1))??[]}function US(e){let{chart:t}=e,r=Math.max(9,p(t.fontSize,12)),o=t.series.reduce((n,i)=>Math.max(n,We(i.label??"",r,!1)),0);return{rowHeaders:e.showLabels?Math.min(96,o+12):0,columnHeaders:e.showLabels?24:0,legend:e.showLegend?38:0}}function XS(e,t,r){let{chart:o}=e,n=Math.max(1,e.plot.width-t.rowHeaders),i=Math.max(1,e.plot.height-t.columnHeaders-t.legend),a=o.series.length,s=Math.max(0,p(o.config?.cellGap,0)),l=r?n/r:n,d=a?i/a:i,c=n,u=i;if(o.config?.squareCells&&r&&a){let m=Math.min(l,d);l=m,d=m,c=m*r,u=m*a}return{x:e.plot.x+t.rowHeaders,y:e.plot.y+t.columnHeaders,width:c,height:u,cellWidth:l,cellHeight:d,cellGap:s,cellRadius:Math.max(0,p(o.config?.barCornerRadius,s))}}var wr=10,hm=4,jS=2;function gm(e,t){if(t.reservedSpace.legend<=0||t.zones.length===0)return[];let r=t.grid.x,o=t.grid.width,n=t.fontSize+2,i=t.grid.y+t.grid.height+6,a=se({x:r,y:i,width:o,height:wr});return[qS(e,t,r,i,o,a),...KS(e,t,r,i,o,n)]}function ym(e,t){let r=e.bands[0],o=e.bands[e.bands.length-1];return o===r?0:(t-r)/(o-r)}function qS(e,t,r,o,n,i){let{chart:a,nextOrder:s}=e,l=Math.max(0,t.bands.length-1),c=t.zones.slice(0,l).map((u,m)=>({offset:ym(t,t.bands[m+1]??t.bands[t.bands.length-1])*100,color:u.color??q}));return{type:"rect",id:`chart-heatmap-legend-bar-${a.id}`,order:s(),bounds:i,x:r,y:o,width:n,height:wr,rx:3,zoneGradient:{axis:"y",min:a.axisY.min,max:a.axisY.max},style:{fill:c.length?{kind:"linear-gradient",angle:0,stops:c}:{kind:"solid",color:q},stroke:{kind:"solid",color:a.gridColor??"#e2e8f0"},strokeWidth:1}}}function KS(e,t,r,o,n,i){let{chart:a,bounds:s,nextOrder:l}=e,d=o+wr+hm+jS,c=48;return t.bands.flatMap((u,m)=>{let f=r+ym(t,u)*n,h={type:"path",id:`chart-heatmap-legend-tick-${a.id}-${m}`,order:l(),bounds:s,d:`M ${f} ${o+wr} L ${f} ${o+wr+hm}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:a.gridColor??"#e2e8f0"},strokeWidth:1}},y=m===0,x=m===t.bands.length-1,b=y?"left":x?"right":"center",C=y?f:x?f-c:f-c/2,S=L({id:`chart-heatmap-legend-tick-label-${a.id}-${m}`,order:l(),bounds:s,frame:{x:C,y:d,width:c,height:i},text:Me(u),chart:a,align:b});return[h,S]})}function bm(e){let t=fm(e),r=[];return r.push(...mm(e,t)),r.push(...pm(e,t)),r.push(...gm(e,t)),r}function Zi(e,t){if(t<=0||e.length===0)return[];let r=t*1.5,o=t*Math.sqrt(3),n=new Map;for(let{x:i,y:a}of e){let s=Math.round(i/r),l=s%2!==0?o/2:0,d=Math.round((a-l)/o),c=`${s}:${d}`,u=n.get(c);u?u.count++:n.set(c,{cx:s*r,cy:d*o+l,count:1})}return[...n.values()]}function xm(e){let t=new Map;for(let r of e.ids)t.set(r,0);for(let r=0;r<e.ids.size;r++){let o=!1;for(let n of e.links){let i=(t.get(n.source)??0)+1;i>(t.get(n.target)??0)&&(t.set(n.target,i),o=!0)}if(!o)break}return t}function Sm(e,t){let r=new Map;for(let o of e){let n=t.get(o)??0,i=r.get(n)??[];i.push(o),r.set(n,i)}return r}function Cm(e,t){let r=new Set(e.map(a=>a.id));for(let a of t)r.add(a.source),r.add(a.target);let o=new Map,n=new Map;for(let a of r)o.set(a,[]),n.set(a,[]);let i=t.filter(a=>r.has(a.source)&&r.has(a.target)&&a.value>0&&a.source!==a.target);for(let a of i)n.get(a.source)?.push(a),o.get(a.target)?.push(a);return{ids:r,links:i,incoming:o,outgoing:n}}function QS(e){let t=new Map;for(let r of e.ids){let o=(e.incoming.get(r)??[]).reduce((i,a)=>i+a.value,0),n=(e.outgoing.get(r)??[]).reduce((i,a)=>i+a.value,0);t.set(r,Math.max(o,n,1e-4))}return t}function JS(e,t,r,o){let n=1/0;for(let i of e.values()){let a=i.reduce((d,c)=>d+(t.get(c)??0),0),s=Math.max(0,i.length-1)*o,l=Math.max(1,r-s);a>0&&(n=Math.min(n,l/a))}return!Number.isFinite(n)||n<=0?1:n}function vr(e,t,r,o=18){return t<=1?0:e*(r-o)/(t-1)}function Rm(e,t,r,o=8){let n=Sm(e.ids,t),i=QS(e),a=JS(n,i,r,o),s=new Map,l=new Map;for(let d of n.values()){let c=0;for(let u of d){let m=Math.max(2,(i.get(u)??0)*a);s.set(u,c),l.set(u,m),c+=m+o}}return{columns:t,y:s,heights:l,valueScale:a,columnCount:Math.max(1,...[...t.values()].map(d=>d+1))}}function km(e,t,r,o,n=18){let i=new Map,a=new Map;for(let s of e.ids)i.set(s,0),a.set(s,0);return e.links.map(s=>{let l=Math.max(.5,s.value*t.valueScale),d=o.get(s.source),c=o.get(s.target),u=(t.y.get(s.source)??0)+(d?.y??0),m=(t.y.get(s.target)??0)+(c?.y??0),f=i.get(s.source)??0,h=a.get(s.target)??0;return i.set(s.source,f+l),a.set(s.target,h+l),{source:s.source,target:s.target,value:s.value,color:s.color,x0:vr(t.columns.get(s.source)??0,t.columnCount,r,n)+n+(d?.x??0),x1:vr(t.columns.get(s.target)??0,t.columnCount,r,n)+(c?.x??0),sourceY0:u+f,sourceY1:u+f+l,targetY0:m+h,targetY1:m+h+l}})}function wm(e,t,r,o,n,i=18){return[...t.ids].map(a=>{let s=e.find(c=>c.id===a),l=r.columns.get(a)??0,d=n.get(a);return{id:a,label:s?.label??a,color:s?.color,x:vr(l,r.columnCount,o,i)+(d?.x??0),y:(r.y.get(a)??0)+(d?.y??0),width:i,height:r.heights.get(a)??2,column:l}})}function eC(e){let t=new Map;for(let r of e)(r.offsetX||r.offsetY)&&t.set(r.id,{x:r.offsetX??0,y:r.offsetY??0});return t}function Ji(e,t,r,o,n={nodeWidth:18,nodeGap:8}){let i=Cm(e,t);if(i.ids.size===0)return{nodes:[],links:[]};let a=xm(i),s=Rm(i,a,o,n.nodeGap),l=eC(e);return{nodes:wm(e,i,s,r,l,n.nodeWidth),links:km(i,s,r,l,n.nodeWidth)}}function Pr(e,t){let r=tC(e,t);if(!r.length)return[];let o=[],n=r,i=t;for(;n.length;){let a=rC(n,Math.min(i.width,i.height)),s=oC(a,i);o.push(...s.rectangles),n=n.slice(a.items.length),i=s.remainingBounds}return o}function tC(e,t){let r=e.filter(i=>i.value>0);if(!r.length||t.width<=0||t.height<=0)return[];let o=r.reduce((i,a)=>i+a.value,0);if(o<=0)return[];let n=t.width*t.height/o;return[...r].sort((i,a)=>a.value-i.value).map(i=>({item:i,area:i.value*n}))}function rC(e,t){let r=[e[0]];for(let o=1;o<e.length;o++){let n=[...r,e[o]];if(vm(n,t)>vm(r,t))break;r.push(e[o])}return{items:r,area:r.reduce((o,n)=>o+n.area,0)}}function vm(e,t){let r=e.reduce((s,l)=>s+l.area,0);if(r<=0||t<=0)return 1/0;let o=e.map(s=>s.area),n=Math.max(...o),i=Math.min(...o),a=t*t;return Math.max(a*n/(r*r),r*r/(a*i))}function oC(e,t){return t.width>=t.height?nC(e,t):iC(e,t)}function nC(e,t){let r=t.height>0?e.area/t.height:0,o=t.y;return{rectangles:e.items.map(({item:i,area:a})=>{let s=r>0?a/r:0,l={item:i,x:t.x,y:o,width:r,height:s};return o+=s,l}),remainingBounds:{x:t.x+r,y:t.y,width:t.width-r,height:t.height}}}function iC(e,t){let r=t.width>0?e.area/t.width:0,o=t.x;return{rectangles:e.items.map(({item:i,area:a})=>{let s=r>0?a/r:0,l={item:i,x:o,y:t.y,width:s,height:r};return o+=s,l}),remainingBounds:{x:t.x,y:t.y+r,width:t.width,height:t.height-r}}}var aC=.15,sC=1/Math.sqrt(3);function lC(e,t,r){let o=[];for(let n=0;n<6;n++){let i=(-60+60*n)*Math.PI/180;o.push(`${n===0?"M":"L"} ${e+r*Math.cos(i)} ${t+r*Math.sin(i)}`)}return`${o.join(" ")} Z`}function Pm(e){let{chart:t,plot:r,bounds:o,diagnostics:n,nextOrder:i}=e,a=[],s=t.config,l=Math.max(1,s?.hexRadius??Li),d=Math.max(.5,l-Math.max(0,s?.hexGap??0)*sC),c=s?.hexStrokeWidth??0,u=Math.min(1,Math.max(0,s?.hexMinOpacity??aC)),m=_(t.shadowStyle),f=m?`M ${r.x} ${r.y} H ${r.x+r.width} V ${r.y+r.height} H ${r.x} Z`:void 0;return t.series.forEach((h,y)=>{let C=(h.values.length>0&&Array.isArray(h.values[0])?h.values:h.values.map((F,U)=>[t.axisX.min+U*t.axisX.step,F])).map(([F,U])=>({x:M(F,t.axisX,r.width),y:r.height-M(U,t.axisY,r.height)})),S=Zi(C,l),v=Math.max(1,...S.map(F=>F.count)),O=h.color??A[y%A.length],E=s?.scale;S.forEach((F,U)=>{let K=F.count/v,ke=E?Do(E,K):O;a.push({type:"path",id:`chart-hexbin-${t.id}-${h.id}-${U}`,order:i(),bounds:o,d:lC(r.x+F.cx,r.y+F.cy,d),style:{fill:P(ke,n,t.id),stroke:c>0?P(s?.hexStrokeColor??ke,n,t.id):void 0,strokeWidth:c>0?c:void 0,opacity:E?void 0:Math.max(u,K),shadow:m,clip:f?{type:"path",d:f}:void 0}})})}),a}function dt(e,t){return t.values.length>0&&Array.isArray(t.values[0])?t.values:t.values.map((r,o)=>[e.axisX.min+o*e.axisX.step,r])}function ct(e,t){let{chart:r,plot:o}=e;return t.map(([n,i])=>({x:o.x+M(n,r.axisX,o.width),y:o.y+o.height-M(i,r.axisY,o.height)}))}function Lm(e,t,r,o,n,i){let{chart:a,plot:s,nextOrder:l}=e,d=s.y+s.height,c=r[0],u=r[r.length-1],m=`${Dt(r,n)} L ${u.x} ${d} L ${c.x} ${d} Z`,f=Math.min(...r.map(b=>b.y)),h=(Math.min(...r.map(b=>b.x))+Math.max(...r.map(b=>b.x)))/2,y=(d-f)/2,x={minX:h-y,maxX:h+y,minY:f,maxY:d};return{type:"path",id:`chart-line-area-${a.id}-${t.id}`,order:l(),bounds:x,d:m,detail:{of:"chartSeries",series:t.id},style:{fill:{kind:"linear-gradient",angle:90,stops:[{offset:0,color:Ni(o,i)},{offset:100,color:Ni(o,0)}]},stroke:{kind:"none"},pointerEvents:"none"}}}function dC(e,t,r){return(e||"{value}").replace("{category}",t).replace("{value}",String(Math.round(r*100)/100))}function cC(e,t){let{chart:r,plot:o,bounds:n,diagnostics:i,nextOrder:a}=e;return{type:"path",id:`chart-highlight-guide-${t.key}`,order:a(),bounds:n,d:`M ${t.point.x} ${t.point.y} V ${o.y+o.height}`,style:{fill:{kind:"none"},stroke:P(t.color,i,r.id),strokeWidth:1,dash:[3,4],opacity:.55,pointerEvents:"none"}}}function uC(e,t){let{chart:r,bounds:o,diagnostics:n,nextOrder:i}=e,a=r.config?.lineGlow;return{type:"ellipse",id:`chart-highlight-${t.key}`,order:i(),bounds:o,cx:t.point.x,cy:t.point.y,rx:t.radius,ry:t.radius,style:{fill:P(t.color,n,r.id),shadow:a?{color:t.color,opacity:.9,blur:a,dx:0,dy:0}:void 0,pointerEvents:"none"}}}function mC(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=o.config,s=Math.max(9,o.fontSize??12),l=dC(a?.highlightLabelFormat,a?.categories?.[t.index]??"",r),d=Math.max(48,l.length*s*.62);return{...L({id:`chart-highlight-label-${t.key}`,order:i(),bounds:n,frame:{x:t.point.x-d/2,y:t.point.y-t.radius-6-s*1.2,width:d,height:s*1.2},text:l,chart:o,align:"center"}),color:a?.highlightLabelColor??o.textColor??"#0f172a",fontWeight:"bold"}}function Tm(e,t,r){let{chart:o}=e,n=o.config,i=n?.highlightPoints;if(!i?.length)return[];let a=dt(o,t),s=ct(e,a),l=[];for(let d of i){let c=d<0?s.length+d:d,u=s[c];if(!u)continue;let m={key:`${o.id}-${t.id}-${c}`,point:u,index:c,radius:n?.highlightSize??6,color:n?.highlightColor??r};n?.highlightGuide&&l.push(cC(e,m)),l.push(uC(e,m)),n?.highlightLabels&&l.push(mC(e,m,a[c][1]))}return l}function Mm(e,t,r,o){return r.map((n,i)=>({seriesId:e.id,valueIndex:i,value:t[i][1],error:e.error?.[i],position:n,color:o}))}function $m(e,t){return t.flatMap(r=>pC(e,r))}function pC(e,t){let r=[],o=fC(e,t);return o&&r.push(o),r.push(hC(e,t)),r}function fC(e,t){if(t.error==null)return null;let{chart:r,plot:o,bounds:n,nextOrder:i}=e,[a,s]=gr(t.value,t.error);return yr({id:`chart-line-error-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:n,geometry:{centerX:t.position.x,startY:o.y+o.height-M(a,r.axisY,o.height),endY:o.y+o.height-M(s,r.axisY,o.height)},color:t.color,valueReference:{seriesId:t.seriesId,valueIndex:t.valueIndex}})}function hC(e,t){let{chart:r,bounds:o,diagnostics:n,nextOrder:i}=e,a=r.config,s=a?.pointSize??3,l=a?.pointStrokeWidth??0,d=s>0,c=a?.pointFill&&a.pointFill!=="series"?a.pointFill:t.color;return{type:"ellipse",id:`chart-point-${r.id}-${t.seriesId}-${t.valueIndex}`,order:i(),bounds:o,cx:t.position.x,cy:t.position.y,rx:d?s:6,ry:d?s:6,detail:{of:"chartValue",series:t.seriesId,valueIndex:t.valueIndex},style:{fill:d?P(c,n,r.id):{kind:"none"},stroke:d&&l>0?P(t.color,n,r.id):void 0,strokeWidth:d&&l>0?l:void 0,pointerEvents:d?void 0:"all"}}}function Am(e,t,r,o,n){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=i.config,u=t.color,m=u&&typeof u!="string"&&u.type==="gradient"?u:void 0,f=c?.lineGlow;return{type:"path",id:`chart-line-${i.id}-${t.id}`,order:d(),bounds:m?{minX:a.x,maxX:a.x+a.width,minY:a.y,maxY:a.y+a.height}:s,detail:{of:"chartSeries",series:t.id,lineTension:n||void 0},d:Dt(r,n),style:{fill:{kind:"none"},stroke:P(m??o,l,i.id),strokeWidth:t.strokeWidth??c?.lineWidth??2,dash:t.dash,lineCap:c?.lineWidth===void 0?void 0:"round",lineJoin:"round",shadow:f?{color:o,opacity:.9,blur:f,dx:0,dy:0}:_(i.shadowStyle)}}}function Em(e,t){return G(e.color,A[t%A.length])}function Nm(e,t,r){let o=e.chart.config?.areaOpacity;if(o===void 0||o<=0)return[];let n=Em(t,r),i=e.chart.config?.lineTension??0,a=ct(e,dt(e.chart,t));return a.length>1?[Lm(e,t,a,n,i,o)]:[]}function Om(e,t,r){let o=Em(t,r),n=e.chart.config?.lineTension??0,i=dt(e.chart,t),a=ct(e,i),s=[];a.length&&s.push(Am(e,t,a,o,n));let l=Mm(t,i,a,o);return s.push(...$m(e,l)),s.push(...Tm(e,t,o)),s}function Bm(e){let t=[];return e.chart.series.forEach((r,o)=>{t.push(...Nm(e,r,o))}),e.chart.series.forEach((r,o)=>{t.push(...Om(e,r,o))}),t}var Im=[0,25,50,75,100];function Dm(e,t){let r=[];return e.chart.showGrid!==!1&&r.push(...gC(e,t)),e.showLabels&&r.push(...yC(e,t)),r}function gC(e,t){let{chart:r,bounds:o,nextOrder:n}=e;return Im.map(i=>{let a=Gm(t,i);return{type:"path",id:`chart-mekko-grid-${r.id}-${i}`,order:n(),bounds:o,d:`M ${t.grid.x} ${a} L ${t.grid.x+t.grid.width} ${a}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:p(r.gridWidth,1)}}})}function yC(e,t){let{chart:r,plot:o,bounds:n,nextOrder:i}=e;return Im.map(a=>({...L({id:`chart-mekko-pct-${r.id}-${a}`,order:i(),bounds:n,frame:{x:o.x,y:Gm(t,a)-t.smallFontSize/2,width:t.labelGutterWidth-6,height:t.smallFontSize+2},text:`${a}%`,chart:r,align:"right"}),fontSize:t.smallFontSize}))}function Gm(e,t){return e.grid.y+e.grid.height*(1-t/100)}function _m(e,t,r,o){if(!e.showLabels)return[];let n=xC(e,t,r,o);return e.chart.config?.showMekkoTotals===!1?[n]:[bC(e,t,r,o),n]}function bC(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e;return{...L({id:`chart-mekko-total-${n.id}-${r}`,order:s(),bounds:a,frame:{x:o.x,y:i.y,width:o.width,height:t.smallFontSize+2},text:String(o.total),chart:n,align:"center"}),fontSize:t.smallFontSize}}function xC(e,t,r,o){let{chart:n,bounds:i,nextOrder:a}=e,{label:s,width:l}=o;return{...L({id:`chart-mekko-col-label-${n.id}-${r}`,order:a(),bounds:i,frame:{x:o.x,y:t.grid.y+t.grid.height+4,width:l,height:t.smallFontSize*2+4},text:s,chart:n,align:"center"}),lines:Oe(s,l,t.smallFontSize),fontSize:t.smallFontSize}}function Fm(e){let t=SC(e),r=e.showLabels?30:0,o=CC(e,r),n=Math.max(9,p(e.chart.fontSize,12)),i=Math.max(0,p(e.chart.config?.mekkoColumnGap,4)),a=Math.max(8,n-1);return{columns:RC(e,o,t,i),fontSize:n,smallFontSize:a,labelGutterWidth:r,columnGap:i,labelSize:Math.max(6,p(e.chart.config?.mekkoLabelSize,a)),valueSize:Math.max(6,p(e.chart.config?.mekkoValueSize,a)),grid:o}}function SC(e){let{chart:t}=e;return t.config?.categories?.length?t.config.categories:t.series[0]?.values?.map((r,o)=>String(o+1))??[]}function CC(e,t){let r=e.showLabels?18:0,o=e.showLabels?32:0;return{x:e.plot.x+t,y:e.plot.y+r,width:Math.max(1,e.plot.width-t),height:Math.max(1,e.plot.height-r-o)}}function RC(e,t,r,o){let n=r.map((d,c)=>e.chart.series.reduce((u,m)=>u+(m.values[c]??0),0)),i=n.reduce((d,c)=>d+c,0),a=Math.max(1,...n),s=Math.max(1,t.width-o*Math.max(0,r.length-1)),l=t.x;return r.map((d,c)=>{let u=n[c],m=i>0?u/i*s:s/r.length,f=e.chart.config?.mekkoVaryHeight?t.height*(u/a):t.height,h={label:d,total:u,x:l,y:t.y+t.height-f,width:m,height:f};return l+=m+o,h})}var kC=.15;function Hm(e,t,r){let n=e.chart.config?.showColumnBackdrop!==!1?[wC(e,t,r)]:[],i=!!e.chart.config?.tileGradient,a=vC(e.chart.series,t,r),s=a.flatMap((l,d)=>PC(e,t,l,i?a[d+1]?.color:void 0));return[...n,...s]}function wC(e,t,r){let{chart:o,bounds:n,diagnostics:i,nextOrder:a}=e,s=t.columns[r],l=Vm(e);return{type:"path",id:`chart-mekko-column-backdrop-${o.id}-${r}`,order:a(),bounds:n,d:ko(s.x,t.grid.y,s.width,t.grid.height,l),style:{fill:P(o.gridColor??"#e2e8f0",i,o.id),opacity:kC}}}function Vm(e){return Math.max(0,p(e.chart.config?.barCornerRadius,2))}function vC(e,t,r){let o=[],n=t.columns[r],i=0;return e.forEach((a,s)=>{let l=a.values[r]??0,d=(n.total>0?l/n.total:0)*n.height,c=n.y+i;i+=d;let u=a.color??A[s%A.length];o.push({columnIndex:r,seriesId:a.id,seriesLabel:a.label,value:l,color:u,isTop:s===0,frame:{x:n.x,y:c,width:n.width,height:d}})}),o}function PC(e,t,r,o){return[LC(e,r,o),...TC(e,t,r)]}function LC(e,t,r){let{chart:o,plot:n,bounds:i,diagnostics:a,nextOrder:s}=e,l=_(o.shadowStyle),d=l?`M ${n.x} ${n.y} H ${n.x+n.width} V ${n.y+n.height} H ${n.x} Z`:void 0,c=o.config,u=t.isTop||c?.mekkoRoundAll?Vm(e):0,{x:m,y:f,width:h,height:y}=t.frame,x=Math.max(0,p(c?.mekkoSegmentGap,0)),b="#94a3b8",C={minX:m+h/2-y/2,maxX:m+h/2+y/2,minY:f,maxY:f+y},S=r?{kind:"linear-gradient",angle:90,stops:[{offset:0,color:G(t.color,b)},{offset:100,color:G(r,b)}]}:P(t.color,a,o.id);return{type:"path",id:`chart-mekko-seg-${o.id}-${t.columnIndex}-${t.seriesId}`,order:s(),bounds:r?C:i,d:ot(m,f+x/2,h,Math.max(0,y-x),u,!!c?.mekkoRoundAll),style:{fill:S,stroke:{kind:"solid",color:c?.mekkoSegmentStrokeColor??o.gridColor??"#e2e8f0"},strokeWidth:p(c?.mekkoSegmentStrokeWidth,p(o.gridWidth,1)),shadow:l,clip:d?{type:"path",d}:void 0}}}function TC(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,{x:a,y:s,width:l,height:d}=r.frame;if(!e.showLegend||l<34)return[];let c=Math.max(1,l-8),u=Math.max(1,d-6),m=t.labelSize*1.2,f=t.valueSize*1.2,h=Oe(r.seriesLabel,c,t.labelSize).map(v=>bo(v,c,t.labelSize,!0));if(h.length*m+f>u)return[];let y=o.config?.mekkoTextColor??le(G(r.color,"#ffffff")),x=t.columns[r.columnIndex]?.total??0,b=o.config?.mekkoValueFormat==="percent"?`${x>0?Math.round(r.value/x*100):0}%`:String(r.value),C={...L({id:`chart-mekko-seg-label-${o.id}-${r.columnIndex}-${r.seriesId}`,order:i(),bounds:n,frame:{x:a+4,y:s+3,width:c,height:u},text:r.seriesLabel,chart:o}),lines:h,fontSize:t.labelSize,fontWeight:"bold",color:y},S={...L({id:`chart-mekko-seg-value-${o.id}-${r.columnIndex}-${r.seriesId}`,order:i(),bounds:n,frame:{x:a+4,y:s+3+h.length*m,width:c,height:Math.max(1,u-h.length*m)},text:b,chart:o}),lines:[b],fontSize:t.valueSize,color:y};return[C,S]}function Wm(e){let t=Fm(e),r=Dm(e,t);return t.columns.forEach((o,n)=>{r.push(...Hm(e,t,n)),r.push(..._m(e,t,n,o))}),r}function MC(e,t){let r=t.series.map(i=>Math.max(0,p(i.values[0],0))),o=r.reduce((i,a)=>i+a,0),n=r[0]??0;return e.replace(/\{total\}/g,String(Math.round(o*100)/100)).replace(/\{percent\}/g,String(o>0?Math.round(n/o*100):0)).replace(/\{label\}/g,t.series[0]?.label??"")}function zm(e,t){let{chart:r,bounds:o,nextOrder:n}=e,i=r.config?.pieCenterText;if(!i)return[];let a=MC(i,r).split(/\\n|\n/),s=p(r.config?.pieCenterSize,Math.max(14,Math.min(40,t.outerRadius*.3))),l=s*1.2,d=Math.max(40,(t.innerRadius>0?t.innerRadius:t.outerRadius*.6)*2);return[{type:"text",id:`chart-pie-center-${r.id}`,order:n(),bounds:o,x:t.centerX-d/2,y:t.centerY-l*a.length/2,width:d,height:l*a.length,lines:a,fontFamily:r.fontFamily??B,fontSize:s,fontWeight:"bold",align:"center",verticalAlign:"middle",lineHeight:1.2,color:r.config?.pieCenterColor??r.textColor??"#0f172a",detail:{of:"chartSeries",series:r.series[0]?.id??"",mark:"pie-center"}}]}function Ym(e){let{chart:t,plot:r}=e,o=Mo(r.width,r.height,t.config?.innerRadius,t.config?.pieCornerRadius),i=t.config?.pieLabelPosition==="outside"&&t.showAxisLabels!==!1?t.config?.pieLabelContent==="inline"?.6:.7:1,a=o.outerRadius*i,s=o.innerRadius*i,l=o.cornerRadius;return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,outerRadius:a,innerRadius:s,cornerRadius:l,total:t.series.reduce((d,c)=>d+Math.max(0,p(c.values[0],0)),0)||1}}var $C=14*Math.PI/180,Lr=80,AC=.62,EC=14,NC=3,OC=.32,Um="#334155";function qm(e,t,r){return e.chart.showAxisLabels===!1?[]:r.filter(o=>o.end-o.start>=$C).flatMap(o=>BC(e,t,o))}function Xm(e,t,r,o,n,i,a,s){let{chart:l,bounds:d,nextOrder:c}=e,u=n*1.2,m=l.config?.pieLabelContent??"both",f=m==="inline"?Lr*1.9:Lr,h={bounds:d,x:r.x-f/2,width:f,height:u,fontFamily:l.fontFamily??B,fontSize:n,align:"center",verticalAlign:"middle",lineHeight:1.2,color:o},y=C=>({of:"chartSeries",series:t.seriesId,mark:"pie-label",pulled:a||void 0,midAngle:s,...C}),x={type:"text",id:`chart-pie-label-name-${l.id}-${t.seriesId}`,order:c(),...h,y:m==="name"?r.y-u/2:r.y-u,lines:[m==="inline"?`${t.label}, ${i}%`:t.label],fontWeight:"bold",detail:y({}),prop:Ie(t.seriesId)},b={type:"text",id:`chart-pie-label-value-${l.id}-${t.seriesId}`,order:c(),...h,y:m==="percent"?r.y-u/2:r.y,lines:[`${i}%`],fontWeight:"normal",detail:y({}),prop:ce(t.seriesId,0),propKind:"value"};return m==="inline"||m==="name"?[x]:m==="percent"?[b]:[x,b]}function jm(e,t,r,o,n,i){let{chart:a,bounds:s,nextOrder:l}=e;return{type:"path",id:`chart-pie-label-tick-${a.id}-${t.seriesId}`,order:l(),bounds:s,d:`M ${r.x} ${r.y} L ${o.x} ${o.y}`,detail:{of:"chartSeries",series:t.seriesId,mark:"pie-label-tick"},style:i?{stroke:{kind:"solid",color:n},strokeWidth:1.5}:{stroke:{kind:"none"}}}}function BC(e,t,r){let o=e.chart.config,n={...t,centerX:t.centerX+r.shift.dx,centerY:t.centerY+r.shift.dy},i=(r.start+r.end)/2,a=Math.max(9,p(e.chart.fontSize,12)),s=Math.round(r.share*100),l=a*1.2,d=Z(n,i,n.outerRadius+NC),c=n.outerRadius-n.innerRadius,u=c<l*2+6,m=r.labelOffsetX!==0||r.labelOffsetY!==0,f=o?.pieLabelPosition??"auto";if(m||f==="outside"||f==="auto"&&u){let v=m?IC(Z(n,i,n.outerRadius),r.labelOffsetX,r.labelOffsetY):Z(n,i,n.outerRadius+EC+(f==="outside"?Math.abs(Math.cos(i))*(o?.pieLabelContent==="inline"?Lr*.95:Lr/2):0)),O=br(d,v,Lr/2,l),E=o?.pieLabelColor??je(G(r.color,Um),OC)??Um;return[jm(e,r,d,O,E,!0),...Xm(e,r,v,E,a,s,!0,i)]}let y=n.innerRadius+c*AC,x=Z(n,i,y),b=G(r.color,"#0f172a"),C=o?.pieLabelColor??Ot(b,le(b));return[jm(e,r,d,d,C,!1),...Xm(e,r,x,C,a,s,!1,i)]}function IC(e,t,r){return{x:e.x+t,y:e.y+r}}var DC=-Math.PI/2,ta=Math.PI*2,GC=ta*(359.999/360),ea=e=>e*Math.PI/180;function Km(e,t){let r=e.chart.config,o=FC(e.chart.series,t.total,{start:DC+ea(p(r?.pieStartAngle,0)),sweep:Math.min(ta,Math.max(ea(1),ea(p(r?.pieSweep,360)))),explode:Math.max(0,p(r?.pieExplode,0))}),n=r?.pieSliceGap??0;return[...o.flatMap(i=>YC(e,_C(t,i),i,n)),...qm(e,t,o.map(i=>({seriesId:i.seriesId,label:i.label,color:i.color,share:i.share,start:i.angles.start,end:i.angles.end,labelOffsetX:i.labelOffsetX,labelOffsetY:i.labelOffsetY,shift:Zm(i)})))]}function Zm(e){let t=(e.angles.start+e.angles.end)/2;return{dx:Math.cos(t)*e.explode,dy:Math.sin(t)*e.explode}}function _C(e,t){if(t.explode===0)return e;let{dx:r,dy:o}=Zm(t);return{...e,centerX:e.centerX+r,centerY:e.centerY+o}}function FC(e,t,r){let o=[],n=r.start;return e.forEach((i,a)=>{let s=Math.max(0,p(i.values[0],0)),l=s/t*r.sweep;o.push({seriesId:i.id,label:i.label,color:i.color??A[a%A.length],stroke:i.stroke,strokeWidth:i.strokeWidth,value:s,share:s/t,angles:{start:n,end:n+Math.min(l,r.sweep>=ta?GC:r.sweep)},explode:Math.max(0,p(i.offset,r.explode)),labelOffsetX:p(i.labelOffsetX,0),labelOffsetY:p(i.labelOffsetY,0)}),n+=l}),o}function HC(e,t,r){return`M ${e-r} ${t} A ${r} ${r} 0 1 0 ${e+r} ${t} A ${r} ${r} 0 1 0 ${e-r} ${t} Z`}function VC(e,t){if(t<=0)return e;let r=t/2,o=Math.min(e.blur,r*2),n=r,i=Math.hypot(e.dx,e.dy),a=i>n?n/i:1;return{...e,blur:o,dx:e.dx*a,dy:e.dy*a}}function WC(e,t,r){let o=Math.max(0,r)/2,n=t.angles.end-t.angles.start,i=Ft(e,t.angles,r),a=2*nt(o,e.outerRadius),s=Math.max(0,n-a);return Math.min(e.cornerRadius,i?xr(e.outerRadius,e.innerRadius,s):Sr(e.outerRadius,it(o,n,e.outerRadius),s))}function zC(e,t){let r=e.chart.config,o=t.stroke??r?.pieStroke;return o?{stroke:{kind:"solid",color:o},strokeWidth:p(t.strokeWidth,p(r?.pieStrokeWidth,1))}:{}}function YC(e,t,r,o){let{chart:n,bounds:i,diagnostics:a,nextOrder:s}=e,l=P(r.color,a,n.id),d=at(t,r.angles,WC(t,r,o),o),c=_(n.shadowStyle),u=zC(e,r),m=n.config?.pieGlow,f=c?{type:"path",id:`chart-pie-slice-shadow-${n.id}-${r.seriesId}`,order:s(),bounds:i,d,style:{fill:l,...u,shadow:VC(c,o),clip:{type:"path",d:HC(t.centerX,t.centerY,t.outerRadius)}}}:void 0,h={type:"path",id:`chart-pie-slice-${n.id}-${r.seriesId}`,order:s(),bounds:i,d,detail:{of:"chartValue",series:r.seriesId,valueIndex:0,mark:"pie-slice",pieStart:r.angles.start,pieEnd:r.angles.end,pieValue:r.value},prop:ce(r.seriesId,0),style:{fill:l,...u,innerShadow:c,shadow:m?{color:G(r.color,"#ffffff"),opacity:.85,blur:m,dx:0,dy:0}:void 0}};return f?[f,h]:[h]}function Qm(e){let t=Ym(e);return[...Km(e,t),...zm(e,t)]}var UC=-Math.PI/2,XC="#e2e8f0",jC=14*Math.PI/180,Ho=80,qC=.62,KC=14,ZC=3,QC=.32,Jm="#334155";function JC(e){let{chart:t,plot:r}=e,o=Math.max(1,Math.min(r.width,r.height)/2-4),n=p(t.axisY.min,0);return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,maxRadius:o,innerRadius:Math.max(0,Math.min(p(t.config?.innerRadius,0),o-1)),cornerRadius:Math.max(0,p(t.config?.pieCornerRadius,0)),gapPx:Math.max(0,p(t.config?.pieSliceGap,0)),axisMin:n,range:p(t.axisY.max,100)-n,sweep:t.series.length>0?Math.PI*2/t.series.length:0,start:UC+p(t.config?.pieStartAngle,0)*Math.PI/180}}function ep(e,t,r){let{centerX:o,centerY:n,innerRadius:i,cornerRadius:a,gapPx:s}=e,l={centerX:o,centerY:n,outerRadius:t,innerRadius:i},d=Math.max(0,s)/2,c=r.end-r.start,u=Math.max(0,c-2*nt(d,t));if(Ft(l,r,s))return Math.min(a,xr(t,i,u));let m=it(d,c,t);return Math.min(a,Sr(t,m,u))}function eR(e,t,r,o,n,i,a){let{chart:s,bounds:l,diagnostics:d,nextOrder:c}=e,{centerX:u,centerY:m,innerRadius:f,maxRadius:h,gapPx:y}=t,x=P(a,d,s.id),b=_(s.shadowStyle),C=at({centerX:u,centerY:m,outerRadius:h,innerRadius:f},o,ep(t,h,o),y),S={type:"path",id:`chart-polar-area-track-${s.id}-${r.id}`,order:c(),bounds:l,d:C,style:{fill:P(s.gridColor??XC,d,s.id),opacity:s.config?.polarTrackOpacity,...tR(e)}},v=at({centerX:u,centerY:m,outerRadius:n,innerRadius:f},o,ep(t,n,o),y),O=b?{type:"path",id:`chart-polar-area-wedge-shadow-${s.id}-${r.id}`,order:c(),bounds:l,d:v,style:{fill:x,shadow:b,clip:{type:"path",d:C}}}:void 0,E={type:"path",id:`chart-polar-area-wedge-${s.id}-${r.id}`,order:c(),bounds:l,d:v,detail:{of:"chartValue",series:r.id,valueIndex:0,mark:"polar-area-wedge",pieStart:o.start,pieEnd:o.end,pieValue:i},prop:ce(r.id,0),style:{fill:x,innerShadow:b,...rR(e)}};return O?[S,O,E]:[S,E]}function tR(e){let t=e.chart.config;if(!t?.polarTrackStroke)return{};let r=(t.polarTrackDash??"").split(/[ ,]+/).map(Number).filter(o=>Number.isFinite(o)&&o>0);return{stroke:{kind:"solid",color:t.polarTrackStroke},strokeWidth:p(t.polarTrackStrokeWidth,1),dash:r.length>0?r:void 0}}function rR(e){let t=e.chart.config;return t?.pieStroke?{stroke:{kind:"solid",color:t.pieStroke},strokeWidth:p(t.pieStrokeWidth,1)}:{}}function oR(e,t){let{chart:r,bounds:o,nextOrder:n}=e;return!r.config?.polarRings||t.range<=0?[]:z(r.axisY).filter(i=>i>t.axisMin&&i<t.axisMin+t.range).map(i=>{let a=t.innerRadius+(t.maxRadius-t.innerRadius)*(i-t.axisMin)/t.range;return{type:"ellipse",id:`chart-polar-area-ring-${r.id}-${i}`,order:n(),bounds:o,cx:t.centerX,cy:t.centerY,rx:a,ry:a,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.textColor??"#334155"},strokeWidth:p(r.gridWidth,1),opacity:.25}}})}function tp(e){let t=JC(e),{centerX:r,centerY:o,innerRadius:n,maxRadius:i,axisMin:a,range:s,sweep:l,start:d}=t,c=e.showLabels&&l>=jC;return[...e.chart.series.flatMap((m,f)=>{let h={start:d+f*l,end:d+(f+1)*l},y=Math.max(0,p(m.values[0],0)),x=s>0?Math.min(1,Math.max(0,(y-a)/s)):0,b=Math.max(n+1,n+(i-n)*x),C=m.color??A[f%A.length],S=eR(e,t,m,h,b,y,C);if(!c)return S;let v={centerX:r,centerY:o,outerRadius:b,innerRadius:n};return[...S,...iR(e,v,h,m,y,C)]}),...oR(e,t)]}function rp(e){let t=Math.max(9,p(e.fontSize,12));return{nameSize:Math.max(6,p(e.config?.polarNameSize,t)),valueSize:Math.max(6,p(e.config?.polarValueSize,t))}}function nR(e,t,r,o,n){let i=(r.start+r.end)/2,{nameSize:a,valueSize:s}=rp(e.chart),l=(a+s)*1.2/2,d=t.outerRadius-t.innerRadius,c=p(o.labelOffsetX,0),u=p(o.labelOffsetY,0),m=c!==0||u!==0,f=d<l*2+6,h=2*t.outerRadius*Math.sin(Math.abs(r.end-r.start)/2),y=!f&&h>=Ho,x=e.chart.config?.polarOutsideLabels??!1;if(!y&&!m&&!x)return;let b=m||!y,C=Z(t,i,t.outerRadius+ZC),S=b?m?aR(Z(t,i,t.outerRadius),c,u):Z(t,i,t.outerRadius+KC):Z(t,i,t.innerRadius+d*qC),v=b?x&&e.chart.textColor?e.chart.textColor:je(G(n,Jm),QC)??Jm:Ot(G(n,"#0f172a"),le(G(n,"#0f172a")));return{point:S,color:v,outside:b,mid:i,tickStart:C}}function iR(e,t,r,o,n,i){let a=nR(e,t,r,o,i);if(!a)return[];let{chart:s,bounds:l,nextOrder:d}=e,{point:c,color:u,outside:m,mid:f,tickStart:h}=a,{nameSize:y,valueSize:x}=rp(s),b=Math.max(y,x)*1.2,C=m?br(h,c,Ho/2,b):h,S={type:"path",id:`chart-polar-area-label-tick-${s.id}-${o.id}`,order:d(),bounds:l,d:`M ${h.x} ${h.y} L ${C.x} ${C.y}`,detail:{of:"chartSeries",series:o.id,mark:"polar-area-label-tick"},style:m?{stroke:{kind:"solid",color:u},strokeWidth:1.5}:{stroke:{kind:"none"}}},v={of:"chartSeries",series:o.id,mark:"polar-area-label",pulled:m||void 0,midAngle:f,wedgeRadius:t.outerRadius},O={bounds:l,x:c.x-Ho/2,width:Ho,fontFamily:s.fontFamily??B,align:"center",verticalAlign:"middle",lineHeight:1.2,color:u},E=s.config?.polarValueFirst??!1,F=y*1.2,U=x*1.2,K=c.y-(F+U)/2,ke=E?K+U:K,ae=E?K:K+F,we={type:"text",id:`chart-polar-area-label-name-${s.id}-${o.id}`,order:d(),...O,y:ke,height:y*1.2,fontSize:y,lines:[o.label],fontWeight:E?"normal":"bold",detail:v,prop:Ie(o.id)},te={type:"text",id:`chart-polar-area-label-value-${s.id}-${o.id}`,order:d(),...O,y:ae,height:x*1.2,fontSize:x,lines:[Me(n)],fontWeight:E?"bold":"normal",detail:v,prop:ce(o.id,0),propKind:"value"};return[S,we,te]}function aR(e,t,r){return{x:e.x+t,y:e.y+r}}var sR=["Speed","Quality","Cost","Reliability","Usability"];function lR(e){let{chart:t,plot:r}=e,o=(t.config?.categories?.filter(Boolean)??[]).length,n=Math.max(0,...t.series.map(i=>i.values.length));return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,radius:Eo(r.width,r.height,p(t.fontSize,12),e.showLabels),min:t.axisY.min,max:t.axisY.max,count:No(o,n),curved:t.chartType==="radial",tension:t.config?.radarTension}}function op(e){let{chart:t}=e,r=t.config?.categories?.filter(Boolean)??[],o=lR(e),n=dR(r,o.count),i=(a,s)=>Bu(o,s,a);return{circular:o.curved,areaOpacity:Math.max(0,Math.min(1,t.config?.areaOpacity??.16)),strokeWidth:Math.max(0,t.config?.radarStrokeWidth??2),tension:o.tension,pointSize:Math.max(0,t.config?.radarPointSize??3),showSpokes:t.config?.radarSpokes??!0,categories:n,centerX:o.centerX,centerY:o.centerY,radius:o.radius,radiusForValue:a=>Iu(o,a),pointAt:i,polygonPath:a=>Oo(n.map((s,l)=>i(a,l)),!1)}}function dR(e,t){return Array.from({length:t},(r,o)=>e[o]??sR[o]??`Category ${o+1}`)}function np(e,t){return e.chart.showGrid===!1?[]:[...cR(e,t),...t.showSpokes?mR(e,t):[]]}function cR(e,t){return z(e.chart.axisY).filter(r=>r>e.chart.axisY.min).map(r=>uR(e,t,r))}function uR(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=t.radiusForValue(r),s={fill:{kind:"none"},stroke:{kind:"solid",color:o.gridColor??"#e2e8f0"},strokeWidth:p(o.gridWidth,1)};return t.circular?{type:"ellipse",id:`chart-radial-ring-${o.id}-${r}`,order:i(),bounds:n,cx:t.centerX,cy:t.centerY,rx:a,ry:a,style:s}:{type:"path",id:`chart-radar-ring-${o.id}-${r}`,order:i(),bounds:n,d:t.polygonPath(a),style:s}}function mR(e,t){let{chart:r,bounds:o,nextOrder:n}=e;return t.categories.map((i,a)=>{let s=t.pointAt(t.radius,a);return{type:"path",id:`chart-radar-spoke-${r.id}-${a}`,order:n(),bounds:o,d:`M ${t.centerX} ${t.centerY} L ${s.x} ${s.y}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:p(r.gridWidth,1)}}})}function ip(e,t){return e.showLabels?t.categories.map((r,o)=>pR(e,t,r,o)):[]}function pR(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,l=t.pointAt(t.radius+10,o),d=l.x-t.centerX,c=Math.max(64,Math.min(120,i.width/3));return L({id:`chart-radar-label-${n.id}-${o}`,order:s(),bounds:a,frame:{x:fR(l.x,d,c),y:l.y-6,width:c,height:30},text:r,chart:n,align:hR(d)})}function fR(e,t,r){return t>8?e:t<-8?e-r:e-r/2}function hR(e){return e>8?"left":e<-8?"right":"center"}function ap(e,t){let r=[];return e.chart.series.forEach((o,n)=>{r.push(...gR(e,t,o,n))}),r}function gR(e,t,r,o){let n=r.color??A[o%A.length],i=yR(r,e,t),a=Oo(i,t.circular,t.tension);return[bR(e,t,r,a,n),...t.strokeWidth>0?[xR(e,t,r,a,n)]:[],...t.pointSize>0?SR(e,t,r,i,n):[]]}function yR(e,t,r){let o=e.values;return r.categories.map((n,i)=>r.pointAt(r.radiusForValue(o[i]??t.chart.axisY.min),i))}function bR(e,t,r,o,n){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:`chart-radar-fill-${i.id}-${r.id}`,order:l(),bounds:a,d:o,detail:{of:"chartSeries",series:r.id},style:{fill:P(n,s,i.id),stroke:{kind:"none"},opacity:Math.max(0,Math.min(1,r.opacity??t.areaOpacity))}}}function xR(e,t,r,o,n){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return{type:"path",id:`chart-radar-series-${i.id}-${r.id}`,order:l(),bounds:a,d:o,detail:{of:"chartSeries",series:r.id},style:{fill:{kind:"none"},stroke:P(n,s,i.id),strokeWidth:t.strokeWidth,lineJoin:"round",shadow:_(i.shadowStyle)}}}function SR(e,t,r,o,n){let{chart:i,bounds:a,diagnostics:s,nextOrder:l}=e;return o.map((d,c)=>({type:"ellipse",id:`chart-radar-point-${i.id}-${r.id}-${c}`,order:l(),bounds:a,cx:d.x,cy:d.y,rx:t.pointSize,ry:t.pointSize,detail:{of:"chartValue",series:r.id,valueIndex:c,mark:"radar-vertex"},prop:ce(r.id,c),style:{fill:P(n,s,i.id)}}))}function ra(e){let t=op(e),r=[];return r.push(...np(e,t)),r.push(...ip(e,t)),r.push(...ap(e,t)),r}var CR=-Math.PI/2,RR=14,kR=4,wR=.18,oa=1e-4;function qt(e,t,r,o){return{x:e+r*Math.cos(o),y:t+r*Math.sin(o)}}function sp(e,t,r){return`M ${e-r} ${t} A ${r} ${r} 0 1 0 ${e+r} ${t} A ${r} ${r} 0 1 0 ${e-r} ${t} Z`}function vR(e,t,r,o){return`${sp(e,t,r)} ${sp(e,t,Math.max(0,o))}`}function lp(e,t,r,o,n){let i=qt(e,t,r,o),a=qt(e,t,r,n);return`M ${i.x} ${i.y} A ${r} ${r} 0 ${n-o>Math.PI?1:0} 1 ${a.x} ${a.y}`}function PR(e,t){let r=Math.min(e.blur,t*.6),o=t*.4,n=Math.hypot(e.dx,e.dy),i=n>o?o/n:1;return{...e,blur:r,dx:e.dx*i,dy:e.dy*i}}function LR(e,t,r,o,n){if(o>=Math.PI*2-oa){let l=qt(e,t,r,n),d=qt(e,t,r,n+Math.PI);return`M ${l.x} ${l.y} A ${r} ${r} 0 1 1 ${d.x} ${d.y} A ${r} ${r} 0 1 1 ${l.x} ${l.y}`}let i=qt(e,t,r,n),a=qt(e,t,r,n+o),s=o>Math.PI?1:0;return`M ${i.x} ${i.y} A ${r} ${r} 0 ${s} 1 ${a.x} ${a.y}`}function TR(e){let{chart:t,plot:r}=e,o=p(t.axisY.min,0);return{centerX:r.x+r.width/2,centerY:r.y+r.height/2,outerRadius:Math.max(1,Math.min(r.width,r.height)/2-4),ringThickness:Math.max(1,p(t.config?.ringThickness,RR)),ringGap:Math.max(0,p(t.config?.ringGap,kR)),axisMin:o,range:p(t.axisY.max,100)-o,start:CR+p(t.config?.ringStartAngle,0)*Math.PI/180,total:Math.min(360,Math.max(1,p(t.config?.ringSweep,360)))*Math.PI/180,trackOpacity:Math.min(1,Math.max(0,p(t.config?.ringTrackOpacity,wR))),cap:t.config?.ringCap??"round"}}function MR(e,t,r,o,n,i){let{chart:a,bounds:s,nextOrder:l}=e,{centerX:d,centerY:c,ringThickness:u,start:m}=t,f=_(a.shadowStyle),h=n>=Math.PI*2-oa;if(!f||h)return[];let y=PR(f,u),x=Math.min(n,u/o);return[[m,m+x],[m+n-x,m+n]].map(([b,C],S)=>({type:"path",id:`chart-radial-bar-ring-end-shadow-${a.id}-${r.id}-${S}`,order:l(),bounds:s,d:lp(d,c,o,b,C),style:{fill:{kind:"none"},stroke:i,strokeWidth:u,lineCap:t.cap,shadow:y,clip:{type:"path",d:vR(d,c,o+u/2,o-u/2)}}}))}function $R(e,t,r,o){let{chart:n,bounds:i,diagnostics:a,nextOrder:s}=e,{centerX:l,centerY:d,outerRadius:c,ringThickness:u,ringGap:m,axisMin:f,range:h,start:y,total:x,trackOpacity:b,cap:C}=t,S=c-o*(u+m)-u/2;if(S<=u/2)return[];let v=P(r.color??A[o%A.length],a,n.id),O=Math.max(0,p(r.values[0],0)),E=h>0?Math.min(1,Math.max(0,(O-f)/h)):0,F={fill:{kind:"none"},stroke:v,strokeWidth:u,opacity:b},U=x>=Math.PI*2-oa?{type:"ellipse",id:`chart-radial-bar-track-${n.id}-${r.id}`,order:s(),bounds:i,cx:l,cy:d,rx:S,ry:S,style:F}:{type:"path",id:`chart-radial-bar-track-${n.id}-${r.id}`,order:s(),bounds:i,d:lp(l,d,S,y,y+x),style:{...F,lineCap:C}};if(E<=0)return[U];let K=E*x,ke=MR(e,t,r,S,K,v),ae={type:"path",id:`chart-radial-bar-ring-${n.id}-${r.id}`,order:s(),bounds:i,d:LR(l,d,S,K,y),detail:{of:"chartValue",series:r.id,valueIndex:0,mark:"radial-bar-ring"},prop:ce(r.id,0),style:{fill:{kind:"none"},stroke:v,strokeWidth:u,lineCap:C}};return[U,...ke,ae]}function dp(e){let t=TR(e);return e.chart.series.flatMap((r,o)=>$R(e,t,r,o))}function cp(e,t){let r=_(e.chart.shadowStyle),o=!!e.chart.config?.linkGradient,{plot:n}=e,i=r?`M ${n.x} ${n.y} H ${n.x+n.width} V ${n.y+n.height} H ${n.x} Z`:void 0;return t.links.map((a,s)=>{let l=AR(e,t,a,s,o);return ER(e,l,r,i,o)})}function AR(e,t,r,o,n){let i={x:t.baseX+r.x0,top:t.baseY+r.sourceY0,bottom:t.baseY+r.sourceY1},a={x:t.baseX+r.x1,top:t.baseY+r.targetY0,bottom:t.baseY+r.targetY1},s=e.chart.config,l=r.color||t.nodeColors.get(r.source)||q,d=t.nodeColors.get(r.target)||q,c=n?{kind:"linear-gradient",angle:0,stops:[{offset:0,color:l},{offset:100,color:d}]}:{kind:"solid",color:r.color||d};return{linkIndex:o,fromId:r.source,toId:r.target,source:i,target:a,controlX:i.x+(a.x-i.x)*Math.min(1,Math.max(0,p(s?.sankeyLinkCurve,.5))),fill:c,opacity:Math.min(1,Math.max(0,p(s?.sankeyLinkOpacity,r.color?.85:.45)))}}function ER(e,t,r,o,n){let{chart:i,bounds:a,nextOrder:s}=e,l={minX:Math.min(t.source.x,t.target.x),maxX:Math.max(t.source.x,t.target.x),minY:Math.min(t.source.top,t.target.top),maxY:Math.max(t.source.bottom,t.target.bottom)};return{type:"path",id:`chart-sankey-link-${i.id}-${t.linkIndex}`,order:s(),bounds:n?l:a,d:NR(t),detail:{of:"link",fromId:t.fromId,toId:t.toId},style:{fill:t.fill,opacity:t.opacity,shadow:r,clip:o?{type:"path",d:o}:void 0}}}function NR(e){let{source:t,target:r,controlX:o}=e;return[`M ${t.x} ${t.top}`,`C ${o} ${t.top} ${o} ${r.top} ${r.x} ${r.top}`,`L ${r.x} ${r.bottom}`,`C ${o} ${r.bottom} ${o} ${t.bottom} ${t.x} ${t.bottom}`,"Z"].join(" ")}var OR=.3,BR=.78;function up(e,t){let r=Math.max(0,p(e.chart.config?.barCornerRadius,0)),o=[];return t.nodes.forEach(n=>{o.push(IR(e,t,n,r));let i=e.showLabels?DR(e,t,n):void 0;i&&o.push(i)}),o}function IR(e,t,r,o){let{chart:n,bounds:i,nextOrder:a}=e,s=t.baseX+r.x,l=t.baseY+r.y,d={fill:{kind:"solid",color:r.color||q},shadow:_(n.shadowStyle)},c=r.column===0,u=r.column===t.columnCount-1,m={of:"chartSeries",series:r.id,mark:"sankey-node"};return o>0&&c&&u?{type:"rect",id:`chart-sankey-node-${n.id}-${r.id}`,order:a(),bounds:i,x:s,y:l,width:r.width,height:r.height,rx:o,style:d,detail:m}:o>0&&c?{type:"path",id:`chart-sankey-node-${n.id}-${r.id}`,order:a(),bounds:i,d:ir(s,l,r.width,r.height,o),style:d,detail:m}:o>0&&u?{type:"path",id:`chart-sankey-node-${n.id}-${r.id}`,order:a(),bounds:i,d:ar(s,l,r.width,r.height,o),style:d,detail:m}:{type:"rect",id:`chart-sankey-node-${n.id}-${r.id}`,order:a(),bounds:i,x:s,y:l,width:r.width,height:r.height,style:d,detail:m}}function DR(e,t,r){let{chart:o}=e,n=o.config?.labelPosition??"outside",i=n==="inside"?_R(e,t,r,o.config?.labelOrientation??"horizontal"):GR(e,t,r);if(!i)return;let a=o.textColor??"#0f172a",s=n==="inside"?le(r.color):je(r.color,Po(a)?BR:OR)??a,l=o.config?.labelColor??s;return{...i,color:l,detail:{of:"chartSeries",series:r.id,mark:"sankey-node-label"}}}function GR(e,t,r){let{chart:o,bounds:n,nextOrder:i}=e,a=r.column===t.columnCount-1,s=t.baseX+r.x,l=t.baseY+r.y,d=a?s-t.labelGutter+8:s+r.width+6;return{...L({id:`chart-sankey-label-${o.id}-${r.id}`,order:i(),bounds:n,frame:{x:d,y:l,width:t.labelGutter-12,height:Math.max(1,r.height)},text:r.label,chart:o,align:a?"right":"left"}),fontSize:t.labelSize,fontWeight:"bold",verticalAlign:"middle"}}function _R(e,t,r,o){let{chart:n,bounds:i,nextOrder:a}=e,s=t.baseX+r.x,l=t.baseY+r.y,d=s+r.width/2,c=l+r.height/2,u=t.labelSize,m=`chart-sankey-label-${n.id}-${r.id}`;if(o==="vertical"){let f=u*1.4,h=Math.max(1,r.height-8);return We(r.label,u,!1)>h?void 0:{...L({id:m,order:a(),bounds:i,frame:{x:d-h/2,y:c-f/2,width:h,height:f},text:r.label,chart:n,align:"center",rotation:-90}),fontSize:u,fontWeight:"bold",verticalAlign:"middle",rotationCenter:{x:d,y:c}}}return{...L({id:m,order:a(),bounds:i,frame:{x:s+4,y:c-u/2-2,width:Math.max(1,r.width-8),height:u+4},text:r.label,chart:n,align:"center"}),fontSize:u,fontWeight:"bold",verticalAlign:"middle"}}function mp(e){let{chart:t,plot:r,showLabels:o}=e,n=o?92:0,i=Math.max(1,r.width-n*2),a=Ji(FR(e),HR(e),i,r.height,{nodeWidth:Math.max(1,p(t.config?.sankeyNodeWidth,18)),nodeGap:Math.max(0,p(t.config?.sankeyNodeGap,8))});return{...a,baseX:r.x+n,baseY:r.y,labelGutter:n,fontSize:Math.max(9,p(t.fontSize,12)),labelSize:Math.max(6,p(t.config?.sankeyLabelSize,Math.max(9,p(t.fontSize,12))-2)),columnCount:Math.max(1,...a.nodes.map(s=>s.column+1)),nodeColors:new Map(a.nodes.map(s=>[s.id,s.color||q]))}}function FR(e){return(e.chart.config?.zones??[]).map(t=>({id:t.label,label:t.label,color:t.color,offsetX:t.offsetX,offsetY:t.offsetY}))}function HR(e){let t=[];return e.chart.series.forEach(r=>{!r.source||!r.target||t.push({source:r.source,target:r.target,value:r.values[0]??0,color:r.color?G(r.color,q):void 0})}),t}function pp(e){let t=mp(e),r=[];return r.push(...cp(e,t)),r.push(...up(e,t)),r}var VR=4;function fp(e){let t=[],r=_(e.chart.shadowStyle);return e.chart.series.forEach((o,n)=>{let i=o.color??A[n%A.length];ct(e,dt(e.chart,o)).forEach((s,l)=>{t.push(WR(e,o,s,l,i,r))})}),t}function WR(e,t,r,o,n,i){let{chart:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=a.config,u=c?.pointSize??VR,m=c?.pointStrokeWidth??0;return{type:"ellipse",id:`chart-point-${a.id}-${t.id}-${o}`,order:d(),bounds:s,cx:r.x,cy:r.y,rx:u,ry:u,detail:{of:"chartValue",series:t.id,valueIndex:o},style:{fill:P(n,l,a.id),stroke:m>0?P(c?.pointStrokeColor??n,l,a.id):void 0,strokeWidth:m>0?m:void 0,opacity:c?.pointOpacity,shadow:i}}}function hp(e){let{chart:t,plot:r,showLegend:o}=e,n=Math.max(9,p(t.fontSize,12)),i=t.legendPosition==="left"?"left":t.legendPosition==="right"?"right":"bottom",a=o&&i==="bottom"?48:0,s=Math.max(0,p(t.config?.cellGap,0));return{leaves:t.series,bands:pr(t.axisY),zones:t.config?.zones?.length?t.config.zones:mr,fontSize:n,smallFontSize:Math.max(8,n-1),legendPosition:i,legendHeight:a,gridWidth:Math.max(1,r.width),gridHeight:Math.max(1,r.height-a),cellGap:s,cellRadius:Math.max(0,p(t.config?.barCornerRadius,s)),headerHeight:Math.max(0,p(t.config?.headerHeight,20)),labelSize:Math.max(6,p(t.config?.tileLabelSize,Math.max(8,n-1))),valueSize:Math.max(6,p(t.config?.tileValueSize,Math.max(8,n-1))),labelPadding:Math.max(0,p(t.config?.tileLabelPadding,4))}}function Tr(e){return e.values[0]??0}function na(e,t){return e.color??fr(Tr(e),t.bands,t.zones)}var Ye=10,Vo=4,ia=2,aa=16,Mr=34;function gp(e,t){return t.zones.length===0||t.legendPosition==="bottom"&&t.legendHeight<=0?[]:t.legendPosition==="bottom"?zR(e,t):YR(e,t)}function sa(e,t){let r=e.bands[0],o=e.bands[e.bands.length-1];return o===r?0:(t-r)/(o-r)}function yp(e){let t=Math.max(0,e.bands.length-1);return e.zones.slice(0,t).map((o,n)=>({offset:sa(e,e.bands[n+1]??e.bands[e.bands.length-1])*100,color:o.color??q}))}function zR(e,t){let{chart:r,plot:o,bounds:n,nextOrder:i}=e,a=o.x,s=t.gridWidth,l=t.fontSize+2,d=o.y+t.gridHeight+aa,c=se({x:a,y:d,width:s,height:Ye}),u=yp(t),m={type:"rect",id:`chart-treemap-legend-bar-${r.id}`,order:i(),bounds:c,x:a,y:d,width:s,height:Ye,rx:3,zoneGradient:{axis:"y",min:r.axisY.min,max:r.axisY.max},style:{fill:u.length?{kind:"linear-gradient",angle:0,stops:u}:{kind:"solid",color:q},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},f=t.bands.flatMap((h,y)=>{let x=a+sa(t,h)*s,b={type:"path",id:`chart-treemap-legend-tick-${r.id}-${y}`,order:i(),bounds:n,d:`M ${x} ${d+Ye} L ${x} ${d+Ye+Vo}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},C=y===0,S=y===t.bands.length-1,v=C?"left":S?"right":"center",O=C?x:S?x-Mr:x-Mr/2,E=L({id:`chart-treemap-legend-tick-label-${r.id}-${y}`,order:i(),bounds:n,frame:{x:O,y:d+Ye+Vo+ia,width:Mr,height:l},text:Me(h),chart:r,align:v});return[b,E]});return[m,...f]}function YR(e,t){let{chart:r,plot:o,bounds:n,nextOrder:i}=e,a=t.legendPosition,s=o.y,l=t.gridHeight,d=a==="left"?o.x-aa-Ye:o.x+t.gridWidth+aa,c=se({x:d,y:s,width:Ye,height:l}),u=yp(t),m={type:"rect",id:`chart-treemap-legend-bar-${r.id}`,order:i(),bounds:c,x:d,y:s,width:Ye,height:l,rx:3,zoneGradient:{axis:"y",min:r.axisY.min,max:r.axisY.max},style:{fill:u.length?{kind:"linear-gradient",angle:270,stops:u}:{kind:"solid",color:q},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},f=a==="left"?d:d+Ye,h=a==="left"?f-Vo:f+Vo,y=a==="left"?h-ia-Mr:h+ia,x=t.bands.flatMap((b,C)=>{let S=s+(1-sa(t,b))*l,v={type:"path",id:`chart-treemap-legend-tick-${r.id}-${C}`,order:i(),bounds:n,d:`M ${f} ${S} L ${h} ${S}`,style:{fill:{kind:"none"},stroke:{kind:"solid",color:r.gridColor??"#e2e8f0"},strokeWidth:1}},O=L({id:`chart-treemap-legend-tick-label-${r.id}-${C}`,order:i(),bounds:n,frame:{x:y,y:S-t.fontSize/2,width:Mr,height:t.fontSize+2},text:Me(b),chart:r,align:a==="left"?"right":"left"});return[v,O]});return[m,...x]}function bp(e,t){let{tiles:r,headers:o}=UR(e,t),n=[],i=!!e.chart.config?.tileGradient;return r.forEach((a,s)=>{let l=r[s+1],d=l&&(a.item.leaf.group??"")===(l.item.leaf.group??""),c=i&&d?l:void 0;n.push(...jR(e,t,a,c))}),o.forEach((a,s)=>{n.push(...XR(e,t,a,s))}),n}function UR(e,t){if(!t.leaves.some(l=>l.group)){let l=t.leaves.map(c=>({leaf:c,value:Tr(c)}));return{tiles:Pr(l,{x:0,y:0,width:t.gridWidth,height:t.gridHeight}),headers:[]}}let r=[];for(let l of t.leaves){let d=l.group??"";r.includes(d)||r.push(d)}let o=r.map(l=>({key:l,label:l||"Other",value:t.leaves.filter(d=>(d.group??"")===l).reduce((d,c)=>d+Tr(c),0)})),n=Pr(o,{x:0,y:0,width:t.gridWidth,height:t.gridHeight}),i=t.cellGap,a=[],s=[];return n.forEach(l=>{let d=e.showLabels?Math.min(t.headerHeight,l.height):0;e.showLabels&&s.push({key:l.item.key,label:l.item.label,x:l.x+i/2,y:l.y,width:Math.max(0,l.width-i)});let u=t.leaves.filter(m=>(m.group??"")===l.item.key).map(m=>({leaf:m,value:Tr(m)}));a.push(...Pr(u,{x:l.x,y:l.y+d,width:l.width,height:Math.max(0,l.height-d)}))}),{tiles:a,headers:s}}function XR(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,l=n.config?.headerColor??n.gridColor??"#e2e8f0",d={type:"rect",id:`chart-treemap-header-${n.id}-${o}`,order:s(),bounds:a,x:i.x+r.x,y:i.y+r.y,width:r.width,height:t.headerHeight,rx:t.cellRadius,style:{fill:{kind:"solid",color:l}}},c=Math.max(8,Math.max(9,n.fontSize??12)-1),u={...L({id:`chart-treemap-header-label-${n.id}-${o}`,order:s(),bounds:a,frame:{x:i.x+r.x,y:i.y+r.y+(t.headerHeight-c)/2,width:r.width,height:c+2},text:r.label,chart:n,align:"center"}),fontSize:c,color:le(l)};return[d,u]}function jR(e,t,r,o){let n=na(r.item.leaf,t),i=o?na(o.item.leaf,t):void 0,a=[qR(e,t,r,n,i)];return e.showLabels&&r.width>=34&&r.height>=18&&a.push(...KR(e,t,r,n)),a}function qR(e,t,r,o,n){let{chart:i,plot:a,bounds:s,diagnostics:l,nextOrder:d}=e,c=t.cellGap,u=_(i.shadowStyle),m=u?`M ${a.x} ${a.y} H ${a.x+a.width} V ${a.y+a.height} H ${a.x} Z`:void 0,f=a.x+r.x+c/2,h=a.y+r.y+c/2,y=Math.max(0,r.width-c),x=Math.max(0,r.height-c),b="#94a3b8",C={minX:f,maxX:f+y,minY:h+x/2-y/2,maxY:h+x/2+y/2},S=n?{kind:"linear-gradient",angle:0,stops:[{offset:0,color:G(o,b)},{offset:100,color:G(n,b)}]}:P(o,l,i.id);return{type:"rect",id:`chart-treemap-tile-${i.id}-${r.item.leaf.id}`,order:d(),bounds:n?C:s,x:f,y:h,width:y,height:x,rx:t.cellRadius,style:{fill:S,stroke:{kind:"solid",color:i.config?.tileStrokeColor??i.gridColor??"#e2e8f0"},strokeWidth:p(i.config?.tileStrokeWidth,p(i.gridWidth,1)),shadow:u,clip:m?{type:"path",d:m}:void 0}}}function KR(e,t,r,o){let{chart:n,plot:i,bounds:a,nextOrder:s}=e,{leaf:l,value:d}=r.item,c=t.cellGap,u=t.labelPadding,m=Math.max(1,r.width-c-u*2),f=Math.max(1,r.height-c-u*1.5),h=i.x+r.x+c/2+u,y=i.y+r.y+c/2+u*.75,x=n.config?.tileTextColor??le(G(o,"#ffffff")),b=t.labelSize*1.2,C=Math.max(1,Math.floor(f/b)),S=Oe(l.label,m,t.labelSize).slice(0,C).map(U=>bo(U,m,t.labelSize,!0)),v={...L({id:`chart-treemap-label-${n.id}-${l.id}`,order:s(),bounds:a,frame:{x:h,y,width:m,height:f},text:l.label,chart:n}),lines:S,fontSize:t.labelSize,fontWeight:"bold",color:x},O=String(d),E=S.length*b+t.valueSize*1.2<=f+2&&We(O,t.valueSize,!1)<=m;if(n.config?.showTileValues===!1||!E)return[v];let F={...L({id:`chart-treemap-value-${n.id}-${l.id}`,order:s(),bounds:a,frame:{x:h,y:y+S.length*b,width:m,height:Math.max(1,f-S.length*b)},text:String(d),chart:n}),lines:[String(d)],fontSize:t.valueSize,color:x};return[v,F]}function xp(e){let t=hp(e),r=[];return r.push(...bp(e,t)),r.push(...gp(e,t)),r}var ZR={bar:Yu,boxplot:Ju,custom:rm,field:um,heatmap:bm,hexbin:e=>Pm(e),line:Bm,mekko:Wm,pie:e=>Qm(e),polarArea:e=>tp(e),radar:e=>ra(e),radial:e=>ra(e),radialBar:e=>dp(e),sankey:pp,scatter:fp,treemap:xp},QR=new Set(["radar","radial"]);function la(e){return QR.has(e)}function ut(e){return ZR[e.chart.chartType](e)}function Sp(e){let{chart:t,context:r,layout:o,nodes:n,renderOrder:i}=e,a=Io(t,o.plot,o.bounds,i.current());n.push(...a),i.advance(a.length),n.push(...ut(r));let s=_u({chart:t,plot:o.plot,bounds:o.bounds,order:i.current()});return n.push(...s),i.advance(s.length),n.push(...$u(t,o,i.current())),n}function JR(e,t){let r=de(e);return{of:"chartScale",valueScale:`${r?`${t.x},${t.width}`:`${t.y},${t.height}`},${e.axisY.min},${e.axisY.max}${r?",horizontal":""}`}}function ek(e,t){let{outerRadius:r,innerRadius:o,cornerRadius:n}=Mo(t.width,t.height,e.config?.innerRadius,e.config?.pieCornerRadius);return{of:"pieGeometry",pieGeometry:`${t.x+t.width/2},${t.y+t.height/2},${r},${o},${n}`}}function tk(e,t){let r=Math.max(1,Math.min(t.width,t.height)/2-4),o=Math.max(0,Math.min(p(e.config?.innerRadius,0),r-1)),n=Math.max(0,p(e.config?.pieCornerRadius,0));return{of:"pieGeometry",pieGeometry:`${t.x+t.width/2},${t.y+t.height/2},${r},${o},${n}`}}function rk(e,t){let r=(e.config?.categories?.filter(Boolean)??[]).length,o=Math.max(0,...e.series.map(c=>c.values.length)),n=No(r,o),i=Eo(t.width,t.height,p(e.fontSize,12),e.showAxisLabels!==!1),a=t.x+t.width/2,s=t.y+t.height/2,l=e.chartType==="radial"?1:0,d=e.config?.radarTension;return{of:"radarGeometry",radarGeometry:`${a},${s},${i},${e.axisY.min},${e.axisY.max},${n},${l}${d===void 0?"":`,${d}`}`}}function ok(e,t){return e.chartType==="pie"?ek(e,t):e.chartType==="polarArea"?tk(e,t):e.chartType==="radar"||e.chartType==="radial"?rk(e,t):wu.has(e.chartType)?JR(e,t):void 0}function Cp(e,t,r,o){let n={type:"rect",id:`chart-${e.id}`,order:o,bounds:t,x:e.x,y:e.y,width:e.width,height:e.height,rx:e.cornerRadius??12,style:{fill:P(e.fillColor??"#ffffff",[],e.id),stroke:{kind:"solid",color:e.strokeColor??"#475569"},strokeWidth:p(e.strokeWidth,1)}},i=ok(e,r);return i&&(n.detail=i),n}function Rp(e,t,r,o){let n=Cu({chart:e,plot:t.plot,bounds:t.bounds,order:r.current(),diagnostics:o});return r.advance(n.length),n}function kp(e,t,r,o){return{chart:e,plot:t.plot,bounds:t.bounds,diagnostics:o,showLabels:t.showLabels,showLegend:t.showLegend,stackedMode:e.config?.stacked&&e.config.stacked!=="none"?e.config.stacked:void 0,nextOrder:r.next}}var Wo=class{#e;#o=.01;constructor(t){this.#e=t}next=()=>this.#e+this.#o++;current(){return this.#e+this.#o}advance(t){this.#o+=t}};function wp(e,t,r,o){return e.title?[{...L({id:`chart-title-${e.id}`,order:o.next(),bounds:t,frame:{x:r.x,y:e.y+12,width:r.width,height:20},text:e.title,chart:e}),...e.titleColor?{color:e.titleColor}:{},fontWeight:e.titleWeight??"bold",fontSize:p(e.titleSize,Math.max(10,p(e.fontSize,12))+2),prop:hu}]:[]}function vp(e,t,r){let o=2e4+t,n=vu(e),i=new Wo(o),a=[Cp(e,n.bounds,n.plot,o)];return a.push(...Fu(e,n.bounds,i)),a.push(...wp(e,n.bounds,n.plot,i)),a.push(...Rp(e,n,i,r)),{chart:e,layout:n,nodes:a,renderOrder:i,context:kp(e,n,i,r)}}function Pp(e){return e.nodes.push(...ut(e.context)),e.nodes}function Lp(e){return e.nodes.push(...ut(e.context)),e.nodes}function Tp(e,t,r){if(e.isVisible===!1)return[];let o=vp(e,t,r);return la(e.chartType)?Pp(o):st(e)?Sp(o):Lp(o)}function da(e,t){return e.flatMap((r,o)=>J(Tp(r,o,t),"chart",r.id,r.chartType,r.title??"Chart"))}function nk(e){return e.length?{minX:Math.min(...e.map(t=>t.bounds.minX)),minY:Math.min(...e.map(t=>t.bounds.minY)),maxX:Math.max(...e.map(t=>t.bounds.maxX)),maxY:Math.max(...e.map(t=>t.bounds.maxY))}:ei}function ik(e){let t=new Map,r=(o,n,i)=>{n.forEach((a,s)=>{t.set(`${o}:${a.id}`,{rank:xd(a),sequence:Sd(a,i+s)})})};return r("frame",e.frames,0),r("swimlane",e.swimlanes,5e3),r("shape",e.shapes,1e4),r("widget",e.components??e.widgets??[],1e4),r("isometric",e.isometricObjects??[],15e3),r("link",e.links.map(o=>o.link),2e4),r("chart",e.charts??[],2e4),r("path",e.paths??[],3e4),r("dimension",e.dimensions??[],31e3),t}function ak(e,t){let r=ik(t);for(let o of e){let n=o.identity?r.get(`${o.identity.role}:${o.identity.id}`):void 0;o.rank=n?.rank??0,o.sequence=n?.sequence??0}}function ca(e,t={}){let{measureText:r}=t,o=[...e.diagnostics??[]],n=[...zd(e),...Fc(e.paths??[]),...da(e.charts??[],o),..._c(e.links,r),...au(e.shapes,o,r),...ni(e.components??e.widgets??[]),...Jd(e.isometricObjects??[]),...Xd(e.dimensions??[])];return ak(n,e),n.sort((i,a)=>(i.rank??0)-(a.rank??0)||(i.sequence??0)-(a.sequence??0)||i.order-a.order||(i.id<a.id?-1:i.id>a.id?1:0)),{nodes:n,bounds:nk(n),diagnostics:o}}var T=e=>String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),g=e=>Number(e.toFixed(3)).toString(),$e=e=>`sf-${e.replace(/[^A-Za-z0-9_.:-]/g,"-")}`;var zo=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;clip(t){if(!t.clip)return;let r=JSON.stringify(t.clip),o=this.ids.get(r);if(!o){o=$e(`${this.prefix}clip-${this.ids.size}`),this.ids.set(r,o);let n=t.clip,i=n.type==="path"?`<path clip-rule="evenodd" d="${T(n.d)}"/>`:`<rect x="${g(n.x)}" y="${g(n.y)}" width="${g(n.width)}" height="${g(n.height)}" rx="${g(n.rx)}"/>`;this.addDefinition(`<clipPath id="${o}">${i}</clipPath>`)}return o}};var Yo=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;filter(t,r,o){if(t.innerShadow)return this.define(r,t.innerShadow,dk);if(t.shadow){let n=t.shadow.blur*1.5+Math.max(Math.abs(t.shadow.dx),Math.abs(t.shadow.dy));return this.define(r,t.shadow,sk,o&&o>0?Math.max(.5,n/o):.5)}if(t.blur||t.saturate!==void 0)return this.define(r,{blur:t.blur??0,saturate:t.saturate??1},lk)}define(t,r,o,n=.5){let i=JSON.stringify(r)+o.name+n,a=this.ids.get(i);return a||(a=$e(`${this.prefix}shadow-${t}-${this.ids.size}`),this.ids.set(i,a),this.addDefinition(`<filter id="${a}" x="${g(-n*100)}%" y="${g(-n*100)}%" width="${g((1+n*2)*100)}%" height="${g((1+n*2)*100)}%">${o(r)}</filter>`)),a}};function sk(e){return`<feDropShadow dx="${g(e.dx)}" dy="${g(e.dy)}" stdDeviation="${g(e.blur/2)}" flood-color="${T(e.color)}" flood-opacity="${g(e.opacity)}"/>`}function lk(e){let t=e.blur>0?`<feGaussianBlur stdDeviation="${g(e.blur/2)}"/>`:"",r=e.saturate===1?"":`<feColorMatrix type="saturate" values="${g(e.saturate)}"/>`;return t+r}function dk(e){return['<feComponentTransfer in="SourceAlpha" result="sf-inverted-alpha">','<feFuncA type="table" tableValues="1 0"/>',"</feComponentTransfer>",`<feGaussianBlur in="sf-inverted-alpha" stdDeviation="${g(e.blur/2)}" result="sf-blurred"/>`,`<feOffset in="sf-blurred" dx="${g(e.dx)}" dy="${g(e.dy)}" result="sf-offset"/>`,`<feFlood flood-color="${T(e.color)}" flood-opacity="${g(e.opacity)}" result="sf-color"/>`,'<feComposite in="sf-color" in2="sf-offset" operator="in" result="sf-halo"/>','<feComposite in="sf-halo" in2="SourceGraphic" operator="in" result="sf-inset"/>','<feComposite in="sf-inset" in2="SourceGraphic" operator="over"/>'].join("")}function Mp(e,t,r,o){return{arrow:`<path d="M ${g(-t)} ${g(-t*.6)} L 0 0 L ${g(-t)} ${g(t*.6)}" fill="none" stroke="${r}" stroke-width="${g(o)}" stroke-linecap="round" stroke-linejoin="round"/>`,filled_arrow:`<path d="M ${g(-t)} ${g(-t*.6)} L 0 0 L ${g(-t)} ${g(t*.6)} Z" fill="${r}" stroke="${r}" stroke-width="${g(o*.5)}" stroke-linejoin="round"/>`,circle:`<circle cx="0" cy="0" r="${g(t*.5)}" fill="white" stroke="${r}" stroke-width="${g(o)}"/>`,filled_circle:`<circle cx="0" cy="0" r="${g(t*.5)}" fill="${r}"/>`,diamond:`<path d="M ${g(-t*.6)} 0 L 0 ${g(-t*.6)} L ${g(t*.6)} 0 L 0 ${g(t*.6)} Z" fill="white" stroke="${r}" stroke-width="${g(o)}"/>`,filled_diamond:`<path d="M ${g(-t*.6)} 0 L 0 ${g(-t*.6)} L ${g(t*.6)} 0 L 0 ${g(t*.6)} Z" fill="${r}" stroke="${r}" stroke-width="${g(o*.5)}"/>`,bar:`<path d="M 0 ${g(-t*.6)} V ${g(t*.6)}" stroke="${r}" stroke-width="${g(o)}" stroke-linecap="round"/>`,triangle:`<path d="M ${g(-t)} ${g(-t*.72)} L 0 0 L ${g(-t)} ${g(t*.72)} Z" fill="white" stroke="${r}" stroke-width="${g(o)}" stroke-linejoin="round"/>`,one:`<path d="M 0 ${g(-t*.62)} V ${g(t*.62)} M ${g(-t*.72)} ${g(-t*.62)} V ${g(t*.62)}" stroke="${r}" stroke-width="${g(o)}"/>`,zero_one:`<circle cx="${g(-t*.8)}" cy="0" r="${g(t*.38)}" fill="white" stroke="${r}" stroke-width="${g(o)}"/><path d="M 0 ${g(-t*.62)} V ${g(t*.62)}" stroke="${r}" stroke-width="${g(o)}"/>`,many:`<path d="M ${g(-t)} ${g(-t*.72)} L 0 0 M ${g(-t)} 0 L 0 0 M ${g(-t)} ${g(t*.72)} L 0 0" stroke="${r}" stroke-width="${g(o)}" stroke-linecap="round"/>`,one_many:`<path d="M ${g(-t)} ${g(-t*.72)} L 0 0 M ${g(-t)} 0 L 0 0 M ${g(-t)} ${g(t*.72)} L 0 0 M ${g(-t*1.45)} ${g(-t*.62)} V ${g(t*.62)}" stroke="${r}" stroke-width="${g(o)}" stroke-linecap="round"/>`,zero_many:`<circle cx="${g(-t*1.45)}" cy="0" r="${g(t*.38)}" fill="white" stroke="${r}" stroke-width="${g(o)}"/><path d="M ${g(-t)} ${g(-t*.72)} L 0 0 M ${g(-t)} 0 L 0 0 M ${g(-t)} ${g(t*.72)} L 0 0" stroke="${r}" stroke-width="${g(o)}" stroke-linecap="round"/>`}[e]}function ck(e,t,r){return Math.max(t*(e==="one_many"||e==="zero_many"?2:1.4),r*2)}function uk(e,t){return`id="${e}" markerWidth="${g(t*2)}" markerHeight="${g(t*2)}" viewBox="${g(-t)} ${g(-t)} ${g(t*2)} ${g(t*2)}" refX="0" refY="0" orient="auto-start-reverse" markerUnits="userSpaceOnUse" overflow="visible"`}var Uo=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;marker(t,r,o){if(!t||t==="none")return;let n=`${t}:${r}:${o}`,i=this.ids.get(n);if(i)return i;i=$e(`${this.prefix}marker-${t}-${this.ids.size}`),this.ids.set(n,i);let a=12+(o-2)*3,s=ck(t,a,o),l=uk(i,s);return this.addDefinition(`<marker ${l}>${Mp(t,a,T(r),o)}</marker>`),i}};function mk(e,t){let r=t.points.map((i,a)=>$e(`${e}-point-${a}`)),o=t.points.map((i,a)=>{let s=Math.max(0,Math.min(100,i.x)),l=Math.max(0,Math.min(100,i.y));return`<radialGradient id="${r[a]}" gradientUnits="objectBoundingBox" cx="${g(s)}%" cy="${g(l)}%" r="75%"><stop offset="0%" stop-color="${T(i.color)}" stop-opacity="1"/><stop offset="100%" stop-color="${T(i.color)}" stop-opacity="0"/></radialGradient>`}).join(""),n=t.points.map((i,a)=>`<rect width="1" height="1" fill="url(#${r[a]})"/>`).join("");return`${o}<pattern id="${e}" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" width="1" height="1"><rect width="1" height="1" fill="${T(t.points[0]?.color??"transparent")}"/>${n}</pattern>`}function pk(e,t,r){let o=t.angle*Math.PI/180,n=(r.minX+r.maxX)/2,i=(r.minY+r.maxY)/2,a=Math.max(r.maxX-r.minX,r.maxY-r.minY)/2,s=Math.cos(o)*a,l=Math.sin(o)*a,d=t.stops.map(c=>`<stop offset="${g(Math.max(0,Math.min(100,c.offset)))}%" stop-color="${T(c.color)}"/>`).join("");return`<linearGradient id="${e}" gradientUnits="userSpaceOnUse" x1="${g(n-s)}" y1="${g(i-l)}" x2="${g(n+s)}" y2="${g(i+l)}">${d}</linearGradient>`}var Xo=class{constructor(t,r){this.addDefinition=t;this.prefix=r}addDefinition;prefix;ids=new Map;paint(t,r,o){if(!t||t.kind==="none")return"none";if(t.kind==="solid")return t.color;let n=JSON.stringify(t)+JSON.stringify(o),i=this.ids.get(n);if(!i){i=$e(`${this.prefix}gradient-${r}-${this.ids.size}`),this.ids.set(n,i);let a=t.kind==="mesh-gradient"?mk(i,t):pk(i,t,o);this.addDefinition(a)}return`url(#${i})`}};var jo=class{constructor(t){this.prefix=t;let r=o=>{this.entries.push(o)};this.paints=new Xo(r,t),this.filters=new Yo(r,t),this.markers=new Uo(r,t),this.clips=new zo(r,t)}prefix;entries=[];paints;filters;markers;clips;elementId(t){return $e(`${this.prefix}${t}`)}paint(t,r,o){return this.paints.paint(t,r,o)}filter(t,r,o){return this.filters.filter(t,r,o)}marker(t,r,o){return this.markers.marker(t,r,o)}clip(t){return this.clips.clip(t)}};function fk(e,t){return{type:"path",id:`link-hit-${t}`,order:e.order,rank:e.rank,sequence:e.sequence,bounds:e.bounds,d:e.d,identity:{role:"link",id:t},style:{fill:{kind:"none"},stroke:{kind:"solid",color:"#000000"},strokeWidth:16,opacity:0,pointerEvents:"stroke"}}}function $p(e){return e.flatMap(t=>t.type==="path"&&t.identity?.role==="link"&&t.identity.primary?[t,fk(t,t.identity.id)]:[t])}function Ap(e,t){let r=e.stroke;return r?.kind==="solid"?r.color:r?.kind==="linear-gradient"&&r.stops.length?(t==="start"?r.stops.reduce((n,i)=>n.offset<=i.offset?n:i):r.stops.reduce((n,i)=>n.offset>=i.offset?n:i)).color:r?.kind==="mesh-gradient"&&r.points.length?r.points[0].color:"#64748b"}function Ep(e,t){let r=t.paint(e.style.stroke,`${e.id}-stroke`,e.bounds),o=t.paint(e.style.fill,`${e.id}-fill`,e.bounds),n=[`fill="${T(o)}"`,`stroke="${T(r)}"`];return hk(n,e.style),Np(n,e,t),yk(n,e,t),n.join(" ")}function hk(e,t){if(t.strokeWidth!==void 0&&e.push(`stroke-width="${g(t.strokeWidth)}"`),t.dash?.length&&e.push(`stroke-dasharray="${t.dash.map(g).join(" ")}"`),t.lineCap&&e.push(`stroke-linecap="${t.lineCap}"`),t.lineJoin&&e.push(`stroke-linejoin="${t.lineJoin}"`),t.opacity!==void 0&&e.push(`opacity="${g(t.opacity)}"`),t.pointerEvents&&e.push(`pointer-events="${t.pointerEvents}"`),t.transition&&t.transition>0){let r=`${g(t.transition)}ms ease`;e.push(`style="transition: x ${r}, y ${r}, width ${r}, height ${r}, cx ${r}, cy ${r}, rx ${r}, ry ${r}, fill ${r}, stroke ${r}, stroke-width ${r}, stroke-dasharray ${r}, opacity ${r}"`)}}function gk(e){let t=e;if(t.type==="ellipse"&&t.rx!==void 0&&t.ry!==void 0)return Math.min(t.rx,t.ry)*2;if(t.type==="rect"&&t.width!==void 0&&t.height!==void 0)return Math.min(t.width,t.height)}function Np(e,t,r){let o=r.filter(t.style,t.id,gk(t));o&&e.push(`filter="url(#${o})"`);let n=r.clip(t.style);n&&e.push(`clip-path="url(#${n})"`)}function yk(e,t,r){if(t.type!=="path")return;let o=r.marker(t.markerStart,Ap(t.style,"start"),t.style.strokeWidth??1),n=r.marker(t.markerEnd,Ap(t.style,"end"),t.style.strokeWidth??1);o&&e.push(`marker-start="url(#${o})"`),n&&e.push(`marker-end="url(#${n})"`)}function Ke(e,t){return e&&t?` transform="rotate(${g(e)} ${g(t.x)} ${g(t.y)})"`:""}function Op(e,t){let r=[];return e.style.opacity!==void 0&&r.push(`opacity="${g(e.style.opacity)}"`),e.style.pointerEvents&&r.push(`pointer-events="${e.style.pointerEvents}"`),Np(r,e,t),r.join(" ")}var Bp="data-sf-symbol-points",Ip="data-sf-symbol-tension",qo="data-sf-symbol-bounds",$r="data-sf-corner-radius",Dp="data-sf-square-corner",Ko="data-sf-path-points",Zo="data-sf-path-tension",Qo="data-sf-path-closed",Gp="data-sf-path-point",Jo="data-sf-isometric-size",en="data-sf-isometric-label-offset";function bk(e){return e.role==="shape"?"entity":e.role}function xk(e){return[`role="${T(e.role)}"`,e.checked===void 0?void 0:`aria-checked="${e.checked}"`,e.pressed===void 0?void 0:`aria-pressed="${e.pressed}"`,e.disabled?'aria-disabled="true"':void 0]}function Sk(e){return[`data-sf-role="${bk(e)}"`,`data-sf-id="${T(e.id)}"`,e.kind?`data-sf-kind="${T(e.kind)}"`:void 0,e.primary?'data-sf-primary="true"':void 0,e.parentFrameId?`data-sf-parent-frame="${T(e.parentFrameId)}"`:void 0,...e.aria?xk(e.aria):[]]}function Ck(e){switch(e.of){case"chartValue":return Rk(e);case"chartScale":return vk(e);case"chartSeries":return Pk(e);case"pieGeometry":return kk(e);case"radarGeometry":return wk(e);case"link":return Ak(e);case"frameBoundary":return Lk(e);case"symbolGeometry":return Tk(e);case"declaredBounds":return[ua(e.bounds)];case"pathGeometry":return Mk(e);case"isometricGeometry":return $k(e)}}function Rk(e){return[`data-sf-series="${T(e.series)}"`,`data-sf-value-index="${e.valueIndex}"`,e.mark?`data-sf-mark="${e.mark}"`:void 0,e.radius!==void 0?`data-sf-bar-radius="${g(e.radius)}"`:void 0,e.colorProp?`data-sf-color-prop="${T(e.colorProp)}"`:void 0,e.hasColorOverride?'data-sf-color-override="true"':void 0,e.pieStart!==void 0?`data-sf-pie-start="${g(e.pieStart)}"`:void 0,e.pieEnd!==void 0?`data-sf-pie-end="${g(e.pieEnd)}"`:void 0,e.pieValue!==void 0?`data-sf-pie-value="${g(e.pieValue)}"`:void 0]}function kk(e){return[`data-sf-pie-geometry="${e.pieGeometry}"`]}function wk(e){return[`data-sf-radar-geometry="${e.radarGeometry}"`]}function vk(e){return[`data-sf-value-scale="${e.valueScale}"`]}function Pk(e){return[`data-sf-series="${T(e.series)}"`,e.lineTension!==void 0?`data-sf-line-tension="${g(e.lineTension)}"`:void 0,e.mark?`data-sf-mark="${T(e.mark)}"`:void 0,e.pulled?'data-sf-label-pulled="true"':void 0,e.midAngle!==void 0?`data-sf-pie-mid-angle="${g(e.midAngle)}"`:void 0,e.wedgeRadius!==void 0?`data-sf-pie-wedge-radius="${g(e.wedgeRadius)}"`:void 0]}function Lk(e){return[`${$r}="${g(e.cornerRadius)}"`,`${Dp}="${e.squareCorner}"`]}function ua(e){return`${qo}="${g(e.x)},${g(e.y)},${g(e.width)},${g(e.height)}"`}function Tk(e){return[`${Bp}="${T(JSON.stringify(e.points))}"`,`${Ip}="${g(e.tension)}"`,ua(e.declaredBounds)]}function Mk(e){return[`${Ko}="${T(JSON.stringify(e.points))}"`,`${Zo}="${g(e.tension)}"`,`${Qo}="${e.closed}"`]}function $k(e){return[`${Jo}="${g(e.width)},${g(e.height)},${g(e.depth)}"`,`${$r}="${g(e.cornerRadius)}"`,ua(e.bounds),`${en}="${g(e.labelOffsetX)},${g(e.labelOffsetY)}"`]}function Ak(e){return[e.fromId?`data-sf-from="${T(e.fromId)}"`:void 0,e.toId?`data-sf-to="${T(e.toId)}"`:void 0,e.route?`data-sf-route="${e.route}"`:void 0,e.fromSide?`data-sf-from-side="${e.fromSide}"`:void 0,e.toSide?`data-sf-to-side="${e.toSide}"`:void 0,e.segments?`data-sf-link-segments="${T(JSON.stringify(e.segments))}"`:void 0,e.fromFace?`data-sf-from-face="${e.fromFace}"`:void 0,e.toFace?`data-sf-to-face="${e.toFace}"`:void 0,e.labelGap?'data-sf-label-gap="true"':void 0]}function mt(e){let t=e.identity?.label,r=[...e.identity?Sk(e.identity):[],...e.detail?Ck(e.detail):[],e.prop?`data-sf-prop="${T(e.prop)}"`:void 0,e.propKind?`data-sf-prop-kind="${e.propKind}"`:void 0,e.propSolidOnly?'data-sf-prop-solid-only="true"':void 0,e.mark?`data-sf-mark="${T(e.mark)}"`:void 0,e.zoneGradient?'data-sf-zone-gradient="true"':void 0,e.zoneGradient?`data-sf-zone-axis-min="${g(e.zoneGradient.min)}"`:void 0,e.zoneGradient?`data-sf-zone-axis-max="${g(e.zoneGradient.max)}"`:void 0,t?`tabindex="0" aria-label="${T(t.replace(/\s+/g," ").trim())}"`:void 0].filter(o=>o!==void 0);return r.length?` ${r.join(" ")}`:""}function Ek(e,t,r,o){if(!e.length)return`<tspan x="${g(t)}"${r} font-size="${o}"></tspan>`;let n=[];for(let i of e){let a=n[n.length-1];a&&a.bold===i.bold?a.text+=` ${i.text}`:(a&&(a.text+=" "),n.push({text:i.text,bold:i.bold}))}return n.map((i,a)=>`<tspan${a===0?` x="${g(t)}"${r}`:""} font-size="${o}" font-weight="${i.bold?"bold":"normal"}">${T(i.text)}</tspan>`).join("")}function _p(e,t){let r=Nk(e),o=`${g(e.fontSize)}px`,n=Bk(e,r,o),i=e.richLines?' xml:space="preserve"':"";return`<text id="${t.elementId(e.id)}"${mt(e)} x="${g(r.x)}" y="${g(r.firstY)}" font-family="${T(e.fontFamily)}" font-size="${o}" font-weight="${e.fontWeight}"${e.letterSpacing?` letter-spacing="${g(e.letterSpacing)}"`:""} fill="${T(e.color)}" text-anchor="${r.anchor}" data-sf-valign="${e.verticalAlign}" data-sf-line-height="${g(e.lineHeight)}"${i}${Ke(e.rotation,e.rotationCenter)}>${n}</text>`}function Nk(e){let t=e.fontSize*e.lineHeight,o=(e.richLines?e.richLines.length:e.lines.length)*t,n=e.align==="left"?e.x:e.align==="right"?e.x+e.width:e.x+e.width/2,i=e.align==="left"?"start":e.align==="right"?"end":"middle";return{x:n,firstY:Ok(e,o),linePx:t,anchor:i}}function Ok(e,t){return e.verticalAlign==="top"?e.y+e.fontSize:e.verticalAlign==="bottom"?e.y+e.height-t+e.fontSize:e.y+(e.height-t)/2+e.fontSize}function Bk(e,t,r){return e.richLines?e.richLines.map((o,n)=>Ek(o,t.x,Fp(n,t.linePx),r)).join(""):e.lines.map((o,n)=>Ik(o,n,t,r)).join("")}function Ik(e,t,r,o){return`<tspan x="${g(r.x)}" font-size="${o}"${Fp(t,r.linePx)}>${T(e)}</tspan>`}function Fp(e,t){return e?` dy="${g(t)}px"`:""}function Dk(e,t){let r=Ke(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2}),o=T(JSON.stringify(e.shader.parameters)),n=e.shader.surfacePadding??0,i=e.fillColor?` data-sf-shader-fill="${T(e.fillColor)}"`:"";return`<foreignObject id="${t.elementId(e.id)}"${mt(e)} data-sf-shader="${T(e.shader.program)}" data-sf-shader-name="${T(e.shader.name)}" data-sf-shader-params="${o}" data-sf-shader-mask="${e.mask}" data-sf-shader-padding="${g(n)}"${i} x="${g(e.x)}" y="${g(e.y)}" width="${g(e.width)}" height="${g(e.height)}"${r} pointer-events="${e.shader.program==="ruler"||e.identity?.role==="widget"?"all":"none"}"><canvas xmlns="http://www.w3.org/1999/xhtml" data-sf-shader-canvas="true" style="display:block;width:100%;height:100%;pointer-events:none"></canvas></foreignObject>`}function Gk(e,t){let r=t.componentStyle;return r.variant==="plain"?`<span xmlns="http://www.w3.org/1999/xhtml" data-sf-rolling-digit="true" style="position:relative;display:inline-block;width:.62em;height:1.1em;overflow:hidden"><span data-sf-rolling-current="true" style="position:absolute;inset:0;display:grid;place-items:center;color:${T(r.color)};font-weight:${T(r.fontWeight)};line-height:1">${T(e)}</span></span>`:`<span xmlns="http://www.w3.org/1999/xhtml" data-sf-rolling-digit="true" style="position:relative;display:inline-block;width:.72em;height:1.2em;overflow:hidden;border:1px solid ${T(r.divider)};border-radius:.09em;background:${T(r.surface)};box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -.16em .38em rgba(0,0,0,.12)"><span data-sf-rolling-current="true" style="position:absolute;inset:0;display:grid;place-items:center;color:${T(r.color)};font-weight:300;line-height:1">${T(e)}</span><span style="position:absolute;z-index:2;left:0;right:0;top:50%;height:1px;background:${T(r.divider)};pointer-events:none"></span></span>`}function _k(e,t){let r=Ke(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2}),o=e.componentStyle.fontSize>0?e.componentStyle.fontSize:Math.max(1,Math.min(e.width,e.height)*.28),n=e.label?`<span xmlns="http://www.w3.org/1999/xhtml" style="margin-bottom:.14em;color:${T(e.componentStyle.labelColor)};font-size:.16em;font-weight:600;letter-spacing:.24em;line-height:1">${T(e.label)}</span>`:"",i=[...e.value].map(s=>Gk(s,e)).join(""),a=T(JSON.stringify(e.componentStyle));return`<foreignObject id="${t.elementId(e.id)}"${mt(e)} data-sf-widget="rollingNumber" data-sf-widget-value="${T(e.value)}" data-sf-widget-digits="${e.digits??""}" data-sf-widget-duration="${g(e.duration)}" data-sf-widget-style="${a}" x="${g(e.x)}" y="${g(e.y)}" width="${g(e.width)}" height="${g(e.height)}"${r}><div xmlns="http://www.w3.org/1999/xhtml" style="width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:${T(e.componentStyle.fontFamily)};font-size:${g(o)}px">${n}<div data-sf-rolling-digits="true" aria-label="${T(e.value)}" style="display:flex;gap:${e.componentStyle.variant==="plain"?".02em":".1em"};font-size:1em">${i}</div></div></foreignObject>`}function Hp(e,t){if(e.type==="text")return _p(e,t);if(e.type==="shader-surface")return Dk(e,t);if(e.type==="rolling-number")return _k(e,t);if(e.type==="image")return`<image id="${t.elementId(e.id)}"${mt(e)} ${Op(e,t)} href="${T(e.href)}" x="${g(e.x)}" y="${g(e.y)}" width="${g(e.width)}" height="${g(e.height)}" preserveAspectRatio="xMidYMid slice"/>`;let r=`id="${t.elementId(e.id)}"${mt(e)} ${Ep(e,t)}`;return e.type==="rect"?`<rect ${r} x="${g(e.x)}" y="${g(e.y)}" width="${g(e.width)}" height="${g(e.height)}"${e.rx?` rx="${g(e.rx)}"`:""}${Ke(e.rotation,{x:e.x+e.width/2,y:e.y+e.height/2})}/>`:e.type==="ellipse"?`<ellipse ${r} cx="${g(e.cx)}" cy="${g(e.cy)}" rx="${g(e.rx)}" ry="${g(e.ry)}"${Ke(e.rotation,{x:e.cx,y:e.cy})}/>`:`<path ${r} d="${T(e.d)}"${Ke(e.rotation,e.rotationCenter)}/>`}function Vp(e,t={}){let r=t.padding??16,o=Math.max(1,e.bounds.maxX-e.bounds.minX+r*2),n=Math.max(1,e.bounds.maxY-e.bounds.minY+r*2),i=`${g(e.bounds.minX-r)} ${g(e.bounds.minY-r)} ${g(o)} ${g(n)}`,a=new jo(t.idPrefix?`${t.idPrefix}-`:""),l=(t.linkHitAreas?$p(e.nodes):e.nodes).map(u=>Hp(u,a)).join(`
|
|
14
14
|
`);return{svg:`${t.includeXmlDeclaration===!1?"":`<?xml version="1.0" encoding="UTF-8"?>
|
|
15
|
-
`}<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
15
|
+
`}<svg xmlns="http://www.w3.org/2000/svg" width="${g(o)}px" height="${g(n)}px" viewBox="${i}" role="img" data-sf-contract="${1}">
|
|
16
16
|
<defs>${a.entries.join("")}</defs>
|
|
17
17
|
${l}
|
|
18
|
-
</svg>`,width:n,height:o,diagnostics:e.diagnostics}}function Gn(e,t={}){return qm(e,t)}function $R(e,t={}){let r=Bi(e,{measureText:t.measureText}),{svg:n,width:o,height:i,diagnostics:a}=Gn(r,t);return{svg:n,width:o,height:i,diagnostics:a,scene:r}}var MR=50,He=new Map,Km=Lr();function AR(e){let t=Lr();t!==Km&&(He.clear(),Km=t);let r=He.get(e);if(r)return He.delete(e),He.set(e,r),r;let n=Bi(Ao(e));if(He.set(e,n),He.size>MR){let o=He.keys().next().value;o!==void 0&&He.delete(o)}return n}function Dn(e,t={}){if(t.measureText)return $R(Ao(e),t);let r=AR(e),{svg:n,width:o,height:i,diagnostics:a}=Gn(r,t);return{svg:n,width:o,height:i,diagnostics:a,scene:r}}var Gi="http://www.w3.org/1999/xhtml",_n=(e,t)=>{Object.assign(e.style,t)};function Fn(e,t,r){let n=e.createElementNS(Gi,"span");return n.setAttribute("data-sf-rolling-current","true"),n.textContent=t,_n(n,{position:"absolute",inset:"0",display:"grid",placeItems:"center",color:r.color,fontWeight:r.fontWeight,lineHeight:"1"}),n}function ER(e,t,r){let n=e.createElementNS(Gi,"span");if(n.setAttribute("data-sf-rolling-digit","true"),r.variant==="plain")return _n(n,{position:"relative",display:"inline-block",width:"0.62em",height:"1.1em",overflow:"hidden"}),n.appendChild(Fn(e,t,r)),n;_n(n,{position:"relative",display:"inline-block",width:"0.72em",height:"1.2em",overflow:"hidden",border:`1px solid ${r.divider}`,borderRadius:"0.09em",background:r.surface,boxShadow:"inset 0 1px 0 rgba(255,255,255,0.7), inset 0 -0.16em 0.38em rgba(0,0,0,0.12)"}),n.appendChild(Fn(e,t,r));let o=e.createElementNS(Gi,"span");return _n(o,{position:"absolute",zIndex:"2",left:"0",right:"0",top:"50%",height:"1px",background:r.divider,pointerEvents:"none"}),n.appendChild(o),n}function Hn(e,t,r){return r===0||typeof e.animate!="function"?null:e.animate(t,{duration:r,easing:"cubic-bezier(0.22, 1, 0.36, 1)",fill:"forwards"})}function NR(e,t,r,n){let o=e.querySelector("[data-sf-rolling-current]");o?.removeAttribute("data-sf-rolling-current");let i=Fn(e.ownerDocument,t,r);i.style.opacity="0",e.insertBefore(i,e.lastElementChild??null);let a={opacity:0,filter:"blur(0.025em)",transform:"scale(0.985)"},s={opacity:1,filter:"blur(0)",transform:"scale(1)"},l=Hn(i,[a,s],n),d=o?Hn(o,[s,a],n):null,c=()=>{o?.remove(),i.style.opacity="1"};l?l.finished.then(c,c):(d?.cancel(),c())}function OR(e,t,r,n){if(r.motion==="fade"){NR(e,t,r,n);return}let o=e.querySelector("[data-sf-rolling-current]");o?.removeAttribute("data-sf-rolling-current");let i=Fn(e.ownerDocument,t,r);i.style.transform="translateY(100%)",i.style.opacity="0.25",e.insertBefore(i,e.lastElementChild);let a=Hn(i,[{transform:"translateY(100%)",opacity:.25},{transform:"translateY(0)",opacity:1}],n),s=o?Hn(o,[{transform:"translateY(0)",opacity:1},{transform:"translateY(-100%)",opacity:.25}],n):null,l=()=>{o?.remove(),i.style.transform="translateY(0)",i.style.opacity="1"};a?a.finished.then(l,l):(s?.cancel(),l())}function Zm(e,t,r,n,o){if(t.length!==r.length){e.replaceChildren(...[...r].map(a=>ER(e.ownerDocument,a,n))),e.setAttribute("aria-label",r);return}let i=[...e.querySelectorAll("[data-sf-rolling-digit]")];[...r].forEach((a,s)=>{t[s]!==a&&OR(i[s],a,n,o)}),e.setAttribute("aria-label",r)}function Di(e,t){return[...e.querySelectorAll('foreignObject[data-sf-widget="rollingNumber"]')].find(r=>r.getAttribute("data-sf-id")===t)}var BR=140;function IR(e){return e.querySelector("[data-sf-rolling-digits]")??void 0}function Qm(e){let t=e.getAttribute("data-sf-widget-style");if(!t)return j;try{return{...j,...JSON.parse(t)}}catch{return j}}function GR(e){if(!e)return;let t=Number(e);return Number.isInteger(t)&&t>0?t:void 0}function DR(e){let t=Number(e.getAttribute("data-sf-widget-duration"));return!Number.isFinite(t)||t<0?420:e.ownerDocument.defaultView?.matchMedia?.("(prefers-reduced-motion: reduce)").matches?0:t}function Vn(e,t,r){let n=IR(e);if(!n)return!1;let o=e.getAttribute("data-sf-widget-value")??"",i=Wt(t,GR(e.getAttribute("data-sf-widget-digits")));return o===i||(Zm(n,o,i,Qm(e),r?DR(e):0),e.setAttribute("data-sf-widget-value",i)),!0}function _i(e){let t=new Map,r=new Map,n=new Map;return{setValue(o,i){let a=Di(e,o);if(!a)return!1;if(t.set(o,i),Qm(a).motion!=="fade")return Vn(a,i,!0);let s=Date.now(),l=(r.get(o)??0)+BR-s;return l<=0?(r.set(o,s),Vn(a,i,!0)):(n.has(o)||n.set(o,setTimeout(()=>{n.delete(o),r.set(o,Date.now());let d=Di(e,o),c=t.get(o);d&&c!==void 0&&Vn(d,c,!0)},l)),!0)},refresh(){for(let[o,i]of t){let a=Di(e,o);a&&Vn(a,i,!1)}},clearValues(){for(let o of n.values())clearTimeout(o);n.clear(),t.clear()},destroy(){for(let o of n.values())clearTimeout(o);n.clear(),t.clear()}}}var Jm=new WeakMap,ep=new WeakMap,tp=new WeakMap;function Vi(e){return Math.min(1,Math.max(0,Number.isFinite(e)?e:0))}function rp(e){try{return JSON.parse(e.getAttribute("data-sf-shader-params")??"{}")}catch{return{}}}function Fi(e,t){return Number(e)>0?Number(e):t}function np(e,t){let r=rp(e),n=Number(r.min)||0,o=Number.isFinite(Number(r.max))&&r.max!==void 0?Number(r.max):100;return Vi(o===n?0:(t-n)/(o-n))}function Hi(e,t,r){let n=e.getAttribute("transform")??"",o=n===ep.get(e)?Jm.get(e)??"":n;Jm.set(e,o);let i=`translate(${t} ${r}) ${o}`.trim();ep.set(e,i),e.setAttribute("transform",i)}function op(e){let t=/^#([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let r=parseInt(t[1],16);return[r>>16&255,r>>8&255,r&255]}var _R=[255,255,255];function FR(e,t,r){let n=tp.get(e)??e.getAttribute("fill")??"";tp.set(e,n);let o=op(n);if(!o)return;let i=o.map((s,l)=>Math.round(s+(r[l]-s)*t)),a=`rgb(${i[0]}, ${i[1]}, ${i[2]})`;e.style.fill=a;for(let s of e.querySelectorAll("tspan"))s.style.fill=a}function ip(e,t){let r=new Map;for(let n of e.querySelectorAll('foreignObject[data-sf-shader="ruler"]')){let o=rp(n),i=(typeof o.peak=="string"?op(o.peak):null)??_R,a=n.getAttribute("data-sf-id")??"",s=Number(n.getAttribute("x")),l=Number(n.getAttribute("y")),d=Number(n.getAttribute("width")),c=Number(n.getAttribute("height")),u=o.axis==="horizontal",p=Vi(t(a)??Number(o.progress)),f=Fi(o.inset,.05),g=Fi(o.line,.7),b=u?d:c,x=u?c:d,C=f+(1-2*f)*p,L=o.dent===void 0?1:Number(o.dent),v=(L<0?1:L)*.16*x,M=typeof o.knob=="string"?o.knob:"";if(M){let be=[...e.querySelectorAll(`[data-sf-id="${CSS.escape(M)}"]`)],Oe=be.find(ie=>ie.hasAttribute("data-sf-primary"));if(Oe?.getBBox){Hi(Oe,0,0);let ie=Oe.getBBox(),Vt=(u?ie.height:ie.width)/2;r.set(a,Vt/x);let vr=(o.gap===void 0?.04:Number(o.gap))*x,wa=g*x-v+Vt+vr,va=u?{x:s+d*C,y:l+wa}:{x:s+wa,y:l+c*(1-C)},bf=va.x-(ie.x+ie.width/2),yf=va.y-(ie.y+ie.height/2);for(let xf of be)Hi(xf,bf,yf)}}let H=Number(o.min)||0,I=Number.isFinite(Number(o.max))&&o.max!==void 0?Number(o.max):100,V=Fi(o.spread,.07)*b,U=f*b,ne=(1-2*f)*b,Ne=U+ne*p;for(let be of e.querySelectorAll(`text[data-sf-id="${CSS.escape(a)}"]`)){let Oe=Number(be.textContent);if(!Number.isFinite(Oe)||I===H)continue;let ie=U+ne*Vi((Oe-H)/(I-H)),Vt=Math.exp(-(((ie-Ne)/V)**2)),vr=v*.4*Vt;Hi(be,u?0:-vr,u?-vr:0),FR(be,Vt,i)}}return r}var ap=new Set(["viewbox","width","height"]);function sp(e,t){for(let r of Array.from(e.attributes))ap.has(r.name.toLowerCase())||e.removeAttribute(r.name);for(let r of Array.from(t.attributes))ap.has(r.name.toLowerCase())||e.setAttribute(r.name,r.value)}function lp(e,t,r){let n=[],o=[],i=[];for(let a of r){let s=e.has(a),l=t.has(a);l&&!s?n.push(a):s&&!l?o.push(a):s&&l&&i.push(a)}return{added:n,removed:o,changed:i}}function dp(e,t){let r=e.querySelector(":scope > defs"),n=t.querySelector(":scope > defs");return n?(r?r.replaceWith(n):e.insertBefore(n,e.firstChild),n):(r?.remove(),r)}function HR(e,t){let r=!1;for(let n of Array.from(e.attributes))t.hasAttribute(n.name)||(e.removeAttribute(n.name),r=!0);for(let n of Array.from(t.attributes))e.getAttribute(n.name)!==n.value&&(e.setAttribute(n.name,n.value),r=!0);return r}function up(e,t){let r=Array.from(e.childNodes),n=Array.from(t.childNodes);if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){let i=r[o],a=n[o];if(i.nodeType!==a.nodeType)return!1;if(i.nodeType===Node.TEXT_NODE){if(i.textContent!==a.textContent)return!1;continue}if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i,l=a;if(s.tagName!==l.tagName||s.attributes.length!==l.attributes.length)return!1;for(let d of Array.from(s.attributes))if(l.getAttribute(d.name)!==d.value)return!1;if(!up(s,l))return!1}return!0}function cp(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}function mp(e,t){let r=t.hasAttribute("data-sf-widget")&&(e.getAttribute("data-sf-widget-style")!==t.getAttribute("data-sf-widget-style")||e.getAttribute("data-sf-widget-value")!==t.getAttribute("data-sf-widget-value")),n=HR(e,t),o=!1;return r&&(o=!0,cp(e,t)),t.tagName.toLowerCase()==="text"&&!up(e,t)&&(o=!0,cp(e,t)),n||o}function Sr(e){return e.getAttribute("data-sf-id")??e.id}function VR(e){let t=new Map;for(let r of e.querySelectorAll(":scope > [id]"))t.set(r.id,r);return t}function WR(e,t,r){return e&&e.tagName===t.tagName?(mp(e,t)&&r(Sr(t)),e):(e?.remove(),r(Sr(t)),t)}function zR(e,t,r){let n=r?r.nextSibling:e.firstChild;n!==t&&e.insertBefore(t,n)}function pp(e,t){let r=dp(e,t),n=VR(e),o=new Set,i=new Set;for(let c of n.values())i.add(Sr(c));let a=new Set,s=new Set,l=c=>{s.add(c)},d=r;for(let c of t.querySelectorAll(":scope > [id]")){o.add(c.id),a.add(Sr(c));let u=WR(n.get(c.id),c,l);zR(e,u,d),d=u}for(let[c,u]of n)o.has(c)||(s.add(Sr(u)),u.remove());return lp(i,a,s)}function fp(e,t){return sp(e,t),pp(e,t)}function Wi(e){let r=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(r.nodeName.toLowerCase()!=="svg")throw new Error("viewer: source did not parse to an <svg> root");return r}function Cr(e){let t=(e.getAttribute("viewBox")??"0 0 100 100").split(/\s+/).map(Number);return{x:t[0],y:t[1],w:t[2],h:t[3]}}var Wn=class{#e;#n;#t;constructor(t,r){this.#e=t,this.#n=r,this.#t={...r}}apply(){this.#e.setAttribute("viewBox",`${this.#t.x} ${this.#t.y} ${this.#t.w} ${this.#t.h}`)}fit(){this.#t={...this.#n},this.apply()}get(){return{...this.#t}}setNatural(t){this.#n=t}#r(t,r){let n=this.#e.getScreenCTM();if(!n)return null;let o=new DOMPoint(t,r).matrixTransform(n.inverse());return{x:o.x,y:o.y}}zoomBy(t,r,n){let o=this.#e.getBoundingClientRect();if(o.width<=0||o.height<=0)return;let i=r??o.left+o.width/2,a=n??o.top+o.height/2,s=this.#r(i,a);this.#t={...this.#t,w:this.#t.w/t,h:this.#t.h/t},this.apply();let l=s?this.#r(i,a):null;s&&l&&(this.#t.x+=s.x-l.x,this.#t.y+=s.y-l.y),this.apply()}panBy(t,r){let n=this.#e.getScreenCTM()?.a,o=n&&n>0?n:1;this.#t.x-=t/o,this.#t.y-=r/o,this.apply()}};function hp(e,t){let r=Wi(t);r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.display="block",r.style.touchAction="none";let n=new Wn(r,Cr(r));return e.appendChild(r),n.apply(),{svg:r,fit:()=>n.fit(),getViewport:()=>n.get(),zoomBy:(o,i,a)=>n.zoomBy(o,i,a),panBy:(o,i)=>n.panBy(o,i),updateContent(o){let i=Wi(o),a=fp(r,i);return n.setNatural(Cr(i)),a},destroy(){r.remove()}}}var zn=class{handlers=new Map;on(t,r){let n=this.handlers.get(t)??new Set;this.handlers.set(t,n);let o=r;return n.add(o),()=>n.delete(o)}emit(t,r){let n=this.handlers.get(t);if(n!==void 0)for(let o of[...n])try{o(r)}catch(i){queueMicrotask(()=>{throw i})}}clear(){this.handlers.clear()}};var Yn=class extends zn{};function YR(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function UR(e,t){return new Promise((r,n)=>{let o=e.defaultView?.Image;if(!o){n(new Error("viewer export: Image is unavailable in this environment."));return}let i=new o;i.onload=()=>r(i),i.onerror=()=>n(new Error("viewer export: the SVG snapshot could not be decoded.")),i.src=t})}function jR(e,t,r){return new Promise((n,o)=>{e.toBlob(i=>{i?n(i):o(new Error(`viewer export: ${t} encoding failed.`))},t,r)})}async function zi(e,t,r={}){let n=Cr(e),o=YR(r.scale,1),i=Math.max(1,Math.round(n.w*o)),a=Math.max(1,Math.round(n.h*o)),s=e.ownerDocument.createElement("canvas");s.width=i,s.height=a;let l=s.getContext("2d");if(!l)throw new Error("viewer export: a 2D canvas context is unavailable.");let d=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(d);try{let u=await UR(e.ownerDocument,c),p=r.backgroundColor??(r.format==="jpeg"?"#ffffff":void 0);p&&(l.fillStyle=p,l.fillRect(0,0,i,a)),l.drawImage(u,0,0,i,a);let f=r.format==="jpeg"?"image/jpeg":"image/png";return await jR(s,f,r.quality)}finally{URL.revokeObjectURL(c)}}var Yi="http://www.w3.org/2000/svg";function XR(e,t){for(let r of e.attributes)r.name.startsWith("data-sf-shader")||t.setAttribute(r.name,r.value)}function qR(e){for(let t of e.querySelectorAll('[data-sf-selection-overlay], [data-sf-change-overlay], [id*="link-hit-"]'))t.remove()}function Rr(e,t,r){let n=e.createElementNS(Yi,t);for(let[o,i]of Object.entries(r))n.setAttribute(o,String(i));return n}function KR(e){try{return{...j,...JSON.parse(e.getAttribute("data-sf-widget-style")??"{}")}}catch{return j}}function ZR(e,t,r=0){let n=r>0?r:Math.max(1,Math.min(e.width,e.height)*.28);return{size:n,plain:t,cellWidth:t?n*.62:n*.72+2,cellHeight:t?n*1.1:n*1.2+2,gap:n*(t?.02:.1)}}function QR(e,t,r){let n=Rr(e,"g",{"font-family":r.fontFamily});for(let o of["id","transform","data-sf-id","data-sf-role","data-sf-kind"]){let i=t.getAttribute(o);i!==null&&n.setAttribute(o,i)}return n}function JR(e,t,r,n,o,i){let a=Rr(e,"text",{x:r.x+r.width/2,y:n-o.size*.14,"text-anchor":"middle","font-size":o.size*.16,"font-weight":600,"letter-spacing":o.size*.04,fill:i.labelColor});return a.textContent=t,a}function ek(e,t,r,n,o,i){let{size:a,plain:s,cellWidth:l,cellHeight:d}=o,c=[];s||c.push(Rr(e,"rect",{x:r+.5,y:n+.5,width:l-1,height:d-1,rx:a*.09,fill:i.surface,stroke:i.divider,"stroke-width":1}));let u=Rr(e,"text",{x:r+l/2,y:n+d/2,"text-anchor":"middle","dominant-baseline":"central","font-size":a,"font-weight":i.fontWeight,fill:i.color});return u.textContent=t,c.push(u),s||c.push(Rr(e,"line",{x1:r+.5,x2:r+l-.5,y1:n+d/2,y2:n+d/2,stroke:i.divider,"stroke-width":1})),c}function tk(e){let t=e.ownerDocument;for(let r of e.querySelectorAll('foreignObject[data-sf-widget="rollingNumber"]')){let n={x:Number(r.getAttribute("x")),y:Number(r.getAttribute("y")),width:Number(r.getAttribute("width")),height:Number(r.getAttribute("height"))},o=r.getAttribute("data-sf-widget-value")??"",i=KR(r),a=r.querySelector("div > span:not([data-sf-rolling-digit])")?.textContent??"",s=ZR(n,i.variant==="plain",i.fontSize),l=a?s.size*.3:0,d=o.length*s.cellWidth+Math.max(0,o.length-1)*s.gap,c=n.x+(n.width-d)/2,u=n.y+(n.height-(l+s.cellHeight))/2+l,p=QR(t,r,i);a&&p.appendChild(JR(t,a,n,u,s,i)),[...o].forEach((f,g)=>{let b=c+g*(s.cellWidth+s.gap);for(let x of ek(t,f,b,u,s,i))p.appendChild(x)}),r.replaceWith(p)}}function gp(e,t){let r=e.cloneNode(!0);qR(r),[...r.querySelectorAll("foreignObject[data-sf-shader]")].forEach((i,a)=>{let s=t[a];if(!s){i.remove();return}let l=r.ownerDocument.createElementNS(Yi,"image");XR(i,l),l.setAttribute("href",s),l.setAttribute("preserveAspectRatio","none"),i.replaceWith(l)}),tk(r);let o=(r.getAttribute("viewBox")??"").split(/\s+/).map(Number);return o.length===4&&o.every(Number.isFinite)&&(r.setAttribute("width",String(o[2])),r.setAttribute("height",String(o[3]))),r.setAttribute("xmlns",Yi),r}function Ui(e,t){return new XMLSerializer().serializeToString(gp(e,t))}var bp="http://www.w3.org/2000/svg";var ji=new Set([]);function D(e,t){return e.createElementNS(bp,t)}function Pe(e,t,r){let n=D(e,"g");n.setAttribute("data-sf-selection-overlay",t),n.setAttribute("pointer-events","none");let o=r.getAttribute("transform");return o&&n.setAttribute("transform",o),n}var rk="data-sf-change-overlay",kr="#f59e0b",Un=1300,Xi=400;function yp(e,t,r){let n=D(e,"g");n.setAttribute(rk,t),n.setAttribute("pointer-events","none");let o=r.getAttribute("transform");return o&&n.setAttribute("transform",o),n}function qi(e,t){t||e.animate([{opacity:1},{opacity:0}],{duration:Un,easing:"linear",fill:"forwards"})}function Ki(e,t,r,n=kr){let o=t.getBBox(),i=yp(e,r,t),a=D(e,"rect");return a.setAttribute("x",String(o.x-4)),a.setAttribute("y",String(o.y-4)),a.setAttribute("width",String(o.width+8)),a.setAttribute("height",String(o.height+8)),a.setAttribute("fill","none"),a.setAttribute("stroke",n),a.setAttribute("stroke-width","3"),i.appendChild(a),i}function Zi(e,t,r,n=kr){let o=yp(e,r,t),i=D(e,"path");i.setAttribute("d",t.getAttribute("d")??""),i.setAttribute("fill","none"),i.setAttribute("stroke",n);let a=Number(t.getAttribute("stroke-width"))||2;return i.setAttribute("stroke-width",String(a+6)),i.setAttribute("stroke-linecap","round"),i.setAttribute("opacity","0.6"),o.appendChild(i),o}function _t(e){return e.ctrlKey||e.metaKey}function jn(e){let t=/data-sf-contract="(\d+)"/.exec(e);return t?Number(t[1]):null}function Xn(e){return e===1}var nk=new Set(["entity","link","frame","swimlane","chart","path","widget","isometric"]);function ok(e){return e==="entity"?"shape":e}function Ve(e){let t=e.getAttribute(An);if(!t)return null;let[r,n,o,i]=t.split(",").map(Number);return Number.isFinite(r)&&Number.isFinite(n)&&Number.isFinite(o)&&Number.isFinite(i)?{x:r,y:n,width:o,height:i}:null}function Qi(e){let t=e.getAttribute(En);if(!t)return null;let r;try{r=JSON.parse(t)}catch{return null}return!Array.isArray(r)||!r.every(n=>Array.isArray(n)&&n.length===2)?null:{points:r,tension:Number(e.getAttribute(Nn))||0,closed:e.getAttribute(On)==="true"}}function Ji(e){let t=e.getAttribute(Bn);if(t===null)return null;let[r,n,o]=t.split(",").map(Number);if(!Number.isFinite(r)||!Number.isFinite(n)||!Number.isFinite(o))return null;let i=Number(e.getAttribute(xr))||0,[a,s]=(e.getAttribute(In)??"0,0").split(",").map(Number);return{width:r,height:n,depth:o,cornerRadius:i,bounds:Ve(e),labelOffsetX:Number.isFinite(a)?a:0,labelOffsetY:Number.isFinite(s)?s:0}}function We(e){let t=e?.closest("[data-sf-id]");if(!t)return null;let r=t.getAttribute("data-sf-id"),n=t.getAttribute("data-sf-role");return!r||!n||!nk.has(n)?null:{role:ok(n),id:r,kind:t.getAttribute("data-sf-kind")??void 0,label:t.getAttribute("aria-label")??void 0}}function it(e,t,r){let n=e.querySelectorAll(`[data-sf-id="${CSS.escape(t)}"]`);for(let o of n)if(r(o))return o;return null}var at=e=>e.hasAttribute("data-sf-primary");function ea(e){let t=e.getBoundingClientRect(),{width:r,height:n}=e.viewBox.baseVal;if(t.width<=0||r<=0)return 1;let o=t.width/r;return t.height>0&&n>0?Math.min(o,t.height/n):o}function A(e,t){return t/ea(e)}var qn=6,ik=14,ta=3,ra=1.5;function ak(e,t){let r=e.x+e.width/2,n=e.y+e.height/2;return[[r,e.y-t,"top"],[e.x+e.width+t,n,"right"],[r,e.y+e.height+t,"bottom"],[e.x-t,n,"left"]]}function sk(e,t,r){return`M ${e-r} ${t} L ${e+r} ${t} M ${e} ${t-r} L ${e} ${t+r}`}var xp="#e8e8e8",Sp="#ccc",lk="#9b42df",dk="#7c2fb5",ck=1.2;function na(e,t,r,n,o,i){let a=D(e,"circle");return a.setAttribute("cx",String(t)),a.setAttribute("cy",String(r)),a.setAttribute("r",String(n)),a.setAttribute("fill",xp),a.setAttribute("stroke",Sp),a.setAttribute("stroke-width",String(o)),a.setAttribute("data-sf-quick-duplicate",i),a.style.pointerEvents="auto",a.style.cursor="pointer",a.style.transition="r 120ms ease, fill 120ms ease, stroke 120ms ease",a.addEventListener("pointerenter",()=>{a.setAttribute("r",String(n*ck)),a.setAttribute("fill",lk),a.setAttribute("stroke",dk),a.nextElementSibling?.setAttribute("stroke","#ffffff")}),a.addEventListener("pointerleave",()=>{a.setAttribute("r",String(n)),a.setAttribute("fill",xp),a.setAttribute("stroke",Sp),a.nextElementSibling?.setAttribute("stroke","#999")}),a}function oa(e,t,r,n,o){let i=D(e,"path");return i.setAttribute("d",sk(t,r,n)),i.setAttribute("stroke","#999"),i.setAttribute("stroke-width",String(o)),i.setAttribute("stroke-linecap","round"),i}function Kn(e,t,r,n){let o=Pe(e,r,t),i=A(n,qn),a=i+A(n,ik),s=A(n,ta),l=A(n,ra),d=Ve(t)??t.getBBox();for(let[c,u,p]of ak(d,a))o.append(na(e,c,u,i,l,p),oa(e,c,u,s,l));return o}var sa="#9b42df",uk=2,mk=3.25,pk=14,Rp=34,fk=10.5,hk=8.5;function Cp(e){let t=Math.hypot(e.x,e.y)||1;return{x:e.x/t,y:e.y/t}}function gk(e){let r=`<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 26 26"><g transform="rotate(${Math.atan2(e.y,e.x)*180/Math.PI} 13 13)" stroke-linejoin="round" stroke-linecap="round"><line x1="4" y1="13" x2="22" y2="13" stroke="white" stroke-width="4.5"/><line x1="4" y1="13" x2="22" y2="13" stroke="black" stroke-width="1.6"/><path d="M4 13 L9.5 8.5 L9.5 17.5 Z" fill="black" stroke="white" stroke-width="1.5"/><path d="M22 13 L16.5 8.5 L16.5 17.5 Z" fill="black" stroke="white" stroke-width="1.5"/></g></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(r)}") 13 13, pointer`}function la(e){let t=e.reduce((r,n)=>({x:r.x+n.x,y:r.y+n.y}),{x:0,y:0});return{x:t.x/e.length,y:t.y/e.length}}var da="data-sf-iso-halo";function bk(e,t,r,n){let o=D(e,"g");o.setAttribute("data-sf-resize-handle",`iso-${t}`),o.style.cursor=gk(r);let i=D(e,"line");i.setAttribute("stroke","transparent"),i.setAttribute("stroke-width",String(A(n,pk))),i.setAttribute("stroke-linecap","round"),i.style.pointerEvents="stroke",o.appendChild(i);let a=D(e,"line");a.setAttribute("stroke",sa),a.setAttribute("stroke-width",String(A(n,mk))),a.setAttribute("stroke-linecap","round"),a.style.pointerEvents="none",o.appendChild(a);let s=D(e,"polygon");return s.setAttribute("fill",sa),s.style.pointerEvents="none",o.appendChild(s),{group:o,hit:i,shaft:a,head:s}}function yk(e,t,r,n){let o=A(n,Rp),i=A(n,fk),a=A(n,hk),s={x:t.x+r.x*o,y:t.y+r.y*o},l={x:t.x+r.x*(o-i),y:t.y+r.y*(o-i)},d={x:-r.y,y:r.x},c={x:l.x+d.x*a/2,y:l.y+d.y*a/2},u={x:l.x-d.x*a/2,y:l.y-d.y*a/2};e.hit.setAttribute("x1",String(t.x)),e.hit.setAttribute("y1",String(t.y)),e.hit.setAttribute("x2",String(s.x)),e.hit.setAttribute("y2",String(s.y)),e.shaft.setAttribute("x1",String(t.x)),e.shaft.setAttribute("y1",String(t.y)),e.shaft.setAttribute("x2",String(l.x)),e.shaft.setAttribute("y2",String(l.y)),e.head.setAttribute("points",`${s.x},${s.y} ${c.x},${c.y} ${u.x},${u.y}`)}function ia(e,t,r,n,o){let i=bk(e,n,r,o);return yk(i,t,r,o),i.group}function Zn(e){let t=Ye(e),r=t.top[0],n=t.top[1],o=t.top[3],i=t.front[2];return{width:{origin:la(t.right),direction:Cp({x:n.x-r.x,y:n.y-r.y})},height:{origin:i,direction:{x:0,y:1}},depth:{origin:la(t.front),direction:Cp({x:o.x-r.x,y:o.y-r.y})}}}var xk=Rp+qn+10;function aa(e,t){return{x:t.x*2-e.x,y:t.y*2-e.y}}function ca(e){let t=Ye(e),r=Zn(e),n=la([t.top[0],t.top[1],t.top[2],t.top[3],t.front[2],t.front[3],t.right[2]]);return{"iso-width-pos":r.width,"iso-width-neg":{origin:aa(r.width.origin,n),direction:{x:-r.width.direction.x,y:-r.width.direction.y}},"iso-depth-pos":r.depth,"iso-depth-neg":{origin:aa(r.depth.origin,n),direction:{x:-r.depth.direction.x,y:-r.depth.direction.y}},"iso-height-pos":r.height,"iso-height-neg":{origin:aa(r.height.origin,n),direction:{x:-r.height.direction.x,y:-r.height.direction.y}}}}var ua="data-sf-iso-duplicate-bubbles",Sk=["iso-height-neg","iso-depth-pos","iso-width-pos"];function ma(e,t,r){let n=D(e,"g");n.setAttribute(ua,"");let o=A(r,qn),i=A(r,xk),a=A(r,ta),s=A(r,ra),l=ca(t);for(let d of Sk){let{origin:c,direction:u}=l[d],p=c.x+u.x*i,f=c.y+u.y*i;n.append(na(e,p,f,o,s,d),oa(e,p,f,a,s))}return n}function Qn(e,t,r,n){let o=Ve(t)??t.getBBox(),i=Ji(t),a=Pe(e,r,t),s=D(e,"path");s.setAttribute(da,""),s.setAttribute("d",t.getAttribute("d")??""),s.setAttribute("fill","none"),s.setAttribute("stroke",sa);let l=Number(t.getAttribute("stroke-width"))||2;s.setAttribute("stroke-width",String(l+A(n,uk))),s.setAttribute("opacity","0.6"),s.style.pointerEvents="none",a.appendChild(s);let d=Zn({x:o.x,y:o.y,width:i?.width??o.width,height:i?.height??o.height,depth:i?.depth??0});return a.appendChild(ia(e,d.width.origin,d.width.direction,"width",n)),a.appendChild(ia(e,d.height.origin,d.height.direction,"height",n)),a.appendChild(ia(e,d.depth.origin,d.depth.direction,"depth",n)),a.appendChild(ma(e,{x:o.x,y:o.y,width:i?.width??o.width,height:i?.height??o.height,depth:i?.depth??0},n)),a}var pa="#9b42df",Ck=4,Rk=5,wp=1.5;function kk(e,t,r){let n=D(e,"path");n.setAttribute("d",t.getAttribute("d")??""),n.setAttribute("fill","none"),n.setAttribute("stroke",pa);let o=Number(t.getAttribute("stroke-width"))||2;return n.setAttribute("stroke-width",String(o+A(r,Ck))),n.setAttribute("stroke-linecap","round"),n.setAttribute("opacity","0.5"),n}function kp(e,t,r,n,o){let i=t.getPointAtLength(r),a=D(e,"circle");return a.setAttribute("cx",String(i.x)),a.setAttribute("cy",String(i.y)),a.setAttribute("r",String(A(o,Rk))),a.setAttribute("fill",pa),a.setAttribute("stroke","white"),a.setAttribute("stroke-width",String(A(o,wp))),a.setAttribute("data-sf-link-endpoint",n),a.style.pointerEvents="auto",a.style.cursor="crosshair",a}var wk=22,vk=8;function Pk(e){try{return JSON.parse(e.getAttribute("data-sf-link-segments")??"[]")}catch{return[]}}function Lk(e,t,r){let n=[];return Pk(t).forEach((o,i)=>{if(!o.movable)return;let a=Math.abs(o.bx-o.ax)>Math.abs(o.by-o.ay),s=A(r,wk),l=A(r,vk),d=a?s:l,c=a?l:s,u=D(e,"rect");u.setAttribute("x",String((o.ax+o.bx)/2-d/2)),u.setAttribute("y",String((o.ay+o.by)/2-c/2)),u.setAttribute("width",String(d)),u.setAttribute("height",String(c)),u.setAttribute("rx",String(l/2)),u.setAttribute("fill","white"),u.setAttribute("stroke",pa),u.setAttribute("stroke-width",String(A(r,wp))),u.setAttribute("data-sf-link-segment",String(i)),u.setAttribute("data-sf-link-segment-axis",a?"y":"x"),u.style.pointerEvents="auto",u.style.cursor=a?"ns-resize":"ew-resize",n.push(u)}),n}function Jn(e,t,r,n){let o=Pe(e,r,t),i=t.getTotalLength();return o.append(kk(e,t,n),...Lk(e,t,n),kp(e,t,0,"from",n),kp(e,t,i,"to",n)),o}var vp="#9b42df",Tk=4,$k=5,Mk=1.5,fa="data-sf-path-halo";function Ak(e,t,r){let n=D(e,"path");n.setAttribute(fa,""),n.setAttribute("d",t.getAttribute("d")??""),n.setAttribute("fill","none"),n.setAttribute("stroke",vp);let o=Number(t.getAttribute("stroke-width"))||2;return n.setAttribute("stroke-width",String(o+A(r,Tk))),n.setAttribute("stroke-linecap","round"),n.setAttribute("opacity","0.5"),n}function Ek(e,t,r,n,o){let i=D(e,"circle");return i.setAttribute("cx",String(t)),i.setAttribute("cy",String(r)),i.setAttribute("r",String(A(o,$k))),i.setAttribute("fill","#ffffff"),i.setAttribute("stroke",vp),i.setAttribute("stroke-width",String(A(o,Mk))),i.setAttribute(Ym,String(n)),i.style.pointerEvents="auto",i.style.cursor="move",i}function eo(e,t,r,n){let o=Pe(e,r,t);o.appendChild(Ak(e,t,n));let i=Qi(t);for(let[a,[s,l]]of(i?.points??[]).entries())o.appendChild(Ek(e,s,l,a,n));return o}var Nk=6,Ok=1,Bk="#992dff",Ik={"top-left":"nwse-resize",top:"ns-resize","top-right":"nesw-resize",right:"ew-resize","bottom-right":"nwse-resize",bottom:"ns-resize","bottom-left":"nesw-resize",left:"ew-resize"};function ha(e){let t=e.x+e.width/2,r=e.y+e.height/2;return[[e.x,e.y,"top-left"],[t,e.y,"top"],[e.x+e.width,e.y,"top-right"],[e.x+e.width,r,"right"],[e.x+e.width,e.y+e.height,"bottom-right"],[t,e.y+e.height,"bottom"],[e.x,e.y+e.height,"bottom-left"],[e.x,r,"left"]]}var Gk=new Set(["top","bottom"]);function Pp(e,t,r,n=!1){let o=A(r,Nk),i=A(r,Ok);return(n?ha(t).filter(([,,s])=>!Gk.has(s)):ha(t)).map(([s,l,d])=>{let c=D(e,"rect");return c.setAttribute("x",String(s-o/2)),c.setAttribute("y",String(l-o/2)),c.setAttribute("width",String(o)),c.setAttribute("height",String(o)),c.setAttribute("fill","white"),c.setAttribute("stroke",Bk),c.setAttribute("stroke-width",String(i)),c.setAttribute("data-sf-resize-handle",d),c.style.pointerEvents="auto",c.style.cursor=n?"ew-resize":Ik[d],c})}var Dk="#9b42df",_k=3,Fk=1;function to(e,t,r,n,o=!1){let i=Ve(t)??t.getBBox(),a=Pe(e,r,t),s=A(n,Fk),l=D(e,"rect");return l.setAttribute("x",String(i.x-s)),l.setAttribute("y",String(i.y-s)),l.setAttribute("width",String(i.width+s*2)),l.setAttribute("height",String(i.height+s*2)),l.setAttribute("fill","none"),l.setAttribute("stroke",Dk),l.setAttribute("stroke-width",String(A(n,_k))),a.appendChild(l),a.append(...Pp(e,i,n,o)),a}function Lp(e){let t=new Map;return{flash:(n,o=kr)=>{let i=[...new Set(n)];if(i.length===0)return;let a=e.ownerDocument,s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;for(let l of i){let d=it(e,l,at);if(!d)continue;let c=t.get(l);c&&clearTimeout(c);for(let f of e.querySelectorAll(`[data-sf-change-overlay="${CSS.escape(l)}"]`))f.remove();let u=d.getAttribute("data-sf-role")==="link"?Zi(a,d,l,o):Ki(a,d,l,o);e.appendChild(u),qi(u,s);let p=s?Xi:Un;t.set(l,setTimeout(()=>{u.remove(),t.delete(l)},p))}},destroy(){for(let n of t.values())clearTimeout(n);t.clear()}}}function Tp(e,t,r){let n=o=>{r&&o.key==="Escape"&&t.dispatch({type:"clear"})};return e.addEventListener("keydown",n),()=>{e.removeEventListener("keydown",n)}}function ga(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,meta:e.metaKey,alt:e.altKey}}function $p(e,t){switch(t.type){case"clear":return new Set;case"set":return new Set(t.ids);case"select":return new Set([t.id]);case"add":return new Set([...e,t.id]);case"toggle":{let r=new Set(e);return r.has(t.id)?r.delete(t.id):r.add(t.id),r}}}function Mp(e,t){return t.ctrl||t.meta||t.shift?{type:"toggle",id:e}:{type:"select",id:e}}var zk="[data-sf-resize-handle], [data-sf-link-endpoint], [data-sf-link-segment], [data-sf-quick-duplicate]";function ba(e){return!!e?.closest(zk)}var ro=class{#e;#n;#t;#r;constructor(t,r,n,o){this.#e=t,this.#n=r,this.#t=n,this.#r=o}hover(t){let r=We(t.target);this.#n.emit("ownerHover",r?{diagramId:this.#t,owner:r,modifiers:ga(t)}:{diagramId:this.#t,owner:null})}select(t){let r=t.target,n=We(r);if(!n){this.#o(r);return}this.#i(n,t)}#o(t){ba(t)||this.#r.dispatch({type:"clear"})}#i(t,r){this.#r.remember(t);let n=ga(r);this.#r.dispatch(Mp(t.id,n)),this.#n.emit(t.role==="link"?"linkClick":"canvasObjectClick",{diagramId:this.#t,owner:t,modifiers:n});let o=it(this.#e,t.id,at);o&&!o.hasAttribute("tabindex")&&o.setAttribute("tabindex","-1"),o?.focus({preventScroll:!0})}};var Yk=4,ya=class{#e;#n;#t;#r=null;constructor(t,r,n){this.#e=t,this.#n=r,this.#t=n}bind(){return this.#e.svg.addEventListener("pointerdown",this.#o),this.#e.svg.addEventListener("pointermove",this.#i),this.#e.svg.addEventListener("pointerup",this.#s),()=>this.#l()}#o=t=>{let r=t.target,n=!!We(r)||ba(r);this.#r={x:t.clientX,y:t.clientY,moved:!1,panable:_t(t)||!n}};#i=t=>{this.#a(t)||this.#t&&this.#n.hover(t)};#s=t=>{let r=this.#r?.moved??!1;this.#r=null,!r&&this.#t&&this.#n.select(t)};#a(t){return!this.#r||(!this.#r.moved&&Math.hypot(t.clientX-this.#r.x,t.clientY-this.#r.y)>Yk&&(this.#r.moved=!0),!this.#r.moved)?!1:(this.#r.panable&&_t(t)&&this.#e.panBy(t.movementX,t.movementY),!0)}#l(){this.#e.svg.removeEventListener("pointerdown",this.#o),this.#e.svg.removeEventListener("pointermove",this.#i),this.#e.svg.removeEventListener("pointerup",this.#s)}};function Ap(e){let{display:t,emitter:r,diagramId:n,selection:o,selectable:i}=e,a=new ro(t.svg,r,n,o);return new ya(t,a,i).bind()}function xa(e,t,r){for(let o of e.querySelectorAll("[data-sf-selection-overlay]"))o.remove();let n=e.ownerDocument;for(let o of t){let i=it(e,o,at);if(!i)continue;let a=r.get(o),s=a?.role==="link"?Jn(n,i,o,e):a?.role==="path"?eo(n,i,o,e):a?.role==="isometric"?Qn(n,i,o,e):to(n,i,o,e,a?ji.has(a.role):!1);e.appendChild(s),a?.role==="shape"&&t.size===1&&e.appendChild(Kn(n,i,o,e))}}var no=class{#e;#n;#t;#r=new Map;#o=new Set;constructor(t,r,n){this.#e=t,this.#n=r,this.#t=n}getOwners(){return[...this.#o].map(t=>this.#r.get(t)).filter(t=>!!t)}remember(t){this.#r.set(t.id,t)}dispatch(t){this.#o=$p(this.#o,t),xa(this.#e,this.#o,this.#r),this.#n.emit("selectionChange",{diagramId:this.#t,selection:this.getOwners()})}repaint(){this.#o.size>0&&xa(this.#e,this.#o,this.#r)}selectIds(t){for(let r of t){let n=this.#e.querySelector(`[data-sf-id="${CSS.escape(r)}"]`),o=We(n);o&&this.remember(o)}this.dispatch({type:"set",ids:t})}};function Ep(e,t){let r=n=>{_t(n)&&(n.preventDefault(),e.zoomBy(n.deltaY<0?1.1:.9090909090909091,n.clientX,n.clientY),t.repaint())};return e.svg.addEventListener("wheel",r,{passive:!1}),()=>{e.svg.removeEventListener("wheel",r)}}function Np(e,t,r,n={}){let o=n.selectable??!0,i=new no(e.svg,t,r),a=Ap({display:e,emitter:t,diagramId:r,selection:i,selectable:o}),s=Ep(e,i),l=Tp(e.svg,i,o),d=Lp(e.svg);return{getSelection:()=>i.getOwners(),select:c=>i.selectIds(c),repaint:()=>i.repaint(),flashChanged:(c,u)=>d.flash(c,u),destroy(){a(),s(),l(),d.destroy()}}}var Sa={numbers:{intensity:.85,speed:.18,progress:-1,boost:0,dent:-1,day:-1,light:135,gloss:.15,depth:.4,rim:.2},colors:{color:[.08,.02,.22],accent:[.58,.31,1],hot:[1,.45,.82]}};var Uk=`
|
|
18
|
+
</svg>`,width:o,height:n,diagnostics:e.diagnostics}}function tn(e,t={}){return Vp(e,t)}function Hk(e,t={}){let r=ca(e,{measureText:t.measureText}),{svg:o,width:n,height:i,diagnostics:a}=tn(r,t);return{svg:o,width:n,height:i,diagnostics:a,scene:r}}var Vk=50,Ze=new Map,Wp=_r();function Wk(e){let t=_r();t!==Wp&&(Ze.clear(),Wp=t);let r=Ze.get(e);if(r)return Ze.delete(e),Ze.set(e,r),r;let o=ca(Jn(e));if(Ze.set(e,o),Ze.size>Vk){let n=Ze.keys().next().value;n!==void 0&&Ze.delete(n)}return o}function rn(e,t={}){if(t.measureText)return Hk(Jn(e),t);let r=Wk(e),{svg:o,width:n,height:i,diagnostics:a}=tn(r,t);return{svg:o,width:n,height:i,diagnostics:a,scene:r}}var ma="http://www.w3.org/1999/xhtml",on=(e,t)=>{Object.assign(e.style,t)};function nn(e,t,r){let o=e.createElementNS(ma,"span");return o.setAttribute("data-sf-rolling-current","true"),o.textContent=t,on(o,{position:"absolute",inset:"0",display:"grid",placeItems:"center",color:r.color,fontWeight:r.fontWeight,lineHeight:"1"}),o}function zk(e,t,r){let o=e.createElementNS(ma,"span");if(o.setAttribute("data-sf-rolling-digit","true"),r.variant==="plain")return on(o,{position:"relative",display:"inline-block",width:"0.62em",height:"1.1em",overflow:"hidden"}),o.appendChild(nn(e,t,r)),o;on(o,{position:"relative",display:"inline-block",width:"0.72em",height:"1.2em",overflow:"hidden",border:`1px solid ${r.divider}`,borderRadius:"0.09em",background:r.surface,boxShadow:"inset 0 1px 0 rgba(255,255,255,0.7), inset 0 -0.16em 0.38em rgba(0,0,0,0.12)"}),o.appendChild(nn(e,t,r));let n=e.createElementNS(ma,"span");return on(n,{position:"absolute",zIndex:"2",left:"0",right:"0",top:"50%",height:"1px",background:r.divider,pointerEvents:"none"}),o.appendChild(n),o}function an(e,t,r){return r===0||typeof e.animate!="function"?null:e.animate(t,{duration:r,easing:"cubic-bezier(0.22, 1, 0.36, 1)",fill:"forwards"})}function Yk(e,t,r,o){let n=e.querySelector("[data-sf-rolling-current]");n?.removeAttribute("data-sf-rolling-current");let i=nn(e.ownerDocument,t,r);i.style.opacity="0",e.insertBefore(i,e.lastElementChild??null);let a={opacity:0,filter:"blur(0.025em)",transform:"scale(0.985)"},s={opacity:1,filter:"blur(0)",transform:"scale(1)"},l=an(i,[a,s],o),d=n?an(n,[s,a],o):null,c=()=>{n?.remove(),i.style.opacity="1"};l?l.finished.then(c,c):(d?.cancel(),c())}function Uk(e,t,r,o){if(r.motion==="fade"){Yk(e,t,r,o);return}let n=e.querySelector("[data-sf-rolling-current]");n?.removeAttribute("data-sf-rolling-current");let i=nn(e.ownerDocument,t,r);i.style.transform="translateY(100%)",i.style.opacity="0.25",e.insertBefore(i,e.lastElementChild);let a=an(i,[{transform:"translateY(100%)",opacity:.25},{transform:"translateY(0)",opacity:1}],o),s=n?an(n,[{transform:"translateY(0)",opacity:1},{transform:"translateY(-100%)",opacity:.25}],o):null,l=()=>{n?.remove(),i.style.transform="translateY(0)",i.style.opacity="1"};a?a.finished.then(l,l):(s?.cancel(),l())}function zp(e,t,r,o,n){if(t.length!==r.length){e.replaceChildren(...[...r].map(a=>zk(e.ownerDocument,a,o))),e.setAttribute("aria-label",r);return}let i=[...e.querySelectorAll("[data-sf-rolling-digit]")];[...r].forEach((a,s)=>{t[s]!==a&&Uk(i[s],a,o,n)}),e.setAttribute("aria-label",r)}function pa(e,t){return[...e.querySelectorAll('foreignObject[data-sf-widget="rollingNumber"]')].find(r=>r.getAttribute("data-sf-id")===t)}var Xk=140;function jk(e){return e.querySelector("[data-sf-rolling-digits]")??void 0}function Yp(e){let t=e.getAttribute("data-sf-widget-style");if(!t)return Q;try{return{...Q,...JSON.parse(t)}}catch{return Q}}function qk(e){if(!e)return;let t=Number(e);return Number.isInteger(t)&&t>0?t:void 0}function Kk(e){let t=Number(e.getAttribute("data-sf-widget-duration"));return!Number.isFinite(t)||t<0?420:e.ownerDocument.defaultView?.matchMedia?.("(prefers-reduced-motion: reduce)").matches?0:t}function sn(e,t,r){let o=jk(e);if(!o)return!1;let n=e.getAttribute("data-sf-widget-value")??"",i=Qt(t,qk(e.getAttribute("data-sf-widget-digits")));return n===i||(zp(o,n,i,Yp(e),r?Kk(e):0),e.setAttribute("data-sf-widget-value",i)),!0}function fa(e){let t=new Map,r=new Map,o=new Map;return{setValue(n,i){let a=pa(e,n);if(!a)return!1;if(t.set(n,i),Yp(a).motion!=="fade")return sn(a,i,!0);let s=Date.now(),l=(r.get(n)??0)+Xk-s;return l<=0?(r.set(n,s),sn(a,i,!0)):(o.has(n)||o.set(n,setTimeout(()=>{o.delete(n),r.set(n,Date.now());let d=pa(e,n),c=t.get(n);d&&c!==void 0&&sn(d,c,!0)},l)),!0)},refresh(){for(let[n,i]of t){let a=pa(e,n);a&&sn(a,i,!1)}},clearValues(){for(let n of o.values())clearTimeout(n);o.clear(),t.clear()},destroy(){for(let n of o.values())clearTimeout(n);o.clear(),t.clear()}}}var Up=new WeakMap,Xp=new WeakMap,jp=new WeakMap;function ya(e){return Math.min(1,Math.max(0,Number.isFinite(e)?e:0))}function qp(e){try{return JSON.parse(e.getAttribute("data-sf-shader-params")??"{}")}catch{return{}}}function ha(e,t){return Number(e)>0?Number(e):t}function Kp(e,t){let r=qp(e),o=Number(r.min)||0,n=Number.isFinite(Number(r.max))&&r.max!==void 0?Number(r.max):100;return ya(n===o?0:(t-o)/(n-o))}function ga(e,t,r){let o=e.getAttribute("transform")??"",n=o===Xp.get(e)?Up.get(e)??"":o;Up.set(e,n);let i=`translate(${t} ${r}) ${n}`.trim();Xp.set(e,i),e.setAttribute("transform",i)}function Zp(e){let t=/^#([0-9a-f]{6})$/i.exec(e.trim());if(!t)return null;let r=parseInt(t[1],16);return[r>>16&255,r>>8&255,r&255]}var Zk=[255,255,255];function Qk(e,t,r){let o=jp.get(e)??e.getAttribute("fill")??"";jp.set(e,o);let n=Zp(o);if(!n)return;let i=n.map((s,l)=>Math.round(s+(r[l]-s)*t)),a=`rgb(${i[0]}, ${i[1]}, ${i[2]})`;e.style.fill=a;for(let s of e.querySelectorAll("tspan"))s.style.fill=a}function Qp(e,t){let r=new Map;for(let o of e.querySelectorAll('foreignObject[data-sf-shader="ruler"]')){let n=qp(o),i=(typeof n.peak=="string"?Zp(n.peak):null)??Zk,a=o.getAttribute("data-sf-id")??"",s=Number(o.getAttribute("x")),l=Number(o.getAttribute("y")),d=Number(o.getAttribute("width")),c=Number(o.getAttribute("height")),u=n.axis==="horizontal",m=ya(t(a)??Number(n.progress)),f=ha(n.inset,.05),h=ha(n.line,.7),y=u?d:c,x=u?c:d,b=f+(1-2*f)*m,C=n.dent===void 0?1:Number(n.dent),S=(C<0?1:C)*.16*x,v=typeof n.knob=="string"?n.knob:"";if(v){let ae=[...e.querySelectorAll(`[data-sf-id="${CSS.escape(v)}"]`)],we=ae.find(te=>te.hasAttribute("data-sf-primary"));if(we?.getBBox){ga(we,0,0);let te=we.getBBox(),Ue=(u?te.height:te.width)/2;r.set(a,Ue/x);let Dr=(n.gap===void 0?.04:Number(n.gap))*x,Ja=h*x-S+Ue+Dr,es=u?{x:s+d*b,y:l+Ja}:{x:s+Ja,y:l+c*(1-b)},fh=es.x-(te.x+te.width/2),hh=es.y-(te.y+te.height/2);for(let gh of ae)ga(gh,fh,hh)}}let O=Number(n.min)||0,E=Number.isFinite(Number(n.max))&&n.max!==void 0?Number(n.max):100,F=ha(n.spread,.07)*y,U=f*y,K=(1-2*f)*y,ke=U+K*m;for(let ae of e.querySelectorAll(`text[data-sf-id="${CSS.escape(a)}"]`)){let we=Number(ae.textContent);if(!Number.isFinite(we)||E===O)continue;let te=U+K*ya((we-O)/(E-O)),Ue=Math.exp(-(((te-ke)/F)**2)),Dr=S*.4*Ue;ga(ae,u?0:-Dr,u?-Dr:0),Qk(ae,Ue,i)}}return r}var Jp=new Set(["viewbox","width","height"]);function ef(e,t){for(let r of Array.from(e.attributes))Jp.has(r.name.toLowerCase())||e.removeAttribute(r.name);for(let r of Array.from(t.attributes))Jp.has(r.name.toLowerCase())||e.setAttribute(r.name,r.value)}function tf(e,t,r){let o=[],n=[],i=[];for(let a of r){let s=e.has(a),l=t.has(a);l&&!s?o.push(a):s&&!l?n.push(a):s&&l&&i.push(a)}return{added:o,removed:n,changed:i}}function rf(e,t){let r=e.querySelector(":scope > defs"),o=t.querySelector(":scope > defs");return o?(r?r.replaceWith(o):e.insertBefore(o,e.firstChild),o):(r?.remove(),r)}function Jk(e,t){let r=!1;for(let o of Array.from(e.attributes))t.hasAttribute(o.name)||(e.removeAttribute(o.name),r=!0);for(let o of Array.from(t.attributes))e.getAttribute(o.name)!==o.value&&(e.setAttribute(o.name,o.value),r=!0);return r}function nf(e,t){let r=Array.from(e.childNodes),o=Array.from(t.childNodes);if(r.length!==o.length)return!1;for(let n=0;n<r.length;n++){let i=r[n],a=o[n];if(i.nodeType!==a.nodeType)return!1;if(i.nodeType===Node.TEXT_NODE){if(i.textContent!==a.textContent)return!1;continue}if(i.nodeType!==Node.ELEMENT_NODE)continue;let s=i,l=a;if(s.tagName!==l.tagName||s.attributes.length!==l.attributes.length)return!1;for(let d of Array.from(s.attributes))if(l.getAttribute(d.name)!==d.value)return!1;if(!nf(s,l))return!1}return!0}function of(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}function af(e,t){let r=t.hasAttribute("data-sf-widget")&&(e.getAttribute("data-sf-widget-style")!==t.getAttribute("data-sf-widget-style")||e.getAttribute("data-sf-widget-value")!==t.getAttribute("data-sf-widget-value")),o=Jk(e,t),n=!1;return r&&(n=!0,of(e,t)),t.tagName.toLowerCase()==="text"&&!nf(e,t)&&(n=!0,of(e,t)),o||n}function Ar(e){return e.getAttribute("data-sf-id")??e.id}function ew(e){let t=new Map;for(let r of e.querySelectorAll(":scope > [id]"))t.set(r.id,r);return t}function tw(e,t,r){return e&&e.tagName===t.tagName?(af(e,t)&&r(Ar(t)),e):(e?.remove(),r(Ar(t)),t)}function rw(e,t,r){let o=r?r.nextSibling:e.firstChild;o!==t&&e.insertBefore(t,o)}function sf(e,t){let r=rf(e,t),o=ew(e),n=new Set,i=new Set;for(let c of o.values())i.add(Ar(c));let a=new Set,s=new Set,l=c=>{s.add(c)},d=r;for(let c of t.querySelectorAll(":scope > [id]")){n.add(c.id),a.add(Ar(c));let u=tw(o.get(c.id),c,l);rw(e,u,d),d=u}for(let[c,u]of o)n.has(c)||(s.add(Ar(u)),u.remove());return tf(i,a,s)}function lf(e,t){return ef(e,t),sf(e,t)}function ba(e){let r=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(r.nodeName.toLowerCase()!=="svg")throw new Error("viewer: source did not parse to an <svg> root");return r}function Er(e){let t=(e.getAttribute("viewBox")??"0 0 100 100").split(/\s+/).map(Number);return{x:t[0],y:t[1],w:t[2],h:t[3]}}var ln=class{#e;#o;#t;constructor(t,r){this.#e=t,this.#o=r,this.#t={...r}}apply(){this.#e.setAttribute("viewBox",`${this.#t.x} ${this.#t.y} ${this.#t.w} ${this.#t.h}`)}fit(){this.#t={...this.#o},this.apply()}get(){return{...this.#t}}setNatural(t){this.#o=t}#r(t,r){let o=this.#e.getScreenCTM();if(!o)return null;let n=new DOMPoint(t,r).matrixTransform(o.inverse());return{x:n.x,y:n.y}}zoomBy(t,r,o){let n=this.#e.getBoundingClientRect();if(n.width<=0||n.height<=0)return;let i=r??n.left+n.width/2,a=o??n.top+n.height/2,s=this.#r(i,a);this.#t={...this.#t,w:this.#t.w/t,h:this.#t.h/t},this.apply();let l=s?this.#r(i,a):null;s&&l&&(this.#t.x+=s.x-l.x,this.#t.y+=s.y-l.y),this.apply()}panBy(t,r){let o=this.#e.getScreenCTM()?.a,n=o&&o>0?o:1;this.#t.x-=t/n,this.#t.y-=r/n,this.apply()}};function df(e,t){let r=ba(t);r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.style.display="block",r.style.touchAction="none";let o=new ln(r,Er(r));return e.appendChild(r),o.apply(),{svg:r,fit:()=>o.fit(),getViewport:()=>o.get(),zoomBy:(n,i,a)=>o.zoomBy(n,i,a),panBy:(n,i)=>o.panBy(n,i),updateContent(n){let i=ba(n),a=lf(r,i);return o.setNatural(Er(i)),a},destroy(){r.remove()}}}var dn=class{handlers=new Map;on(t,r){let o=this.handlers.get(t)??new Set;this.handlers.set(t,o);let n=r;return o.add(n),()=>o.delete(n)}emit(t,r){let o=this.handlers.get(t);if(o!==void 0)for(let n of[...o])try{n(r)}catch(i){queueMicrotask(()=>{throw i})}}clear(){this.handlers.clear()}};var cn=class extends dn{};function ow(e,t){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:t}function nw(e,t){return new Promise((r,o)=>{let n=e.defaultView?.Image;if(!n){o(new Error("viewer export: Image is unavailable in this environment."));return}let i=new n;i.onload=()=>r(i),i.onerror=()=>o(new Error("viewer export: the SVG snapshot could not be decoded.")),i.src=t})}function iw(e,t,r){return new Promise((o,n)=>{e.toBlob(i=>{i?o(i):n(new Error(`viewer export: ${t} encoding failed.`))},t,r)})}async function xa(e,t,r={}){let o=Er(e),n=ow(r.scale,1),i=Math.max(1,Math.round(o.w*n)),a=Math.max(1,Math.round(o.h*n)),s=e.ownerDocument.createElement("canvas");s.width=i,s.height=a;let l=s.getContext("2d");if(!l)throw new Error("viewer export: a 2D canvas context is unavailable.");let d=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(d);try{let u=await nw(e.ownerDocument,c),m=r.backgroundColor??(r.format==="jpeg"?"#ffffff":void 0);m&&(l.fillStyle=m,l.fillRect(0,0,i,a)),l.drawImage(u,0,0,i,a);let f=r.format==="jpeg"?"image/jpeg":"image/png";return await iw(s,f,r.quality)}finally{URL.revokeObjectURL(c)}}var Sa="http://www.w3.org/2000/svg";function aw(e,t){for(let r of e.attributes)r.name.startsWith("data-sf-shader")||t.setAttribute(r.name,r.value)}function sw(e){for(let t of e.querySelectorAll('[data-sf-selection-overlay], [data-sf-change-overlay], [id*="link-hit-"]'))t.remove()}function Nr(e,t,r){let o=e.createElementNS(Sa,t);for(let[n,i]of Object.entries(r))o.setAttribute(n,String(i));return o}function lw(e){try{return{...Q,...JSON.parse(e.getAttribute("data-sf-widget-style")??"{}")}}catch{return Q}}function dw(e,t,r=0){let o=r>0?r:Math.max(1,Math.min(e.width,e.height)*.28);return{size:o,plain:t,cellWidth:t?o*.62:o*.72+2,cellHeight:t?o*1.1:o*1.2+2,gap:o*(t?.02:.1)}}function cw(e,t,r){let o=Nr(e,"g",{"font-family":r.fontFamily});for(let n of["id","transform","data-sf-id","data-sf-role","data-sf-kind"]){let i=t.getAttribute(n);i!==null&&o.setAttribute(n,i)}return o}function uw(e,t,r,o,n,i){let a=Nr(e,"text",{x:r.x+r.width/2,y:o-n.size*.14,"text-anchor":"middle","font-size":n.size*.16,"font-weight":600,"letter-spacing":n.size*.04,fill:i.labelColor});return a.textContent=t,a}function mw(e,t,r,o,n,i){let{size:a,plain:s,cellWidth:l,cellHeight:d}=n,c=[];s||c.push(Nr(e,"rect",{x:r+.5,y:o+.5,width:l-1,height:d-1,rx:a*.09,fill:i.surface,stroke:i.divider,"stroke-width":1}));let u=Nr(e,"text",{x:r+l/2,y:o+d/2,"text-anchor":"middle","dominant-baseline":"central","font-size":a,"font-weight":i.fontWeight,fill:i.color});return u.textContent=t,c.push(u),s||c.push(Nr(e,"line",{x1:r+.5,x2:r+l-.5,y1:o+d/2,y2:o+d/2,stroke:i.divider,"stroke-width":1})),c}function pw(e){let t=e.ownerDocument;for(let r of e.querySelectorAll('foreignObject[data-sf-widget="rollingNumber"]')){let o={x:Number(r.getAttribute("x")),y:Number(r.getAttribute("y")),width:Number(r.getAttribute("width")),height:Number(r.getAttribute("height"))},n=r.getAttribute("data-sf-widget-value")??"",i=lw(r),a=r.querySelector("div > span:not([data-sf-rolling-digit])")?.textContent??"",s=dw(o,i.variant==="plain",i.fontSize),l=a?s.size*.3:0,d=n.length*s.cellWidth+Math.max(0,n.length-1)*s.gap,c=o.x+(o.width-d)/2,u=o.y+(o.height-(l+s.cellHeight))/2+l,m=cw(t,r,i);a&&m.appendChild(uw(t,a,o,u,s,i)),[...n].forEach((f,h)=>{let y=c+h*(s.cellWidth+s.gap);for(let x of mw(t,f,y,u,s,i))m.appendChild(x)}),r.replaceWith(m)}}function cf(e,t){let r=e.cloneNode(!0);sw(r),[...r.querySelectorAll("foreignObject[data-sf-shader]")].forEach((i,a)=>{let s=t[a];if(!s){i.remove();return}let l=r.ownerDocument.createElementNS(Sa,"image");aw(i,l),l.setAttribute("href",s),l.setAttribute("preserveAspectRatio","none"),i.replaceWith(l)}),pw(r);let n=(r.getAttribute("viewBox")??"").split(/\s+/).map(Number);return n.length===4&&n.every(Number.isFinite)&&(r.setAttribute("width",String(n[2])),r.setAttribute("height",String(n[3]))),r.setAttribute("xmlns",Sa),r}function Ca(e,t){return new XMLSerializer().serializeToString(cf(e,t))}var uf="http://www.w3.org/2000/svg";var Ra=new Set([]);function V(e,t){return e.createElementNS(uf,t)}function Ge(e,t,r){let o=V(e,"g");o.setAttribute("data-sf-selection-overlay",t),o.setAttribute("pointer-events","none");let n=r.getAttribute("transform");return n&&o.setAttribute("transform",n),o}var fw="data-sf-change-overlay",Or="#f59e0b",un=1300,ka=400;function mf(e,t,r){let o=V(e,"g");o.setAttribute(fw,t),o.setAttribute("pointer-events","none");let n=r.getAttribute("transform");return n&&o.setAttribute("transform",n),o}function wa(e,t){t||e.animate([{opacity:1},{opacity:0}],{duration:un,easing:"linear",fill:"forwards"})}function va(e,t,r,o=Or){let n=t.getBBox(),i=mf(e,r,t),a=V(e,"rect");return a.setAttribute("x",String(n.x-4)),a.setAttribute("y",String(n.y-4)),a.setAttribute("width",String(n.width+8)),a.setAttribute("height",String(n.height+8)),a.setAttribute("fill","none"),a.setAttribute("stroke",o),a.setAttribute("stroke-width","3"),i.appendChild(a),i}function Pa(e,t,r,o=Or){let n=mf(e,r,t),i=V(e,"path");i.setAttribute("d",t.getAttribute("d")??""),i.setAttribute("fill","none"),i.setAttribute("stroke",o);let a=Number(t.getAttribute("stroke-width"))||2;return i.setAttribute("stroke-width",String(a+6)),i.setAttribute("stroke-linecap","round"),i.setAttribute("opacity","0.6"),n.appendChild(i),n}function Kt(e){return e.ctrlKey||e.metaKey}function mn(e){let t=/data-sf-contract="(\d+)"/.exec(e);return t?Number(t[1]):null}function pn(e){return e===1}var hw=new Set(["entity","link","frame","swimlane","chart","path","widget","isometric"]);function gw(e){return e==="entity"?"shape":e}function Qe(e){let t=e.getAttribute(qo);if(!t)return null;let[r,o,n,i]=t.split(",").map(Number);return Number.isFinite(r)&&Number.isFinite(o)&&Number.isFinite(n)&&Number.isFinite(i)?{x:r,y:o,width:n,height:i}:null}function La(e){let t=e.getAttribute(Ko);if(!t)return null;let r;try{r=JSON.parse(t)}catch{return null}return!Array.isArray(r)||!r.every(o=>Array.isArray(o)&&o.length===2)?null:{points:r,tension:Number(e.getAttribute(Zo))||0,closed:e.getAttribute(Qo)==="true"}}function Ta(e){let t=e.getAttribute(Jo);if(t===null)return null;let[r,o,n]=t.split(",").map(Number);if(!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(n))return null;let i=Number(e.getAttribute($r))||0,[a,s]=(e.getAttribute(en)??"0,0").split(",").map(Number);return{width:r,height:o,depth:n,cornerRadius:i,bounds:Qe(e),labelOffsetX:Number.isFinite(a)?a:0,labelOffsetY:Number.isFinite(s)?s:0}}function Je(e){let t=e?.closest("[data-sf-id]");if(!t)return null;let r=t.getAttribute("data-sf-id"),o=t.getAttribute("data-sf-role");return!r||!o||!hw.has(o)?null:{role:gw(o),id:r,kind:t.getAttribute("data-sf-kind")??void 0,label:t.getAttribute("aria-label")??void 0}}function pt(e,t,r){let o=e.querySelectorAll(`[data-sf-id="${CSS.escape(t)}"]`);for(let n of o)if(r(n))return n;return null}var ft=e=>e.hasAttribute("data-sf-primary");function Ma(e){let t=e.getBoundingClientRect(),{width:r,height:o}=e.viewBox.baseVal;if(t.width<=0||r<=0)return 1;let n=t.width/r;return t.height>0&&o>0?Math.min(n,t.height/o):n}function D(e,t){return t/Ma(e)}var fn=6,yw=14,$a=3,Aa=1.5;function bw(e,t){let r=e.x+e.width/2,o=e.y+e.height/2;return[[r,e.y-t,"top"],[e.x+e.width+t,o,"right"],[r,e.y+e.height+t,"bottom"],[e.x-t,o,"left"]]}function xw(e,t,r){return`M ${e-r} ${t} L ${e+r} ${t} M ${e} ${t-r} L ${e} ${t+r}`}var pf="#e8e8e8",ff="#ccc",Sw="#9b42df",Cw="#7c2fb5",Rw=1.2;function Ea(e,t,r,o,n,i){let a=V(e,"circle");return a.setAttribute("cx",String(t)),a.setAttribute("cy",String(r)),a.setAttribute("r",String(o)),a.setAttribute("fill",pf),a.setAttribute("stroke",ff),a.setAttribute("stroke-width",String(n)),a.setAttribute("data-sf-quick-duplicate",i),a.style.pointerEvents="auto",a.style.cursor="pointer",a.style.transition="r 120ms ease, fill 120ms ease, stroke 120ms ease",a.addEventListener("pointerenter",()=>{a.setAttribute("r",String(o*Rw)),a.setAttribute("fill",Sw),a.setAttribute("stroke",Cw),a.nextElementSibling?.setAttribute("stroke","#ffffff")}),a.addEventListener("pointerleave",()=>{a.setAttribute("r",String(o)),a.setAttribute("fill",pf),a.setAttribute("stroke",ff),a.nextElementSibling?.setAttribute("stroke","#999")}),a}function Na(e,t,r,o,n){let i=V(e,"path");return i.setAttribute("d",xw(t,r,o)),i.setAttribute("stroke","#999"),i.setAttribute("stroke-width",String(n)),i.setAttribute("stroke-linecap","round"),i}function hn(e,t,r,o){let n=Ge(e,r,t),i=D(o,fn),a=i+D(o,yw),s=D(o,$a),l=D(o,Aa),d=Qe(t)??t.getBBox();for(let[c,u,m]of bw(d,a))n.append(Ea(e,c,u,i,l,m),Na(e,c,u,s,l));return n}var Ia="#9b42df",kw=2,ww=3.25,vw=14,gf=34,Pw=10.5,Lw=8.5;function hf(e){let t=Math.hypot(e.x,e.y)||1;return{x:e.x/t,y:e.y/t}}function Tw(e){let r=`<svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 26 26"><g transform="rotate(${Math.atan2(e.y,e.x)*180/Math.PI} 13 13)" stroke-linejoin="round" stroke-linecap="round"><line x1="4" y1="13" x2="22" y2="13" stroke="white" stroke-width="4.5"/><line x1="4" y1="13" x2="22" y2="13" stroke="black" stroke-width="1.6"/><path d="M4 13 L9.5 8.5 L9.5 17.5 Z" fill="black" stroke="white" stroke-width="1.5"/><path d="M22 13 L16.5 8.5 L16.5 17.5 Z" fill="black" stroke="white" stroke-width="1.5"/></g></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(r)}") 13 13, pointer`}function Da(e){let t=e.reduce((r,o)=>({x:r.x+o.x,y:r.y+o.y}),{x:0,y:0});return{x:t.x/e.length,y:t.y/e.length}}var Ga="data-sf-iso-halo";function Mw(e,t,r,o){let n=V(e,"g");n.setAttribute("data-sf-resize-handle",`iso-${t}`),n.style.cursor=Tw(r);let i=V(e,"line");i.setAttribute("stroke","transparent"),i.setAttribute("stroke-width",String(D(o,vw))),i.setAttribute("stroke-linecap","round"),i.style.pointerEvents="stroke",n.appendChild(i);let a=V(e,"line");a.setAttribute("stroke",Ia),a.setAttribute("stroke-width",String(D(o,ww))),a.setAttribute("stroke-linecap","round"),a.style.pointerEvents="none",n.appendChild(a);let s=V(e,"polygon");return s.setAttribute("fill",Ia),s.style.pointerEvents="none",n.appendChild(s),{group:n,hit:i,shaft:a,head:s}}function $w(e,t,r,o){let n=D(o,gf),i=D(o,Pw),a=D(o,Lw),s={x:t.x+r.x*n,y:t.y+r.y*n},l={x:t.x+r.x*(n-i),y:t.y+r.y*(n-i)},d={x:-r.y,y:r.x},c={x:l.x+d.x*a/2,y:l.y+d.y*a/2},u={x:l.x-d.x*a/2,y:l.y-d.y*a/2};e.hit.setAttribute("x1",String(t.x)),e.hit.setAttribute("y1",String(t.y)),e.hit.setAttribute("x2",String(s.x)),e.hit.setAttribute("y2",String(s.y)),e.shaft.setAttribute("x1",String(t.x)),e.shaft.setAttribute("y1",String(t.y)),e.shaft.setAttribute("x2",String(l.x)),e.shaft.setAttribute("y2",String(l.y)),e.head.setAttribute("points",`${s.x},${s.y} ${c.x},${c.y} ${u.x},${u.y}`)}function Oa(e,t,r,o,n){let i=Mw(e,o,r,n);return $w(i,t,r,n),i.group}function gn(e){let t=Ve(e),r=t.top[0],o=t.top[1],n=t.top[3],i=t.front[2];return{width:{origin:Da(t.right),direction:hf({x:o.x-r.x,y:o.y-r.y})},height:{origin:i,direction:{x:0,y:1}},depth:{origin:Da(t.front),direction:hf({x:n.x-r.x,y:n.y-r.y})}}}var Aw=gf+fn+10;function Ba(e,t){return{x:t.x*2-e.x,y:t.y*2-e.y}}function _a(e){let t=Ve(e),r=gn(e),o=Da([t.top[0],t.top[1],t.top[2],t.top[3],t.front[2],t.front[3],t.right[2]]);return{"iso-width-pos":r.width,"iso-width-neg":{origin:Ba(r.width.origin,o),direction:{x:-r.width.direction.x,y:-r.width.direction.y}},"iso-depth-pos":r.depth,"iso-depth-neg":{origin:Ba(r.depth.origin,o),direction:{x:-r.depth.direction.x,y:-r.depth.direction.y}},"iso-height-pos":r.height,"iso-height-neg":{origin:Ba(r.height.origin,o),direction:{x:-r.height.direction.x,y:-r.height.direction.y}}}}var Fa="data-sf-iso-duplicate-bubbles",Ew=["iso-height-neg","iso-depth-pos","iso-width-pos"];function Ha(e,t,r){let o=V(e,"g");o.setAttribute(Fa,"");let n=D(r,fn),i=D(r,Aw),a=D(r,$a),s=D(r,Aa),l=_a(t);for(let d of Ew){let{origin:c,direction:u}=l[d],m=c.x+u.x*i,f=c.y+u.y*i;o.append(Ea(e,m,f,n,s,d),Na(e,m,f,a,s))}return o}function yn(e,t,r,o){let n=Qe(t)??t.getBBox(),i=Ta(t),a=Ge(e,r,t),s=V(e,"path");s.setAttribute(Ga,""),s.setAttribute("d",t.getAttribute("d")??""),s.setAttribute("fill","none"),s.setAttribute("stroke",Ia);let l=Number(t.getAttribute("stroke-width"))||2;s.setAttribute("stroke-width",String(l+D(o,kw))),s.setAttribute("opacity","0.6"),s.style.pointerEvents="none",a.appendChild(s);let d=gn({x:n.x,y:n.y,width:i?.width??n.width,height:i?.height??n.height,depth:i?.depth??0});return a.appendChild(Oa(e,d.width.origin,d.width.direction,"width",o)),a.appendChild(Oa(e,d.height.origin,d.height.direction,"height",o)),a.appendChild(Oa(e,d.depth.origin,d.depth.direction,"depth",o)),a.appendChild(Ha(e,{x:n.x,y:n.y,width:i?.width??n.width,height:i?.height??n.height,depth:i?.depth??0},o)),a}var Va="#9b42df",Nw=4,Ow=5,bf=1.5;function Bw(e,t,r){let o=V(e,"path");o.setAttribute("d",t.getAttribute("d")??""),o.setAttribute("fill","none"),o.setAttribute("stroke",Va);let n=Number(t.getAttribute("stroke-width"))||2;return o.setAttribute("stroke-width",String(n+D(r,Nw))),o.setAttribute("stroke-linecap","round"),o.setAttribute("opacity","0.5"),o}function yf(e,t,r,o,n){let i=t.getPointAtLength(r),a=V(e,"circle");return a.setAttribute("cx",String(i.x)),a.setAttribute("cy",String(i.y)),a.setAttribute("r",String(D(n,Ow))),a.setAttribute("fill",Va),a.setAttribute("stroke","white"),a.setAttribute("stroke-width",String(D(n,bf))),a.setAttribute("data-sf-link-endpoint",o),a.style.pointerEvents="auto",a.style.cursor="crosshair",a}var Iw=22,Dw=8;function Gw(e){try{return JSON.parse(e.getAttribute("data-sf-link-segments")??"[]")}catch{return[]}}function _w(e,t,r){let o=[];return Gw(t).forEach((n,i)=>{if(!n.movable)return;let a=Math.abs(n.bx-n.ax)>Math.abs(n.by-n.ay),s=D(r,Iw),l=D(r,Dw),d=a?s:l,c=a?l:s,u=V(e,"rect");u.setAttribute("x",String((n.ax+n.bx)/2-d/2)),u.setAttribute("y",String((n.ay+n.by)/2-c/2)),u.setAttribute("width",String(d)),u.setAttribute("height",String(c)),u.setAttribute("rx",String(l/2)),u.setAttribute("fill","white"),u.setAttribute("stroke",Va),u.setAttribute("stroke-width",String(D(r,bf))),u.setAttribute("data-sf-link-segment",String(i)),u.setAttribute("data-sf-link-segment-axis",a?"y":"x"),u.style.pointerEvents="auto",u.style.cursor=a?"ns-resize":"ew-resize",o.push(u)}),o}function bn(e,t,r,o){let n=Ge(e,r,t),i=t.getTotalLength();return n.append(Bw(e,t,o),..._w(e,t,o),yf(e,t,0,"from",o),yf(e,t,i,"to",o)),n}var xf="#9b42df",Fw=4,Hw=5,Vw=1.5,Wa="data-sf-path-halo";function Ww(e,t,r){let o=V(e,"path");o.setAttribute(Wa,""),o.setAttribute("d",t.getAttribute("d")??""),o.setAttribute("fill","none"),o.setAttribute("stroke",xf);let n=Number(t.getAttribute("stroke-width"))||2;return o.setAttribute("stroke-width",String(n+D(r,Fw))),o.setAttribute("stroke-linecap","round"),o.setAttribute("opacity","0.5"),o}function zw(e,t,r,o,n){let i=V(e,"circle");return i.setAttribute("cx",String(t)),i.setAttribute("cy",String(r)),i.setAttribute("r",String(D(n,Hw))),i.setAttribute("fill","#ffffff"),i.setAttribute("stroke",xf),i.setAttribute("stroke-width",String(D(n,Vw))),i.setAttribute(Gp,String(o)),i.style.pointerEvents="auto",i.style.cursor="move",i}function xn(e,t,r,o){let n=Ge(e,r,t);n.appendChild(Ww(e,t,o));let i=La(t);for(let[a,[s,l]]of(i?.points??[]).entries())n.appendChild(zw(e,s,l,a,o));return n}var Yw=6,Uw=1,Xw="#992dff",jw={"top-left":"nwse-resize",top:"ns-resize","top-right":"nesw-resize",right:"ew-resize","bottom-right":"nwse-resize",bottom:"ns-resize","bottom-left":"nesw-resize",left:"ew-resize"};function za(e){let t=e.x+e.width/2,r=e.y+e.height/2;return[[e.x,e.y,"top-left"],[t,e.y,"top"],[e.x+e.width,e.y,"top-right"],[e.x+e.width,r,"right"],[e.x+e.width,e.y+e.height,"bottom-right"],[t,e.y+e.height,"bottom"],[e.x,e.y+e.height,"bottom-left"],[e.x,r,"left"]]}var qw=new Set(["top","bottom"]);function Sf(e,t,r,o=!1){let n=D(r,Yw),i=D(r,Uw);return(o?za(t).filter(([,,s])=>!qw.has(s)):za(t)).map(([s,l,d])=>{let c=V(e,"rect");return c.setAttribute("x",String(s-n/2)),c.setAttribute("y",String(l-n/2)),c.setAttribute("width",String(n)),c.setAttribute("height",String(n)),c.setAttribute("fill","white"),c.setAttribute("stroke",Xw),c.setAttribute("stroke-width",String(i)),c.setAttribute("data-sf-resize-handle",d),c.style.pointerEvents="auto",c.style.cursor=o?"ew-resize":jw[d],c})}var Kw="#9b42df",Zw=3,Qw=1;function Sn(e,t,r,o,n=!1){let i=Qe(t)??t.getBBox(),a=Ge(e,r,t),s=D(o,Qw),l=V(e,"rect");return l.setAttribute("x",String(i.x-s)),l.setAttribute("y",String(i.y-s)),l.setAttribute("width",String(i.width+s*2)),l.setAttribute("height",String(i.height+s*2)),l.setAttribute("fill","none"),l.setAttribute("stroke",Kw),l.setAttribute("stroke-width",String(D(o,Zw))),a.appendChild(l),a.append(...Sf(e,i,o,n)),a}function Cf(e){let t=new Map;return{flash:(o,n=Or)=>{let i=[...new Set(o)];if(i.length===0)return;let a=e.ownerDocument,s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;for(let l of i){let d=pt(e,l,ft);if(!d)continue;let c=t.get(l);c&&clearTimeout(c);for(let f of e.querySelectorAll(`[data-sf-change-overlay="${CSS.escape(l)}"]`))f.remove();let u=d.getAttribute("data-sf-role")==="link"?Pa(a,d,l,n):va(a,d,l,n);e.appendChild(u),wa(u,s);let m=s?ka:un;t.set(l,setTimeout(()=>{u.remove(),t.delete(l)},m))}},destroy(){for(let o of t.values())clearTimeout(o);t.clear()}}}function Rf(e,t,r){let o=n=>{r&&n.key==="Escape"&&t.dispatch({type:"clear"})};return e.addEventListener("keydown",o),()=>{e.removeEventListener("keydown",o)}}function Ya(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,meta:e.metaKey,alt:e.altKey}}function kf(e,t){switch(t.type){case"clear":return new Set;case"set":return new Set(t.ids);case"select":return new Set([t.id]);case"add":return new Set([...e,t.id]);case"toggle":{let r=new Set(e);return r.has(t.id)?r.delete(t.id):r.add(t.id),r}}}function wf(e,t){return t.ctrl||t.meta||t.shift?{type:"toggle",id:e}:{type:"select",id:e}}var rv="[data-sf-resize-handle], [data-sf-link-endpoint], [data-sf-link-segment], [data-sf-quick-duplicate]";function Ua(e){return!!e?.closest(rv)}var Cn=class{#e;#o;#t;#r;constructor(t,r,o,n){this.#e=t,this.#o=r,this.#t=o,this.#r=n}hover(t){let r=Je(t.target);this.#o.emit("ownerHover",r?{diagramId:this.#t,owner:r,modifiers:Ya(t)}:{diagramId:this.#t,owner:null})}select(t){let r=t.target,o=Je(r);if(!o){this.#n(r);return}this.#i(o,t)}#n(t){Ua(t)||this.#r.dispatch({type:"clear"})}#i(t,r){this.#r.remember(t);let o=Ya(r);this.#r.dispatch(wf(t.id,o)),this.#o.emit(t.role==="link"?"linkClick":"canvasObjectClick",{diagramId:this.#t,owner:t,modifiers:o});let n=pt(this.#e,t.id,ft);n&&!n.hasAttribute("tabindex")&&n.setAttribute("tabindex","-1"),n?.focus({preventScroll:!0})}};var ov=4,Xa=class{#e;#o;#t;#r=null;constructor(t,r,o){this.#e=t,this.#o=r,this.#t=o}bind(){return this.#e.svg.addEventListener("pointerdown",this.#n),this.#e.svg.addEventListener("pointermove",this.#i),this.#e.svg.addEventListener("pointerup",this.#s),()=>this.#l()}#n=t=>{let r=t.target,o=!!Je(r)||Ua(r);this.#r={x:t.clientX,y:t.clientY,moved:!1,panable:Kt(t)||!o}};#i=t=>{this.#a(t)||this.#t&&this.#o.hover(t)};#s=t=>{let r=this.#r?.moved??!1;this.#r=null,!r&&this.#t&&this.#o.select(t)};#a(t){return!this.#r||(!this.#r.moved&&Math.hypot(t.clientX-this.#r.x,t.clientY-this.#r.y)>ov&&(this.#r.moved=!0),!this.#r.moved)?!1:(this.#r.panable&&Kt(t)&&this.#e.panBy(t.movementX,t.movementY),!0)}#l(){this.#e.svg.removeEventListener("pointerdown",this.#n),this.#e.svg.removeEventListener("pointermove",this.#i),this.#e.svg.removeEventListener("pointerup",this.#s)}};function vf(e){let{display:t,emitter:r,diagramId:o,selection:n,selectable:i}=e,a=new Cn(t.svg,r,o,n);return new Xa(t,a,i).bind()}function ja(e,t,r){for(let n of e.querySelectorAll("[data-sf-selection-overlay]"))n.remove();let o=e.ownerDocument;for(let n of t){let i=pt(e,n,ft);if(!i)continue;let a=r.get(n),s=a?.role==="link"?bn(o,i,n,e):a?.role==="path"?xn(o,i,n,e):a?.role==="isometric"?yn(o,i,n,e):Sn(o,i,n,e,a?Ra.has(a.role):!1);e.appendChild(s),a?.role==="shape"&&t.size===1&&e.appendChild(hn(o,i,n,e))}}var Rn=class{#e;#o;#t;#r=new Map;#n=new Set;constructor(t,r,o){this.#e=t,this.#o=r,this.#t=o}getOwners(){return[...this.#n].map(t=>this.#r.get(t)).filter(t=>!!t)}remember(t){this.#r.set(t.id,t)}dispatch(t){this.#n=kf(this.#n,t),ja(this.#e,this.#n,this.#r),this.#o.emit("selectionChange",{diagramId:this.#t,selection:this.getOwners()})}repaint(){this.#n.size>0&&ja(this.#e,this.#n,this.#r)}selectIds(t){for(let r of t){let o=this.#e.querySelector(`[data-sf-id="${CSS.escape(r)}"]`),n=Je(o);n&&this.remember(n)}this.dispatch({type:"set",ids:t})}};function Pf(e,t){let r=o=>{Kt(o)&&(o.preventDefault(),e.zoomBy(o.deltaY<0?1.1:.9090909090909091,o.clientX,o.clientY),t.repaint())};return e.svg.addEventListener("wheel",r,{passive:!1}),()=>{e.svg.removeEventListener("wheel",r)}}function Lf(e,t,r,o={}){let n=o.selectable??!0,i=new Rn(e.svg,t,r),a=vf({display:e,emitter:t,diagramId:r,selection:i,selectable:n}),s=Pf(e,i),l=Rf(e.svg,i,n),d=Cf(e.svg);return{getSelection:()=>i.getOwners(),select:c=>i.selectIds(c),repaint:()=>i.repaint(),flashChanged:(c,u)=>d.flash(c,u),destroy(){a(),s(),l(),d.destroy()}}}var qa={numbers:{intensity:.85,speed:.18,progress:-1,boost:0,dent:-1,day:-1,light:135,gloss:.15,depth:.4,rim:.2},colors:{color:[.08,.02,.22],accent:[.58,.31,1],hot:[1,.45,.82]}};var nv=`
|
|
19
19
|
precision highp float;
|
|
20
20
|
|
|
21
21
|
uniform vec2 uResolution;
|
|
@@ -67,7 +67,7 @@ void main() {
|
|
|
67
67
|
float alpha = clamp(disc + shadow * (1.0 - disc), 0.0, 1.0);
|
|
68
68
|
gl_FragColor = vec4(clamp(color * disc, 0.0, 1.0), alpha);
|
|
69
69
|
}
|
|
70
|
-
`,
|
|
70
|
+
`,Tf={name:"button",fragmentSource:nv,replacesBaseFill:!0};var iv=`
|
|
71
71
|
precision highp float;
|
|
72
72
|
|
|
73
73
|
uniform sampler2D uBackdrop;
|
|
@@ -133,7 +133,7 @@ void main() {
|
|
|
133
133
|
face += uEdgeColor * movingGlint * bell(p.y - 0.26, 0.48) * left * 0.15;
|
|
134
134
|
gl_FragColor = vec4(clamp(face * max(uIntensity, 0.0), 0.0, 1.0) * alpha, alpha);
|
|
135
135
|
}
|
|
136
|
-
`,
|
|
136
|
+
`,Mf={name:"chromaticGlassPlate",fragmentSource:iv,usesBackdrop:!0,replacesBaseFill:!0};var av=`
|
|
137
137
|
precision highp float;
|
|
138
138
|
|
|
139
139
|
uniform vec2 uResolution;
|
|
@@ -199,7 +199,7 @@ void main() {
|
|
|
199
199
|
|
|
200
200
|
gl_FragColor = vec4(clamp(color, 0.0, 1.0), clamp(alpha, 0.0, 1.0));
|
|
201
201
|
}
|
|
202
|
-
|
|
202
|
+
`,$f={name:"chromaticHalo",fragmentSource:av};var sv=`
|
|
203
203
|
precision highp float;
|
|
204
204
|
|
|
205
205
|
uniform float uTime;
|
|
@@ -251,7 +251,7 @@ void main() {
|
|
|
251
251
|
|
|
252
252
|
gl_FragColor = vec4(premultipliedColor, alpha);
|
|
253
253
|
}
|
|
254
|
-
`,
|
|
254
|
+
`,Af={name:"eclipseOrb",fragmentSource:sv};var lv=`
|
|
255
255
|
precision highp float;
|
|
256
256
|
|
|
257
257
|
uniform vec2 uResolution;
|
|
@@ -323,7 +323,7 @@ void main() {
|
|
|
323
323
|
float edge = 1.0 - smoothstep(0.955, 0.995, radius);
|
|
324
324
|
gl_FragColor = vec4(clamp(color * max(uIntensity, 0.0) * edge, 0.0, 1.0), edge);
|
|
325
325
|
}
|
|
326
|
-
`,
|
|
326
|
+
`,Ef={name:"emberMatrix",fragmentSource:lv};var dv=`
|
|
327
327
|
precision highp float;
|
|
328
328
|
|
|
329
329
|
uniform vec2 uResolution;
|
|
@@ -388,7 +388,7 @@ void main() {
|
|
|
388
388
|
float alpha = clamp((molten * 0.92 + glowMask) * frameFade * max(uIntensity, 0.0), 0.0, 1.0);
|
|
389
389
|
gl_FragColor = vec4(clamp(color * max(uIntensity, 0.0), 0.0, 1.0) * alpha, alpha);
|
|
390
390
|
}
|
|
391
|
-
`,
|
|
391
|
+
`,Nf={name:"emberSlits",fragmentSource:dv};var cv=`
|
|
392
392
|
precision highp float;
|
|
393
393
|
|
|
394
394
|
uniform sampler2D uBackdrop;
|
|
@@ -490,7 +490,7 @@ void main() {
|
|
|
490
490
|
vec3 finalColor = clamp(color, 0.0, 1.0) * edgeAlpha;
|
|
491
491
|
gl_FragColor = vec4(finalColor, edgeAlpha);
|
|
492
492
|
}
|
|
493
|
-
`,
|
|
493
|
+
`,Of={name:"glassRefraction",fragmentSource:cv,usesBackdrop:!0};var uv=`
|
|
494
494
|
precision highp float;
|
|
495
495
|
|
|
496
496
|
uniform vec2 uResolution;
|
|
@@ -566,7 +566,7 @@ void main() {
|
|
|
566
566
|
|
|
567
567
|
gl_FragColor = vec4(clamp(finalColor * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
568
568
|
}
|
|
569
|
-
`,
|
|
569
|
+
`,Bf={name:"halftoneHalo",fragmentSource:uv};var mv=`
|
|
570
570
|
precision highp float;
|
|
571
571
|
|
|
572
572
|
uniform vec2 uResolution;
|
|
@@ -638,7 +638,177 @@ void main() {
|
|
|
638
638
|
float alpha = 1.0 - smoothstep(0.96, 1.0, radius);
|
|
639
639
|
gl_FragColor = vec4(color, alpha);
|
|
640
640
|
}
|
|
641
|
-
`,
|
|
641
|
+
`,If={name:"halo",fragmentSource:mv};var pv=`
|
|
642
|
+
precision highp float;
|
|
643
|
+
|
|
644
|
+
uniform vec2 uResolution;
|
|
645
|
+
uniform float uTime;
|
|
646
|
+
uniform float uSpeed;
|
|
647
|
+
uniform float uIntensity;
|
|
648
|
+
uniform float uColumns;
|
|
649
|
+
uniform float uCellAspect;
|
|
650
|
+
uniform float uGap;
|
|
651
|
+
uniform float uGlow;
|
|
652
|
+
uniform float uDepth;
|
|
653
|
+
uniform float uGrain;
|
|
654
|
+
uniform float uRotation;
|
|
655
|
+
uniform float uRipple;
|
|
656
|
+
uniform float uWave;
|
|
657
|
+
uniform float uVariation;
|
|
658
|
+
uniform float uFade;
|
|
659
|
+
uniform float uOriginX;
|
|
660
|
+
uniform float uOriginY;
|
|
661
|
+
uniform float uSpread;
|
|
662
|
+
uniform float uDrift;
|
|
663
|
+
uniform float uReaction;
|
|
664
|
+
uniform float uPointerSize;
|
|
665
|
+
uniform float uHover;
|
|
666
|
+
uniform vec2 uPointer;
|
|
667
|
+
uniform vec3 uWake[16];
|
|
668
|
+
uniform float uCornerRadius;
|
|
669
|
+
uniform vec3 uBaseColor;
|
|
670
|
+
uniform vec3 uOffColor;
|
|
671
|
+
uniform vec3 uColor;
|
|
672
|
+
uniform vec3 uHotColor;
|
|
673
|
+
varying vec2 vUv;
|
|
674
|
+
|
|
675
|
+
float boxMask(vec2 uv) {
|
|
676
|
+
vec2 halfBox = uResolution * 0.5;
|
|
677
|
+
float radius = uCornerRadius * min(uResolution.x, uResolution.y);
|
|
678
|
+
vec2 q = abs(uv * uResolution - halfBox) - halfBox + radius;
|
|
679
|
+
float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - radius;
|
|
680
|
+
return 1.0 - smoothstep(-1.0, 1.0, d);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
float roundedBox(vec2 point, vec2 halfSize, float radius) {
|
|
684
|
+
vec2 q = abs(point) - halfSize + radius;
|
|
685
|
+
return length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - radius;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
float hash(vec2 p) {
|
|
689
|
+
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
void main() {
|
|
693
|
+
float shape = boxMask(vUv);
|
|
694
|
+
if (shape <= 0.0) discard;
|
|
695
|
+
|
|
696
|
+
float time = uTime * max(uSpeed, 0.0);
|
|
697
|
+
float columns = max(uColumns, 2.0);
|
|
698
|
+
vec2 cellPx = vec2(uResolution.x / columns);
|
|
699
|
+
cellPx.y *= max(uCellAspect, 0.2);
|
|
700
|
+
vec2 rows = uResolution / cellPx;
|
|
701
|
+
|
|
702
|
+
// The grid can be turned around the middle of the surface.
|
|
703
|
+
float angle = radians(uRotation);
|
|
704
|
+
vec2 centered = (vUv - 0.5) * uResolution;
|
|
705
|
+
vec2 turned = vec2(cos(angle) * centered.x - sin(angle) * centered.y, sin(angle) * centered.x + cos(angle) * centered.y);
|
|
706
|
+
vec2 turnedUv = turned / uResolution + 0.5;
|
|
707
|
+
vec2 grid = vec2(turnedUv.x, 1.0 - turnedUv.y) * rows;
|
|
708
|
+
vec2 cell = floor(grid);
|
|
709
|
+
vec2 local = (fract(grid) - 0.5) * cellPx;
|
|
710
|
+
vec2 center = (cell + 0.5) / rows;
|
|
711
|
+
|
|
712
|
+
// The light of the surface sits at its origin, sways to the sides, and falls off with the spread. A spread of 0 puts it out.
|
|
713
|
+
float spread = max(uSpread, 0.05);
|
|
714
|
+
float lit = smoothstep(0.0, 0.05, uSpread);
|
|
715
|
+
vec2 p = vec2(center.x, 1.0 - center.y);
|
|
716
|
+
vec2 origin = vec2(uOriginX + uDrift * sin(time * 0.7), uOriginY);
|
|
717
|
+
float aspect = uResolution.x / uResolution.y;
|
|
718
|
+
float blob = exp(-pow(length((p - origin) * vec2(1.0, 1.55)) / spread, 2.0) * 5.5) * lit;
|
|
719
|
+
float wave = 0.5 + 0.5 * sin(p.x * 5.0 + time * 1.3 + sin(p.y * 3.0 - time));
|
|
720
|
+
float rise = pow(max(1.0 - abs(p.y - uOriginY) / spread, 0.0), 3.0) * (1.0 - 0.7 * uWave + 0.7 * uWave * wave) * lit;
|
|
721
|
+
float glowLevel = blob * 1.15 + rise * 0.5 + 0.03;
|
|
722
|
+
|
|
723
|
+
// Rings that run outward from the light, and a different brightness for every light.
|
|
724
|
+
float rings = 1.0 + uRipple * 0.5 * sin(length((p - origin) * vec2(1.0, 1.55)) * 16.0 - time * 2.5);
|
|
725
|
+
float jitter = 1.0 - uVariation * 0.55 * hash(cell);
|
|
726
|
+
float vignette = 1.0 - clamp(uFade, 0.0, 1.0) * smoothstep(0.3, 0.8, length(p - 0.5) * 1.3);
|
|
727
|
+
|
|
728
|
+
// The lights near the pointer glow up while it is over the surface, and the places it has been dim down one after the other.
|
|
729
|
+
float near = exp(-pow(length((p - uPointer) * vec2(aspect, 1.0)) / max(uPointerSize, 0.01), 2.0)) * uHover;
|
|
730
|
+
float wake = 0.0;
|
|
731
|
+
for (int i = 0; i < 16; i++) {
|
|
732
|
+
wake += uWake[i].z * exp(-pow(length((p - uWake[i].xy) * vec2(aspect, 1.0)) / max(uPointerSize * 0.88, 0.01), 2.0));
|
|
733
|
+
}
|
|
734
|
+
float touch = min(near + wake, 1.3) * max(uReaction, 0.0);
|
|
735
|
+
float level = clamp(glowLevel * rings * jitter * vignette * max(uIntensity, 0.0) + touch * 1.1, 0.0, 1.0);
|
|
736
|
+
|
|
737
|
+
vec3 tint = mix(uOffColor, uColor, smoothstep(0.0, 0.6, level));
|
|
738
|
+
tint = mix(tint, uHotColor, smoothstep(0.55, 1.0, level));
|
|
739
|
+
|
|
740
|
+
vec2 halfSize = cellPx * 0.5 * (1.0 - clamp(uGap, 0.0, 0.8));
|
|
741
|
+
float d = roundedBox(local, halfSize, min(halfSize.x, halfSize.y));
|
|
742
|
+
float body = 1.0 - smoothstep(-0.9, 0.9, d);
|
|
743
|
+
// Depth shades a light like a small bulb: bright in the upper part, darker at the rim.
|
|
744
|
+
float sheen = 1.0 - smoothstep(0.0, halfSize.y * 1.2, abs(local.y + halfSize.y * 0.35));
|
|
745
|
+
float rim = smoothstep(-halfSize.x * 0.7, 0.0, d);
|
|
746
|
+
float depth = clamp(uDepth, 0.0, 1.0);
|
|
747
|
+
vec3 cellColor = tint * (1.0 - 0.4 * depth + 0.4 * depth * sheen) * (1.0 - 0.35 * depth * rim);
|
|
748
|
+
|
|
749
|
+
vec3 color = uBaseColor + tint * level * max(uGlow, 0.0) * 0.18;
|
|
750
|
+
color = mix(color, cellColor, body);
|
|
751
|
+
color += (hash(gl_FragCoord.xy) - 0.5) * max(uGrain, 0.0) * 0.2;
|
|
752
|
+
gl_FragColor = vec4(clamp(color, 0.0, 1.0), shape);
|
|
753
|
+
}
|
|
754
|
+
`,Df={name:"ledMatrix",fragmentSource:pv,defaultParameters:{speed:.25,intensity:1,columns:44,cellAspect:1.7,gap:.3,originX:.42,originY:.04,spread:1,drift:.2,depth:.5,glow:1,grain:.2,rotation:0,ripple:.3,wave:1,variation:.2,fade:.3,reaction:1,pointerSize:.17,trail:1.4,cornerRadius:.025,baseColor:"#050505",offColor:"#262626",color:"#a3a3a3",hotColor:"#ffffff"}};var fv=`
|
|
755
|
+
precision highp float;
|
|
756
|
+
|
|
757
|
+
uniform vec2 uResolution;
|
|
758
|
+
uniform float uTime;
|
|
759
|
+
uniform float uSpeed;
|
|
760
|
+
uniform float uIntensity;
|
|
761
|
+
uniform float uThickness;
|
|
762
|
+
uniform float uBloom;
|
|
763
|
+
uniform float uWave;
|
|
764
|
+
uniform float uGrain;
|
|
765
|
+
uniform float uCornerRadius;
|
|
766
|
+
uniform vec3 uBaseColor;
|
|
767
|
+
uniform vec3 uColorA;
|
|
768
|
+
uniform vec3 uColorB;
|
|
769
|
+
uniform vec3 uColorC;
|
|
770
|
+
varying vec2 vUv;
|
|
771
|
+
|
|
772
|
+
float boxMask(vec2 uv) {
|
|
773
|
+
vec2 halfBox = uResolution * 0.5;
|
|
774
|
+
float radius = uCornerRadius * min(uResolution.x, uResolution.y);
|
|
775
|
+
vec2 q = abs(uv * uResolution - halfBox) - halfBox + radius;
|
|
776
|
+
float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - radius;
|
|
777
|
+
return 1.0 - smoothstep(-1.0, 1.0, d);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
float hash(vec2 p) {
|
|
781
|
+
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
void main() {
|
|
785
|
+
float shape = boxMask(vUv);
|
|
786
|
+
if (shape <= 0.0) discard;
|
|
787
|
+
|
|
788
|
+
float t = uTime * max(uSpeed, 0.0);
|
|
789
|
+
float aspect = uResolution.x / uResolution.y;
|
|
790
|
+
vec2 p = vec2(vUv.x, 1.0 - vUv.y);
|
|
791
|
+
|
|
792
|
+
// The middle of the band wanders across the surface, and its width breathes along the way.
|
|
793
|
+
float middle = 0.5 + uWave * (0.11 * sin(p.x * 3.4 + t) + 0.05 * sin(p.x * 7.1 - t * 1.4));
|
|
794
|
+
float width = max(uThickness, 0.002) * (0.65 + 0.35 * sin(p.x * 2.4 + t * 0.6));
|
|
795
|
+
float offset = (p.y - middle) * aspect * 0.6;
|
|
796
|
+
float core = exp(-pow(offset / width, 2.0));
|
|
797
|
+
float halo = exp(-pow(offset / (width * (2.5 + uBloom * 5.0)), 2.0));
|
|
798
|
+
|
|
799
|
+
// Blue at one end, pink at the other, and the colors drift a little.
|
|
800
|
+
float along = clamp(p.x + 0.12 * sin(t * 0.8), 0.0, 1.0);
|
|
801
|
+
vec3 tint = along < 0.5 ? mix(uColorA, uColorB, along * 2.0) : mix(uColorB, uColorC, along * 2.0 - 1.0);
|
|
802
|
+
float pulse = 0.6 + 0.4 * sin(p.x * 6.0 - t * 2.0);
|
|
803
|
+
|
|
804
|
+
vec3 color = uBaseColor;
|
|
805
|
+
color += tint * halo * 0.55 * pulse * max(uBloom, 0.0);
|
|
806
|
+
color += mix(tint, vec3(1.0), 0.55) * core * (0.55 + 0.45 * pulse);
|
|
807
|
+
color *= max(uIntensity, 0.0);
|
|
808
|
+
color += (hash(gl_FragCoord.xy + t) - 0.5) * max(uGrain, 0.0);
|
|
809
|
+
gl_FragColor = vec4(clamp(color, 0.0, 1.0), shape);
|
|
810
|
+
}
|
|
811
|
+
`,Gf={name:"lightBand",fragmentSource:fv,defaultParameters:{speed:.3,intensity:1,thickness:.035,bloom:1,wave:1,grain:.02,cornerRadius:.02,baseColor:"#0f0e14",colorA:"#7ea8ff",colorB:"#c13fd6",colorC:"#ff6fb8"}};var hv=`
|
|
642
812
|
precision highp float;
|
|
643
813
|
|
|
644
814
|
uniform float uTime;
|
|
@@ -693,7 +863,7 @@ void main() {
|
|
|
693
863
|
vec3 premultiplied = color * body + glowColor * (1.0 - body) * halo * breath;
|
|
694
864
|
gl_FragColor = vec4(clamp(premultiplied * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
695
865
|
}
|
|
696
|
-
`,
|
|
866
|
+
`,_f={name:"lumenPortal",fragmentSource:hv};var gv=`
|
|
697
867
|
precision highp float;
|
|
698
868
|
|
|
699
869
|
uniform float uTime;
|
|
@@ -749,7 +919,7 @@ void main() {
|
|
|
749
919
|
premultiplied += mix(uShadowColor, rimColor, 0.58) * (1.0 - body) * outside * breath;
|
|
750
920
|
gl_FragColor = vec4(clamp(premultiplied * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
751
921
|
}
|
|
752
|
-
`,
|
|
922
|
+
`,Ff={name:"lumenPortalLight",fragmentSource:gv};var yv=`
|
|
753
923
|
precision highp float;
|
|
754
924
|
|
|
755
925
|
uniform vec2 uResolution;
|
|
@@ -782,7 +952,7 @@ void main() {
|
|
|
782
952
|
float alpha = 1.0 - smoothstep(0.94, 1.0, radius);
|
|
783
953
|
gl_FragColor = vec4(color, alpha);
|
|
784
954
|
}
|
|
785
|
-
`,
|
|
955
|
+
`,Hf={name:"orb",fragmentSource:yv};var bv=`
|
|
786
956
|
precision highp float;
|
|
787
957
|
|
|
788
958
|
uniform float uTime;
|
|
@@ -879,7 +1049,7 @@ void main() {
|
|
|
879
1049
|
float edge = 1.0 - smoothstep(0.965, 0.997, radius);
|
|
880
1050
|
gl_FragColor = vec4(clamp(color * max(uIntensity, 0.0) * edge, 0.0, 1.0), edge);
|
|
881
1051
|
}
|
|
882
|
-
`,
|
|
1052
|
+
`,Vf={name:"pixelConstellation",fragmentSource:bv};var xv=`
|
|
883
1053
|
precision highp float;
|
|
884
1054
|
|
|
885
1055
|
uniform vec2 uResolution;
|
|
@@ -978,7 +1148,7 @@ void main() {
|
|
|
978
1148
|
float gain = max(uIntensity, 0.0) * fade;
|
|
979
1149
|
gl_FragColor = vec4(clamp(color * gain, 0.0, 1.0), clamp(alpha * gain, 0.0, 1.0));
|
|
980
1150
|
}
|
|
981
|
-
`,
|
|
1151
|
+
`,Wf={name:"plasmaGauge",fragmentSource:xv,replacesBaseFill:!0};var Sv=`
|
|
982
1152
|
precision highp float;
|
|
983
1153
|
|
|
984
1154
|
uniform vec2 uResolution;
|
|
@@ -1050,7 +1220,106 @@ void main() {
|
|
|
1050
1220
|
float fade = 1.0 - smoothstep(0.88, 1.0, radius);
|
|
1051
1221
|
gl_FragColor = vec4(clamp(color * max(uIntensity, 0.0) * fade, 0.0, 1.0), fade);
|
|
1052
1222
|
}
|
|
1053
|
-
`,
|
|
1223
|
+
`,zf={name:"prismSlats",fragmentSource:Sv};var Cv=`
|
|
1224
|
+
precision highp float;
|
|
1225
|
+
|
|
1226
|
+
uniform float uTime;
|
|
1227
|
+
uniform float uSpeed;
|
|
1228
|
+
uniform float uIntensity;
|
|
1229
|
+
uniform float uEmission;
|
|
1230
|
+
uniform float uReception;
|
|
1231
|
+
uniform float uEmitterFill;
|
|
1232
|
+
uniform float uGrain;
|
|
1233
|
+
uniform float uGrainScale;
|
|
1234
|
+
uniform float uCornerRadius;
|
|
1235
|
+
uniform float uBorderWidth;
|
|
1236
|
+
uniform float uGlowRadius;
|
|
1237
|
+
uniform float uSurfacePadding;
|
|
1238
|
+
uniform float uLightX;
|
|
1239
|
+
uniform float uLightY;
|
|
1240
|
+
uniform float uLightStrength;
|
|
1241
|
+
uniform float uPixelScale;
|
|
1242
|
+
uniform vec2 uResolution;
|
|
1243
|
+
uniform vec3 uShapeColor;
|
|
1244
|
+
uniform vec3 uBaseColor;
|
|
1245
|
+
uniform vec3 uEdgeColor;
|
|
1246
|
+
uniform vec3 uLightColor;
|
|
1247
|
+
varying vec2 vUv;
|
|
1248
|
+
|
|
1249
|
+
float roundedBoxDistance(vec2 point, vec2 halfSize, float radius) {
|
|
1250
|
+
vec2 offset = abs(point) - halfSize + radius;
|
|
1251
|
+
return min(max(offset.x, offset.y), 0.0) + length(max(offset, 0.0)) - radius;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
float random(vec2 point) {
|
|
1255
|
+
vec3 value = fract(vec3(point.xyx) * 0.1031);
|
|
1256
|
+
value += dot(value, value.yzx + 33.33);
|
|
1257
|
+
return fract((value.x + value.y) * value.z);
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
void main() {
|
|
1261
|
+
vec2 pixel = vUv * uResolution;
|
|
1262
|
+
float pixelScale = max(uPixelScale, 0.0001);
|
|
1263
|
+
float padding = clamp(uSurfacePadding * pixelScale, 0.0, min(uResolution.x, uResolution.y) * 0.45);
|
|
1264
|
+
vec2 panelHalfSize = max(vec2(1.0), uResolution * 0.5 - padding);
|
|
1265
|
+
vec2 panelPoint = pixel - uResolution * 0.5;
|
|
1266
|
+
float radius = min(max(uCornerRadius * pixelScale, 0.0), min(panelHalfSize.x, panelHalfSize.y));
|
|
1267
|
+
float distance = roundedBoxDistance(panelPoint, panelHalfSize, radius);
|
|
1268
|
+
float body = 1.0 - smoothstep(-1.25, 0.75, distance);
|
|
1269
|
+
float borderWidth = max(uBorderWidth * pixelScale, 0.5);
|
|
1270
|
+
float edge = exp(-pow(distance / borderWidth, 2.0));
|
|
1271
|
+
float innerEdge = exp(-pow((distance + borderWidth * 2.25) / (borderWidth * 2.2), 2.0)) * body;
|
|
1272
|
+
|
|
1273
|
+
vec2 lightPosition = vec2(uLightX, 1.0 - uLightY) * uResolution;
|
|
1274
|
+
float lightDistance = length(pixel - lightPosition);
|
|
1275
|
+
float lightRadius = max(uGlowRadius * pixelScale, 1.0);
|
|
1276
|
+
float receivedLight = exp(-pow(lightDistance / lightRadius, 2.0));
|
|
1277
|
+
receivedLight *= max(uReception, 0.0) * max(uLightStrength, 0.0);
|
|
1278
|
+
|
|
1279
|
+
float speed = max(uSpeed, 0.0);
|
|
1280
|
+
float breath = 0.88 + 0.12 * sin(uTime * speed * 6.2831853);
|
|
1281
|
+
float emittedLight = max(uEmission, 0.0) * breath;
|
|
1282
|
+
float outsideFalloff = exp(-max(distance, 0.0) / max(lightRadius * 0.22, 1.0));
|
|
1283
|
+
float outsideGlow = outsideFalloff * (emittedLight * 1.35 + receivedLight * 0.9);
|
|
1284
|
+
float frameDistance = min(min(pixel.x, uResolution.x - pixel.x), min(pixel.y, uResolution.y - pixel.y));
|
|
1285
|
+
float frameFade = smoothstep(0.0, max(padding * 0.65, 1.0), frameDistance);
|
|
1286
|
+
outsideGlow *= frameFade;
|
|
1287
|
+
|
|
1288
|
+
vec3 baseColor = dot(uBaseColor, uBaseColor) > 0.0 ? uBaseColor : uShapeColor;
|
|
1289
|
+
vec3 edgeColor = dot(uEdgeColor, uEdgeColor) > 0.0 ? uEdgeColor : vec3(0.22, 0.72, 1.0);
|
|
1290
|
+
vec3 lightColor = dot(uLightColor, uLightColor) > 0.0 ? uLightColor : edgeColor;
|
|
1291
|
+
vec3 color = baseColor * (0.82 + receivedLight * 0.42);
|
|
1292
|
+
|
|
1293
|
+
// Emission lights the material itself instead of leaving a dark cutout behind.
|
|
1294
|
+
// A soft centre bias keeps the fill dimensional while the edge remains crisp.
|
|
1295
|
+
vec2 normalizedPoint = panelPoint / max(panelHalfSize, vec2(1.0));
|
|
1296
|
+
float centreLight = 1.0 - smoothstep(0.05, 1.25, length(normalizedPoint));
|
|
1297
|
+
float fillLight = clamp(emittedLight * max(uEmitterFill, 0.0), 0.0, 1.0) * body;
|
|
1298
|
+
vec3 illuminatedFill = mix(edgeColor, lightColor, 0.62 + centreLight * 0.28);
|
|
1299
|
+
color = mix(color, illuminatedFill * (0.72 + centreLight * 0.62), fillLight);
|
|
1300
|
+
|
|
1301
|
+
// Fine object-space luminance grain. It is intentionally emission-gated so
|
|
1302
|
+
// receiver panels stay clean and the texture stays fixed on the active tile.
|
|
1303
|
+
float grainScale = max(uGrainScale * pixelScale, 0.75);
|
|
1304
|
+
vec2 grainCell = floor(pixel / grainScale);
|
|
1305
|
+
float grainValue = random(grainCell);
|
|
1306
|
+
float grainLight = (grainValue - 0.36) * max(uGrain, 0.0) * fillLight;
|
|
1307
|
+
color += lightColor * grainLight * (0.5 + centreLight * 0.75);
|
|
1308
|
+
|
|
1309
|
+
color += edgeColor * edge * (0.42 + emittedLight * 1.7);
|
|
1310
|
+
color += lightColor * edge * receivedLight * 2.5;
|
|
1311
|
+
color += lightColor * innerEdge * receivedLight * 1.25;
|
|
1312
|
+
|
|
1313
|
+
float intensity = max(uIntensity, 0.0);
|
|
1314
|
+
float halo = outsideGlow * (1.0 - body) * 0.9 * intensity;
|
|
1315
|
+
float alpha = body + halo;
|
|
1316
|
+
if (alpha < 0.002) discard;
|
|
1317
|
+
|
|
1318
|
+
vec3 haloColor = mix(edgeColor, lightColor, clamp(receivedLight * 1.5, 0.0, 1.0));
|
|
1319
|
+
vec3 premultiplied = color * body * intensity + haloColor * halo;
|
|
1320
|
+
gl_FragColor = vec4(clamp(premultiplied, 0.0, 1.0), clamp(alpha, 0.0, 1.0));
|
|
1321
|
+
}
|
|
1322
|
+
`,Yf={name:"reactivePanel",fragmentSource:Cv,defaultParameters:{intensity:.5,speed:.18,emission:0,reception:.85,emitterFill:0,grain:0,grainScale:1.5,cornerRadius:18,borderWidth:2,glowRadius:90,lightX:.5,lightY:.5,lightStrength:0,baseColor:"#09101c",edgeColor:"#33b8ff",lightColor:"#59d1ff"},replacesBaseFill:!0};var Rv=`
|
|
1054
1323
|
precision highp float;
|
|
1055
1324
|
|
|
1056
1325
|
uniform vec2 uResolution;
|
|
@@ -1152,7 +1421,89 @@ void main() {
|
|
|
1152
1421
|
vec3 rgb = tickColor * tick + lineColor * line * 0.95 + glowColor * glow + coreColor * core;
|
|
1153
1422
|
gl_FragColor = vec4(clamp(rgb, 0.0, 1.0), alpha);
|
|
1154
1423
|
}
|
|
1155
|
-
`,
|
|
1424
|
+
`,Uf={name:"ruler",fragmentSource:Rv,replacesBaseFill:!0};var kv=`
|
|
1425
|
+
precision highp float;
|
|
1426
|
+
|
|
1427
|
+
uniform vec2 uResolution;
|
|
1428
|
+
uniform float uTime;
|
|
1429
|
+
uniform float uSpeed;
|
|
1430
|
+
uniform float uIntensity;
|
|
1431
|
+
uniform float uScale;
|
|
1432
|
+
uniform float uSharpness;
|
|
1433
|
+
uniform float uDepth;
|
|
1434
|
+
uniform float uGlow;
|
|
1435
|
+
uniform float uGrain;
|
|
1436
|
+
uniform float uRotation;
|
|
1437
|
+
uniform float uRipple;
|
|
1438
|
+
uniform float uWave;
|
|
1439
|
+
uniform float uVariation;
|
|
1440
|
+
uniform float uFade;
|
|
1441
|
+
uniform float uReaction;
|
|
1442
|
+
uniform float uHover;
|
|
1443
|
+
uniform vec2 uPointer;
|
|
1444
|
+
uniform float uCornerRadius;
|
|
1445
|
+
uniform vec3 uBaseColor;
|
|
1446
|
+
uniform vec3 uColor;
|
|
1447
|
+
uniform vec3 uHighlightColor;
|
|
1448
|
+
varying vec2 vUv;
|
|
1449
|
+
|
|
1450
|
+
float boxMask(vec2 uv) {
|
|
1451
|
+
vec2 halfBox = uResolution * 0.5;
|
|
1452
|
+
float radius = uCornerRadius * min(uResolution.x, uResolution.y);
|
|
1453
|
+
vec2 q = abs(uv * uResolution - halfBox) - halfBox + radius;
|
|
1454
|
+
float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - radius;
|
|
1455
|
+
return 1.0 - smoothstep(-1.0, 1.0, d);
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
float hash(vec2 p) {
|
|
1459
|
+
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
vec2 turn(vec2 point, float angle) {
|
|
1463
|
+
float c = cos(angle);
|
|
1464
|
+
float s = sin(angle);
|
|
1465
|
+
return vec2(c * point.x - s * point.y, s * point.x + c * point.y);
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
void main() {
|
|
1469
|
+
float shape = boxMask(vUv);
|
|
1470
|
+
if (shape <= 0.0) discard;
|
|
1471
|
+
|
|
1472
|
+
float t = uTime * max(uSpeed, 0.0);
|
|
1473
|
+
float aspect = uResolution.x / uResolution.y;
|
|
1474
|
+
float angle = radians(uRotation);
|
|
1475
|
+
float zoom = max(uScale, 0.2) * 2.0;
|
|
1476
|
+
vec2 p = turn((vUv - 0.5) * vec2(aspect, 1.0), angle) * zoom;
|
|
1477
|
+
|
|
1478
|
+
// An irregular, slow bend of the whole cloth, so no two folds are alike.
|
|
1479
|
+
p += uVariation * 1.3 * vec2(sin(p.y * 0.37 + 3.1), cos(p.x * 0.41 + 1.7));
|
|
1480
|
+
|
|
1481
|
+
// Bend the plane a few times, then lay a wave over it: the crests of the wave are the folds of the cloth.
|
|
1482
|
+
for (int i = 0; i < 3; i++) {
|
|
1483
|
+
float k = float(i);
|
|
1484
|
+
p += 0.22 * uWave * vec2(sin(p.y * 1.7 + t * 0.6 + k * 1.3), cos(p.x * 1.5 - t * 0.5 + k * 1.9));
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
// The cloth lifts where the pointer is over it.
|
|
1488
|
+
vec2 touch = turn((uPointer - 0.5) * vec2(aspect, 1.0), angle) * zoom;
|
|
1489
|
+
float lift = exp(-pow(length(p - touch) * 0.55, 2.0)) * uHover * max(uReaction, 0.0);
|
|
1490
|
+
|
|
1491
|
+
float phase = p.x * 0.8 + p.y * 2.2 + 1.2 * sin(p.y * 0.9 - t * 0.3) + 0.8 * sin(p.x * 1.3 + t * 0.2) + lift * 2.4;
|
|
1492
|
+
phase += uRipple * 0.35 * sin(p.x * 7.0 + p.y * 5.0 + t * 1.1);
|
|
1493
|
+
float wave = 0.5 + 0.5 * sin(phase);
|
|
1494
|
+
|
|
1495
|
+
float crest = pow(wave, max(uSharpness, 0.5));
|
|
1496
|
+
float body = pow(wave, mix(1.0, 3.2, clamp(uDepth, 0.0, 1.0)));
|
|
1497
|
+
float bloom = pow(wave, 1.3) * max(uGlow, 0.0);
|
|
1498
|
+
|
|
1499
|
+
vec3 color = mix(uBaseColor, uColor, body * 0.9);
|
|
1500
|
+
color += uHighlightColor * (crest * (0.65 + 0.35 * lift) + bloom * 0.28);
|
|
1501
|
+
color *= max(uIntensity, 0.0);
|
|
1502
|
+
color *= 1.0 - clamp(uFade, 0.0, 1.0) * smoothstep(0.3, 0.78, length(vUv - 0.5) * 1.35);
|
|
1503
|
+
color += (hash(gl_FragCoord.xy) - 0.5) * max(uGrain, 0.0);
|
|
1504
|
+
gl_FragColor = vec4(clamp(color, 0.0, 1.0), shape);
|
|
1505
|
+
}
|
|
1506
|
+
`,Xf={name:"silkFolds",fragmentSource:kv,defaultParameters:{speed:.2,intensity:1,scale:2.2,sharpness:5,depth:.5,glow:.3,grain:.08,rotation:0,ripple:.3,wave:1,variation:0,fade:.3,reaction:1,cornerRadius:.02,baseColor:"#030303",color:"#4d4d4d",highlightColor:"#ffffff"}};var wv=`
|
|
1156
1507
|
precision highp float;
|
|
1157
1508
|
|
|
1158
1509
|
uniform vec2 uResolution;
|
|
@@ -1225,7 +1576,7 @@ void main() {
|
|
|
1225
1576
|
vec3 premultiplied = orbColor * body + plumeColor * (1.0 - body) * plume;
|
|
1226
1577
|
gl_FragColor = vec4(clamp(premultiplied * frameFade * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
1227
1578
|
}
|
|
1228
|
-
`,
|
|
1579
|
+
`,jf={name:"smearOrb",fragmentSource:wv,replacesBaseFill:!0};var vv=`
|
|
1229
1580
|
precision highp float;
|
|
1230
1581
|
|
|
1231
1582
|
uniform vec2 uResolution;
|
|
@@ -1281,7 +1632,7 @@ void main() {
|
|
|
1281
1632
|
float alpha = tick * mix(0.32, 1.0, lit) * max(uIntensity, 0.0);
|
|
1282
1633
|
gl_FragColor = vec4(color * alpha, clamp(alpha, 0.0, 1.0));
|
|
1283
1634
|
}
|
|
1284
|
-
`,
|
|
1635
|
+
`,qf={name:"tickScale",fragmentSource:vv,replacesBaseFill:!0};var Pv=`
|
|
1285
1636
|
precision highp float;
|
|
1286
1637
|
|
|
1287
1638
|
uniform float uTime;
|
|
@@ -1358,7 +1709,7 @@ void main() {
|
|
|
1358
1709
|
vec3 premultiplied = color * body + uColor * (1.0 - body) * halo * 0.48;
|
|
1359
1710
|
gl_FragColor = vec4(clamp(premultiplied * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
1360
1711
|
}
|
|
1361
|
-
`,
|
|
1712
|
+
`,Kf={name:"violetGlass",fragmentSource:Pv};var Lv=`
|
|
1362
1713
|
precision highp float;
|
|
1363
1714
|
|
|
1364
1715
|
uniform float uTime;
|
|
@@ -1425,7 +1776,7 @@ void main() {
|
|
|
1425
1776
|
premultiplied += mix(uShadowColor, uColor, 0.36) * (1.0 - body) * outside;
|
|
1426
1777
|
gl_FragColor = vec4(clamp(premultiplied * max(uIntensity, 0.0), 0.0, 1.0), alpha);
|
|
1427
1778
|
}
|
|
1428
|
-
`,
|
|
1779
|
+
`,Zf={name:"violetGlassLight",fragmentSource:Lv};var Tv=[Hf,If,Bf,$f,Mf,Of,Nf,jf,Vf,Wf,qf,Uf,Tf,zf,Af,Ef,Kf,Zf,_f,Ff,Yf,Df,Gf,Xf],Mv=new Map(Tv.map(e=>[e.name,e]));function Qf(e){return Mv.get(e)}var $v=/^rgba?(s*d+,s*d+,s*d+,s*0s*)$|^transparent$/;function Av(e){let t=e.ownerDocument.defaultView;for(let r=e.parentElement;r&&t;r=r.parentElement){let o=t.getComputedStyle(r).backgroundColor;if(o&&!$v.test(o.trim()))return o}}function Ev(e,t,r,o){let n=e.cloneNode(!0),i=[...e.children].indexOf(t);if(i>=0)for(;n.children.length>i;)n.lastElementChild?.remove();for(let s of n.querySelectorAll("foreignObject[data-sf-shader]"))s.remove();let a=Av(e);if(a){let{x:s,y:l,width:d,height:c}=e.viewBox.baseVal,u=e.ownerDocument.createElementNS("http://www.w3.org/2000/svg","rect");u.setAttribute("x",String(s)),u.setAttribute("y",String(l)),u.setAttribute("width",String(d)),u.setAttribute("height",String(c)),u.setAttribute("fill",a),n.insertBefore(u,n.firstChild)}return n.setAttribute("width",String(r)),n.setAttribute("height",String(o)),n.setAttribute("xmlns","http://www.w3.org/2000/svg"),n}function Jf(e,t){let r=Math.max(globalThis.devicePixelRatio||1,2.5),o=Math.min(r,4096/Math.max(1,Math.max(e.clientWidth,e.clientHeight))),n=Math.max(1,Math.round(e.clientWidth*o)),i=Math.max(1,Math.round(e.clientHeight*o));if(!e.ownerDocument.defaultView)return Promise.resolve(void 0);let s=new XMLSerializer().serializeToString(Ev(e,t,n,i)),l=e.ownerDocument.createElement("img"),d=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`;return new Promise(c=>{l.onload=()=>c({image:l,width:n,height:i}),l.onerror=()=>c(void 0),l.src=d})}function ht(e,t){if(typeof e!="string")return t;let r=/^#([0-9a-f]{6})$/i.exec(e);if(!r)return t;let o=Number.parseInt(r[1],16);return[(o>>16&255)/255,(o>>8&255)/255,(o&255)/255]}function Br(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function fe(e,t,r){let o=e.gl.getUniformLocation(e.program,t);o&&e.gl.uniform1f(o,r)}function Ir(e,t,r){let o=e.gl.getUniformLocation(e.program,t);o&&e.gl.uniform3f(o,...r)}function kn(e,t,r){let o=e.gl.getUniformLocation(e.program,t);o&&e.gl.uniform2f(o,...r)}function wn(e){return`u${e.charAt(0).toUpperCase()}${e.slice(1)}`}function Nv(e,t){return{direction:{left:0,right:1,top:2,bottom:3},orientation:{vertical:0,horizontal:1},axis:{vertical:0,horizontal:1}}[e]?.[t]}function eh(e,t){for(let[r,o]of Object.entries(e.parameters)){let n=wn(r);if(typeof o=="number"){let a=e.parameters[`${r}Lag`];if(typeof a=="number"&&a>0){let s=e.smoothed.get(r)??o,l=s+(o-s)*(1-Math.exp(-t/a));e.smoothed.set(r,l),fe(e,n,l);continue}fe(e,n,o);continue}if(typeof o=="boolean"){let a=e.gl.getUniformLocation(e.program,n);a&&e.gl.uniform1i(a,o?1:0);continue}let i=Nv(r,o);if(i!==void 0){fe(e,n,i);continue}/^#[0-9a-f]{6}$/i.test(o)&&Ir(e,n,ht(o,[0,0,0]))}}var Ov=`
|
|
1429
1780
|
attribute vec2 aPosition;
|
|
1430
1781
|
varying vec2 vUv;
|
|
1431
1782
|
|
|
@@ -1433,12 +1784,12 @@ void main() {
|
|
|
1433
1784
|
vUv = aPosition * 0.5 + 0.5;
|
|
1434
1785
|
gl_Position = vec4(aPosition, 0.0, 1.0);
|
|
1435
1786
|
}
|
|
1436
|
-
`;function of(e,t,r){let n=e.createShader(t);if(n){if(e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){e.deleteShader(n);return}return n}}function af(e,t){let r=of(e,e.VERTEX_SHADER,yw),n=of(e,e.FRAGMENT_SHADER,t);if(!r||!n){r&&e.deleteShader(r),n&&e.deleteShader(n);return}let o=e.createProgram();if(!o){e.deleteShader(r),e.deleteShader(n);return}if(e.attachShader(o,r),e.attachShader(o,n),e.linkProgram(o),e.deleteShader(r),e.deleteShader(n),!e.getProgramParameter(o,e.LINK_STATUS)){e.deleteProgram(o);return}return o}function sf(e){let t=e.createTexture();if(t)return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([0,0,0,0])),t}var xw=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]);function Sw(e){try{return JSON.parse(e.getAttribute("data-sf-shader-params")??"{}")}catch{return{}}}function Cw(e,t){let r=e.createBuffer();if(!r)return;e.bindBuffer(e.ARRAY_BUFFER,r),e.bufferData(e.ARRAY_BUFFER,xw,e.STATIC_DRAW);let n=e.getAttribLocation(t,"aPosition");if(n<0){e.deleteBuffer(r);return}return e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0),r}function Rw(e,t){let r=e.getAttribute("data-sf-id");return!t.replacesBaseFill||!r?void 0:[...e.closest("svg")?.querySelectorAll('[data-sf-primary="true"]')??[]].find(o=>o!==e&&o.getAttribute("data-sf-id")===r)}function lf(e){let t=e.closest("[data-sf-shader]"),r=t?.getAttribute("data-sf-shader"),n=r?ef(r):void 0,o=e.getContext("webgl",{alpha:!0,antialias:!0,premultipliedAlpha:!0});if(!t||!n||!o)return;let i=af(o,n.fragmentSource);if(!i)return;o.useProgram(i);let a=Cw(o,i);if(!a){o.deleteProgram(i);return}let s=n.usesBackdrop===!0,l=Rw(t,n),d=l?.getAttribute("fill");return l?.setAttribute("fill","none"),{owner:t,canvas:e,gl:o,program:i,buffer:a,parameters:Sw(t),smoothed:new Map,backdropTexture:s?sf(o):void 0,backdropOrigin:[0,0],backdropScale:[1,1],usesBackdrop:s,shapeColor:wr(t.getAttribute("data-sf-shader-fill")??void 0,[1,1,1]),baseGeometry:l,baseFill:d}}function df(e){e.backdropTexture&&e.gl.deleteTexture(e.backdropTexture),e.gl.deleteBuffer(e.buffer),e.gl.deleteProgram(e.program),e.baseGeometry&&(e.baseFill===null||e.baseFill===void 0?e.baseGeometry.removeAttribute("fill"):e.baseGeometry.setAttribute("fill",e.baseFill))}function cf(e){let t=e.canvas.closest("svg");if(!t)return;let r=t.getBoundingClientRect(),n=e.canvas.getBoundingClientRect();r.width<=0||r.height<=0||(e.backdropOrigin=[(n.left-r.left)/r.width,(r.bottom-n.bottom)/r.height],e.backdropScale=[n.width/r.width,n.height/r.height])}function uf(e,t){if(!e.backdropTexture)return;cf(e);let{gl:r}=e;r.bindTexture(r.TEXTURE_2D,e.backdropTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t.image)}var kw=2560;function Ht(e,t){let{canvas:r,gl:n,parameters:o}=e,i=r.getBoundingClientRect(),a=Math.min(globalThis.devicePixelRatio||1,3),s=Math.min(1,kw/Math.max(1,i.width*a,i.height*a)),l=Math.max(1,Math.round((i.width||r.clientWidth)*a*s)),d=Math.max(1,Math.round((i.height||r.clientHeight)*a*s));(r.width!==l||r.height!==d)&&(r.width=l,r.height=d),n.viewport(0,0,l,d),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.useProgram(e.program);let c=n.getUniformLocation(e.program,"uResolution");if(c&&n.uniform2f(c,l,d),Ft(e,"uTime",t),e.backdropTexture){cf(e),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,e.backdropTexture);let p=n.getUniformLocation(e.program,"uBackdrop");p&&n.uniform1i(p,0),Ca(e,"uBackdropOrigin",e.backdropOrigin),Ca(e,"uBackdropScale",e.backdropScale)}for(let[p,f]of Object.entries(Sa.numbers))Ft(e,io(p),rf(o[p],f));for(let[p,f]of Object.entries(Sa.colors))oo(e,io(p),wr(o[p],[...f]));oo(e,"uShapeColor",e.shapeColor);let u=e.lastSeconds===void 0?0:Math.max(0,Math.min(t-e.lastSeconds,.1));e.lastSeconds=t,nf(e,u),n.drawArrays(n.TRIANGLES,0,6)}function mf(e){let t=null,r=0,n=()=>(e?.performance.now()??0)/1e3;return{now:()=>(t??n())-r,paused:()=>t!==null,spent:()=>r,setPaused(o){o&&t===null?t=n():!o&&t!==null&&(r+=n()-t,t=null)}}}var ww=120;function vw(e,t,r){let n=new Map(t.map(o=>[o.canvas,o]));return[...e.querySelectorAll("canvas[data-sf-shader-canvas]")].map(o=>{let i=n.get(o);if(i)try{return Ht(i,r),i.canvas.toDataURL("image/png")}catch{return}})}function Pw(e,t,r,n){let o=!1;for(let i of e)i.owner.getAttribute("data-sf-id")===t&&(Object.assign(i.parameters,r),i.owner.setAttribute("data-sf-shader-params",JSON.stringify(i.parameters)),Ht(i,n),o=!0);return o}function Lw(e,t,r){if(!t)return()=>{};let n=new t.MutationObserver(r);n.observe(e,{attributes:!0,attributeFilter:["viewBox"]});let o=t.ResizeObserver?new t.ResizeObserver(r):void 0;return o?.observe(e),()=>{n.disconnect(),o?.disconnect()}}function Ra(e){let t=[],r,n=0,o,i=e.ownerDocument.defaultView,a=mf(i),s=b=>{if(!a.paused())for(let x of t)Ht(x,b/1e3-a.spent());r=i?.requestAnimationFrame(s)},l=()=>{r!==void 0&&(i?.cancelAnimationFrame(r),r=void 0);for(let b of t)df(b);t=[]},d=b=>{for(let x of t)x.usesBackdrop&&tf(e,x.owner).then(C=>{C&&b===n&&uf(x,C)})},c=()=>{if(!i?.requestAnimationFrame){for(let b of t)Ht(b,0);return}if(a.paused())for(let b of t)Ht(b,a.now());r=i.requestAnimationFrame(s)},u=()=>{l();let b=++n;t=[...e.querySelectorAll("canvas[data-sf-shader-canvas]")].flatMap(x=>{let C=lf(x);return C?[C]:[]}),d(b),t.length>0&&c()},f=Lw(e,i,()=>{o!==void 0&&i?.clearTimeout(o),o=i?.setTimeout(()=>{o=void 0,d(n)},ww)});u();let g=()=>{n+=1,f(),o!==void 0&&i?.clearTimeout(o),l()};return{capture:()=>vw(e,t,a.now()),setParameters:(b,x)=>Pw(t,b,x,a.now()),setPaused:a.setPaused,refresh:u,destroy:g}}function ao(e,t){let r=e.svg??(e.source!=null?Dn(e.source,{...e.renderOptions??t,linkHitAreas:!0}).svg:null);if(r==null)throw new Error("createViewer: provide either `source` (SFL) or `svg`.");return r}function pf(e){let t=jn(e);if(!Xn(t))throw new Error(`createViewer: incompatible DOM contract (svg=${t}). Renderer and viewer versions differ.`)}function ff(e){let t=jn(e);if(!Xn(t))throw new Error(`viewer.update: incompatible DOM contract (svg=${t}). Renderer and viewer versions differ.`)}var so=class{constructor(t,r,n){this.options=t;this.diagramId=n;this.display=hp(t.container,r),this.shaderSurfaces=Ra(this.display.svg),this.documentComponents=_i(this.display.svg),this.interaction=t.interactive?Np(this.display,this.emitter,n,{selectable:t.selectable}):null,this.placeKnobs()}options;diagramId;emitter=new Yn;display;interaction;shaderSurfaces;documentComponents;shaderParameterOverrides=new Map;rulerProgressOverrides=new Map;placeKnobs(){let t=ip(this.display.svg,r=>this.rulerProgressOverrides.get(r));for(let[r,n]of t)this.setShaderParameters(r,{knobRadius:n})}get svg(){return this.display.svg}on(t,r){return this.emitter.on(t,r)}getSelection(){return this.interaction?.getSelection()??[]}select(t){this.interaction?.select(t)}fit(){this.display.fit(),this.interaction?.repaint()}getViewport(){return this.display.getViewport()}exportSvg(){return Ui(this.svg,this.shaderSurfaces.capture())}exportImage(t){return zi(this.svg,this.exportSvg(),t)}setShaderParameters(t,r){let n={...this.shaderParameterOverrides.get(t),...r};return this.shaderParameterOverrides.set(t,n),this.shaderSurfaces.setParameters(t,r)}setWidgetValue(t,r){return this.setComponentValue(t,r)}setComponentValue(t,r){if(this.documentComponents.setValue(t,r))return!0;let n=[...this.svg.querySelectorAll('foreignObject[data-sf-shader="ruler"]')].find(a=>a.getAttribute("data-sf-id")===t);if(n){let a=np(n,Number(r));this.rulerProgressOverrides.set(t,a);let s=this.setShaderParameters(t,{progress:a});return this.placeKnobs(),s}let o=[...this.svg.querySelectorAll('foreignObject[data-sf-shader="tickScale"]')].find(a=>a.getAttribute("data-sf-id")===t);if(!o)return!1;let i=100;try{i=Number(JSON.parse(o.getAttribute("data-sf-shader-params")??"{}").max)||100}catch{i=100}return this.setShaderParameters(t,{progress:Math.min(1,Math.max(0,Number(r)/i))})}setPaused(t){this.shaderSurfaces.setPaused(t)}clearOverrides(){this.shaderParameterOverrides.clear(),this.rulerProgressOverrides.clear(),this.documentComponents.clearValues()}update(t){let r=ao(t,this.options.renderOptions);ff(r);let n=this.display.updateContent(r);this.shaderSurfaces.refresh(),this.documentComponents.refresh(),this.placeKnobs();for(let[i,a]of this.shaderParameterOverrides)this.shaderSurfaces.setParameters(i,a);t.resetView&&this.display.fit();let o=this.interaction?.getSelection().map(i=>i.id)??[];if(o.length>0&&this.interaction?.select(o),this.emitter.emit("sceneDiff",{diagramId:this.diagramId,...n}),t.highlightChanges){let i=typeof t.highlightChanges=="object"?t.highlightChanges.color:void 0;this.interaction?.flashChanged([...n.added,...n.changed],i)}}announceReady(){queueMicrotask(()=>this.emitter.emit("ready",{diagramId:this.diagramId}))}destroy(){this.interaction?.destroy(),this.shaderSurfaces.destroy(),this.documentComponents.destroy(),this.shaderParameterOverrides.clear(),this.display.destroy(),this.emitter.clear()}};function hf(e){let t=e.diagramId??"diagram",r=ao(e,e.renderOptions);pf(r);let n=new so(e,r,t);return n.announceReady(),n}var Tw=`
|
|
1787
|
+
`;function th(e,t,r){let o=e.createShader(t);if(o){if(e.shaderSource(o,r),e.compileShader(o),!e.getShaderParameter(o,e.COMPILE_STATUS)){e.deleteShader(o);return}return o}}function rh(e,t){let r=th(e,e.VERTEX_SHADER,Ov),o=th(e,e.FRAGMENT_SHADER,t);if(!r||!o){r&&e.deleteShader(r),o&&e.deleteShader(o);return}let n=e.createProgram();if(!n){e.deleteShader(r),e.deleteShader(o);return}if(e.attachShader(n,r),e.attachShader(n,o),e.linkProgram(n),e.deleteShader(r),e.deleteShader(o),!e.getProgramParameter(n,e.LINK_STATUS)){e.deleteProgram(n);return}return n}function oh(e){let t=e.createTexture();if(t)return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([0,0,0,0])),t}var Bv=new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]);function Iv(e){try{return JSON.parse(e.getAttribute("data-sf-shader-params")??"{}")}catch{return{}}}function Dv(e){let t=Number(e.getAttribute("data-sf-shader-padding"));return Number.isFinite(t)?Math.max(0,t):0}function Gv(e,t){let r=e.createBuffer();if(!r)return;e.bindBuffer(e.ARRAY_BUFFER,r),e.bufferData(e.ARRAY_BUFFER,Bv,e.STATIC_DRAW);let o=e.getAttribLocation(t,"aPosition");if(o<0){e.deleteBuffer(r);return}return e.enableVertexAttribArray(o),e.vertexAttribPointer(o,2,e.FLOAT,!1,0,0),r}function _v(e,t){let r=e.getAttribute("data-sf-id");return!t.replacesBaseFill||!r?void 0:[...e.closest("svg")?.querySelectorAll('[data-sf-primary="true"]')??[]].find(n=>n!==e&&n.getAttribute("data-sf-id")===r)}function nh(e){let t=e.closest("[data-sf-shader]"),r=t?.getAttribute("data-sf-shader"),o=r?Qf(r):void 0,n=e.getContext("webgl",{alpha:!0,antialias:!0,premultipliedAlpha:!0});if(!t||!o||!n)return;let i=rh(n,o.fragmentSource);if(!i)return;n.useProgram(i);let a=Gv(n,i);if(!a){n.deleteProgram(i);return}let s=o.usesBackdrop===!0,l=_v(t,o),d=l?.getAttribute("fill");return l?.setAttribute("fill","none"),{owner:t,canvas:e,gl:n,program:i,buffer:a,parameters:{...o.defaultParameters,...Iv(t)},surfacePadding:Dv(t),smoothed:new Map,pointer:{x:.5,y:.5},hovering:!1,hover:0,trail:[],backdropTexture:s?oh(n):void 0,backdropOrigin:[0,0],backdropScale:[1,1],usesBackdrop:s,shapeColor:ht(t.getAttribute("data-sf-shader-fill")??void 0,[1,1,1]),baseGeometry:l,baseFill:d}}function ih(e){e.backdropTexture&&e.gl.deleteTexture(e.backdropTexture),e.gl.deleteBuffer(e.buffer),e.gl.deleteProgram(e.program),e.baseGeometry&&(e.baseFill===null||e.baseFill===void 0?e.baseGeometry.removeAttribute("fill"):e.baseGeometry.setAttribute("fill",e.baseFill))}function Fv(e){let t=Number(e.owner.getAttribute("x")),r=Number(e.owner.getAttribute("y")),o=Number(e.owner.getAttribute("width")),n=Number(e.owner.getAttribute("height"));if(![t,r,o,n].every(Number.isFinite)||o<=0||n<=0)return;let i=e.owner.getCTM?.(),a=i?.a??1,s=i?.b??0,l=i?.c??0,d=i?.d??1,c=i?.e??0,u=i?.f??0,m=a*d-s*l,f=a*(t+o/2)+l*(r+n/2)+c,h=s*(t+o/2)+d*(r+n/2)+u;return{width:o,height:n,centerX:f,centerY:h,localPoint:(x,b)=>{if(Math.abs(m)<1e-6)return[x,b];let C=x-c,S=b-u;return[(d*C-l*S)/m,(-s*C+a*S)/m]}}}function Ka(e,t,r){return Br(e[t],r)}function Hv(e,t,r,o,n,i){return[(e-r)/n,(t-o)/i]}function vn(e){let t=e.filter(r=>r.owner.getAttribute("data-sf-shader")==="reactivePanel").flatMap(r=>{let o=Fv(r);return o?[{surface:r,geometry:o}]:[]});for(let r of t){let o=[];for(let b of t){if(b.surface===r.surface)continue;let C=Math.max(0,b.surface.smoothed.get("emission")??Ka(b.surface.parameters,"emission",0));if(C<=1e-4)continue;let S=Math.hypot(b.geometry.centerX-r.geometry.centerX,b.geometry.centerY-r.geometry.centerY);o.push({candidate:b,emission:C,weight:C/Math.max(S,1)})}let n=o.reduce((b,C)=>b+C.weight,0);if(n<=0){r.surface.reactiveLight=void 0;continue}let i=0,a=0,s=0,l=0,d=[0,0,0];for(let b of o){let C=b.weight/n;i+=b.candidate.geometry.centerX*C,a+=b.candidate.geometry.centerY*C,s+=b.emission,l+=Math.max(1,Ka(b.candidate.surface.parameters,"glowRadius",90))*C;let S=ht(b.candidate.surface.parameters.lightColor,[.35,.82,1]);d[0]+=S[0]*C,d[1]+=S[1]*C,d[2]+=S[2]*C}let c=Math.max(0,Ka(r.surface.parameters,"lightStrength",1)),[u,m]=r.geometry.localPoint(i,a),f=Number(r.surface.owner.getAttribute("x")),h=Number(r.surface.owner.getAttribute("y")),[y,x]=Hv(u,m,f,h,r.geometry.width,r.geometry.height);r.surface.reactiveLight={x:y,y:x,strength:s*c*1.8,radius:l,color:d}}}function sh(e){let t=e.canvas.closest("svg");if(!t)return;let r=t.getBoundingClientRect(),o=e.canvas.getBoundingClientRect();r.width<=0||r.height<=0||(e.backdropOrigin=[(o.left-r.left)/r.width,(r.bottom-o.bottom)/r.height],e.backdropScale=[o.width/r.width,o.height/r.height])}function lh(e,t){if(!e.backdropTexture)return;sh(e);let{gl:r}=e;r.bindTexture(r.TEXTURE_2D,e.backdropTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t.image)}var Vv=2560,ah=16;function Zt(e,t){let{canvas:r,gl:o,parameters:n}=e,i=r.getBoundingClientRect(),a=Math.min(globalThis.devicePixelRatio||1,3),s=Math.min(1,Vv/Math.max(1,i.width*a,i.height*a)),l=Math.max(1,Math.round((i.width||r.clientWidth)*a*s)),d=Math.max(1,Math.round((i.height||r.clientHeight)*a*s));(r.width!==l||r.height!==d)&&(r.width=l,r.height=d),o.viewport(0,0,l,d),o.clearColor(0,0,0,0),o.clear(o.COLOR_BUFFER_BIT),o.useProgram(e.program);let c=o.getUniformLocation(e.program,"uResolution");c&&o.uniform2f(c,l,d);let u=Number(e.owner.getAttribute("width"));if(fe(e,"uPixelScale",Number.isFinite(u)&&u>0?l/u:a*s),fe(e,"uTime",t),e.backdropTexture){sh(e),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,e.backdropTexture);let x=o.getUniformLocation(e.program,"uBackdrop");x&&o.uniform1i(x,0),kn(e,"uBackdropOrigin",e.backdropOrigin),kn(e,"uBackdropScale",e.backdropScale)}for(let[x,b]of Object.entries(qa.numbers))fe(e,wn(x),Br(n[x],b));for(let[x,b]of Object.entries(qa.colors))Ir(e,wn(x),ht(n[x],[...b]));Ir(e,"uShapeColor",e.shapeColor);let m=e.lastSeconds===void 0?0:Math.max(0,Math.min(t-e.lastSeconds,.1));e.lastSeconds=t,eh(e,m),e.hover+=((e.hovering?1:0)-e.hover)*(1-Math.exp(-m/.18)),kn(e,"uPointer",[e.pointer.x,e.pointer.y]),fe(e,"uHover",e.hover);let f=Br(n.trail,0),h=new Float32Array(ah*3);f>0&&e.trail.slice(-ah).forEach((x,b)=>{h.set([x.x,x.y,Math.exp(-Math.max(t-x.at,0)/f)],b*3)});let y=o.getUniformLocation(e.program,"uWake[0]");y&&o.uniform3fv(y,h),e.reactiveLight&&(fe(e,"uLightX",e.reactiveLight.x),fe(e,"uLightY",e.reactiveLight.y),fe(e,"uLightStrength",e.reactiveLight.strength),fe(e,"uGlowRadius",e.reactiveLight.radius),Ir(e,"uLightColor",e.reactiveLight.color)),fe(e,"uSurfacePadding",e.surfacePadding),o.drawArrays(o.TRIANGLES,0,6)}function dh(e){let t=null,r=0,o=()=>(e?.performance.now()??0)/1e3;return{now:()=>(t??o())-r,paused:()=>t!==null,spent:()=>r,setPaused(n){n&&t===null?t=o():!n&&t!==null&&(r+=o()-t,t=null)}}}var Wv=120,zv=.055,Yv=16;function Uv(e,t,r){let o=new Map(t.map(n=>[n.canvas,n]));return[...e.querySelectorAll("canvas[data-sf-shader-canvas]")].map(n=>{let i=o.get(n);if(i)try{return Zt(i,r),i.canvas.toDataURL("image/png")}catch{return}})}function Xv(e,t,r,o){let n=!1;for(let i of e)i.owner.getAttribute("data-sf-id")===t&&(Object.assign(i.parameters,r),i.owner.setAttribute("data-sf-shader-params",JSON.stringify(i.parameters)),n=!0);if(n){vn(e);for(let i of e)Zt(i,o)}return n}function jv(e,t,r){if(!t)return()=>{};let o=new t.MutationObserver(r);o.observe(e,{attributes:!0,attributeFilter:["viewBox"]});let n=t.ResizeObserver?new t.ResizeObserver(r):void 0;return n?.observe(e),()=>{o.disconnect(),n?.disconnect()}}function Za(e){let t=[],r,o=0,n,i=e.ownerDocument.defaultView,a=dh(i),s=b=>{if(!a.paused()){vn(t);for(let C of t)Zt(C,b/1e3-a.spent())}r=i?.requestAnimationFrame(s)},l=()=>{r!==void 0&&(i?.cancelAnimationFrame(r),r=void 0);for(let b of t)ih(b);t=[]},d=b=>{for(let C of t)C.usesBackdrop&&Jf(e,C.owner).then(S=>{S&&b===o&&lh(C,S)})},c=()=>{if(!i?.requestAnimationFrame){for(let b of t)Zt(b,0);return}if(a.paused())for(let b of t)Zt(b,a.now());r=i.requestAnimationFrame(s)},u=()=>{let b=new Map(t.flatMap(S=>{let v=S.owner.getAttribute("data-sf-id");return v?[[v,{smoothed:new Map(S.smoothed),reactiveLight:S.reactiveLight,pointer:S.pointer,hover:S.hover,hovering:S.hovering,trail:S.trail}]]:[]}));l();let C=++o;t=[...e.querySelectorAll("canvas[data-sf-shader-canvas]")].flatMap(S=>{let v=nh(S),O=v?.owner.getAttribute("data-sf-id"),E=O?b.get(O):void 0;return v&&E&&(v.smoothed=E.smoothed,v.reactiveLight=E.reactiveLight,v.pointer=E.pointer,v.hover=E.hover,v.hovering=E.hovering,v.trail=E.trail),v?[v]:[]}),vn(t),d(C),t.length>0&&c()},f=jv(e,i,()=>{n!==void 0&&i?.clearTimeout(n),n=i?.setTimeout(()=>{n=void 0,d(o)},Wv)}),h=b=>{for(let C of t){let S=C.canvas.getBoundingClientRect(),v=S.width>0&&S.height>0&&b.clientX>=S.left&&b.clientX<=S.right&&b.clientY>=S.top&&b.clientY<=S.bottom;if(C.hovering=v,v){C.pointer={x:(b.clientX-S.left)/S.width,y:1-(b.clientY-S.top)/S.height};let O=a.now(),E=C.trail[C.trail.length-1];(!E||O-E.at>=zv)&&(C.trail.push({...C.pointer,at:O}),C.trail.length>Yv&&C.trail.shift())}}},y=()=>{for(let b of t)b.hovering=!1};e.addEventListener("pointermove",h),e.addEventListener("pointerleave",y),u();let x=()=>{o+=1,f(),e.removeEventListener("pointermove",h),e.removeEventListener("pointerleave",y),n!==void 0&&i?.clearTimeout(n),l()};return{capture:()=>Uv(e,t,a.now()),setParameters:(b,C)=>Xv(t,b,C,a.now()),setPaused:a.setPaused,refresh:u,destroy:x}}function Pn(e,t){let r=e.svg??(e.source!=null?rn(e.source,{...e.renderOptions??t,linkHitAreas:!0}).svg:null);if(r==null)throw new Error("createViewer: provide either `source` (SFL) or `svg`.");return r}function ch(e){let t=mn(e);if(!pn(t))throw new Error(`createViewer: incompatible DOM contract (svg=${t}). Renderer and viewer versions differ.`)}function uh(e){let t=mn(e);if(!pn(t))throw new Error(`viewer.update: incompatible DOM contract (svg=${t}). Renderer and viewer versions differ.`)}var Ln=class{constructor(t,r,o){this.options=t;this.diagramId=o;this.display=df(t.container,r),this.shaderSurfaces=Za(this.display.svg),this.documentComponents=fa(this.display.svg),this.interaction=t.interactive?Lf(this.display,this.emitter,o,{selectable:t.selectable}):null,this.placeKnobs()}options;diagramId;emitter=new cn;display;interaction;shaderSurfaces;documentComponents;shaderParameterOverrides=new Map;rulerProgressOverrides=new Map;placeKnobs(){let t=Qp(this.display.svg,r=>this.rulerProgressOverrides.get(r));for(let[r,o]of t)this.setShaderParameters(r,{knobRadius:o})}get svg(){return this.display.svg}on(t,r){return this.emitter.on(t,r)}getSelection(){return this.interaction?.getSelection()??[]}select(t){this.interaction?.select(t)}fit(){this.display.fit(),this.interaction?.repaint()}getViewport(){return this.display.getViewport()}exportSvg(){return Ca(this.svg,this.shaderSurfaces.capture())}exportImage(t){return xa(this.svg,this.exportSvg(),t)}setShaderParameters(t,r){let o={...this.shaderParameterOverrides.get(t),...r};return this.shaderParameterOverrides.set(t,o),this.shaderSurfaces.setParameters(t,r)}setWidgetValue(t,r){return this.setComponentValue(t,r)}setComponentValue(t,r){if(this.documentComponents.setValue(t,r))return!0;let o=[...this.svg.querySelectorAll('foreignObject[data-sf-shader="ruler"]')].find(a=>a.getAttribute("data-sf-id")===t);if(o){let a=Kp(o,Number(r));this.rulerProgressOverrides.set(t,a);let s=this.setShaderParameters(t,{progress:a});return this.placeKnobs(),s}let n=[...this.svg.querySelectorAll('foreignObject[data-sf-shader="tickScale"]')].find(a=>a.getAttribute("data-sf-id")===t);if(!n)return!1;let i=100;try{i=Number(JSON.parse(n.getAttribute("data-sf-shader-params")??"{}").max)||100}catch{i=100}return this.setShaderParameters(t,{progress:Math.min(1,Math.max(0,Number(r)/i))})}setPaused(t){this.shaderSurfaces.setPaused(t)}clearOverrides(){this.shaderParameterOverrides.clear(),this.rulerProgressOverrides.clear(),this.documentComponents.clearValues()}update(t){let r=Pn(t,this.options.renderOptions);uh(r);let o=this.display.updateContent(r);this.shaderSurfaces.refresh(),this.documentComponents.refresh(),this.placeKnobs();for(let[i,a]of this.shaderParameterOverrides)this.shaderSurfaces.setParameters(i,a);t.resetView&&this.display.fit();let n=this.interaction?.getSelection().map(i=>i.id)??[];if(n.length>0&&this.interaction?.select(n),this.emitter.emit("sceneDiff",{diagramId:this.diagramId,...o}),t.highlightChanges){let i=typeof t.highlightChanges=="object"?t.highlightChanges.color:void 0;this.interaction?.flashChanged([...o.added,...o.changed],i)}}announceReady(){queueMicrotask(()=>this.emitter.emit("ready",{diagramId:this.diagramId}))}destroy(){this.interaction?.destroy(),this.shaderSurfaces.destroy(),this.documentComponents.destroy(),this.shaderParameterOverrides.clear(),this.display.destroy(),this.emitter.clear()}};function mh(e){let t=e.diagramId??"diagram",r=Pn(e,e.renderOptions);ch(r);let o=new Ln(e,r,t);return o.announceReady(),o}var qv=`
|
|
1437
1788
|
:host { display: block; position: relative; }
|
|
1438
1789
|
.sf-container { width: 100%; height: 100%; }
|
|
1439
1790
|
svg { display: block; max-width: 100%; }
|
|
1440
1791
|
.sf-error { color: #b91c1c; font: 13px/1.4 system-ui, sans-serif; padding: 8px; white-space: pre-wrap; }
|
|
1441
1792
|
[data-sf-role="entity"], [data-sf-role="link"] { cursor: pointer; }
|
|
1442
1793
|
[data-sf-selected] { stroke: #2563eb !important; stroke-width: 4 !important; }
|
|
1443
|
-
`;function
|
|
1794
|
+
`;function Kv(e){let t=document.createElement("style");t.textContent=qv;let r=document.createElement("div");return r.className="sf-container",e.append(t,r),r}function Zv(e,t){let r=document.createElement("div");r.className="sf-error",r.textContent=`stickyflow: ${t.message??t}`,e.replaceChildren(r)}function Qv(e,t,r){return mh({container:e,source:t,interactive:!0,diagramId:r.diagramId,renderOptions:{padding:r.padding}})}function Jv(e,t,r){e.innerHTML=rn(t,{padding:r.padding}).svg}function ph(e,t){let r=Kv(e);if(t.source===null)return{viewer:null,rendered:!1};try{let o=t.interactive?Qv(r,t.source,t):null;return t.interactive||Jv(r,t.source,t),{viewer:o,rendered:!0}}catch(o){return Zv(r,o),{viewer:null,rendered:!1}}}var e1=typeof HTMLElement>"u"?class{}:HTMLElement,gt=class extends e1{static get observedAttributes(){return[...ts]}root;view=null;sourceProp=null;constructor(){super(),this.root=this.attachShadow({mode:"open"})}connectedCallback(){this.rerender()}disconnectedCallback(){this.teardown()}attributeChangedCallback(){this.isConnected&&this.rerender()}set source(t){this.sourceProp=t,this.isConnected&&this.rerender()}get source(){return this.sourceProp??this.getAttribute("source")}get viewer(){return this.view}config(){let t=rs(r=>this.getAttribute(r));return{...t,source:this.sourceProp??t.source}}teardown(){this.view?.destroy(),this.view=null,this.root.replaceChildren()}rerender(){this.teardown();let t=this.config(),r=ph(this.root,t);this.view=r.viewer,r.rendered&&this.dispatchEvent(new CustomEvent("sf-render",{detail:{interactive:t.interactive}}))}};function Qa(e="stickyflow-diagram"){typeof customElements>"u"||customElements.get(e)||customElements.define(e,gt)}Qa();return Rh(t1);})();
|
|
1444
1795
|
//# sourceMappingURL=stickyflow-diagram.global.js.map
|