vvplot 0.1.3 → 0.2.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/README.md +2 -2
- package/dist/style.css +0 -13
- package/dist/vvplot.d.ts +307 -0
- package/dist/{Selection.js → vvplot.esm.js} +4264 -287
- package/dist/vvplot.esm.min.js +2 -0
- package/dist/vvplot.global.js +12138 -0
- package/dist/vvplot.global.min.js +2 -0
- package/package.json +7 -9
- package/dist/break.d.ts +0 -1
- package/dist/break.js +0 -118
- package/dist/components.d.ts +0 -74
- package/dist/components.js +0 -27
- package/dist/index.d.ts +0 -74
- package/dist/index.js +0 -27
- package/dist/label.d.ts +0 -1
- package/dist/label.js +0 -151
- package/dist/scale.d.ts +0 -1
- package/dist/scale.js +0 -2973
- package/dist/theme.d.ts +0 -1
- package/dist/theme.js +0 -254
- package/dist/utils.js +0 -372
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var VVPlot=(function(ft,l){"use strict";function Fl(t){return l.getCurrentScope()?(l.onScopeDispose(t),!0):!1}function Rl(t){if(!l.isRef(t))return l.reactive(t);const e=new Proxy({},{get(n,i,r){return l.unref(Reflect.get(t.value,i,r))},set(n,i,r){return l.isRef(t.value[i])&&!l.isRef(r)?t.value[i].value=r:t.value[i]=r,!0},deleteProperty(n,i){return Reflect.deleteProperty(t.value,i)},has(n,i){return Reflect.has(t.value,i)},ownKeys(){return Object.keys(t.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return l.reactive(e)}function ne(t){return Rl(l.computed(t))}const Hl=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zl=Hl?window:void 0;function Yi(t){var e;const n=l.toValue(t);return(e=n?.$el)!=null?e:n}function ql(){const t=l.shallowRef(!1),e=l.getCurrentInstance();return e&&l.onMounted(()=>{t.value=!0},e),t}function Wl(t){const e=ql();return l.computed(()=>(e.value,!!t()))}function Fi(t,e,n={}){const{window:i=zl,...r}=n;let o;const s=Wl(()=>i&&"ResizeObserver"in i),c=()=>{o&&(o.disconnect(),o=void 0)},f=l.computed(()=>{const h=l.toValue(t);return Array.isArray(h)?h.map(m=>Yi(m)):[Yi(h)]}),a=l.watch(f,h=>{if(c(),s.value&&i){o=new ResizeObserver(e);for(const m of h)m&&o.observe(m,r)}},{immediate:!0,flush:"post"}),u=()=>{c(),a()};return Fl(u),{isSupported:s,stop:u}}const ze=()=>!1,Cn=Object.assign,Gl=Symbol(""),Ul=Symbol(""),Kl=Symbol(""),Ql=Symbol(""),Ri={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function Zl(t,e=""){return{type:0,source:e,children:t,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Ri}}function Pn(t,e=!1,n=Ri,i=0){return{type:4,loc:n,content:t,isStatic:e,constType:e?3:i}}const Hi=new Uint8Array([123,123]),zi=new Uint8Array([125,125]);function qi(t){return t>=97&&t<=122||t>=65&&t<=90}function Ot(t){return t===32||t===10||t===9||t===12||t===13}function ie(t){return t===47||t===62||Ot(t)}function qe(t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}const Bt={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97])};class Jl{constructor(e,n){this.stack=e,this.cbs=n,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=Hi,this.delimiterClose=zi,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return this.mode===2&&this.stack.length===0}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=Hi,this.delimiterClose=zi}getPos(e){let n=1,i=e+1;const r=this.newlines.length;let o=-1;if(r>100){let s=-1,c=r;for(;s+1<c;){const f=s+c>>>1;this.newlines[f]<e?s=f:c=f}o=s}else for(let s=r-1;s>=0;s--)if(e>this.newlines[s]){o=s;break}return o>=0&&(n=o+2,i=e-this.newlines[o]),{column:i,line:n,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){e===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const n=this.index+1-this.delimiterOpen.length;n>this.sectionStart&&this.cbs.ontext(this.sectionStart,n),this.state=3,this.sectionStart=n}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){const n=this.sequenceIndex===this.currentSequence.length;if(!(n?ie(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!n){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(e===62||Ot(e)){const n=this.index-this.currentSequence.length;if(this.sectionStart<n){const i=this.index;this.index=n,this.cbs.ontext(this.sectionStart,n),this.index=i}this.sectionStart=n+2,this.stateInClosingTagName(e),this.inRCDATA=!1;return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Bt.TitleEnd||this.currentSequence===Bt.TextareaEnd&&!this.inSFCRoot?!this.inVPre&&e===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e)):this.fastForwardTo(60)&&(this.sequenceIndex=1):this.sequenceIndex=+(e===60)}stateCDATASequence(e){e===Bt.Cdata[this.sequenceIndex]?++this.sequenceIndex===Bt.Cdata.length&&(this.state=28,this.currentSequence=Bt.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=23,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length;){const n=this.buffer.charCodeAt(this.index);if(n===10&&this.newlines.push(this.index),n===e)return!0}return this.index=this.buffer.length-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Bt.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index-2):this.cbs.oncomment(this.sectionStart,this.index-2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=1):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}startSpecial(e,n){this.enterRCDATA(e,n),this.state=31}enterRCDATA(e,n){this.inRCDATA=!0,this.currentSequence=e,this.sequenceIndex=n}stateBeforeTagName(e){e===33?(this.state=22,this.sectionStart=this.index+1):e===63?(this.state=24,this.sectionStart=this.index+1):qi(e)?(this.sectionStart=this.index,this.mode===0?this.state=6:this.inSFCRoot?this.state=34:this.inXML?this.state=6:e===116?this.state=30:this.state=e===115?29:6):e===47?this.state=8:(this.state=1,this.stateText(e))}stateInTagName(e){ie(e)&&this.handleTagName(e)}stateInSFCRootTagName(e){if(ie(e)){const n=this.buffer.slice(this.sectionStart,this.index);n!=="template"&&this.enterRCDATA(qe("</"+n),0),this.handleTagName(e)}}handleTagName(e){this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)}stateBeforeClosingTagName(e){Ot(e)||(e===62?(this.state=1,this.sectionStart=this.index+1):(this.state=qi(e)?9:27,this.sectionStart=this.index))}stateInClosingTagName(e){(e===62||Ot(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=10,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){e===62&&(this.state=1,this.sectionStart=this.index+1)}stateBeforeAttrName(e){e===62?(this.cbs.onopentagend(this.index),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):e===47?this.state=7:e===60&&this.peek()===47?(this.cbs.onopentagend(this.index),this.state=5,this.sectionStart=this.index):Ot(e)||this.handleAttrStart(e)}handleAttrStart(e){e===118&&this.peek()===45?(this.state=13,this.sectionStart=this.index):e===46||e===58||e===64||e===35?(this.cbs.ondirname(this.index,this.index+1),this.state=14,this.sectionStart=this.index+1):(this.state=12,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===62?(this.cbs.onselfclosingtag(this.index),this.state=1,this.sectionStart=this.index+1,this.inRCDATA=!1):Ot(e)||(this.state=11,this.stateBeforeAttrName(e))}stateInAttrName(e){(e===61||ie(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.handleAttrNameEnd(e))}stateInDirName(e){e===61||ie(e)?(this.cbs.ondirname(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===58?(this.cbs.ondirname(this.sectionStart,this.index),this.state=14,this.sectionStart=this.index+1):e===46&&(this.cbs.ondirname(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDirArg(e){e===61||ie(e)?(this.cbs.ondirarg(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===91?this.state=15:e===46&&(this.cbs.ondirarg(this.sectionStart,this.index),this.state=16,this.sectionStart=this.index+1)}stateInDynamicDirArg(e){e===93?this.state=14:(e===61||ie(e))&&(this.cbs.ondirarg(this.sectionStart,this.index+1),this.handleAttrNameEnd(e))}stateInDirModifier(e){e===61||ie(e)?(this.cbs.ondirmodifier(this.sectionStart,this.index),this.handleAttrNameEnd(e)):e===46&&(this.cbs.ondirmodifier(this.sectionStart,this.index),this.sectionStart=this.index+1)}handleAttrNameEnd(e){this.sectionStart=this.index,this.state=17,this.cbs.onattribnameend(this.index),this.stateAfterAttrName(e)}stateAfterAttrName(e){e===61?this.state=18:e===47||e===62?(this.cbs.onattribend(0,this.sectionStart),this.sectionStart=-1,this.state=11,this.stateBeforeAttrName(e)):Ot(e)||(this.cbs.onattribend(0,this.sectionStart),this.handleAttrStart(e))}stateBeforeAttrValue(e){e===34?(this.state=19,this.sectionStart=this.index+1):e===39?(this.state=20,this.sectionStart=this.index+1):Ot(e)||(this.sectionStart=this.index,this.state=21,this.stateInAttrValueNoQuotes(e))}handleInAttrValue(e,n){(e===n||this.fastForwardTo(n))&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(n===34?3:2,this.index+1),this.state=11)}stateInAttrValueDoubleQuotes(e){this.handleInAttrValue(e,34)}stateInAttrValueSingleQuotes(e){this.handleInAttrValue(e,39)}stateInAttrValueNoQuotes(e){Ot(e)||e===62?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(1,this.index),this.state=11,this.stateBeforeAttrName(e)):(e===39||e===60||e===61||e===96)&&this.cbs.onerr(18,this.index)}stateBeforeDeclaration(e){e===91?(this.state=26,this.sequenceIndex=0):this.state=e===45?25:23}stateInDeclaration(e){(e===62||this.fastForwardTo(62))&&(this.state=1,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===62||this.fastForwardTo(62))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeComment(e){e===45?(this.state=28,this.currentSequence=Bt.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=23}stateInSpecialComment(e){(e===62||this.fastForwardTo(62))&&(this.cbs.oncomment(this.sectionStart,this.index),this.state=1,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){e===Bt.ScriptEnd[3]?this.startSpecial(Bt.ScriptEnd,4):e===Bt.StyleEnd[3]?this.startSpecial(Bt.StyleEnd,4):(this.state=6,this.stateInTagName(e))}stateBeforeSpecialT(e){e===Bt.TitleEnd[3]?this.startSpecial(Bt.TitleEnd,4):e===Bt.TextareaEnd[3]?this.startSpecial(Bt.TextareaEnd,4):(this.state=6,this.stateInTagName(e))}startEntity(){}stateInEntity(){}parse(e){for(this.buffer=e;this.index<this.buffer.length;){const n=this.buffer.charCodeAt(this.index);switch(n===10&&this.state!==33&&this.newlines.push(this.index),this.state){case 1:{this.stateText(n);break}case 2:{this.stateInterpolationOpen(n);break}case 3:{this.stateInterpolation(n);break}case 4:{this.stateInterpolationClose(n);break}case 31:{this.stateSpecialStartSequence(n);break}case 32:{this.stateInRCDATA(n);break}case 26:{this.stateCDATASequence(n);break}case 19:{this.stateInAttrValueDoubleQuotes(n);break}case 12:{this.stateInAttrName(n);break}case 13:{this.stateInDirName(n);break}case 14:{this.stateInDirArg(n);break}case 15:{this.stateInDynamicDirArg(n);break}case 16:{this.stateInDirModifier(n);break}case 28:{this.stateInCommentLike(n);break}case 27:{this.stateInSpecialComment(n);break}case 11:{this.stateBeforeAttrName(n);break}case 6:{this.stateInTagName(n);break}case 34:{this.stateInSFCRootTagName(n);break}case 9:{this.stateInClosingTagName(n);break}case 5:{this.stateBeforeTagName(n);break}case 17:{this.stateAfterAttrName(n);break}case 20:{this.stateInAttrValueSingleQuotes(n);break}case 18:{this.stateBeforeAttrValue(n);break}case 8:{this.stateBeforeClosingTagName(n);break}case 10:{this.stateAfterClosingTagName(n);break}case 29:{this.stateBeforeSpecialS(n);break}case 30:{this.stateBeforeSpecialT(n);break}case 21:{this.stateInAttrValueNoQuotes(n);break}case 7:{this.stateInSelfClosingTag(n);break}case 23:{this.stateInDeclaration(n);break}case 22:{this.stateBeforeDeclaration(n);break}case 25:{this.stateBeforeComment(n);break}case 24:{this.stateInProcessingInstruction(n);break}case 33:{this.stateInEntity();break}}this.index++}this.cleanup(),this.finish()}cleanup(){this.sectionStart!==this.index&&(this.state===1||this.state===32&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===19||this.state===20||this.state===21)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}finish(){this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){const e=this.buffer.length;this.sectionStart>=e||(this.state===28?this.currentSequence===Bt.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,n){}}function Wi(t,{compatConfig:e}){const n=e&&e[t];return t==="MODE"?n||3:n}function Gi(t,e){const n=Wi("MODE",e),i=Wi(t,e);return n===3?i===!0:i!==!1}function We(t,e,n,...i){return Gi(t,e)}function _l(t){throw t}function to(t){}function eo(t,e,n,i){const r=`https://vuejs.org/error-reference/#compiler-${t}`,o=new SyntaxError(String(r));return o.code=t,o.loc=e,o}const no=t=>t.type===4&&t.isStatic;function io(t){switch(t){case"Teleport":case"teleport":return Gl;case"Suspense":case"suspense":return Ul;case"KeepAlive":case"keep-alive":return Kl;case"BaseTransition":case"base-transition":return Ql}}function ro(t,e){return!!(t&&no(t)&&t.content===e)}function Ui(t){return t.type===7&&t.name==="pre"}const lo=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function oo(t){for(let e=0;e<t.length;e++)if(!Ot(t.charCodeAt(e)))return!1;return!0}const Ki={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:ze,isPreTag:ze,isIgnoreNewlineTag:ze,isCustomElement:ze,onError:_l,onWarn:to,comments:!1,prefixIdentifiers:!1};let ht=Ki,Pe=null,Kt="",Tt=null,at=null,Ct="",Qt=-1,ae=-1,On=0,re=!1,Vn=null;const yt=[],xt=new Jl(yt,{onerr:Zt,ontext(t,e){Ge(At(t,e),t,e)},ontextentity(t,e,n){Ge(t,e,n)},oninterpolation(t,e){if(re)return Ge(At(t,e),t,e);let n=t+xt.delimiterOpen.length,i=e-xt.delimiterClose.length;for(;Ot(Kt.charCodeAt(n));)n++;for(;Ot(Kt.charCodeAt(i-1));)i--;let r=At(n,i);r.includes("&")&&(r=ht.decodeEntities(r,!1)),jn({type:5,content:Ke(r,!1,kt(n,i)),loc:kt(t,e)})},onopentagname(t,e){const n=At(t,e);Tt={type:1,tag:n,ns:ht.getNamespace(n,yt[0],ht.ns),tagType:0,props:[],children:[],loc:kt(t-1,e),codegenNode:void 0}},onopentagend(t){Zi(t)},onclosetag(t,e){const n=At(t,e);if(!ht.isVoidTag(n)){let i=!1;for(let r=0;r<yt.length;r++)if(yt[r].tag.toLowerCase()===n.toLowerCase()){i=!0,r>0&&Zt(24,yt[0].loc.start.offset);for(let s=0;s<=r;s++){const c=yt.shift();Ue(c,e,s<r)}break}i||Zt(23,Ji(t,60))}},onselfclosingtag(t){const e=Tt.tag;Tt.isSelfClosing=!0,Zi(t),yt[0]&&yt[0].tag===e&&Ue(yt.shift(),t)},onattribname(t,e){at={type:6,name:At(t,e),nameLoc:kt(t,e),value:void 0,loc:kt(t)}},ondirname(t,e){const n=At(t,e),i=n==="."||n===":"?"bind":n==="@"?"on":n==="#"?"slot":n.slice(2);if(!re&&i===""&&Zt(26,t),re||i==="")at={type:6,name:n,nameLoc:kt(t,e),value:void 0,loc:kt(t)};else if(at={type:7,name:i,rawName:n,exp:void 0,arg:void 0,modifiers:n==="."?[Pn("prop")]:[],loc:kt(t)},i==="pre"){re=xt.inVPre=!0,Vn=Tt;const r=Tt.props;for(let o=0;o<r.length;o++)r[o].type===7&&(r[o]=go(r[o]))}},ondirarg(t,e){if(t===e)return;const n=At(t,e);if(re&&!Ui(at))at.name+=n,se(at.nameLoc,e);else{const i=n[0]!=="[";at.arg=Ke(i?n:n.slice(1,-1),i,kt(t,e),i?3:0)}},ondirmodifier(t,e){const n=At(t,e);if(re&&!Ui(at))at.name+="."+n,se(at.nameLoc,e);else if(at.name==="slot"){const i=at.arg;i&&(i.content+="."+n,se(i.loc,e))}else{const i=Pn(n,!0,kt(t,e));at.modifiers.push(i)}},onattribdata(t,e){Ct+=At(t,e),Qt<0&&(Qt=t),ae=e},onattribentity(t,e,n){Ct+=t,Qt<0&&(Qt=e),ae=n},onattribnameend(t){const e=at.loc.start.offset,n=At(e,t);at.type===7&&(at.rawName=n),Tt.props.some(i=>(i.type===7?i.rawName:i.name)===n)&&Zt(2,e)},onattribend(t,e){if(Tt&&at){if(se(at.loc,e),t!==0)if(Ct.includes("&")&&(Ct=ht.decodeEntities(Ct,!0)),at.type===6)at.name==="class"&&(Ct=er(Ct).trim()),t===1&&!Ct&&Zt(13,e),at.value={type:2,content:Ct,loc:t===1?kt(Qt,ae):kt(Qt-1,ae+1)},xt.inSFCRoot&&Tt.tag==="template"&&at.name==="lang"&&Ct&&Ct!=="html"&&xt.enterRCDATA(qe("</template"),0);else{let n=0;at.exp=Ke(Ct,!1,kt(Qt,ae),0,n),at.name==="for"&&(at.forParseResult=so(at.exp));let i=-1;at.name==="bind"&&(i=at.modifiers.findIndex(r=>r.content==="sync"))>-1&&We("COMPILER_V_BIND_SYNC",ht,at.loc,at.arg.loc.source)&&(at.name="model",at.modifiers.splice(i,1))}(at.type!==7||at.name!=="pre")&&Tt.props.push(at)}Ct="",Qt=ae=-1},oncomment(t,e){ht.comments&&jn({type:3,content:At(t,e),loc:kt(t-4,e+3)})},onend(){const t=Kt.length;for(let e=0;e<yt.length;e++)Ue(yt[e],t-1),Zt(24,yt[e].loc.start.offset)},oncdata(t,e){yt[0].ns!==0?Ge(At(t,e),t,e):Zt(1,t-9)},onprocessinginstruction(t){(yt[0]?yt[0].ns:ht.ns)===0&&Zt(21,t-1)}}),Qi=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,ao=/^\(|\)$/g;function so(t){const e=t.loc,n=t.content,i=n.match(lo);if(!i)return;const[,r,o]=i,s=(h,m,d=!1)=>{const g=e.start.offset+m,p=g+h.length;return Ke(h,!1,kt(g,p),0,d?1:0)},c={source:s(o.trim(),n.indexOf(o,r.length)),value:void 0,key:void 0,index:void 0,finalized:!1};let f=r.trim().replace(ao,"").trim();const a=r.indexOf(f),u=f.match(Qi);if(u){f=f.replace(Qi,"").trim();const h=u[1].trim();let m;if(h&&(m=n.indexOf(h,a+f.length),c.key=s(h,m,!0)),u[2]){const d=u[2].trim();d&&(c.index=s(d,n.indexOf(d,c.key?m+h.length:a+f.length),!0))}}return f&&(c.value=s(f,a,!0)),c}function At(t,e){return Kt.slice(t,e)}function Zi(t){xt.inSFCRoot&&(Tt.innerLoc=kt(t+1,t+1)),jn(Tt);const{tag:e,ns:n}=Tt;n===0&&ht.isPreTag(e)&&On++,ht.isVoidTag(e)?Ue(Tt,t):(yt.unshift(Tt),(n===1||n===2)&&(xt.inXML=!0)),Tt=null}function Ge(t,e,n){{const o=yt[0]&&yt[0].tag;o!=="script"&&o!=="style"&&t.includes("&")&&(t=ht.decodeEntities(t,!1))}const i=yt[0]||Pe,r=i.children[i.children.length-1];r&&r.type===2?(r.content+=t,se(r.loc,n)):i.children.push({type:2,content:t,loc:kt(e,n)})}function Ue(t,e,n=!1){n?se(t.loc,Ji(e,60)):se(t.loc,co(e,62)+1),xt.inSFCRoot&&(t.children.length?t.innerLoc.end=Cn({},t.children[t.children.length-1].loc.end):t.innerLoc.end=Cn({},t.innerLoc.start),t.innerLoc.source=At(t.innerLoc.start.offset,t.innerLoc.end.offset));const{tag:i,ns:r,children:o}=t;if(re||(i==="slot"?t.tagType=2:_i(t)?t.tagType=3:fo(t)&&(t.tagType=1)),xt.inRCDATA||(t.children=tr(o)),r===0&&ht.isIgnoreNewlineTag(i)){const s=o[0];s&&s.type===2&&(s.content=s.content.replace(/^\r?\n/,""))}r===0&&ht.isPreTag(i)&&On--,Vn===t&&(re=xt.inVPre=!1,Vn=null),xt.inXML&&(yt[0]?yt[0].ns:ht.ns)===0&&(xt.inXML=!1);{const s=t.props;if(!xt.inSFCRoot&&Gi("COMPILER_NATIVE_TEMPLATE",ht)&&t.tag==="template"&&!_i(t)){const f=yt[0]||Pe,a=f.children.indexOf(t);f.children.splice(a,1,...t.children)}const c=s.find(f=>f.type===6&&f.name==="inline-template");c&&We("COMPILER_INLINE_TEMPLATE",ht,c.loc)&&t.children.length&&(c.value={type:2,content:At(t.children[0].loc.start.offset,t.children[t.children.length-1].loc.end.offset),loc:c.loc})}}function co(t,e){let n=t;for(;Kt.charCodeAt(n)!==e&&n<Kt.length-1;)n++;return n}function Ji(t,e){let n=t;for(;Kt.charCodeAt(n)!==e&&n>=0;)n--;return n}const uo=new Set(["if","else","else-if","for","slot"]);function _i({tag:t,props:e}){if(t==="template"){for(let n=0;n<e.length;n++)if(e[n].type===7&&uo.has(e[n].name))return!0}return!1}function fo({tag:t,props:e}){if(ht.isCustomElement(t))return!1;if(t==="component"||ho(t.charCodeAt(0))||io(t)||ht.isBuiltInComponent&&ht.isBuiltInComponent(t)||ht.isNativeTag&&!ht.isNativeTag(t))return!0;for(let n=0;n<e.length;n++){const i=e[n];if(i.type===6){if(i.name==="is"&&i.value){if(i.value.content.startsWith("vue:"))return!0;if(We("COMPILER_IS_ON_ELEMENT",ht,i.loc))return!0}}else if(i.name==="bind"&&ro(i.arg,"is")&&We("COMPILER_IS_ON_ELEMENT",ht,i.loc))return!0}return!1}function ho(t){return t>64&&t<91}const mo=/\r\n/g;function tr(t){const e=ht.whitespace!=="preserve";let n=!1;for(let i=0;i<t.length;i++){const r=t[i];if(r.type===2)if(On)r.content=r.content.replace(mo,`
|
|
2
|
+
`);else if(oo(r.content)){const o=t[i-1]&&t[i-1].type,s=t[i+1]&&t[i+1].type;!o||!s||e&&(o===3&&(s===3||s===1)||o===1&&(s===3||s===1&&yo(r.content)))?(n=!0,t[i]=null):r.content=" "}else e&&(r.content=er(r.content))}return n?t.filter(Boolean):t}function yo(t){for(let e=0;e<t.length;e++){const n=t.charCodeAt(e);if(n===10||n===13)return!0}return!1}function er(t){let e="",n=!1;for(let i=0;i<t.length;i++)Ot(t.charCodeAt(i))?n||(e+=" ",n=!0):(e+=t[i],n=!1);return e}function jn(t){(yt[0]||Pe).children.push(t)}function kt(t,e){return{start:xt.getPos(t),end:e==null?e:xt.getPos(e),source:e==null?e:At(t,e)}}function se(t,e){t.end=xt.getPos(e),t.source=At(t.start.offset,e)}function go(t){const e={type:6,name:t.rawName,nameLoc:kt(t.loc.start.offset,t.loc.start.offset+t.rawName.length),value:void 0,loc:t.loc};if(t.exp){const n=t.exp.loc;n.end.offset<t.loc.end.offset&&(n.start.offset--,n.start.column--,n.end.offset++,n.end.column++),e.value={type:2,content:t.exp.content,loc:n}}return e}function Ke(t,e=!1,n,i=0,r=0){return Pn(t,e,n,i)}function Zt(t,e,n){ht.onError(eo(t,kt(e,e)))}function xo(){xt.reset(),Tt=null,at=null,Ct="",Qt=-1,ae=-1,yt.length=0}function po(t,e){if(xo(),Kt=t,ht=Cn({},Ki),e){let r;for(r in e)e[r]!=null&&(ht[r]=e[r])}xt.mode=ht.parseMode==="html"?1:ht.parseMode==="sfc"?2:0,xt.inXML=ht.ns===1||ht.ns===2;const n=e&&e.delimiters;n&&(xt.delimiterOpen=qe(n[0]),xt.delimiterClose=qe(n[1]));const i=Pe=Zl([],t);return xt.parse(Kt),i.loc=kt(0,t.length),i.children=tr(i.children),Pe=null,i}new RegExp("\\b"+"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b")+"\\b");class nr{constructor(e,n,i){this.label=e,this.value=n,this.level=i}toString(){return this.label}valueOf(){return this.value}toJSON(){return this.label}}class xe extends Array{static from(e){if(e instanceof this)return e;if(e[Symbol.iterator]){let n=Oe(Array.from(e).map(i=>String(i))).sort((i,r)=>ir(i,r,{numeric:!0}));return new this(...n)}else if(typeof e=="object"){let n=Object.keys(e).map(i=>String(i)).sort((i,r)=>ir(e[i],e[r]));return new this(...n)}throw new Error(`Invalid level values: ${e}`)}constructor(...e){return e=e.map((n,i)=>new nr(String(n),i)),e.forEach(n=>n.level=e),e.mapping=Object.fromEntries(e.map(n=>[n,n])),Object.setPrototypeOf(e,xe.prototype),e}getItem(e){return typeof e=="number"||e instanceof Number?this[e]:this.mapping[e]}apply(e){let n=e.map(i=>this.mapping[i]);return n.level=this,n}}function pe(t){return typeof t=="number"||t instanceof Number||t instanceof Date}function lt(t,e=0){return e==0||t==null?t:t instanceof Date?new t.constructor(+t+e):+t+e}const $t={min(t,{na_rm:e=!0,infinity_rm:n=!0}={}){return e&&(t=t.filter(pe)),n&&(t=t.filter(i=>isFinite(i))),Array.from(t).reduce((i,r)=>i<r?i:r,1/0)},max(t,{na_rm:e=!0,infinity_rm:n=!0}={}){return e&&(t=t.filter(pe)),n&&(t=t.filter(i=>isFinite(i))),Array.from(t).reduce((i,r)=>i>r?i:r,-1/0)},mean(t,{na_rm:e=!0,infinity_rm:n=!0}={}){return e&&(t=t.filter(pe)),n&&(t=t.filter(i=>isFinite(i))),t.length==0?NaN:Array.from(t).reduce((i,r)=>i+r,0)/t.length},sd(t,{na_rm:e=!0,infinity_rm:n=!0}={}){if(e&&(t=t.filter(pe)),n&&(t=t.filter(r=>isFinite(r))),t.length<=1)return NaN;let i=Array.from(t).reduce((r,o)=>r+o,0)/t.length;return Math.sqrt(Array.from(t).reduce((r,o)=>r+(o-i)**2,0)/(t.length-1))},quantile(t,e,{na_rm:n=!0,infinity_rm:i=!0}={}){if(n&&(t=t.filter(pe)),i&&(t=t.filter(c=>isFinite(c))),t.length==0)return NaN;t=Array.from(t).sort((c,f)=>c-f);let r=(t.length-1)*e,o=Math.floor(r),s=Math.ceil(r);return o==s?t[o]:t[o]*(s-r)+t[s]*(r-o)},extent(t,{na_rm:e=!0,infinity_rm:n=!0}={}){if(e&&(t=t.filter(pe)),n&&(t=t.filter(o=>isFinite(o))),t.length==0)return new Array(2);let i=Array.from(t).reduce((o,s)=>o<s?o:s,1/0),r=Array.from(t).reduce((o,s)=>o>s?o:s,-1/0);return Object.assign([i,r],{min:i,max:r})}},Ln={sum(...t){if(t.some(i=>i==null))return null;if(t.some(i=>!Array.isArray(i)&&typeof i!="number"))throw new Error("Arguments must be numbers or arrays");let e=t.filter(i=>!Array.isArray(i)).reduce((i,r)=>+r+i,0);if(t=t.filter(i=>Array.isArray(i)),t.length==0)return[e];if(t.some(i=>i.length==0))return[];let n=t[0].length;if(t.some(i=>i.length!=n))throw new Error("Arrays must have the same length");return Array.from({length:n},(i,r)=>t.reduce((o,s)=>+s[r]+o,e))},opposite(t){if(t==null)return null;if(!Array.isArray(t)&&typeof t!="number")throw new Error("Arguments must be numbers or arrays");return Array.isArray(t)?t.map(e=>e==null?e:-e):-t},concat(...t){if(t.some(i=>i==null))return null;let e=t.filter(i=>Array.isArray(i));if(e.length==0)return[t.join("")];if(t.some(i=>i.length==0))return[];let n=e[0].length;if(e.some(i=>i.length!=n))throw new Error("Arrays must have the same length");return Array.from({length:n},(i,r)=>t.map(o=>Array.isArray(o)?o[r]:o).join(""))},apply(t,...e){if(e.some(r=>r==null))return null;let n=e.filter(r=>Array.isArray(r));if(n.length==0)return[t(...e)];if(e.some(r=>r.length==0))return[];let i=n[0].length;if(n.some(r=>r.length!=i))throw new Error("Arrays must have the same length");return Array.from({length:i},(r,o)=>t(...e.map(s=>Array.isArray(s)?s[o]:s)))}};function pt(...t){if(t=t.filter(e=>e!==void 0),t.length!=0)return t=t.slice(t.findIndex(e=>e==null)+1),t.length==0?null:t.reduce((e,n)=>{for(let i in n)n[i]===null&&delete e[i],n[i]!=null&&(e[i]=n[i]);return e},{})}function we(...t){if(!t.some(e=>e===void 0))return t.some(e=>e===null)?null:t.join("")}function Oe(t,e=null){let n=new Map;for(let i in t){let r=e?e(t[i]):t[i];n.has(r)||n.set(r,t[i])}return Array.from(n.values())}function ir(t,e,{numeric:n=!1}={}){return typeof t!="number"||typeof e!="number"?String(t).localeCompare(String(e),void 0,{numeric:n}):t-e}function ce(t,...e){return Array.isArray(t)?(t=t.filter(n=>typeof n=="function"),t.length===0?!1:(t.forEach(n=>n(...e)),!0)):typeof t!="function"?!1:(t(...e),!0)}function le(t,{min:e,max:n}){return t<e||t>n?NaN:t}function st(t,{min:e,max:n}){return t<e?e:t>n?n:t}function In(t,{min:e,max:n}){return t==-1/0?e:t==1/0?n:t}function Mt(t){return typeof t!="object"||t==null?t:Object.fromEntries(Object.entries(t).filter(([e,n])=>n!=null))}function rr(t,e){if(t===e)return!0;if(typeof t!="object"||typeof e!="object"||t==null||e==null)return!1;let n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let r of n)if(!rr(t[r],e[r]))return!1;return!0}function wo(t){if(!Array.isArray(t))throw new Error("Argument must be an array");let e=[],n=[];for(let i=0;i<t.length;i++){let r=t[i],o=e.findIndex(s=>rr(s,r));o===-1&&(e.push(r),o=e.length-1),n.push(o)}return n.categories=e,n}function bo(...t){if(t.length==0)return null;let e=t.filter(r=>Array.isArray(r)).reduce((r,o)=>{if(Array.isArray(o)){if(r==null)return o.length;if(r!=o.length)throw new Error("Arrays must have the same length")}return r},null)??0,n=[],i=[];for(let r=0;r<e;r++){let o=t.map(c=>Array.isArray(c)?c[r]:c),s=n.findIndex(c=>c.every((f,a)=>f===o[a]));s===-1&&(n.push(o),s=n.length-1),i.push(s)}return i.categories=n,i}function Lt(t){if(Object.keys(t).length==0)return null;let e=Object.values(t).filter(o=>Array.isArray(o)).reduce((o,s)=>{if(Array.isArray(s)){if(o==null)return s.length;if(o!=s.length)throw new Error("Arrays must have the same length")}return o},null)??0,n=Object.keys(t),i=[],r=[];for(let o=0;o<e;o++){let s=Object.fromEntries(n.map(f=>[f,Array.isArray(t[f])?t[f][o]:t[f]])),c=i.findIndex(f=>n.every(a=>f[a]===s[a]));c===-1&&(i.push(s),c=i.length-1),r.push(c)}return r.categories=i,r}function lr(t){if(Object.keys(t).length==0)return[];let e=Object.values(t).filter(n=>Array.isArray(n)).reduce((n,i)=>{if(Array.isArray(i)){if(n==null)return i.length;if(n!=i.length)throw new Error("Arrays must have the same length")}return n},null)??0;return Array.from({length:e},(n,i)=>Object.fromEntries(Object.keys(t).map(r=>[r,Array.isArray(t[r])?t[r][i]:t[r]])))}function ko(t){if(!(t instanceof SVGElement))return null;function e(s){let c=s.childNodes.length;for(;c--;){const f=s.childNodes[c];f.nodeType===Node.COMMENT_NODE?s.removeChild(f):f.nodeType===Node.ELEMENT_NODE&&(e(f),f.getAttribute("style")==""&&f.removeAttribute("style"),f.getAttribute("class")==""&&f.removeAttribute("class"))}}let n=t.cloneNode(!0),i=Array.from(t.querySelectorAll("foreignObject")),r=Array.from(n.querySelectorAll("foreignObject"));for(let s=0;s<i.length;s++){let c=i[s],f=r[s],a=i[s].querySelector("canvas");if(!a)continue;let u=n.ownerDocument.createElementNS("http://www.w3.org/2000/svg","image");u.setAttribute("href",a.toDataURL()),u.setAttribute("x",c.getAttribute("x")),u.setAttribute("y",c.getAttribute("y")),u.setAttribute("width",c.getAttribute("width")),u.setAttribute("height",c.getAttribute("height")),f.parentNode.replaceChild(u,f)}for(let s of n.querySelectorAll(".vvplot-interactive"))s.remove();return e(n),n.setAttribute("xmlns","http://www.w3.org/2000/svg"),n.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),n.setAttribute("version","1.1"),n.setAttribute("width",t.scrollWidth),n.setAttribute("height",t.scrollHeight),n.setAttribute("viewBox",`0 0 ${t.scrollWidth} ${t.scrollHeight}`),new XMLSerializer().serializeToString(n)}const or={axis:{line_width:1,tick_width:1,tick_length:5,label_size:12,title_size:18},axis_h:{title_offset:20},axis_v:{title_offset:30,title_angle:90},axis_left:{tick_position:"left",title_position:"left"},axis_right:{tick_position:"right",title_position:"right"},axis_top:{tick_position:"top",title_position:"top"},axis_bottom:{tick_position:"bottom",title_position:"bottom"},grid:{line_width:1,line_width_major:2},plot:{margin:20,padding_h:50,padding_v:20},legend:{spacing:4},selection:{background:"#00000020"}},ar={axis:{line_color:"black",tick_color:"black",label_color:"black",title_color:"black"},grid:{line_color:"#eeeeee"}},vo={axis:{line_color:"gray",tick_color:"gray",label_color:"gray",title_color:"gray"},grid:{line_color:"#eeeeee"}},No={axis:{tick_color:"black",label_color:"black",title_color:"black"},grid:{line_color:"white"},plot:{background:"#eeeeee"}},Ao={axis:{tick_color:"#333333",label_color:"#555555",title_color:"black"},grid:{line_color:"#666666"},plot:{background:"#888888"}},$o={axis:{line_color:"black",tick_color:"black",label_color:"black",title_color:"black"},grid:{line_color:"black",line_width_major:1,line_width_minor:.5}},Mo={axis:{line_color:"black",tick_color:"black",label_color:"black",title_color:"black"},grid:null},So={axis:null,grid:null};function Bo(...t){return t.reduce((e,n)=>{for(let i in n)n[i]===null?e[i]=null:e[i]=pt(e[i],n[i]);return e??void 0},{})}function To(t,e=!1){let{axis_h:n,axis_v:i,axis_x:r,axis_y:o,grid_h:s,grid_v:c,grid_x:f,grid_y:a,plot:{margin_x:u,margin_y:h,margin_h:m,margin_v:d,padding_x:g,padding_y:p,padding_h:$,padding_v:C,...O}={},...B}=t;return e?(n=pt(n,o),i=pt(i,r),s=pt(s,f),c=pt(c,a),O.margin_h=h===void 0?m:h,O.margin_v=u===void 0?d:u,O.padding_h=p===void 0?$:p,O.padding_v=g===void 0?C:g):(n=pt(n,r),i=pt(i,o),s=pt(s,a),c=pt(c,f),O.margin_h=u===void 0?m:u,O.margin_v=h===void 0?d:h,O.padding_h=g===void 0?$:g,O.padding_v=p===void 0?C:p),{axis_h:n,axis_v:i,grid_h:s,grid_v:c,plot:O,...B}}function Eo(t){function e(n){return{line_color_major:["line_color","line_color_major"].map(i=>n?.[i]).findLast(i=>i!==void 0),line_color_minor:["line_color","line_color_minor"].map(i=>n?.[i]).findLast(i=>i!==void 0),line_width_major:["line_width","line_width_major"].map(i=>n?.[i]).findLast(i=>i!==void 0),line_width_minor:["line_width","line_width_minor"].map(i=>n?.[i]).findLast(i=>i!==void 0)}}return{axis:{h:pt(...["axis","axis_h"].map(n=>t?.[n])),v:pt(...["axis","axis_v"].map(n=>t?.[n])),left:pt(...["axis","axis_v","axis_left"].map(n=>t?.[n])),right:pt(...["axis","axis_v","axis_right"].map(n=>t?.[n])),top:pt(...["axis","axis_h","axis_top"].map(n=>t?.[n])),bottom:pt(...["axis","axis_h","axis_bottom"].map(n=>t?.[n]))},grid:{h:e(pt(...["grid","grid_h"].map(n=>t?.[n]))),v:e(pt(...["grid","grid_v"].map(n=>t?.[n])))},plot:{margin:{left:["margin","margin_h","margin_left"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,right:["margin","margin_h","margin_right"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,top:["margin","margin_v","margin_top"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,bottom:["margin","margin_v","margin_bottom"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0},padding:{left:["padding","padding_h","padding_left"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,right:["padding","padding_h","padding_right"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,top:["padding","padding_v","padding_top"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0,bottom:["padding","padding_v","padding_bottom"].map(n=>t?.plot?.[n]).findLast(n=>n!==void 0)??0},background:t?.plot?.background},selection:t?.selection??{},legend:{spacing:t?.legend?.spacing??0}}}const Co={base:or,default:ar,light:vo,classic:Mo,gray:No,dark:Ao,linedraw:$o,void:So};let Z=Ln.sum;const oe={blank:{scale_attrs:[],coord_scale(t,e){return null},get_range(t,e){if(e=="x")return t.x??[];if(e=="y")return t.y??[]},validate(t){return null}},point:{scale_attrs:["shape","size","color","stroke","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(e.y?.apply?.(t.y)??t.y,i);return{x:r,y:o}},get_range(t,e){if(e=="x")return t.x??[];if(e=="y")return t.y??[]},validate(t){return isNaN(t.x)||isNaN(t.y)?null:t}},line:{scale_attrs:["color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(e.y?.apply?.(t.y)??t.y,i),s=Z(e.x?.apply?.(t.xend)??t.xend,n),c=Z(e.y?.apply?.(t.yend)??t.yend,i);return{x:r,y:o,xend:s,yend:c}},get_range(t,e){if(e=="x")return(t.x??[]).concat(t.xend??[]);if(e=="y")return(t.y??[]).concat(t.yend??[])},validate(t){return isNaN(t.x)||isNaN(t.y)||isNaN(t.xend)||isNaN(t.yend)?null:t}},stick:{scale_attrs:["color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(e.y?.apply?.(t.y)??t.y,i),s=Z(r,t.dx),c=Z(o,t.dy);return{x:r,y:o,xend:s,yend:c}},get_values(t,e){if(e=="x")return t.x??[];if(e=="y")return t.y??[]},get_range(t,e){if(e=="x")return(t.x??[]).concat(Z(t.x??[],t.dx??0)??[]);if(e=="y")return(t.y??[]).concat(Z(t.y??[],t.dy??0)??[])},validate(t){return isNaN(t.x)||isNaN(t.y)||isNaN(t.xend)||isNaN(t.yend)?null:t}},curve:{scale_attrs:["fill","color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge?.map(o=>+o),i=t.ynudge?.map(o=>+o);return{points:t.points.map((o,s)=>o.map(c=>{let f=n?.[s]??0,a=i?.[s]??0;return{x:+(e?.x?.[c.x]??c.x)+f,y:+(e?.y?.[c.y]??c.y)+a}}))}},get_range(t,e){if(e=="x")return(t.points??[]).flatMap(n=>n.map(i=>i.x));if(e=="y")return(t.points??[]).flatMap(n=>n.map(i=>i.y))},validate(t){return Array.isArray(t.points)?t:null}},tile:{scale_attrs:["fill","color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=e.x?.apply?.(t.x)??t.x,o=e.y?.apply?.(t.y)??t.y,s=Z(r,t.width?.map?.(u=>-u/2)??-.5,n),c=Z(r,t.width?.map?.(u=>+u/2)??.5,n),f=Z(o,t.height?.map?.(u=>-u/2)??-.5,i),a=Z(o,t.height?.map?.(u=>+u/2)??.5,i);return{xmin:s,xmax:c,ymin:f,ymax:a}},get_values(t,e){if(e=="x")return t.x;if(e=="y")return t.y},get_range(t,e){if(e=="x"){let n=(t.x??[]).map((r,o)=>+r-(t.width?.[o]??0)/2),i=(t.x??[]).map((r,o)=>+r+(t.width?.[o]??0)/2);return n.concat(i)}if(e=="y"){let n=(t.y??[]).map((r,o)=>+r-(t.height?.[o]??0)/2),i=(t.y??[]).map((r,o)=>+r+(t.height?.[o]??0)/2);return n.concat(i)}},validate(t){return isNaN(t.xmin)||isNaN(t.ymin)||isNaN(t.xmax)||isNaN(t.ymax)?null:t}},rect:{scale_attrs:["fill","color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.xmin)??t.xmin,n),o=Z(e.x?.apply?.(t.xmax)??t.xmax,n),s=Z(e.y?.apply?.(t.ymin)??t.ymin,i),c=Z(e.y?.apply?.(t.ymax)??t.ymax,i);return{xmin:r,xmax:o,ymin:s,ymax:c}},get_range(t,e){if(e=="x")return(t.xmin??[]).concat(t.xmax??[]);if(e=="y")return(t.ymin??[]).concat(t.ymax??[])},validate(t){return isNaN(t.xmin)||isNaN(t.ymin)||isNaN(t.xmax)||isNaN(t.ymax)?null:t}},polygon:{scale_attrs:["fill","color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge?.map(o=>+o),i=t.ynudge?.map(o=>+o);return{points:t.points.map((o,s)=>o.map(c=>{let f=n?.[s]??0,a=i?.[s]??0;return{x:+(e?.x?.[c.x]??c.x)+f,y:+(e?.y?.[c.y]??c.y)+a}}))}},get_range(t,e){if(e=="x")return(t.points??[]).flatMap(n=>n.map(i=>i.x));if(e=="y")return(t.points??[]).flatMap(n=>n.map(i=>i.y))},validate(t){return Array.isArray(t.points)?t:null}},text:{scale_attrs:["size","color","stroke","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(e.y?.apply?.(t.y)??t.y,i);return{x:r,y:o}},get_range(t,e){if(e=="x")return t.x??[];if(e=="y")return t.y??[]},validate(t){return isNaN(t.x)||isNaN(t.y)?null:t}},textsegment:{scale_attrs:["size","color","stroke","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0,r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(e.y?.apply?.(t.y)??t.y,i),s=Z(e.x?.apply?.(t.xend)??t.xend,n),c=Z(e.y?.apply?.(t.yend)??t.yend,i);return{x:r,y:o,xend:s,yend:c}},get_range(t,e){if(e=="x")return(t.x??[]).concat(t.xend??[]);if(e=="y")return(t.y??[]).concat(t.yend??[])},validate(t){return isNaN(t.x)||isNaN(t.xend)||isNaN(t.y)||isNaN(t.yend)?null:t}},boxplot:{scale_attrs:["fill","color","linewidth","linetype","alpha"],coord_scale(t,e){let n=t.xnudge??0,i=t.ynudge??0;if(t.x){let r=Z(e.x?.apply?.(t.x)??t.x,n),o=Z(r,t.width?.map?.(p=>-p/2)??-.5,n),s=Z(r,t.width?.map?.(p=>+p/2)??.5,n),c=Z(t.lwisker,i),f=Z(t.Q1,i),a=Z(t.median,i),u=Z(t.Q3,i),h=Z(t.uwisker,i),m=Ln.apply((p,{y:$,$raw:C},O)=>Z($,O).map((B,j)=>({x:p,y:B,$raw:C[j]})),r,t.outliers??[],i),d=Z(t.min,i),g=Z(t.max,i);return{x:r,xmin:o,xmax:s,lwisker:c,Q1:f,median:a,Q3:u,uwisker:h,outliers:m,$xmin:o,$xmax:s,$ymin:d,$ymax:g}}else if(t.y){let r=Z(e.y?.apply?.(t.y)??t.y,i),o=Z(r,t.height?.map?.(p=>-p/2)??-.5,i),s=Z(r,t.height?.map?.(p=>+p/2)??.5,i),c=Z(t.lwisker,n),f=Z(t.Q1,n),a=Z(t.median,n),u=Z(t.Q3,n),h=Z(t.uwisker,n),m=Ln.apply((p,{x:$,$raw:C},O)=>Z($,O).map((B,j)=>({x:B,y:p,$raw:C[j]})),r,t.outliers??[],n),d=Z(t.xmin,n),g=Z(t.xmax,n);return{y:r,ymin:o,ymax:s,lwisker:c,Q1:f,median:a,Q3:u,uwisker:h,outliers:m,$xmin:d,$xmax:g,$ymin:o,$ymax:s}}return{}},get_range(t,e){if(e=="x")return t.x||(t.min??[]).concat(t.max??[]);if(e=="y")return t.y||(t.min??[]).concat(t.max??[])},validate(t){return[t.$xmin,t.$xmax,t.$ymin,t.$ymax].some(e=>isNaN(e))?null:t}}},Po={identity:Object.assign(function(t){return t},{core_attrs:["x","y","xnudge","ynudge"]}),line:Object.assign(function(t,{orientation:e="x"}={}){let n=["x","y"].filter(a=>t[a]==null);if(n.length>0)throw new Error(`Missing aesthetics for "StatLine": "${n.join('", "')}"`);let i=t.group??new Array(t.x.length).fill(null),o=Object.values(i.reduce((a,u,h)=>(a[u]??=[],a[u].push(h),a),{})).map(a=>a.map((u,h)=>[t[e][u],h]).sort((u,h)=>u[0]-h[0]).map((u,h)=>a[u[1]])),s=o.map(a=>a.slice(0,-1).concat(NaN)).reduce((a,u)=>a.concat(u),[]).filter(a=>!isNaN(a)),c=o.map(a=>a.slice(1).concat(NaN)).reduce((a,u)=>a.concat(u),[]).filter(a=>!isNaN(a)),f={};for(let a in t)f[a]=s.map(u=>t[a][u]);return f.xend=c.map(a=>t.x[a]),f.yend=c.map(a=>t.y[a]),f},{core_attrs:["x","y","xnudge","ynudge"]}),linerange:Object.assign(function(t){if(t.x!=null){let e=["x","ymin","ymax"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatLinerange": "${e.join('", "')}"`);return(({x:n,ymin:i,ymax:r,...o})=>({x:n,xend:n,y:i,yend:r,...o}))(t)}else if(t.y!=null){let e=["y","xmin","xmax"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatLinerange": "${e.join('", "')}"`);return(({y:n,xmin:i,xmax:r,...o})=>({y:n,yend:n,x:i,xend:r,...o}))(t)}else throw new Error('Missing aesthetics for "StatLinerange": x,ymin,ymax or y,xmin,xmax')},{core_attrs:["x","y","xmin","xmax","ymin","ymax","xnudge","ynudge"]}),path:Object.assign(function(t){let e=["x","y"].filter(f=>t[f]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatPath": "${e.join('", "')}"`);let n=t.group??new Array(t.x.length).fill(null),r=Object.values(n.reduce((f,a,u)=>(f[a]??=[],f[a].push(u),f),{})).map(f=>f.map((a,u)=>f[u])),o=r.map(f=>f.slice(0,-1).concat(NaN)).reduce((f,a)=>f.concat(a),[]).filter(f=>!isNaN(f)),s=r.map(f=>f.slice(1).concat(NaN)).reduce((f,a)=>f.concat(a),[]).filter(f=>!isNaN(f)),c={};for(let f in t)c[f]=o.map(a=>t[f][a]);return c.xend=s.map(f=>t.x[f]),c.yend=s.map(f=>t.y[f]),c},{core_attrs:["x","y","xnudge","ynudge"]}),segment:Object.assign(function(t){t.xend==null&&(t.xend=t.x),t.yend==null&&(t.yend=t.y);let e=["x","y","xend","yend"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatSegment": "${e.join('", "')}"`);return t},{core_attrs:["x","y","xend","yend","xnudge","ynudge"]}),stick:Object.assign(function(t){t.dx==null&&(t.dx=Array(t.x.length).fill(0)),t.dy==null&&(t.dy=Array(t.y.length).fill(0));let e=["x","y","dx","dy"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatStick": "${e.join('", "')}"`);return t},{core_attrs:["x","y","dx","dy","xnudge","ynudge"]}),curve:Object.assign(function(t){if(t.points!=null)return t;let e=["x","y"].filter(u=>t[u]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatCurve": "${e.join('", "')}" or "points"`);let n=Object.keys(t).filter(u=>!["x","y"].includes(u)&&!u.startsWith("$")),i=Lt(Object.fromEntries(n.map(u=>[u,t[u]]))),r=Lt({group:i??new Array(t.x.length).fill(0)}).map((u,h,m)=>m.categories[u]),o=Map.groupBy(t.$raw,(u,h)=>r[h]),s=Array.from(o.values()),c=Array.from(o.keys()),f=Array.from(Map.groupBy(lr({x:t.x,y:t.y}),(u,h)=>r[h]).values()),a={$raw:s,points:f};for(let u of n)a[u]=c.map(h=>h.group).map(h=>i.categories[h][u]);return a},{core_attrs:["x","y","xnudge","ynudge"]}),point:Object.assign(function(t){let e=["x","y"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatPoint": "${e.join('", "')}"`);return t},{core_attrs:["x","y","xnudge","ynudge"]}),polygon:Object.assign(function(t){if(t.points!=null)return t;let e=["x","y"].filter(u=>t[u]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatPolygon": "${e.join('", "')}" or "points"`);let n=Object.keys(t).filter(u=>!["x","y"].includes(u)&&!u.startsWith("$")),i=Lt(Object.fromEntries(n.map(u=>[u,t[u]]))),r=Lt({group:i??new Array(t.x.length).fill(0)}).map((u,h,m)=>m.categories[u]),o=Map.groupBy(t.$raw,(u,h)=>r[h]),s=Array.from(o.values()),c=Array.from(o.keys()),f=Array.from(Map.groupBy(lr({x:t.x,y:t.y}),(u,h)=>r[h]).values()),a={$raw:s,points:f};for(let u of n)a[u]=c.map(h=>h.group).map(h=>i.categories[h][u]);return a},{core_attrs:["points","xnudge","ynudge"]}),rect:Object.assign(function(t){let e=["xmin","xmax","ymin","ymax"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatRect": "${e.join('", "')}"`);return t},{core_attrs:["xmin","xmax","ymin","ymax","xnudge","ynudge"]}),tile:Object.assign(function(t){t.width==null&&t.x.some(n=>typeof n=="string")&&(t.width=Array(t.x.length).fill(1)),t.height==null&&t.y.some(n=>typeof n=="string")&&(t.height=Array(t.y.length).fill(1));let e=["x","y","width","height"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatTile": "${e.join('", "')}"`);return t},{core_attrs:["x","y","width","height","xnudge","ynudge"]}),text:Object.assign(function(t){let e=["x","y","label"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatText": "${e.join('", "')}"`);return t},{core_attrs:["x","y","xnudge","ynudge","label","text-length"]}),textsegment:Object.assign(function(t){t.xend==null&&(t.xend=t.x),t.yend==null&&(t.yend=t.y);let e=["x","y","xend","yend","label"].filter(n=>t[n]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatTextsegment": "${e.join('", "')}"`);return t},{core_attrs:["x","y","xend","yend","xnudge","ynudge","label"]}),histogram:Object.assign(function(t,{bins:e=30,binwidth:n,breaks:i}={}){if(t.x!=null&&t.y!=null)throw new Error('"StatHistogram" only supports "x" or "y", not both');let r=t.x??t.y;if(r==null)throw new Error('Missing aesthetics for "StatHistogram": "x" or "y"');if(r.some(m=>typeof m!="number"))throw new Error('"StatHistogram" requires a continuous aesthetic');if(i)i.sort((m,d)=>m-d);else{let{min:m,max:d}=$t.extent(r);n||(n=(d-m)/(e-1)),i=Array.from({length:e+1},(g,p)=>m+(p-.5)*n)}e=i.length-1;let o=Object.keys(t).filter(m=>!["x","y"].includes(m)&&!m.startsWith("$")),s=Lt(Object.fromEntries(o.map(m=>[m,t[m]]))),c=Lt({group:s??new Array(r.length).fill(0),upper:r.map(m=>i.findLast(d=>d<=m)??i[0]),lower:r.map(m=>i.find(d=>d>m)??i[e])}).map((m,d,g)=>g.categories[m]),f=Map.groupBy(t.$raw,(m,d)=>c[d]),a=Array.from(f.values()),u=Array.from(f.keys()),h={$raw:a,count:a.map(m=>m.length),$group:u.map(m=>m.group),upper:u.map(m=>m.upper),lower:u.map(m=>m.lower)};for(let m of o)h[m]=u.map(d=>s.categories[d.group][m]);return t.x?(({upper:m,lower:d,count:g,ymin:p=a.map(()=>0),...$})=>({xmin:m,xmax:d,ymin:p,ymax:g,...$}))(h):(({upper:m,lower:d,count:g,xmin:p=a.map(()=>0),...$})=>({xmin:p,xmax:g,ymin:m,ymax:d,...$}))(h)},{core_attrs:["x","y","xnudge","ynudge"]}),bar:Object.assign(function(t){if(t.x!=null&&t.y!=null)throw new Error('"StatBar" only supports "x" or "y", not both');let e=t.x??t.y;if(e==null)throw new Error('Missing aesthetics for "StatBar": "x" or "y"');if(e.some(a=>typeof a=="number"))throw new Error('"StatBar" requires a discrete aesthetic');let n=Object.keys(t).filter(a=>!["x","y"].includes(a)&&!a.startsWith("$")),i=Lt(Object.fromEntries(n.map(a=>[a,t[a]]))),r=Lt({group:i??0,value:e}),o=Map.groupBy(t.$raw,(a,u)=>r.categories[r[u]]),s=Array.from(o.values()),c=Array.from(o.keys()),f={$raw:s,count:s.map(a=>a.length),$group:c.map(a=>a.group),value:c.map(a=>a.value)};for(let a of n)f[a]=c.map(u=>u.group).map(u=>i.categories[u][a]);return t.x?(({value:a,count:u,...h})=>({x:a,y:u.map(m=>m/2),height:u,...h}))(f):(({value:a,count:u,...h})=>({y:a,x:u.map(m=>m/2),width:u,...h}))(f)},{core_attrs:["x","y","xnudge","ynudge"]}),boxplot:Object.assign(function(t,{}){let e=["x","y"].filter(v=>t[v]==null);if(e.length>0)throw new Error(`Missing aesthetics for "StatBoxplot": "${e.join('", "')}"`);let n=t.x.some(v=>typeof v!="number"),i=t.y.some(v=>typeof v!="number");if(n&&i)throw new Error('Both "x" and "y" are discrete, "StatBoxplot" requires one continuous and one discrete aesthetic');if(!n&&!i)throw new Error('Both "x" and "y" are continuous, "StatBoxplot" requires one continuous and one discrete aesthetic');let[r,o]=n?["y","x"]:["x","y"],s=Object.keys(t).filter(v=>v!=r&&!v.startsWith("$")),c=Lt(Object.fromEntries(s.map(v=>[v,t[v]]))),f=Lt({group:c??0,cate:t[o]}),a=Map.groupBy(f.map((v,y)=>y),(v,y)=>f.categories[f[y]]),u=Array.from(a.keys()),h=Array.from(a.values()).map(v=>v.map(y=>t.$raw[y])),m=Array.from(a.values()).map(v=>v.map(y=>t[r][y])),d=m.map(v=>$t.min(v)),g=m.map(v=>$t.quantile(v,.25)),p=m.map(v=>$t.quantile(v,.5)),$=m.map(v=>$t.quantile(v,.75)),C=m.map(v=>$t.max(v)),O=m.map((v,y)=>$[y]-g[y]),B=m.map((v,y)=>Math.max(d[y],g[y]-1.5*O[y])),j=m.map((v,y)=>Math.min(C[y],$[y]+1.5*O[y])),L=Array.from(a.values()).map((v,y)=>{let b=v.filter(k=>t[r][k]<B[y]||t[r][k]>j[y]);return{[r]:b.map(k=>t[r][k]),$raw:b.map(k=>t.$raw[k])}}),V={$raw:h,$group:u.map(v=>v.group),min:d,lwisker:B,Q1:g,median:p,Q3:$,uwisker:j,max:C,outliers:L};for(let v of s)V[v]=u.map(y=>y.group).map(y=>c.categories[y][v]);return V},{core_attrs:["x","y","xnudge","ynudge"]}),density:Object.assign(function(t,{n:e=512,kernel:n="gaussian"}={}){if(t.x!=null&&t.y!=null)throw new Error('"StatDensity" only supports "x" or "y", not both');let i=t.x??t.y;if(i==null)throw new Error('Missing aesthetics for "StatDensity": "x" or "y"');if(i.some(d=>typeof d!="number"))throw new Error('"StatDensity" requires a continuous aesthetic');if(n=sr[n],!n)throw new Error(`kernel must be one of ${Object.keys(sr).map(d=>`"${d}"`).join(", ")}`);let r=Object.keys(t).filter(d=>!["x","y"].includes(d)&&!d.startsWith("$")),o=Lt(Object.fromEntries(r.map(d=>[d,t[d]]))),s=Lt({group:o??new Array(i.length).fill(0)}).map((d,g,p)=>p.categories[d]),c=Map.groupBy(t.$raw,(d,g)=>s[g]),f=Array.from(c.values()),a=Array.from(c.keys()),u=Array.from(Map.groupBy(i,(d,g)=>s[g]).values()),h={$raw:f,$group:a.map(d=>d.group)},m=u.map(d=>{let g=Oo.nrd0(d),{min:p,max:$}=$t.extent(d);p-=3*g,$+=3*g;let C=($-p)/(e-1);return Array.from({length:e},(B,j)=>p+j*C).map(B=>[B,$t.mean(d.map(j=>n((B-j)/g)))/g])});for(let d of r)h[d]=a.map(g=>o.categories[g.group][d]);return t.x?h.points=m.map(d=>d.map(([g,p])=>({x:g,y:p}))):h.points=m.map(d=>d.map(([g,p])=>({x:p,y:g}))),h},{core_attrs:["x","y","xnudge","ynudge"]})},Oo={nrd0:function(t){t=t.filter(r=>(typeof r=="number"||r instanceof Date)&&isFinite(r));let e=$t.sd(t),n=$t.quantile(t,.75)-$t.quantile(t,.25);return .9*(Math.min(e,n/1.34)||1)*t.length**-.2},nrd:function(t){t=t.filter(r=>(typeof r=="number"||r instanceof Date)&&isFinite(r));let e=$t.sd(t),n=$t.quantile(t,.75)-$t.quantile(t,.25);return 1.06*(Math.min(e,n/1.34)||1)*t.length**-.2}},sr={uniform:t=>Math.abs(t)<=1?.5:0,triangular:t=>Math.abs(t)<=1?1-Math.abs(t):0,epanechnikov:t=>Math.abs(t)<=1?.75*(1-t**2):0,biweight:t=>Math.abs(t)<=1?15/16*(1-t**2)**2:0,triweight:t=>Math.abs(t)<=1?35/32*(1-t**2)**3:0,tricube:t=>Math.abs(t)<=1?70/81*(1-Math.abs(t)**3)**3:0,gaussian:t=>Math.exp(-.5*t**2)/Math.sqrt(2*Math.PI),cosine:t=>Math.abs(t)<=1?Math.PI/4*Math.cos(Math.PI/2*t):0,logistic:t=>1/Math.cosh(t)**2/Math.PI,sigmoid:t=>2/(Math.exp(t)+Math.exp(-t))**2/Math.PI};function Qe(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Vo(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function cr(t){let e,n,i;t.length!==2?(e=Qe,n=(c,f)=>Qe(t(c),f),i=(c,f)=>t(c)-f):(e=t===Qe||t===Vo?t:jo,n=t,i=t);function r(c,f,a=0,u=c.length){if(a<u){if(e(f,f)!==0)return u;do{const h=a+u>>>1;n(c[h],f)<0?a=h+1:u=h}while(a<u)}return a}function o(c,f,a=0,u=c.length){if(a<u){if(e(f,f)!==0)return u;do{const h=a+u>>>1;n(c[h],f)<=0?a=h+1:u=h}while(a<u)}return a}function s(c,f,a=0,u=c.length){const h=r(c,f,a,u-1);return h>a&&i(c[h-1],f)>-i(c[h],f)?h-1:h}return{left:r,center:s,right:o}}function jo(){return 0}function Lo(t){return t===null?NaN:+t}const Io=cr(Qe).right;cr(Lo).center;const Do=Math.sqrt(50),Xo=Math.sqrt(10),Yo=Math.sqrt(2);function Ze(t,e,n){const i=(e-t)/Math.max(0,n),r=Math.floor(Math.log10(i)),o=i/Math.pow(10,r),s=o>=Do?10:o>=Xo?5:o>=Yo?2:1;let c,f,a;return r<0?(a=Math.pow(10,-r)/s,c=Math.round(t*a),f=Math.round(e*a),c/a<t&&++c,f/a>e&&--f,a=-a):(a=Math.pow(10,r)*s,c=Math.round(t/a),f=Math.round(e/a),c*a<t&&++c,f*a>e&&--f),f<c&&.5<=n&&n<2?Ze(t,e,n*2):[c,f,a]}function Fo(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const i=e<t,[r,o,s]=i?Ze(e,t,n):Ze(t,e,n);if(!(o>=r))return[];const c=o-r+1,f=new Array(c);if(i)if(s<0)for(let a=0;a<c;++a)f[a]=(o-a)/-s;else for(let a=0;a<c;++a)f[a]=(o-a)*s;else if(s<0)for(let a=0;a<c;++a)f[a]=(r+a)/-s;else for(let a=0;a<c;++a)f[a]=(r+a)*s;return f}function Dn(t,e,n){return e=+e,t=+t,n=+n,Ze(t,e,n)[2]}function Ro(t,e,n){e=+e,t=+t,n=+n;const i=e<t,r=i?Dn(e,t,n):Dn(t,e,n);return(i?-1:1)*(r<0?1/-r:r)}var Ho={value:()=>{}};function ur(){for(var t=0,e=arguments.length,n={},i;t<e;++t){if(!(i=arguments[t]+"")||i in n||/[\s.]/.test(i))throw new Error("illegal type: "+i);n[i]=[]}return new Je(n)}function Je(t){this._=t}function zo(t,e){return t.trim().split(/^|\s+/).map(function(n){var i="",r=n.indexOf(".");if(r>=0&&(i=n.slice(r+1),n=n.slice(0,r)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Je.prototype=ur.prototype={constructor:Je,on:function(t,e){var n=this._,i=zo(t+"",n),r,o=-1,s=i.length;if(arguments.length<2){for(;++o<s;)if((r=(t=i[o]).type)&&(r=qo(n[r],t.name)))return r;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<s;)if(r=(t=i[o]).type)n[r]=fr(n[r],t.name,e);else if(e==null)for(r in n)n[r]=fr(n[r],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Je(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var n=new Array(r),i=0,r,o;i<r;++i)n[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],i=0,r=o.length;i<r;++i)o[i].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],r=0,o=i.length;r<o;++r)i[r].value.apply(e,n)}};function qo(t,e){for(var n=0,i=t.length,r;n<i;++n)if((r=t[n]).name===e)return r.value}function fr(t,e,n){for(var i=0,r=t.length;i<r;++i)if(t[i].name===e){t[i]=Ho,t=t.slice(0,i).concat(t.slice(i+1));break}return n!=null&&t.push({name:e,value:n}),t}var Xn="http://www.w3.org/1999/xhtml";const hr={svg:"http://www.w3.org/2000/svg",xhtml:Xn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function _e(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),hr.hasOwnProperty(e)?{space:hr[e],local:t}:t}function Wo(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Xn&&e.documentElement.namespaceURI===Xn?e.createElement(t):e.createElementNS(n,t)}}function Go(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function mr(t){var e=_e(t);return(e.local?Go:Wo)(e)}function Uo(){}function Yn(t){return t==null?Uo:function(){return this.querySelector(t)}}function Ko(t){typeof t!="function"&&(t=Yn(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o=e[r],s=o.length,c=i[r]=new Array(s),f,a,u=0;u<s;++u)(f=o[u])&&(a=t.call(f,f.__data__,u,o))&&("__data__"in f&&(a.__data__=f.__data__),c[u]=a);return new It(i,this._parents)}function Qo(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Zo(){return[]}function dr(t){return t==null?Zo:function(){return this.querySelectorAll(t)}}function Jo(t){return function(){return Qo(t.apply(this,arguments))}}function _o(t){typeof t=="function"?t=Jo(t):t=dr(t);for(var e=this._groups,n=e.length,i=[],r=[],o=0;o<n;++o)for(var s=e[o],c=s.length,f,a=0;a<c;++a)(f=s[a])&&(i.push(t.call(f,f.__data__,a,s)),r.push(f));return new It(i,r)}function yr(t){return function(){return this.matches(t)}}function gr(t){return function(e){return e.matches(t)}}var ta=Array.prototype.find;function ea(t){return function(){return ta.call(this.children,t)}}function na(){return this.firstElementChild}function ia(t){return this.select(t==null?na:ea(typeof t=="function"?t:gr(t)))}var ra=Array.prototype.filter;function la(){return Array.from(this.children)}function oa(t){return function(){return ra.call(this.children,t)}}function aa(t){return this.selectAll(t==null?la:oa(typeof t=="function"?t:gr(t)))}function sa(t){typeof t!="function"&&(t=yr(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o=e[r],s=o.length,c=i[r]=[],f,a=0;a<s;++a)(f=o[a])&&t.call(f,f.__data__,a,o)&&c.push(f);return new It(i,this._parents)}function xr(t){return new Array(t.length)}function ca(){return new It(this._enter||this._groups.map(xr),this._parents)}function tn(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}tn.prototype={constructor:tn,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function ua(t){return function(){return t}}function fa(t,e,n,i,r,o){for(var s=0,c,f=e.length,a=o.length;s<a;++s)(c=e[s])?(c.__data__=o[s],i[s]=c):n[s]=new tn(t,o[s]);for(;s<f;++s)(c=e[s])&&(r[s]=c)}function ha(t,e,n,i,r,o,s){var c,f,a=new Map,u=e.length,h=o.length,m=new Array(u),d;for(c=0;c<u;++c)(f=e[c])&&(m[c]=d=s.call(f,f.__data__,c,e)+"",a.has(d)?r[c]=f:a.set(d,f));for(c=0;c<h;++c)d=s.call(t,o[c],c,o)+"",(f=a.get(d))?(i[c]=f,f.__data__=o[c],a.delete(d)):n[c]=new tn(t,o[c]);for(c=0;c<u;++c)(f=e[c])&&a.get(m[c])===f&&(r[c]=f)}function ma(t){return t.__data__}function da(t,e){if(!arguments.length)return Array.from(this,ma);var n=e?ha:fa,i=this._parents,r=this._groups;typeof t!="function"&&(t=ua(t));for(var o=r.length,s=new Array(o),c=new Array(o),f=new Array(o),a=0;a<o;++a){var u=i[a],h=r[a],m=h.length,d=ya(t.call(u,u&&u.__data__,a,i)),g=d.length,p=c[a]=new Array(g),$=s[a]=new Array(g),C=f[a]=new Array(m);n(u,h,p,$,C,d,e);for(var O=0,B=0,j,L;O<g;++O)if(j=p[O]){for(O>=B&&(B=O+1);!(L=$[B])&&++B<g;);j._next=L||null}}return s=new It(s,i),s._enter=c,s._exit=f,s}function ya(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function ga(){return new It(this._exit||this._groups.map(xr),this._parents)}function xa(t,e,n){var i=this.enter(),r=this,o=this.exit();return typeof t=="function"?(i=t(i),i&&(i=i.selection())):i=i.append(t+""),e!=null&&(r=e(r),r&&(r=r.selection())),n==null?o.remove():n(o),i&&r?i.merge(r).order():r}function pa(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,r=n.length,o=i.length,s=Math.min(r,o),c=new Array(r),f=0;f<s;++f)for(var a=n[f],u=i[f],h=a.length,m=c[f]=new Array(h),d,g=0;g<h;++g)(d=a[g]||u[g])&&(m[g]=d);for(;f<r;++f)c[f]=n[f];return new It(c,this._parents)}function wa(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i=t[e],r=i.length-1,o=i[r],s;--r>=0;)(s=i[r])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function ba(t){t||(t=ka);function e(h,m){return h&&m?t(h.__data__,m.__data__):!h-!m}for(var n=this._groups,i=n.length,r=new Array(i),o=0;o<i;++o){for(var s=n[o],c=s.length,f=r[o]=new Array(c),a,u=0;u<c;++u)(a=s[u])&&(f[u]=a);f.sort(e)}return new It(r,this._parents).order()}function ka(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function va(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Na(){return Array.from(this)}function Aa(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length;r<o;++r){var s=i[r];if(s)return s}return null}function $a(){let t=0;for(const e of this)++t;return t}function Ma(){return!this.node()}function Sa(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var r=e[n],o=0,s=r.length,c;o<s;++o)(c=r[o])&&t.call(c,c.__data__,o,r);return this}function Ba(t){return function(){this.removeAttribute(t)}}function Ta(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ea(t,e){return function(){this.setAttribute(t,e)}}function Ca(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Pa(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Oa(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Va(t,e){var n=_e(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((e==null?n.local?Ta:Ba:typeof e=="function"?n.local?Oa:Pa:n.local?Ca:Ea)(n,e))}function pr(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ja(t){return function(){this.style.removeProperty(t)}}function La(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Ia(t,e,n){return function(){var i=e.apply(this,arguments);i==null?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Da(t,e,n){return arguments.length>1?this.each((e==null?ja:typeof e=="function"?Ia:La)(t,e,n??"")):be(this.node(),t)}function be(t,e){return t.style.getPropertyValue(e)||pr(t).getComputedStyle(t,null).getPropertyValue(e)}function Xa(t){return function(){delete this[t]}}function Ya(t,e){return function(){this[t]=e}}function Fa(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Ra(t,e){return arguments.length>1?this.each((e==null?Xa:typeof e=="function"?Fa:Ya)(t,e)):this.node()[t]}function wr(t){return t.trim().split(/^|\s+/)}function Fn(t){return t.classList||new br(t)}function br(t){this._node=t,this._names=wr(t.getAttribute("class")||"")}br.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function kr(t,e){for(var n=Fn(t),i=-1,r=e.length;++i<r;)n.add(e[i])}function vr(t,e){for(var n=Fn(t),i=-1,r=e.length;++i<r;)n.remove(e[i])}function Ha(t){return function(){kr(this,t)}}function za(t){return function(){vr(this,t)}}function qa(t,e){return function(){(e.apply(this,arguments)?kr:vr)(this,t)}}function Wa(t,e){var n=wr(t+"");if(arguments.length<2){for(var i=Fn(this.node()),r=-1,o=n.length;++r<o;)if(!i.contains(n[r]))return!1;return!0}return this.each((typeof e=="function"?qa:e?Ha:za)(n,e))}function Ga(){this.textContent=""}function Ua(t){return function(){this.textContent=t}}function Ka(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Qa(t){return arguments.length?this.each(t==null?Ga:(typeof t=="function"?Ka:Ua)(t)):this.node().textContent}function Za(){this.innerHTML=""}function Ja(t){return function(){this.innerHTML=t}}function _a(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function ts(t){return arguments.length?this.each(t==null?Za:(typeof t=="function"?_a:Ja)(t)):this.node().innerHTML}function es(){this.nextSibling&&this.parentNode.appendChild(this)}function ns(){return this.each(es)}function is(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function rs(){return this.each(is)}function ls(t){var e=typeof t=="function"?t:mr(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function os(){return null}function as(t,e){var n=typeof t=="function"?t:mr(t),i=e==null?os:typeof e=="function"?e:Yn(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)})}function ss(){var t=this.parentNode;t&&t.removeChild(this)}function cs(){return this.each(ss)}function us(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function fs(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function hs(t){return this.select(t?fs:us)}function ms(t){return arguments.length?this.property("__data__",t):this.node().__data__}function ds(t){return function(e){t.call(this,e,this.__data__)}}function ys(t){return t.trim().split(/^|\s+/).map(function(e){var n="",i=e.indexOf(".");return i>=0&&(n=e.slice(i+1),e=e.slice(0,i)),{type:e,name:n}})}function gs(t){return function(){var e=this.__on;if(e){for(var n=0,i=-1,r=e.length,o;n<r;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++i]=o;++i?e.length=i:delete this.__on}}}function xs(t,e,n){return function(){var i=this.__on,r,o=ds(e);if(i){for(var s=0,c=i.length;s<c;++s)if((r=i[s]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),r.value=e;return}}this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function ps(t,e,n){var i=ys(t+""),r,o=i.length,s;if(arguments.length<2){var c=this.node().__on;if(c){for(var f=0,a=c.length,u;f<a;++f)for(r=0,u=c[f];r<o;++r)if((s=i[r]).type===u.type&&s.name===u.name)return u.value}return}for(c=e?xs:gs,r=0;r<o;++r)this.each(c(i[r],e,n));return this}function Nr(t,e,n){var i=pr(t),r=i.CustomEvent;typeof r=="function"?r=new r(e,n):(r=i.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function ws(t,e){return function(){return Nr(this,t,e)}}function bs(t,e){return function(){return Nr(this,t,e.apply(this,arguments))}}function ks(t,e){return this.each((typeof e=="function"?bs:ws)(t,e))}function*vs(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],r=0,o=i.length,s;r<o;++r)(s=i[r])&&(yield s)}var Ns=[null];function It(t,e){this._groups=t,this._parents=e}function Ve(){return new It([[document.documentElement]],Ns)}function As(){return this}It.prototype=Ve.prototype={constructor:It,select:Ko,selectAll:_o,selectChild:ia,selectChildren:aa,filter:sa,data:da,enter:ca,exit:ga,join:xa,merge:pa,selection:As,order:wa,sort:ba,call:va,nodes:Na,node:Aa,size:$a,empty:Ma,each:Sa,attr:Va,style:Da,property:Ra,classed:Wa,text:Qa,html:ts,raise:ns,lower:rs,append:ls,insert:as,remove:cs,clone:hs,datum:ms,on:ps,dispatch:ks,[Symbol.iterator]:vs};function je(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function en(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function ue(){}var Le=.7,nn=1/Le,ke="\\s*([+-]?\\d+)\\s*",Ie="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ht="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",$s=/^#([0-9a-f]{3,8})$/,Ms=new RegExp(`^rgb\\(${ke},${ke},${ke}\\)$`),Ss=new RegExp(`^rgb\\(${Ht},${Ht},${Ht}\\)$`),Bs=new RegExp(`^rgba\\(${ke},${ke},${ke},${Ie}\\)$`),Ts=new RegExp(`^rgba\\(${Ht},${Ht},${Ht},${Ie}\\)$`),Es=new RegExp(`^hsl\\(${Ie},${Ht},${Ht}\\)$`),Cs=new RegExp(`^hsla\\(${Ie},${Ht},${Ht},${Ie}\\)$`),Ar={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};je(ue,fe,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:$r,formatHex:$r,formatHex8:Ps,formatHsl:Os,formatRgb:Mr,toString:Mr});function $r(){return this.rgb().formatHex()}function Ps(){return this.rgb().formatHex8()}function Os(){return Pr(this).formatHsl()}function Mr(){return this.rgb().formatRgb()}function fe(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=$s.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Sr(e):n===3?new Et(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?rn(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?rn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Ms.exec(t))?new Et(e[1],e[2],e[3],1):(e=Ss.exec(t))?new Et(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Bs.exec(t))?rn(e[1],e[2],e[3],e[4]):(e=Ts.exec(t))?rn(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Es.exec(t))?Cr(e[1],e[2]/100,e[3]/100,1):(e=Cs.exec(t))?Cr(e[1],e[2]/100,e[3]/100,e[4]):Ar.hasOwnProperty(t)?Sr(Ar[t]):t==="transparent"?new Et(NaN,NaN,NaN,0):null}function Sr(t){return new Et(t>>16&255,t>>8&255,t&255,1)}function rn(t,e,n,i){return i<=0&&(t=e=n=NaN),new Et(t,e,n,i)}function Br(t){return t instanceof ue||(t=fe(t)),t?(t=t.rgb(),new Et(t.r,t.g,t.b,t.opacity)):new Et}function Rn(t,e,n,i){return arguments.length===1?Br(t):new Et(t,e,n,i??1)}function Et(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}je(Et,Rn,en(ue,{brighter(t){return t=t==null?nn:Math.pow(nn,t),new Et(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Le:Math.pow(Le,t),new Et(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Et(he(this.r),he(this.g),he(this.b),ln(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Tr,formatHex:Tr,formatHex8:Vs,formatRgb:Er,toString:Er}));function Tr(){return`#${me(this.r)}${me(this.g)}${me(this.b)}`}function Vs(){return`#${me(this.r)}${me(this.g)}${me(this.b)}${me((isNaN(this.opacity)?1:this.opacity)*255)}`}function Er(){const t=ln(this.opacity);return`${t===1?"rgb(":"rgba("}${he(this.r)}, ${he(this.g)}, ${he(this.b)}${t===1?")":`, ${t})`}`}function ln(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function he(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function me(t){return t=he(t),(t<16?"0":"")+t.toString(16)}function Cr(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Dt(t,e,n,i)}function Pr(t){if(t instanceof Dt)return new Dt(t.h,t.s,t.l,t.opacity);if(t instanceof ue||(t=fe(t)),!t)return new Dt;if(t instanceof Dt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),o=Math.max(e,n,i),s=NaN,c=o-r,f=(o+r)/2;return c?(e===o?s=(n-i)/c+(n<i)*6:n===o?s=(i-e)/c+2:s=(e-n)/c+4,c/=f<.5?o+r:2-o-r,s*=60):c=f>0&&f<1?0:s,new Dt(s,c,f,t.opacity)}function js(t,e,n,i){return arguments.length===1?Pr(t):new Dt(t,e,n,i??1)}function Dt(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}je(Dt,js,en(ue,{brighter(t){return t=t==null?nn:Math.pow(nn,t),new Dt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Le:Math.pow(Le,t),new Dt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new Et(Hn(t>=240?t-240:t+120,r,i),Hn(t,r,i),Hn(t<120?t+240:t-120,r,i),this.opacity)},clamp(){return new Dt(Or(this.h),on(this.s),on(this.l),ln(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=ln(this.opacity);return`${t===1?"hsl(":"hsla("}${Or(this.h)}, ${on(this.s)*100}%, ${on(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Or(t){return t=(t||0)%360,t<0?t+360:t}function on(t){return Math.max(0,Math.min(1,t||0))}function Hn(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Ls=Math.PI/180,Is=180/Math.PI,an=18,Vr=.96422,jr=1,Lr=.82521,Ir=4/29,ve=6/29,Dr=3*ve*ve,Ds=ve*ve*ve;function Xr(t){if(t instanceof zt)return new zt(t.l,t.a,t.b,t.opacity);if(t instanceof Jt)return Fr(t);t instanceof Et||(t=Br(t));var e=Un(t.r),n=Un(t.g),i=Un(t.b),r=qn((.2225045*e+.7168786*n+.0606169*i)/jr),o,s;return e===n&&n===i?o=s=r:(o=qn((.4360747*e+.3850649*n+.1430804*i)/Vr),s=qn((.0139322*e+.0971045*n+.7141733*i)/Lr)),new zt(116*r-16,500*(o-r),200*(r-s),t.opacity)}function zn(t,e,n,i){return arguments.length===1?Xr(t):new zt(t,e,n,i??1)}function zt(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}je(zt,zn,en(ue,{brighter(t){return new zt(this.l+an*(t??1),this.a,this.b,this.opacity)},darker(t){return new zt(this.l-an*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Vr*Wn(e),t=jr*Wn(t),n=Lr*Wn(n),new Et(Gn(3.1338561*e-1.6168667*t-.4906146*n),Gn(-.9787684*e+1.9161415*t+.033454*n),Gn(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function qn(t){return t>Ds?Math.pow(t,.3333333333333333):t/Dr+Ir}function Wn(t){return t>ve?t*t*t:Dr*(t-Ir)}function Gn(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,.4166666666666667)-.055)}function Un(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Xs(t){if(t instanceof Jt)return new Jt(t.h,t.c,t.l,t.opacity);if(t instanceof zt||(t=Xr(t)),t.a===0&&t.b===0)return new Jt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Is;return new Jt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Yr(t,e,n,i){return arguments.length===1?Xs(t):new Jt(t,e,n,i??1)}function Jt(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function Fr(t){if(isNaN(t.h))return new zt(t.l,0,0,t.opacity);var e=t.h*Ls;return new zt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}je(Jt,Yr,en(ue,{brighter(t){return new Jt(this.h,this.c,this.l+an*(t??1),this.opacity)},darker(t){return new Jt(this.h,this.c,this.l-an*(t??1),this.opacity)},rgb(){return Fr(this).rgb()}}));const Kn=t=>()=>t;function Ys(t,e){return function(n){return t+n*e}}function Fs(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function Rs(t){return(t=+t)==1?Ne:function(e,n){return n-e?Fs(e,n,t):Kn(isNaN(e)?n:e)}}function Ne(t,e){var n=e-t;return n?Ys(t,n):Kn(isNaN(t)?e:t)}const sn=(function t(e){var n=Rs(e);function i(r,o){var s=n((r=Rn(r)).r,(o=Rn(o)).r),c=n(r.g,o.g),f=n(r.b,o.b),a=Ne(r.opacity,o.opacity);return function(u){return r.r=s(u),r.g=c(u),r.b=f(u),r.opacity=a(u),r+""}}return i.gamma=t,i})(1);function Hs(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,i=e.slice(),r;return function(o){for(r=0;r<n;++r)i[r]=t[r]*(1-o)+e[r]*o;return i}}function zs(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function qs(t,e){var n=e?e.length:0,i=t?Math.min(n,t.length):0,r=new Array(i),o=new Array(n),s;for(s=0;s<i;++s)r[s]=Jn(t[s],e[s]);for(;s<n;++s)o[s]=e[s];return function(c){for(s=0;s<i;++s)o[s]=r[s](c);return o}}function Ws(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Xt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Gs(t,e){var n={},i={},r;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(r in e)r in t?n[r]=Jn(t[r],e[r]):i[r]=e[r];return function(o){for(r in n)i[r]=n[r](o);return i}}var Qn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Zn=new RegExp(Qn.source,"g");function Us(t){return function(){return t}}function Ks(t){return function(e){return t(e)+""}}function Rr(t,e){var n=Qn.lastIndex=Zn.lastIndex=0,i,r,o,s=-1,c=[],f=[];for(t=t+"",e=e+"";(i=Qn.exec(t))&&(r=Zn.exec(e));)(o=r.index)>n&&(o=e.slice(n,o),c[s]?c[s]+=o:c[++s]=o),(i=i[0])===(r=r[0])?c[s]?c[s]+=r:c[++s]=r:(c[++s]=null,f.push({i:s,x:Xt(i,r)})),n=Zn.lastIndex;return n<e.length&&(o=e.slice(n),c[s]?c[s]+=o:c[++s]=o),c.length<2?f[0]?Ks(f[0].x):Us(e):(e=f.length,function(a){for(var u=0,h;u<e;++u)c[(h=f[u]).i]=h.x(a);return c.join("")})}function Jn(t,e){var n=typeof e,i;return e==null||n==="boolean"?Kn(e):(n==="number"?Xt:n==="string"?(i=fe(e))?(e=i,sn):Rr:e instanceof fe?sn:e instanceof Date?Ws:zs(e)?Hs:Array.isArray(e)?qs:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Gs:Xt)(t,e)}function Qs(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Hr=180/Math.PI,_n={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zr(t,e,n,i,r,o){var s,c,f;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(f=t*n+e*i)&&(n-=t*f,i-=e*f),(c=Math.sqrt(n*n+i*i))&&(n/=c,i/=c,f/=c),t*i<e*n&&(t=-t,e=-e,f=-f,s=-s),{translateX:r,translateY:o,rotate:Math.atan2(e,t)*Hr,skewX:Math.atan(f)*Hr,scaleX:s,scaleY:c}}var cn;function Zs(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?_n:zr(e.a,e.b,e.c,e.d,e.e,e.f)}function Js(t){return t==null||(cn||(cn=document.createElementNS("http://www.w3.org/2000/svg","g")),cn.setAttribute("transform",t),!(t=cn.transform.baseVal.consolidate()))?_n:(t=t.matrix,zr(t.a,t.b,t.c,t.d,t.e,t.f))}function qr(t,e,n,i){function r(a){return a.length?a.pop()+" ":""}function o(a,u,h,m,d,g){if(a!==h||u!==m){var p=d.push("translate(",null,e,null,n);g.push({i:p-4,x:Xt(a,h)},{i:p-2,x:Xt(u,m)})}else(h||m)&&d.push("translate("+h+e+m+n)}function s(a,u,h,m){a!==u?(a-u>180?u+=360:u-a>180&&(a+=360),m.push({i:h.push(r(h)+"rotate(",null,i)-2,x:Xt(a,u)})):u&&h.push(r(h)+"rotate("+u+i)}function c(a,u,h,m){a!==u?m.push({i:h.push(r(h)+"skewX(",null,i)-2,x:Xt(a,u)}):u&&h.push(r(h)+"skewX("+u+i)}function f(a,u,h,m,d,g){if(a!==h||u!==m){var p=d.push(r(d)+"scale(",null,",",null,")");g.push({i:p-4,x:Xt(a,h)},{i:p-2,x:Xt(u,m)})}else(h!==1||m!==1)&&d.push(r(d)+"scale("+h+","+m+")")}return function(a,u){var h=[],m=[];return a=t(a),u=t(u),o(a.translateX,a.translateY,u.translateX,u.translateY,h,m),s(a.rotate,u.rotate,h,m),c(a.skewX,u.skewX,h,m),f(a.scaleX,a.scaleY,u.scaleX,u.scaleY,h,m),a=u=null,function(d){for(var g=-1,p=m.length,$;++g<p;)h[($=m[g]).i]=$.x(d);return h.join("")}}}var _s=qr(Zs,"px, ","px)","deg)"),tc=qr(Js,", ",")",")");function ti(t,e){var n=Ne((t=zn(t)).l,(e=zn(e)).l),i=Ne(t.a,e.a),r=Ne(t.b,e.b),o=Ne(t.opacity,e.opacity);return function(s){return t.l=n(s),t.a=i(s),t.b=r(s),t.opacity=o(s),t+""}}var Ae=0,De=0,Xe=0,Wr=1e3,un,Ye,fn=0,de=0,hn=0,Fe=typeof performance=="object"&&performance.now?performance:Date,Gr=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ei(){return de||(Gr(ec),de=Fe.now()+hn)}function ec(){de=0}function mn(){this._call=this._time=this._next=null}mn.prototype=Ur.prototype={constructor:mn,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ei():+n)+(e==null?0:+e),!this._next&&Ye!==this&&(Ye?Ye._next=this:un=this,Ye=this),this._call=t,this._time=n,ni()},stop:function(){this._call&&(this._call=null,this._time=1/0,ni())}};function Ur(t,e,n){var i=new mn;return i.restart(t,e,n),i}function nc(){ei(),++Ae;for(var t=un,e;t;)(e=de-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Ae}function Kr(){de=(fn=Fe.now())+hn,Ae=De=0;try{nc()}finally{Ae=0,rc(),de=0}}function ic(){var t=Fe.now(),e=t-fn;e>Wr&&(hn-=e,fn=t)}function rc(){for(var t,e=un,n,i=1/0;e;)e._call?(i>e._time&&(i=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:un=n);Ye=t,ni(i)}function ni(t){if(!Ae){De&&(De=clearTimeout(De));var e=t-de;e>24?(t<1/0&&(De=setTimeout(Kr,t-Fe.now()-hn)),Xe&&(Xe=clearInterval(Xe))):(Xe||(fn=Fe.now(),Xe=setInterval(ic,Wr)),Ae=1,Gr(Kr))}}function Qr(t,e,n){var i=new mn;return e=e==null?0:+e,i.restart(r=>{i.stop(),t(r+e)},e,n),i}var lc=ur("start","end","cancel","interrupt"),oc=[],Zr=0,Jr=1,ii=2,dn=3,_r=4,ri=5,yn=6;function gn(t,e,n,i,r,o){var s=t.__transition;if(!s)t.__transition={};else if(n in s)return;ac(t,n,{name:e,index:i,group:r,on:lc,tween:oc,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Zr})}function li(t,e){var n=Yt(t,e);if(n.state>Zr)throw new Error("too late; already scheduled");return n}function qt(t,e){var n=Yt(t,e);if(n.state>dn)throw new Error("too late; already running");return n}function Yt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function ac(t,e,n){var i=t.__transition,r;i[e]=n,n.timer=Ur(o,0,n.time);function o(a){n.state=Jr,n.timer.restart(s,n.delay,n.time),n.delay<=a&&s(a-n.delay)}function s(a){var u,h,m,d;if(n.state!==Jr)return f();for(u in i)if(d=i[u],d.name===n.name){if(d.state===dn)return Qr(s);d.state===_r?(d.state=yn,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[u]):+u<e&&(d.state=yn,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete i[u])}if(Qr(function(){n.state===dn&&(n.state=_r,n.timer.restart(c,n.delay,n.time),c(a))}),n.state=ii,n.on.call("start",t,t.__data__,n.index,n.group),n.state===ii){for(n.state=dn,r=new Array(m=n.tween.length),u=0,h=-1;u<m;++u)(d=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(r[++h]=d);r.length=h+1}}function c(a){for(var u=a<n.duration?n.ease.call(null,a/n.duration):(n.timer.restart(f),n.state=ri,1),h=-1,m=r.length;++h<m;)r[h].call(t,u);n.state===ri&&(n.on.call("end",t,t.__data__,n.index,n.group),f())}function f(){n.state=yn,n.timer.stop(),delete i[e];for(var a in i)return;delete t.__transition}}function sc(t,e){var n=t.__transition,i,r,o=!0,s;if(n){e=e==null?null:e+"";for(s in n){if((i=n[s]).name!==e){o=!1;continue}r=i.state>ii&&i.state<ri,i.state=yn,i.timer.stop(),i.on.call(r?"interrupt":"cancel",t,t.__data__,i.index,i.group),delete n[s]}o&&delete t.__transition}}function cc(t){return this.each(function(){sc(this,t)})}function uc(t,e){var n,i;return function(){var r=qt(this,t),o=r.tween;if(o!==n){i=n=o;for(var s=0,c=i.length;s<c;++s)if(i[s].name===e){i=i.slice(),i.splice(s,1);break}}r.tween=i}}function fc(t,e,n){var i,r;if(typeof n!="function")throw new Error;return function(){var o=qt(this,t),s=o.tween;if(s!==i){r=(i=s).slice();for(var c={name:e,value:n},f=0,a=r.length;f<a;++f)if(r[f].name===e){r[f]=c;break}f===a&&r.push(c)}o.tween=r}}function hc(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i=Yt(this.node(),n).tween,r=0,o=i.length,s;r<o;++r)if((s=i[r]).name===t)return s.value;return null}return this.each((e==null?uc:fc)(n,t,e))}function oi(t,e,n){var i=t._id;return t.each(function(){var r=qt(this,i);(r.value||(r.value={}))[e]=n.apply(this,arguments)}),function(r){return Yt(r,i).value[e]}}function tl(t,e){var n;return(typeof e=="number"?Xt:e instanceof fe?sn:(n=fe(e))?(e=n,sn):Rr)(t,e)}function mc(t){return function(){this.removeAttribute(t)}}function dc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function yc(t,e,n){var i,r=n+"",o;return function(){var s=this.getAttribute(t);return s===r?null:s===i?o:o=e(i=s,n)}}function gc(t,e,n){var i,r=n+"",o;return function(){var s=this.getAttributeNS(t.space,t.local);return s===r?null:s===i?o:o=e(i=s,n)}}function xc(t,e,n){var i,r,o;return function(){var s,c=n(this),f;return c==null?void this.removeAttribute(t):(s=this.getAttribute(t),f=c+"",s===f?null:s===i&&f===r?o:(r=f,o=e(i=s,c)))}}function pc(t,e,n){var i,r,o;return function(){var s,c=n(this),f;return c==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),f=c+"",s===f?null:s===i&&f===r?o:(r=f,o=e(i=s,c)))}}function wc(t,e){var n=_e(t),i=n==="transform"?tc:tl;return this.attrTween(t,typeof e=="function"?(n.local?pc:xc)(n,i,oi(this,"attr."+t,e)):e==null?(n.local?dc:mc)(n):(n.local?gc:yc)(n,i,e))}function bc(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function kc(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function vc(t,e){var n,i;function r(){var o=e.apply(this,arguments);return o!==i&&(n=(i=o)&&kc(t,o)),n}return r._value=e,r}function Nc(t,e){var n,i;function r(){var o=e.apply(this,arguments);return o!==i&&(n=(i=o)&&bc(t,o)),n}return r._value=e,r}function Ac(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var i=_e(t);return this.tween(n,(i.local?vc:Nc)(i,e))}function $c(t,e){return function(){li(this,t).delay=+e.apply(this,arguments)}}function Mc(t,e){return e=+e,function(){li(this,t).delay=e}}function Sc(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?$c:Mc)(e,t)):Yt(this.node(),e).delay}function Bc(t,e){return function(){qt(this,t).duration=+e.apply(this,arguments)}}function Tc(t,e){return e=+e,function(){qt(this,t).duration=e}}function Ec(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?Bc:Tc)(e,t)):Yt(this.node(),e).duration}function Cc(t,e){if(typeof e!="function")throw new Error;return function(){qt(this,t).ease=e}}function Pc(t){var e=this._id;return arguments.length?this.each(Cc(e,t)):Yt(this.node(),e).ease}function Oc(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;qt(this,t).ease=n}}function Vc(t){if(typeof t!="function")throw new Error;return this.each(Oc(this._id,t))}function jc(t){typeof t!="function"&&(t=yr(t));for(var e=this._groups,n=e.length,i=new Array(n),r=0;r<n;++r)for(var o=e[r],s=o.length,c=i[r]=[],f,a=0;a<s;++a)(f=o[a])&&t.call(f,f.__data__,a,o)&&c.push(f);return new _t(i,this._parents,this._name,this._id)}function Lc(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,r=n.length,o=Math.min(i,r),s=new Array(i),c=0;c<o;++c)for(var f=e[c],a=n[c],u=f.length,h=s[c]=new Array(u),m,d=0;d<u;++d)(m=f[d]||a[d])&&(h[d]=m);for(;c<i;++c)s[c]=e[c];return new _t(s,this._parents,this._name,this._id)}function Ic(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function Dc(t,e,n){var i,r,o=Ic(e)?li:qt;return function(){var s=o(this,t),c=s.on;c!==i&&(r=(i=c).copy()).on(e,n),s.on=r}}function Xc(t,e){var n=this._id;return arguments.length<2?Yt(this.node(),n).on.on(t):this.each(Dc(n,t,e))}function Yc(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function Fc(){return this.on("end.remove",Yc(this._id))}function Rc(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Yn(t));for(var i=this._groups,r=i.length,o=new Array(r),s=0;s<r;++s)for(var c=i[s],f=c.length,a=o[s]=new Array(f),u,h,m=0;m<f;++m)(u=c[m])&&(h=t.call(u,u.__data__,m,c))&&("__data__"in u&&(h.__data__=u.__data__),a[m]=h,gn(a[m],e,n,m,a,Yt(u,n)));return new _t(o,this._parents,e,n)}function Hc(t){var e=this._name,n=this._id;typeof t!="function"&&(t=dr(t));for(var i=this._groups,r=i.length,o=[],s=[],c=0;c<r;++c)for(var f=i[c],a=f.length,u,h=0;h<a;++h)if(u=f[h]){for(var m=t.call(u,u.__data__,h,f),d,g=Yt(u,n),p=0,$=m.length;p<$;++p)(d=m[p])&&gn(d,e,n,p,m,g);o.push(m),s.push(u)}return new _t(o,s,e,n)}var zc=Ve.prototype.constructor;function qc(){return new zc(this._groups,this._parents)}function Wc(t,e){var n,i,r;return function(){var o=be(this,t),s=(this.style.removeProperty(t),be(this,t));return o===s?null:o===n&&s===i?r:r=e(n=o,i=s)}}function el(t){return function(){this.style.removeProperty(t)}}function Gc(t,e,n){var i,r=n+"",o;return function(){var s=be(this,t);return s===r?null:s===i?o:o=e(i=s,n)}}function Uc(t,e,n){var i,r,o;return function(){var s=be(this,t),c=n(this),f=c+"";return c==null&&(f=c=(this.style.removeProperty(t),be(this,t))),s===f?null:s===i&&f===r?o:(r=f,o=e(i=s,c))}}function Kc(t,e){var n,i,r,o="style."+e,s="end."+o,c;return function(){var f=qt(this,t),a=f.on,u=f.value[o]==null?c||(c=el(e)):void 0;(a!==n||r!==u)&&(i=(n=a).copy()).on(s,r=u),f.on=i}}function Qc(t,e,n){var i=(t+="")=="transform"?_s:tl;return e==null?this.styleTween(t,Wc(t,i)).on("end.style."+t,el(t)):typeof e=="function"?this.styleTween(t,Uc(t,i,oi(this,"style."+t,e))).each(Kc(this._id,t)):this.styleTween(t,Gc(t,i,e),n).on("end.style."+t,null)}function Zc(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function Jc(t,e,n){var i,r;function o(){var s=e.apply(this,arguments);return s!==r&&(i=(r=s)&&Zc(t,s,n)),i}return o._value=e,o}function _c(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(e==null)return this.tween(i,null);if(typeof e!="function")throw new Error;return this.tween(i,Jc(t,e,n??""))}function tu(t){return function(){this.textContent=t}}function eu(t){return function(){var e=t(this);this.textContent=e??""}}function nu(t){return this.tween("text",typeof t=="function"?eu(oi(this,"text",t)):tu(t==null?"":t+""))}function iu(t){return function(e){this.textContent=t.call(this,e)}}function ru(t){var e,n;function i(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&iu(r)),e}return i._value=t,i}function lu(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,ru(t))}function ou(){for(var t=this._name,e=this._id,n=nl(),i=this._groups,r=i.length,o=0;o<r;++o)for(var s=i[o],c=s.length,f,a=0;a<c;++a)if(f=s[a]){var u=Yt(f,e);gn(f,t,n,a,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new _t(i,this._parents,t,n)}function au(){var t,e,n=this,i=n._id,r=n.size();return new Promise(function(o,s){var c={value:s},f={value:function(){--r===0&&o()}};n.each(function(){var a=qt(this,i),u=a.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(c),e._.interrupt.push(c),e._.end.push(f)),a.on=e}),r===0&&o()})}var su=0;function _t(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function nl(){return++su}var te=Ve.prototype;_t.prototype={constructor:_t,select:Rc,selectAll:Hc,selectChild:te.selectChild,selectChildren:te.selectChildren,filter:jc,merge:Lc,selection:qc,transition:ou,call:te.call,nodes:te.nodes,node:te.node,size:te.size,empty:te.empty,each:te.each,on:Xc,attr:wc,attrTween:Ac,style:Qc,styleTween:_c,text:nu,textTween:lu,remove:Fc,tween:hc,delay:Sc,duration:Ec,ease:Pc,easeVarying:Vc,end:au,[Symbol.iterator]:te[Symbol.iterator]};function cu(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var uu={time:null,delay:0,duration:250,ease:cu};function fu(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function hu(t){var e,n;t instanceof _t?(e=t._id,t=t._name):(e=nl(),(n=uu).time=ei(),t=t==null?null:t+"");for(var i=this._groups,r=i.length,o=0;o<r;++o)for(var s=i[o],c=s.length,f,a=0;a<c;++a)(f=s[a])&&gn(f,t,e,a,s,n||fu(f,e));return new _t(i,this._parents,t,e)}Ve.prototype.interrupt=cc,Ve.prototype.transition=hu;const ai=Math.PI,si=2*ai,ye=1e-6,mu=si-ye;function il(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function du(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return il;const n=10**e;return function(i){this._+=i[0];for(let r=1,o=i.length;r<o;++r)this._+=Math.round(arguments[r]*n)/n+i[r]}}class yu{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?il:du(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,i,r){this._append`Q${+e},${+n},${this._x1=+i},${this._y1=+r}`}bezierCurveTo(e,n,i,r,o,s){this._append`C${+e},${+n},${+i},${+r},${this._x1=+o},${this._y1=+s}`}arcTo(e,n,i,r,o){if(e=+e,n=+n,i=+i,r=+r,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,c=this._y1,f=i-e,a=r-n,u=s-e,h=c-n,m=u*u+h*h;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(m>ye)if(!(Math.abs(h*f-a*u)>ye)||!o)this._append`L${this._x1=e},${this._y1=n}`;else{let d=i-s,g=r-c,p=f*f+a*a,$=d*d+g*g,C=Math.sqrt(p),O=Math.sqrt(m),B=o*Math.tan((ai-Math.acos((p+m-$)/(2*C*O)))/2),j=B/O,L=B/C;Math.abs(j-1)>ye&&this._append`L${e+j*u},${n+j*h}`,this._append`A${o},${o},0,0,${+(h*d>u*g)},${this._x1=e+L*f},${this._y1=n+L*a}`}}arc(e,n,i,r,o,s){if(e=+e,n=+n,i=+i,s=!!s,i<0)throw new Error(`negative radius: ${i}`);let c=i*Math.cos(r),f=i*Math.sin(r),a=e+c,u=n+f,h=1^s,m=s?r-o:o-r;this._x1===null?this._append`M${a},${u}`:(Math.abs(this._x1-a)>ye||Math.abs(this._y1-u)>ye)&&this._append`L${a},${u}`,i&&(m<0&&(m=m%si+si),m>mu?this._append`A${i},${i},0,1,${h},${e-c},${n-f}A${i},${i},0,1,${h},${this._x1=a},${this._y1=u}`:m>ye&&this._append`A${i},${i},0,${+(m>=ai)},${h},${this._x1=e+i*Math.cos(o)},${this._y1=n+i*Math.sin(o)}`)}rect(e,n,i,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function gu(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function xn(t,e){if(!isFinite(t)||t===0)return null;var n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"),i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function $e(t){return t=xn(Math.abs(t)),t?t[1]:NaN}function xu(t,e){return function(n,i){for(var r=n.length,o=[],s=0,c=t[0],f=0;r>0&&c>0&&(f+c+1>i&&(c=Math.max(1,i-f)),o.push(n.substring(r-=c,r+c)),!((f+=c+1)>i));)c=t[s=(s+1)%t.length];return o.reverse().join(e)}}function pu(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var wu=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function pn(t){if(!(e=wu.exec(t)))throw new Error("invalid format: "+t);var e;return new ci({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}pn.prototype=ci.prototype;function ci(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}ci.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function bu(t){t:for(var e=t.length,n=1,i=-1,r;n<e;++n)switch(t[n]){case".":i=r=n;break;case"0":i===0&&(i=n),r=n;break;default:if(!+t[n])break t;i>0&&(i=0);break}return i>0?t.slice(0,i)+t.slice(r+1):t}var wn;function ku(t,e){var n=xn(t,e);if(!n)return wn=void 0,t.toPrecision(e);var i=n[0],r=n[1],o=r-(wn=Math.max(-8,Math.min(8,Math.floor(r/3)))*3)+1,s=i.length;return o===s?i:o>s?i+new Array(o-s+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+xn(t,Math.max(0,e+o-1))[0]}function rl(t,e){var n=xn(t,e);if(!n)return t+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}const ll={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:gu,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>rl(t*100,e),r:rl,s:ku,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function ol(t){return t}var al=Array.prototype.map,sl=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function vu(t){var e=t.grouping===void 0||t.thousands===void 0?ol:xu(al.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",i=t.currency===void 0?"":t.currency[1]+"",r=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?ol:pu(al.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",c=t.minus===void 0?"\u2212":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function a(h,m){h=pn(h);var d=h.fill,g=h.align,p=h.sign,$=h.symbol,C=h.zero,O=h.width,B=h.comma,j=h.precision,L=h.trim,V=h.type;V==="n"?(B=!0,V="g"):ll[V]||(j===void 0&&(j=12),L=!0,V="g"),(C||d==="0"&&g==="=")&&(C=!0,d="0",g="=");var v=(m&&m.prefix!==void 0?m.prefix:"")+($==="$"?n:$==="#"&&/[boxX]/.test(V)?"0"+V.toLowerCase():""),y=($==="$"?i:/[%p]/.test(V)?s:"")+(m&&m.suffix!==void 0?m.suffix:""),b=ll[V],k=/[defgprs%]/.test(V);j=j===void 0?6:/[gprs]/.test(V)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function S(N){var D=v,I=y,Y,F,X;if(V==="c")I=b(N)+I,N="";else{N=+N;var R=N<0||1/N<0;if(N=isNaN(N)?f:b(Math.abs(N),j),L&&(N=bu(N)),R&&+N==0&&p!=="+"&&(R=!1),D=(R?p==="("?p:c:p==="-"||p==="("?"":p)+D,I=(V==="s"&&!isNaN(N)&&wn!==void 0?sl[8+wn/3]:"")+I+(R&&p==="("?")":""),k){for(Y=-1,F=N.length;++Y<F;)if(X=N.charCodeAt(Y),48>X||X>57){I=(X===46?r+N.slice(Y+1):N.slice(Y))+I,N=N.slice(0,Y);break}}}B&&!C&&(N=e(N,1/0));var U=D.length+N.length+I.length,G=U<O?new Array(O-U+1).join(d):"";switch(B&&C&&(N=e(G+N,G.length?O-I.length:1/0),G=""),g){case"<":N=D+N+I+G;break;case"=":N=D+G+N+I;break;case"^":N=G.slice(0,U=G.length>>1)+D+N+I+G.slice(U);break;default:N=G+D+N+I;break}return o(N)}return S.toString=function(){return h+""},S}function u(h,m){var d=Math.max(-8,Math.min(8,Math.floor($e(m)/3)))*3,g=Math.pow(10,-d),p=a((h=pn(h),h.type="f",h),{suffix:sl[8+d/3]});return function($){return p(g*$)}}return{format:a,formatPrefix:u}}var bn,cl,ul;Nu({thousands:",",grouping:[3],currency:["$",""]});function Nu(t){return bn=vu(t),cl=bn.format,ul=bn.formatPrefix,bn}function Au(t){return Math.max(0,-$e(Math.abs(t)))}function $u(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor($e(e)/3)))*3-$e(Math.abs(t)))}function Mu(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,$e(e)-$e(t))+1}function Su(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Bu(t){return function(){return t}}function Tu(t){return+t}var fl=[0,1];function Me(t){return t}function ui(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Bu(isNaN(e)?NaN:.5)}function Eu(t,e){var n;return t>e&&(n=t,t=e,e=n),function(i){return Math.max(t,Math.min(e,i))}}function Cu(t,e,n){var i=t[0],r=t[1],o=e[0],s=e[1];return r<i?(i=ui(r,i),o=n(s,o)):(i=ui(i,r),o=n(o,s)),function(c){return o(i(c))}}function Pu(t,e,n){var i=Math.min(t.length,e.length)-1,r=new Array(i),o=new Array(i),s=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<i;)r[s]=ui(t[s],t[s+1]),o[s]=n(e[s],e[s+1]);return function(c){var f=Io(t,c,1,i)-1;return o[f](r[f](c))}}function Ou(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Vu(){var t=fl,e=fl,n=Jn,i,r,o,s=Me,c,f,a;function u(){var m=Math.min(t.length,e.length);return s!==Me&&(s=Eu(t[0],t[m-1])),c=m>2?Pu:Cu,f=a=null,h}function h(m){return m==null||isNaN(m=+m)?o:(f||(f=c(t.map(i),e,n)))(i(s(m)))}return h.invert=function(m){return s(r((a||(a=c(e,t.map(i),Xt)))(m)))},h.domain=function(m){return arguments.length?(t=Array.from(m,Tu),u()):t.slice()},h.range=function(m){return arguments.length?(e=Array.from(m),u()):e.slice()},h.rangeRound=function(m){return e=Array.from(m),n=Qs,u()},h.clamp=function(m){return arguments.length?(s=m?!0:Me,u()):s!==Me},h.interpolate=function(m){return arguments.length?(n=m,u()):n},h.unknown=function(m){return arguments.length?(o=m,h):o},function(m,d){return i=m,r=d,u()}}function ju(){return Vu()(Me,Me)}function Lu(t,e,n,i){var r=Ro(t,e,n),o;switch(i=pn(i??",f"),i.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return i.precision==null&&!isNaN(o=$u(r,s))&&(i.precision=o),ul(i,s)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(o=Mu(r,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=o-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(o=Au(r))&&(i.precision=o-(i.type==="%")*2);break}}return cl(i)}function Iu(t){var e=t.domain;return t.ticks=function(n){var i=e();return Fo(i[0],i[i.length-1],n??10)},t.tickFormat=function(n,i){var r=e();return Lu(r[0],r[r.length-1],n??10,i)},t.nice=function(n){n==null&&(n=10);var i=e(),r=0,o=i.length-1,s=i[r],c=i[o],f,a,u=10;for(c<s&&(a=s,s=c,c=a,a=r,r=o,o=a);u-- >0;){if(a=Dn(s,c,n),a===f)return i[r]=s,i[o]=c,e(i);if(a>0)s=Math.floor(s/a)*a,c=Math.ceil(c/a)*a;else if(a<0)s=Math.ceil(s*a)/a,c=Math.floor(c*a)/a;else break;f=a}return t},t}function hl(){var t=ju();return t.copy=function(){return Ou(t,hl())},Su.apply(t,arguments),Iu(t)}function Se(t){return function(){return t}}const ml=1e-12;function Du(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const i=Math.floor(n);if(!(i>=0))throw new RangeError(`invalid digits: ${n}`);e=i}return t},()=>new yu(e)}function Xu(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function dl(t){this._context=t}dl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function fi(t){return new dl(t)}function Yu(t){return t[0]}function Fu(t){return t[1]}function Ru(t,e){var n=Se(!0),i=null,r=fi,o=null,s=Du(c);t=typeof t=="function"?t:t===void 0?Yu:Se(t),e=typeof e=="function"?e:e===void 0?Fu:Se(e);function c(f){var a,u=(f=Xu(f)).length,h,m=!1,d;for(i==null&&(o=r(d=s())),a=0;a<=u;++a)!(a<u&&n(h=f[a],a,f))===m&&((m=!m)?o.lineStart():o.lineEnd()),m&&o.point(+t(h,a,f),+e(h,a,f));if(d)return o=null,d+""||null}return c.x=function(f){return arguments.length?(t=typeof f=="function"?f:Se(+f),c):t},c.y=function(f){return arguments.length?(e=typeof f=="function"?f:Se(+f),c):e},c.defined=function(f){return arguments.length?(n=typeof f=="function"?f:Se(!!f),c):n},c.curve=function(f){return arguments.length?(r=f,i!=null&&(o=r(i)),c):r},c.context=function(f){return arguments.length?(f==null?i=o=null:o=r(i=f),c):i},c}function yl(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function hi(t,e){this._context=t,this._k=(1-e)/6}hi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:yl(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:yl(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const gl=(function t(e){function n(i){return new hi(i,e)}return n.tension=function(i){return t(+i)},n})(0);function Hu(t,e,n){var i=t._x1,r=t._y1,o=t._x2,s=t._y2;if(t._l01_a>ml){var c=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*c-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,r=(r*c-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>ml){var a=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*a+t._x1*t._l23_2a-e*t._l12_2a)/u,s=(s*a+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,r,o,s,t._x2,t._y2)}function xl(t,e){this._context=t,this._alpha=e}xl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Hu(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const pl=(function t(e){function n(i){return e?new xl(i,e):new hi(i,0)}return n.alpha=function(i){return t(+i)},n})(.5);function wl(t){this._context=t}wl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var i=bl(t),r=bl(e),o=0,s=1;s<n;++o,++s)this._context.bezierCurveTo(i[0][o],r[0][o],i[1][o],r[1][o],t[s],e[s]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function bl(t){var e,n=t.length-1,i,r=new Array(n),o=new Array(n),s=new Array(n);for(r[0]=0,o[0]=2,s[0]=t[0]+2*t[1],e=1;e<n-1;++e)r[e]=1,o[e]=4,s[e]=4*t[e]+2*t[e+1];for(r[n-1]=2,o[n-1]=7,s[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)i=r[e]/o[e-1],o[e]-=i,s[e]-=i*s[e-1];for(r[n-1]=s[n-1]/o[n-1],e=n-2;e>=0;--e)r[e]=(s[e]-r[e+1])/o[e];for(o[n-1]=(t[n]+r[n-1])/2,e=0;e<n-1;++e)o[e]=2*t[e+1]-r[e+1];return[r,o]}function kn(t){return new wl(t)}function Re(t,e,n){this.k=t,this.x=e,this.y=n}Re.prototype={constructor:Re,scale:function(t){return t===1?this:new Re(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Re(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},Re.prototype;const zu={censor:le,squish(t,{min:e,max:n}){return isFinite(t)?t<e?e:t>n?n:t:t},squish_any:st,squish_infinite:In,discard(t,{min:e,max:n}){return t<e||t>n?null:t}};function Be(t,{title:e,...n}={}){return Object.assign(function(i){return i.map(t)},{title:e},n)}function kl({values:t={},na_value:e=null,title:n,...i}={}){let r;return Array.isArray(t)?r=function(o){return o.map(s=>t[+s]??e)}:r=function(o){return o.map(s=>t[s]??e)},Object.assign(r,{title:n},i)}function Te({limits:t,oob:e=le,range:n=[0,1],na_value:i=null,null_value:r=null,title:o,...s}={}){return Object.assign(function(f){let a=this?.limits?.min??this?.limits?.[0]??f.extent?.[0],u=this?.limits?.max??this?.limits?.[1]??f.extent?.[1],h=u-a,m=n?.min??n[0],d=n?.max??n[1],g=d-m;return f.map(p=>(p=this.oob(p,{min:a,max:u}),p===null?r:isNaN(p)?i:m+(p-a)/h*g))},{title:o,limits:t,oob:e},s)}function vl({title:t,...e}={}){return Object.assign(function(n){return n.map(i=>+i)},{asis:!0,title:t},e)}function mi({title:t,...e}={}){return Object.assign(function(n){return n.map(i=>String(i??""))},{asis:!0,title:t},e)}function vn({h:t=[15,375],c:e=100,l:n=65,h_start:i=0,direction:r=1,limits:o,oob:s=le,na_value:c="#7f7f7f",null_value:f=null,title:a,...u}={}){return Object.assign(function(m){let d=this?.limits?.min??this?.limits?.[0]??m.extent?.[0],g=this?.limits?.max??this?.limits?.[1]??m.extent?.[1],p=g-d,$=t?.min??t[0],C=t?.max??t[1],O=C-$;return m.map(B=>(B=this.oob(B,{min:d,max:g}),B===null?f:isNaN(B)?c:Yr(i+$+O*(B-d)/p*r,e,n).toString()))},{title:a,limits:o,oob:s},u)}function qu({values:t,na_value:e="#7f7f7f",title:n,...i}={}){return kl({values:t,na_value:e,title:n,...i})}function Nn({low:t="#132B43",high:e="#56B1F7",limits:n,oob:i=le,na_value:r="#7f7f7f",null_value:o=null,title:s,...c}={}){return Object.assign(function(a){let u=this?.limits?.min??this?.limits?.[0]??a.extent?.[0],h=this?.limits?.max??this?.limits?.[1]??a.extent?.[1],m=ti(t,e);return a.map(d=>(d=this.oob(d,{min:u,max:h}),d===null?o:isNaN(d)?r:u===h?m(.5):d>h?e:d<u?t:m((d-u)/(h-u))))},{title:s,limits:n,oob:i},c)}function Wu({low:t="#832424",mid:e="white",high:n="#3A3A98",midpoint:i=0,limits:r,oob:o=le,na_value:s="#7f7f7f",null_value:c=null,title:f,...a}={}){return Object.assign(function(h){let m=this?.limits?.min??this?.limits?.[0]??h.extent?.[0],d=this?.limits?.max??this?.limits?.[1]??h.extent?.[1],g=i??(m+d)/2,p=ti(t,e),$=ti(e,n);return h.map(C=>(C=this.oob(C,{min:m,max:d}),C===null?c:isNaN(C)?s:C<g?p((C-m)/(g-m)):$((C-g)/(d-g))))},{title:f,limits:r,oob:o},a)}function Gu({colors:t=[],values:e,anchors:n,limits:i,oob:r=le,na_value:o="#7f7f7f",null_value:s=null,title:c,...f}={}){return Object.assign(function(u){let h=this?.limits?.min??this?.limits?.[0]??u.extent?.[0],m=this?.limits?.max??this?.limits?.[1]??u.extent?.[1],d=e??n?.map?.(p=>h+(m-h)*p);d??=Array(t.length).fill(0).map((p,$)=>h+(m-h)*$/(t.length-1)),t=t.filter((p,$)=>!isNaN(d[$])),d=d.filter(p=>!isNaN(p));let g=hl(d,t);return u.map(p=>(p=this.oob(p,{min:h,max:m}),p===null?s:isNaN(p)?o:g(p)))},{title:c,limits:i,oob:r},f)}function Nl({limits:t,oob:e=le,title:n,...i}={}){let r=vn(),o=Nn();return Object.assign(function(c){return c.level!=null?r.call(this,c):o.call(this,c)},{title:n,limits:t,oob:e},i)}function Uu({discrete:t,continuous:e,limits:n,oob:i=le,title:r,...o}={}){return t??=vn(),e??=Nn(),Object.assign(function(c){return c.level!=null?t.call(this,c):e.call(this,c)},{title:r,limits:n,oob:i},o)}function Al({title:t,...e}={}){let n=["circle","square","triangle","diamond","plus"];return Object.assign(function(r){return r.map(o=>n[+o])},{title:t},e)}function $l({title:t,...e}={}){let n=["solid","22","42","44","13","1343","73","2262","12223242","F282","F4448444","224282F2","F1"];return Object.assign(function(r){return r.map(o=>n[+o])},{title:t},e)}const di={identity:({title:t,...e}={})=>mi({legend:!1,title:t,...e}),discrete:vn,hue:vn,manual:qu,continuous:Nn,gradient:Nn,gradient2:Wu,gradientn:Gu,dynamic:Uu,auto:Nl,custom:Be,default:Nl},Ml={color:di,stroke:di,fill:di,alpha:{continuous:Te,custom:Be,default:({title:t,...e}={})=>Te({range:[.1,1],title:t,...e})},size:{identity:({title:t,...e}={})=>vl({legend:!1,title:t,...e}),continuous:Te,custom:Be,default:({title:t,...e}={})=>Te({range:[1,6],title:t,...e})},linewidth:{identity:({title:t,...e}={})=>vl({legend:!1,title:t,...e}),continuous:Te,manual:kl,custom:Be,default:({title:t,...e}={})=>Te({range:[1,6],title:t,...e})},linetype:{identity:({title:t,...e}={})=>mi({legend:!1,title:t,...e}),discrete:$l,default:$l,custom:Be},shape:{identity:({title:t,...e}={})=>mi({legend:!1,title:t,...e}),discrete:Al,default:Al,custom:Be}};function Ku({step:t,minor:e=!1}={}){return function({min:n,max:i,minor:r=e}={}){let o=i-n,s=t;if(isNaN(o)||o<0)return[];if(o==0)return[n];let c=10**Math.floor(Math.log10(o)-1),f=o/c;s==null&&(s=([5,10,20].find(h=>h*5>f)??20)*c),r&&(s/=2);let a=Math.ceil(n/s),u=Math.floor(i/s);return new Array(u-a+1).fill(null).map((h,m)=>(a+m)*s)}}function Qu(){return function({min:t,max:e}={}){let n=e-t;if(isNaN(n)||n<0)return[];if(n==0)return[new Date(t)];let i=new Date(t),r=new Date(e),o=i.getUTCFullYear(),s=i.getUTCMonth(),c=i.getUTCDate(),f=i.getUTCHours(),a=i.getUTCMinutes(),u=i.getUTCSeconds(),h=[];if(n>94608e6){let m=n/31536e6,d=10**Math.floor(Math.log10(m)-1),g=m/d,p=Math.max((g>50?10:g>25?5:2)*d,1);i=new Date(Date.UTC(Math.ceil(o/p)*p));do h.push(new Date(i));while(i.setUTCFullYear(i.getUTCFullYear()+p)<r)}else if(n>7776e6){let m=n/2592e6,d=[2,3,6].findLast(g=>g*3<=m)||1;i=new Date(Date.UTC(o,Math.ceil(s/d)*d));do h.push(new Date(i));while(i.setUTCMonth(i.getUTCMonth()+d)<r)}else if(n>18144e5){i=new Date(Date.UTC(o,s,c+(7-i.getUTCDay())%7));do h.push(new Date(i));while(i.setUTCDate(i.getUTCDate()+7)<r)}else if(n>2592e5){let m=n/864e5,d=[2,3].findLast(g=>g*3<=m)||1;i=new Date(Date.UTC(o,s,Math.ceil(c)));do h.push(new Date(i));while(i.setUTCDate(i.getUTCDate()+d)<r)}else if(n>108e5){let m=n/36e5,d=[2,3,6].findLast(g=>g*3<=m)||1;i=new Date(Date.UTC(o,s,c,Math.ceil(f/d)*d));do h.push(new Date(i));while(i.setUTCHours(i.getUTCHours()+d)<r)}else if(n>18e4){let m=n/6e4,d=[2,5,10,30].findLast(g=>g*3<=m)||1;i=new Date(Date.UTC(o,s,c,f,Math.ceil(a/d)*d));do h.push(new Date(i));while(i.setUTCMinutes(i.getUTCMinutes()+d)<r)}else if(n>3e3){let m=n/1e3,d=[2,5,10,30].findLast(g=>g*3<=m)||1;i=new Date(Date.UTC(o,s,c,f,a,Math.ceil(u/d)*d));do h.push(new Date(i));while(i.setUTCSeconds(i.getUTCSeconds()+d)<r)}else{let m=10**Math.floor(Math.log10(n)-1),d=n/m,g=(d>50?20:d>25?10:5)*m,p=Math.ceil(t/g),$=Math.floor(e/g);return new Array($-p+1).fill(null).map((C,O)=>new Date((p+O)*g))}return h}}const An={number:Ku,datetime:Qu};let Zu={y:t=>t.getUTCFullYear(),M:t=>t.getUTCMonth()+1,d:t=>t.getUTCDate(),h:t=>t.getUTCHours(),m:t=>t.getUTCMinutes(),s:t=>t.getUTCSeconds()};function yi(t,e="yyyy-MM-dd hh:mm:ss"){return e.replace(/(y|M|d|h|m|s)\1*/g,(n,i)=>{let r=String(Zu[i](t)),o=n.length;return i=="y"?r.slice(-o):r.padStart(o,"0")})}const Sl={default:{"":1,k:1e3,M:1e6,G:1e9,T:1e12,P:1e15,E:1e18,Z:1e21,Y:1e24},si:{y:1e-24,z:1e-21,a:1e-18,f:1e-15,p:1e-12,n:1e-9,\u03BC:1e-6,m:.001,"":1,k:1e3,M:1e6,G:1e9,T:1e12,P:1e15,E:1e18,Z:1e21,Y:1e24},binary:{"":1,Ki:1024,Mi:1024**2,Gi:1024**3,Ti:1024**4,Pi:1024**5,Ei:1024**6,Zi:1024**7,Yi:1024**8},time:{ns:1e-9,\u03BCs:1e-6,ms:.001,s:1,m:60,h:3600,d:86400,w:604800,M:2592e3,y:31536e3}};function Ju(){return function(t){return t==null?"":t instanceof Date?yi(t):String(t)}}function Bl({accuracy:t,scale:e=1,prefix:n="",suffix:i="",big_mark:r=" ",style_positive:o="none",style_negative:s="hyphen",scale_cut:c={"":1}}={}){let f={plus:"+",space:" "}[o]??"",a={hyphen:"-",minus:"\u2212",parens:"("}[s]??"";return function(u,h,m=[u]){let d;if(t)d=t;else if(m.length>1){let B=m.filter(L=>isFinite(L)).sort((L,V)=>L-V);d=B.slice(1).map((L,V)=>L-B[V]).reduce((L,V)=>L<V?L:V)*e}else d=u||1;let g=Object.entries(c).sort((B,j)=>j[1]-B[1]).find(B=>B[1]<=d)?.[0]??"",p=(g==""?"":" ")+g+i;d=d/(c[g]??1);let $=Math.max(0,Math.ceil(-Math.log10(d))),C=Math.round(u*e/(c[g]??1)/d)*d,O=n+(C>0?f:C<0?a:"");return C<0&&s=="parens"&&(p=")"+p),C=Math.abs(C).toFixed($).replace(new RegExp("(?<!\\..*)(\\d)(?=(?:\\d{3})+(?:\\.|$))","g"),"$1"+r),O+C+p}}function gi({format:t}={}){let e={y:31536e3,M:2678400,d:86400,h:3600,m:60,s:1},n={y:0,M:5,d:8,h:11,m:14,s:17},i={y:4,M:7,d:10,h:13,m:16,s:19};return function(r,o,s=[r]){if(s.length<=1)return yi(new Date(r),t);if(t==null){let c=Array.from(s).sort((m,d)=>m-d),f=c.slice(1).map((m,d)=>m-c[d]).reduce((m,d)=>m<d?m:d)/1e3,a=(c[c.length-1]-c[0])/1e3,u=["y","M","d","m","s"].find(m=>e[m]<=f),h=a>2678400?"y":a>86400?"M":"h";t="yyyy-MM-dd hh:mm:ss".slice(n[h],i[u])}return yi(new Date(r),t)}}function Tl(t){let e=Bl(t),n=gi(t);return function(i,r,o=[i]){return i instanceof nr?String(i):i instanceof Date?n(i,r,o):e(i,r,o)}}const xi={number:Bl,datetime:gi,timestamp:gi,asis:Ju,auto:Tl,default:function(t){return Tl({scale_cut:Sl.default,...t})}};function _u(t,e){return t==null?{}:Object.fromEntries(Object.entries(t).map(([n,i])=>[n,e(n,i)]))}class tf{constructor(e,n){let{data:i=[],aes:r,extendX:o,extendY:s}=n,{geom:c,stat:f,data:a,aes:u,levels:h={},scales:m={},attrs:d,args:g,vBind:p,extendX:$,extendY:C}=e;if(!oe[c]){console.error(`Invalid geom "${c}"`,"in layer",e,", plot",n);return}let O=typeof f=="function"?f:Po[f];if(O==null){console.error(`Invalid stat "${f}"`,"in layer",e,", plot",n);return}this.geom=c,this.vBind=Object.assign(p,{extendX:$??o??0,extendY:C??s??0}),this.scales={},typeof a=="function"&&(a=a(i)),a==null&&(a=i),u={...r,...u};let B={},j={};for(const v in u)j[v]=String(u[v]),B[v]=a.map(u[v]);B.$raw=a;let L=O?.core_attrs??["x","y","xnudge","ynudge"],V=a.length;V==0&&(V=L.map(v=>d[v]).filter(v=>v!=null).reduce((v,y)=>Math.max(Array.isArray(y)?y.length:1,v),0));for(const v in d)if(L.includes(v))if(Array.isArray(d[v])){if(d[v].length!=V)throw new Error(`Attribute "${v}" must have the same length as data (${V})`);B[v]=d[v]}else{if(d[v]==null)continue;B[v]=new Array(V).fill(d[v])}try{if(B=O(B,g||{}),B.$group??=B.group,B.$group==null){let v=Object.values(B).filter(y=>Array.isArray(y)).reduce((y,b)=>Math.max(y,b.length),0);B.$group=new Array(v).fill(null)}}catch(v){console.error("Error",v,"in layer",e,", plot",n);return}this.localScales=new Set([...Object.keys(h).filter(v=>h[v]!=null),...Object.keys(m).filter(v=>m[v]!=null)]),this.aes=new Set([...this.localScales,...oe[c]?.scale_attrs??[]]),this.$data=B,this.$fns=j,this.data={...B};for(const v in B)if(m[v]!=null){let y=new $n(m[v]);y.aesthetics=v,y.title===void 0&&(y.title=j[v]);let b=this.$data[v];if(!b?.length)continue;y.asis||(h?.[v]!=null?y.level=h[v]:b.some(k=>typeof k=="string")?y.level=xe.from(b):y.extent=$t.extent(b)),this.applyScale(v,y)}this.attrs={};for(const v in d)if(!L.includes(v))if(Array.isArray(d[v])){if(d[v].length!=V)throw new Error(`Attribute "${v}" must have the same length as data (${V})`);this.data[v]=d[v]}else this.attrs[v]=d[v],d[v]!=null&&(this.data[v]=new Array(V).fill(d[v]))}applyScale(e,n){let i=this.$data[e];i!=null&&(n.level&&(i=n.level.apply(i)),n.limits&&(i.extent=n.limits),n.aes=e,this.data[e]=n(i),this.scales[e]=n)}applyCoordScale(e){try{Object.assign(this.data,oe[this.geom]?.coord_scale?.(this.$data,e))}catch(n){console.error(n)}}}class ef{constructor(e,n){this.levels={},this.extents={},this.layers=[],this.coordScales={};for(let i in n)this.layers.push(new tf(n[i],e));this.layers=this.layers.filter(i=>i.$data!=null),this.aes=new Set(this.layers.flatMap(i=>Array.from(i.aes))),this.scales=new Map}useScales(e,n){this.scales=new Map;for(const i of this.aes){let r=this.layers.filter(o=>!o.localScales.has(i)).flatMap(o=>o.$data[i]??[]);if(r.length!=0){let o=new $n(e?.[i]??Ml[i].default());o.aesthetics=i,o.asis||(n?.[i]!=null?o.level=n[i]:r.some(s=>typeof s=="string")?o.level=xe.from(r):o.extent=$t.extent(r)),o.title==null&&(o.title=this.layers.map(s=>s.$fns?.[i]).find(s=>s!=null));for(const s of this.layers)s.localScales.has(i)||s.applyScale(i,o)}for(const o of this.layers){let s=o.scales?.[i];if(s!=null&&!s.asis){this.scales.has(s)||this.scales.set(s,{});let c=this.scales.get(s);c[o.geom]==null&&(c[o.geom]={});for(let f of oe[o.geom]?.scale_attrs)o.attrs[f]!=null&&(c[o.geom][f]=o.attrs[f])}}}return this}useCoordLevels(e={}){for(const n of["x","y"])if(e[n])this.levels[n]=new xe(...e[n]);else{let i=this.layers.flatMap(r=>(oe[r.geom].get_values??oe[r.geom].get_range)?.(r.$data,n));i.some(r=>typeof r=="string")?this.levels[n]=xe.from(i):(i=this.layers.flatMap(r=>oe[r.geom].get_range?.(r.$data,n)).filter(r=>!isNaN(r)),this.extents[n]=$t.extent(i))}for(const n of this.layers)n.applyCoordScale(this.levels);return this}getComputedLayers(){return this.layers.map(e=>({data:Object.values(Object.groupBy(e.data.$group.map((i,r)=>oe[e.geom].validate(_u(e.data,(o,s)=>s?.[r]))).filter(i=>i!=null),i=>i.$group)),geom:e.geom,vBind:e.vBind}))}getCoordScales(e,n,i){let r={};if(this._range=e,this.levels.x){let o=+(e?.xmin??-.5)-(+n.x?.min||0),s=+(e?.xmax??this.levels.x.length-.5)+(+n.x?.max||0);r.x=new Mn(this.levels.x,{min:o,max:s})}else{let o=e?.xmin??this.extents.x?.min??0,s=e?.xmax??this.extents.x?.max??0,c=lt(o,-n.x?.min||0),f=lt(s,+n.x?.max||0),a=i?.x??1;if(f-c<a)if(e?.xmax==null&&e?.xmin!=null)f=lt(c,+a);else if(e?.xmax!=null&&e?.xmin==null)c=lt(f,-a);else{let u=f-c;f=lt(f,-u/2+a/2),c=lt(f,-a)}c instanceof Date||f instanceof Date?r.x=new Sn({min:c,max:f}):r.x=new He({min:c,max:f})}if(this.levels.y){let o=+(e?.ymin??-.5)-(+n.y?.min||0),s=+(e?.ymax??this.levels.y.length-.5)+(+n.y?.max||0);r.y=new Mn(this.levels.y,{min:o,max:s})}else{let o=e?.ymin??this.extents.y?.min??0,s=e?.ymax??this.extents.y?.max??0,c=lt(o,-n.y?.min),f=lt(s,+n.y?.max||0),a=i?.y??1;if(f-c<a)if(e?.ymax==null&&e?.ymin!=null)f=lt(c,+a);else if(e?.ymax!=null&&e?.ymin==null)c=lt(f,-a);else{let u=f-c;f=lt(f,-u/2+a/2),c=lt(f,-a)}c instanceof Date||f instanceof Date?r.y=new Sn({min:c,max:f}):r.y=new He({min:c,max:f})}return r}render(e,n,i){let r=this.getCoordScales(e,n,i);return{layers:this.getComputedLayers(),coordScales:r,scales:this.scales}}}class $n extends Function{constructor(e){let n=e._fn??e;function i(){return n.apply(i,arguments)}return Object.setPrototypeOf(i,$n.prototype),Object.assign(i,e),i._fn=n,i}set extent({min:e,max:n,0:i,1:r}={}){e??=i,n??=r,this._limits={0:e,1:n,length:2,min:e,max:n}}get extent(){return this.limits}set limits({min:e,max:n,0:i,1:r}={}){e??=i,n??=r,this.$limits={0:e,1:n,length:2,min:e,max:n}}get limits(){let e=this.$limits?.min??(this.level?0:this._limits?.min),n=this.$limits?.max??this.level?.length??this._limits?.max;return{0:e,1:n,length:2,min:e,max:n}}}class Mn extends Function{constructor(e,{min:n,max:i}={}){const r=n==i?o=>0:o=>(+o-n)/(i-n);return r.range={min:n,max:i},r.level=e,Object.setPrototypeOf(r,Mn.prototype),r}invert(e){let{min:n,max:i}=this.range;return e*(i-n)+n}get breaks(){return Array.from(this.level)}get minorBreaks(){return[]}}class He extends Function{constructor(e){let{min:n,max:i}=e;const r=n==i?o=>isFinite(o)?.5:o:o=>(+o-n)/(i-n);return r.range={min:n,max:i},Object.setPrototypeOf(r,He.prototype),r}invert(e){let{min:n,max:i}=this.range;return lt(n,e*(i-n))}get breaks(){return An.number()}}class Sn extends He{constructor(e){let n=super(e);return Object.setPrototypeOf(n,Sn.prototype),n}get breaks(){return An.datetime()}get minorBreaks(){return[]}}class nf{constructor(e,{breaks:n,labels:i,minorBreaks:r,titles:o}={}){this.scale=e,this.range=e?.range,this.breaks=n??e.breaks,this.labels=i??xi.auto(),this.titles=o??xi.asis(),this.minorBreaks=r??n??e.minorBreaks??e.breaks}getBindings({range:e,expandMult:n}={}){let i=this.breaks,r=this.minorBreaks,o=this.labels,s=this.titles,c=e?.min??this?.range?.min,f=e?.max??this?.range?.max,a=f-c||0;c=c==null?c:lt(c,-(n?.min??0)*a),f=f==null?f:lt(f,+(n?.max??0)*a);function u(m){return m.position!=null?m:{position:m}}typeof i=="function"&&(i=i({min:c,max:f})),i=Array.isArray(i)?i.map(u):[];let h=i.map(m=>m.position);if(typeof r=="function"&&(r=r({min:c,max:f,minor:!0})),r=Array.isArray(r)?r.map(u):[],typeof o=="function"&&(o=h.map(o)),!Array.isArray(o))o=[];else if(o.length!=h.length)throw new Error("Length of labels must be the same as breaks");if(typeof s=="function"&&(s=h.map(s)),!Array.isArray(s))s=[];else if(s.length!=h.length)throw new Error("Length of titles must be the same as breaks");return{majorBreaks:i,minorBreaks:r,ticks:h.map((m,d)=>({position:m,label:o[d],title:s[d]}))}}}const rf=["font-size"],lf={key:0},Ee={__name:"CoreText",props:{x:{type:Number,default:0},y:{type:Number,default:0},text:null,title:null,size:Number,color:String,stroke:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},angle:{type:Number,default:0},translateX:{type:Number,default:0},translateY:{type:Number,default:0},anchorX:Number,anchorY:Number,dockX:Number,dockY:Number,fontSize:Number,textLength:Number},setup(t){const e=l.useTemplateRef("ele"),n=l.reactive({width:0,height:0});l.watch([e,()=>t.fontSize,()=>t.size,()=>t.text,()=>t.textLength],async([o])=>{if(!o)return;await l.nextTick();let{width:s,height:c}=o.getBBox();n.width=s,n.height=c});const i=l.computed(()=>{let o;if(t.dockX!=null||t.dockY!=null){let s={left:0,center:.5,right:1}[t.dockX]??+(t.dockX??.5),c={bottom:0,center:.5,top:1}[t.dockY]??+(t.dockY??.5);isNaN(s)&&(s=.5),isNaN(c)&&(c=.5);let f=n.width*Math.abs(Math.cos(t.angle*Math.PI/180))+n.height*Math.abs(Math.sin(t.angle*Math.PI/180)),a=n.width*Math.abs(Math.sin(t.angle*Math.PI/180))+n.height*Math.abs(Math.cos(t.angle*Math.PI/180)),u=t.translateX,h=t.translateY;o=`translate(${f*(.5-s)+u},${a*(c-.5)+h})`,t.angle&&(o+=` rotate(${t.angle})`)}else{let s={left:0,center:.5,right:1}[t.anchorX]??+(t.anchorX??.5),c={bottom:0,center:.5,top:1}[t.anchorY]??+(t.anchorY??.5);isNaN(s)&&(s=.5),isNaN(c)&&(c=.5);let f=n.width,a=n.height,u=t.translateX*Math.cos(t.angle*Math.PI/180)+t.translateY*Math.sin(t.angle*Math.PI/180),h=t.translateY*Math.cos(t.angle*Math.PI/180)-t.translateX*Math.sin(t.angle*Math.PI/180);o=`translate(${f*(.5-s)+u},${a*(c-.5)+h})`,t.angle&&(o=`rotate(${t.angle}) `+o)}return{x:t.x,y:t.y,fill:t.color||null,"fill-opacity":t.alpha==1?null:t.alpha,stroke:t.stroke||null,"stroke-width":t.linewidth,"stroke-dasharray":r(t.linetype),"stroke-opacity":t.alpha==1?null:t.alpha,transform:o,textLength:t.textLength,lengthAdjust:t.textLength?"spacingAndGlyphs":null,"transform-origin":`${t.x} ${t.y}`}});function r(o){return o==null?null:Array.isArray(o)?o.join(" "):o==="solid"?null:o==="dashed"?"4 4":o==="dotted"?"1 3":o==="dotdash"?"1 3 4 3":o==="longdash"?"8 4":o==="twodash"?"2 2 6 2":o.includes(" ")?o:o.split("").map(s=>+("0x"+s)).join(" ")}return(o,s)=>(l.openBlock(),l.createElementBlock("text",l.mergeProps({ref_key:"ele",ref:e,"text-anchor":"middle","dominant-baseline":"central"},i.value,{"font-size":(t.fontSize??t.size*4)||null}),[l.renderSlot(o.$slots,"default",{},()=>[t.title?(l.openBlock(),l.createElementBlock("title",lf,l.toDisplayString(t.title),1)):l.createCommentVNode("",!0),l.createTextVNode(" "+l.toDisplayString(t.text.replace(/ /g,"\xA0")),1)])],16,rf))}},of=["transform"],af=["x2"],sf={class:"vvplot-interactive",fill:"transparent"},cf=["width","cursor"],uf={key:0,class:"vvplot-interactive",fill:"transparent"},ff=["x"],hf={__name:"CoreAxisH",props:{coord:String,ticks:{type:Array,default:()=>[]},title:String,coord2pos:Function,pos2coord:Function,layout:Object,theme:{type:Object,default:()=>({})},action:{type:Array,default:()=>[]},position:null,activeTransform:Object,transition:String},emits:["click","dblclick","contextmenu","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","wheel","singleclick","move","zoom","rescale","nudge","rangechange","update:transition"],setup(t,{emit:e}){const n=l.computed(()=>t.layout.width+t.layout.l+t.layout.r),i=l.computed(()=>t.layout.height+t.layout.t+t.layout.b),r=l.inject("rangePreview"),o=l.computed(()=>{let y=0,b={bottom:"0%",center:"50%",top:"100%"}[t.position]??t.position;return typeof b=="string"&&b.endsWith("%")?y=i.value*(1-b.slice(0,-1)/100):y=t.activeTransform.translateV+t.coord2pos({v:+b}).v*t.activeTransform.scaleV+t.layout.top,`translate(0, ${y})`}),s=l.computed(()=>{let y=t.theme.title_position??t.theme.tick_position,b=y,k=t.theme.title_dock_x,S=t.theme.title_dock_y,N=0;return typeof y!="number"&&(b={left:0,bottom:.5,top:.5,right:1}[y]??.5,k??={left:1,right:0}[y]??.5,S??={top:0,bottom:1}[y]??.5,N=({top:-1,bottom:1}[y]??0)*(t.theme.title_offset??0)),{x:n.value*b,y:N,angle:t.theme.title_angle,dockX:k,dockY:S,fontSize:t.theme.title_size,text:t.title,fill:t.theme.title_color,...t.theme.title_style}}),c=l.computed(()=>({stroke:t.theme.line_color,"stroke-width":t.theme.line_width,"stroke-dasharray":t.theme.line_dasharray,style:t.theme.line_style})),f=l.computed(()=>{let y=[];for(let b of t.ticks){typeof b=="number"&&(b={position:b});let k=t.coord2pos({h:b.position}).h,S=k*(t.activeTransform.scaleH-1)+t.activeTransform.translateH,N=k+t.layout.l;if(N+S<0||N+S>n.value)continue;let D=(t.theme.tick_position=="top"?-1:1)*(b.length??t.theme.tick_length);y.push({key:"line-"+b.position,y1:0,y2:D,x1:N,x2:N,stroke:b.color??t.theme.tick_color,"stroke-width":b.width??t.theme.tick_width,transform:S?`translate(${S},0)`:null,style:{transition:t.transition}})}return y.filter(b=>b.stroke!=null).sort((b,k)=>b.x1-k.x1)}),a=l.computed(()=>{let y=t.theme.tick_position=="top",b=[];for(let k of t.ticks){typeof k=="number"&&(k={position:k,label:k});let S=t.coord2pos({h:k.position}).h,N=S*(t.activeTransform.scaleH-1)+t.activeTransform.translateH,D=S+t.layout.l;if(D+N<0||D+N>n.value)continue;let I=(y?-1:1)*((k.length??t.theme.tick_length)+3),Y,F,X,R;t.theme.tick_anchor_x!=null||t.theme.tick_anchor_y!=null?(Y=t.theme.tick_anchor_x??.5,F=t.theme.tick_anchor_y??(y?0:1)):(X=t.theme.tick_dock_x??.5,R=t.theme.tick_dock_y??(y?0:1)),b.push({wrapper:{key:"text-"+k.position,transform:N?`translate(${N},0)`:null,style:{transition:t.transition}},text:{x:D,y:I,angle:t.theme.text_angle,anchorX:Y,anchorY:F,dockX:X,dockY:R,text:k.label,title:k.title??k.label,fontSize:k.size??t.theme.label_size,fill:k.color??t.theme.label_color}})}return b.filter(k=>k.text.fill!=null).sort((k,S)=>k.text.x-S.text.x)}),u=l.useTemplateRef("i");function h(y){let b=u.value.getBoundingClientRect(),k=Math.trunc(y.clientX)-b.left-t.layout.left,S=b.left+t.layout.left+t.layout.width-Math.trunc(y.clientX),N={l:k,r:S},{x:D,y:I}=t.pos2coord({h:k});return D&&(N.x=D),I&&(N.y=I),N}const m=e;let d,g=0;function p(y){let b=h(y);m("pointerdown",y,b);let k=!1;function S(F){(Math.abs(F.screenX-y.screenX)>3||Math.abs(F.screenY-y.screenY)>3)&&(k=!0,F.currentTarget.removeEventListener("pointermove",S))}y.target.addEventListener("pointermove",S,{passive:!0}),y.target.addEventListener("pointerup",function(F){if(y.target.removeEventListener("pointermove",S),!k){let X=h(F);m("singleclick",new PointerEvent("singleclick",F),X)}},{once:!0});let N=t.action.find(F=>F.action=="move");if(!N)return;y.preventDefault(),y.stopPropagation(),y.target.style.cursor="grabbing",d=clearTimeout(d);let D=0,I=t.layout.width,Y=t.coord2pos(N);y.target.setPointerCapture(y.pointerId),y.target.onpointermove=F=>{if(g+=F.movementX,!k)return;let X=st(-g,{min:Y.hmin-D,max:Y.hmax-I}),{xmin:R,xmax:U,ymin:G,ymax:it}=t.pos2coord({hmin:D+X,hmax:I+X});Object.assign(r,{xmin:R,xmax:U,ymin:G,ymax:it})},y.target.onpointerup=F=>{y.target.onpointermove=null,y.target.onpointerup=null,y.target.style.cursor=null,k&&(d=setTimeout(()=>{V(N,F),g=0},300))}}function $(y){let b=t.action.find(R=>R.action=="rescale");if(!b)return;y.preventDefault(),y.stopPropagation();let{"min-range-h":k=0}=b,S=h(y),N=t.coord2pos(S).h,D=N-S.l,I=N+S.r,Y=t.pos2coord({hmin:D,hmax:I}),F={min:t.coord2pos(b).hmin,max:t.coord2pos({hmin:Y.hmax-k,hmax:Y.hmin+k}).hmin},X=0;y.target.setPointerCapture(y.pointerId),y.target.onpointermove=R=>{X+=R.movementX;let{xmin:U,xmax:G,ymin:it,ymax:_}=t.pos2coord({hmin:st(I-(I-D)*S.r/Math.max(S.r-X,1),F),hmax:I});Object.assign(r,{xmin:U,xmax:G,ymin:it,ymax:_})},y.target.onpointerup=R=>{y.target.onpointermove=null,y.target.onpointerup=null,V(b,R)}}function C(y){let b=t.action.find(R=>R.action=="rescale");if(!b)return;y.preventDefault(),y.stopPropagation();let{"min-range-h":k=0}=b,S=h(y),N=t.coord2pos(S).h,D=N-S.l,I=N+S.r,Y=t.pos2coord({hmin:D,hmax:I}),F={min:t.coord2pos({hmin:Y.hmax-k,hmax:Y.hmin+k}).hmax,max:t.coord2pos(b).hmax},X=0;y.target.setPointerCapture(y.pointerId),y.target.onpointermove=R=>{X+=R.movementX;let{xmin:U,xmax:G,ymin:it,ymax:_}=t.pos2coord({hmin:D,hmax:st(D+(I-D)*S.l/Math.max(S.l+X,1),F)});Object.assign(r,{xmin:U,xmax:G,ymin:it,ymax:_})},y.target.onpointerup=R=>{y.target.onpointermove=null,y.target.onpointerup=null,V(b,R)}}let O=0,B;function j(y){let b=h(y);m("wheel",y,b);let k=t.action.find(S=>["zoom","nudge"].includes(S.action)&&["ctrlKey","shiftKey","altKey","metaKey"].every(N=>S[N]==y[N]));k&&(B=clearTimeout(B),y.preventDefault(),y.stopPropagation(),m("update:transition","transform 0.1s ease-out"),O+=y.deltaY,L(k,b,O),B=setTimeout(()=>{V(k,y),O=0},300))}function L(y,b,k){if(y.action=="zoom"){let{"min-range-h":S=0,sensitivity:N=1.25}=y,D=N**(k/100),I=t.coord2pos(y),Y=Math.max(b.l-Math.max(b.l,0)*D,I.hmin??-1/0),F=Math.min(b.l+Math.max(b.r,0)*D,I.hmax??1/0),{[t.coord+"min"]:X,[t.coord+"max"]:R}=t.pos2coord({hmin:Y,hmax:F});if(D<1&&R-X<S){let U=(R+X)/2;X=U-S/2,R=U+S/2}r[t.coord+"min"]=X,r[t.coord+"max"]=R}if(y.action=="nudge"){let{sensitivity:S=.1}=y,N=t.coord2pos(y),D=0,I=t.layout.width,Y=S*t.layout.width*(-k/120),F=st(-Y,{min:N.hmin-D,max:N.hmax-I}),{xmin:X,xmax:R,ymin:U,ymax:G}=t.pos2coord({hmin:D+F,hmax:I+F});Object.assign(r,{xmin:X,xmax:R,ymin:U,ymax:G})}}function V(y,b){let k=Mt(r)??{};if(!Object.keys(k).length)return;let S=new PointerEvent(b.type,b);ce(y.emit,k,S)||m(y.action,k,S),m("rangechange",k),Object.assign(r,{xmin:void 0,xmax:void 0,ymin:void 0,ymax:void 0})}const v={pointerup(y){m("pointerup",y,h(y))},pointerover(y){m("pointerover",y,h(y))},pointerout(y){m("pointerout",y,h(y))},pointerenter(y){m("pointerenter",y,h(y))},pointerleave(y){m("pointerleave",y,h(y))},dblclick(y){m("dblclick",y,h(y))},click(y){m("click",y,h(y))},contextmenu(y){m("contextmenu",y,h(y))},pointermove(y){m("pointermove",y,h(y))},pointerdown:p,wheel:j};return(y,b)=>(l.openBlock(),l.createElementBlock("g",{transform:o.value,style:l.normalizeStyle({transition:t.transition})},[l.createElementVNode("line",l.mergeProps({ref:"i",x1:0,x2:n.value,y1:0,y2:0},c.value),null,16,af),b[1]||(b[1]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(f.value,k=>(l.openBlock(),l.createElementBlock("line",l.mergeProps({ref_for:!0},k),null,16))),256)),b[2]||(b[2]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,k=>(l.openBlock(),l.createElementBlock("g",l.mergeProps({ref_for:!0},k.wrapper),[l.createVNode(Ee,l.mergeProps({ref_for:!0},k.text),null,16)],16))),256)),b[3]||(b[3]=l.createTextVNode()),l.createElementVNode("g",sf,[l.createElementVNode("rect",l.mergeProps({width:n.value,height:10,y:-5},l.toHandlers(v,!0),{cursor:t.action.some?.(k=>k.action=="move")?"grab":null}),null,16,cf)]),b[4]||(b[4]=l.createTextVNode()),t.action.some?.(k=>k.action=="rescale")?(l.openBlock(),l.createElementBlock("g",uf,[l.createElementVNode("rect",{width:20,height:10,y:-5,style:{cursor:"ew-resize"},onPointerdown:$},null,32),b[0]||(b[0]=l.createTextVNode()),l.createElementVNode("rect",{width:20,height:10,y:-5,x:n.value-20,style:{cursor:"ew-resize"},onPointerdown:C},null,40,ff)])):l.createCommentVNode("",!0),b[5]||(b[5]=l.createTextVNode()),s.value.text?(l.openBlock(),l.createBlock(Ee,l.normalizeProps(l.mergeProps({key:1},s.value)),null,16)):l.createCommentVNode("",!0)],12,of))}},mf=["transform"],df=["y2"],yf={class:"vvplot-interactive",fill:"transparent"},gf=["height","cursor"],xf={key:0,class:"vvplot-interactive",fill:"transparent"},pf=["y"],wf={__name:"CoreAxisV",props:{coord:String,ticks:{type:Array,default:()=>[]},title:String,coord2pos:Function,pos2coord:Function,layout:Object,theme:{type:Object,default:()=>({})},action:{type:Array,default:()=>[]},position:null,activeTransform:Object,transition:String},emits:["click","dblclick","contextmenu","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","wheel","singleclick","move","zoom","rescale","nudge","rangechange","update:transition"],setup(t,{emit:e}){const n=l.computed(()=>t.layout.width+t.layout.l+t.layout.r),i=l.computed(()=>t.layout.height+t.layout.t+t.layout.b),r=l.inject("rangePreview"),o=l.computed(()=>{let y=0,b={left:"0%",center:"50%",right:"100%"}[t.position]??t.position;return typeof b=="string"&&b.endsWith("%")?y=n.value*b.slice(0,-1)/100:y=t.activeTransform.translateH+t.coord2pos({h:+b}).h*t.activeTransform.scaleH+t.layout.left,`translate(${y}, 0)`}),s=l.computed(()=>{let y=t.theme.title_position??t.theme.tick_position,b=y,k=t.theme.title_dock_x,S=t.theme.title_dock_y,N=0;return typeof y!="number"&&(b={bottom:0,left:.5,right:.5,top:1}[y]??.5,k??={left:1,right:0}[y]??.5,S??={top:0,bottom:1}[y]??.5,N=({left:-1,right:1}[y]??0)*(t.theme.title_offset??0)),{x:N,y:i.value*(1-b),angle:t.theme.title_angle,dockX:k,dockY:S,fontSize:t.theme.title_size,text:t.title,fill:t.theme.title_color,...t.theme.title_style}}),c=l.computed(()=>({stroke:t.theme.line_color,"stroke-width":t.theme.line_width,"stroke-dasharray":t.theme.line_dasharray,style:t.theme.line_style})),f=l.computed(()=>{let y=[];for(let b of t.ticks){typeof b=="number"&&(b={position:b});let k=t.coord2pos({v:b.position}).v,S=k*(t.activeTransform.scaleV-1)+t.activeTransform.translateV,N=k+t.layout.t;if(N+S<0||N+S>i.value)continue;let D=(t.theme.tick_position=="right"?1:-1)*(b.length??t.theme.tick_length);y.push({key:"line-"+b.position,y1:N,y2:N,x1:0,x2:D,stroke:b.color??t.theme.tick_color,"stroke-width":b.width??t.theme.tick_width,transform:S?`translate(0,${S})`:null,style:{transition:t.transition}})}return y.filter(b=>b.stroke!=null).sort((b,k)=>b.y1-k.y1)}),a=l.computed(()=>{let y=t.theme.tick_position=="right",b=[];for(let k of t.ticks){typeof k=="number"&&(k={position:k});let S=t.coord2pos({v:k.position}).v,N=S*(t.activeTransform.scaleV-1)+t.activeTransform.translateV,D=S+t.layout.t;if(D+N<0||D+N>i.value)continue;let I=(y?1:-1)*((k.length??t.theme.tick_length)+3),Y,F,X,R;t.theme.tick_anchor_x!=null||t.theme.tick_anchor_y!=null?(Y=t.theme.tick_anchor_x??(y?0:1),F=t.theme.tick_anchor_y??.5):(X=t.theme.tick_dock_x??(y?0:1),R=t.theme.tick_dock_y??.5),b.push({wrapper:{key:"text-"+k.position,transform:N?`translate(0,${N})`:null,style:{transition:t.transition}},text:{y:D,x:I,angle:t.theme.text_angle,anchorX:Y,anchorY:F,dockX:X,dockY:R,text:k.label,title:k.title??k.label,fontSize:k.size??t.theme.label_size,fill:k.color??t.theme.label_color}})}return b.filter(k=>k.text.fill!=null).sort((k,S)=>k.text.y-S.text.y)}),u=l.useTemplateRef("i");function h(y){let b=u.value.getBoundingClientRect(),k=Math.trunc(y.clientY)-b.top-t.layout.top,S=b.top+t.layout.top+t.layout.height-Math.trunc(y.clientY),N={t:k,b:S},{x:D,y:I}=t.pos2coord({v:k});return D&&(N.x=D),I&&(N.y=I),N}const m=e;let d,g=0;function p(y){let b=h(y);m("pointerdown",y,b);let k=!1;function S(F){(Math.abs(F.screenX-y.screenX)>3||Math.abs(F.screenY-y.screenY)>3)&&(k=!0,F.currentTarget.removeEventListener("pointermove",S))}y.target.addEventListener("pointermove",S,{passive:!0}),y.target.addEventListener("pointerup",function(F){if(y.target.removeEventListener("pointermove",S),!k){let X=h(F);m("singleclick",new PointerEvent("singleclick",F),X)}},{once:!0});let N=t.action.find(F=>F.action=="move");if(!N)return;y.preventDefault(),y.stopPropagation(),y.target.style.cursor="grabbing",d=clearTimeout(d);let D=0,I=t.layout.height,Y=t.coord2pos(N);y.target.setPointerCapture(y.pointerId),y.target.onpointermove=F=>{if(g+=F.movementY,!k)return;let X=st(-g,{min:Y.vmin-D,max:Y.vmax-I}),{xmin:R,xmax:U,ymin:G,ymax:it}=t.pos2coord({vmin:D+X,vmax:I+X});Object.assign(r,{xmin:R,xmax:U,ymin:G,ymax:it})},y.target.onpointerup=F=>{y.target.onpointermove=null,y.target.onpointerup=null,y.target.style.cursor=null,k&&(d=setTimeout(()=>{V(N,F),g=0},300))}}function $(y){let b=t.action.find(R=>R.action=="rescale");if(!b)return;y.preventDefault(),y.stopPropagation();let{"min-range-v":k=0}=b,S=h(y),N=t.coord2pos(S).v,D=N-S.t,I=N+S.b,Y=t.pos2coord({vmin:D,vmax:I}),F={min:t.coord2pos(b).vmin,max:t.coord2pos({vmin:Y.vmax-k,vmax:Y.vmin+k}).vmin},X=0;y.target.setPointerCapture(y.pointerId),y.target.onpointermove=R=>{X+=R.movementY;let{xmin:U,xmax:G,ymin:it,ymax:_}=t.pos2coord({vmin:st(I-(I-D)*S.b/Math.max(S.b-X,1),F),vmax:I});Object.assign(r,{xmin:U,xmax:G,ymin:it,ymax:_})},y.target.onpointerup=R=>{y.target.onpointermove=null,y.target.onpointerup=null,V(b,R)}}function C(y){let b=t.action.find(R=>R.action=="rescale");if(!b)return;y.preventDefault(),y.stopPropagation();let{"min-range-v":k=0}=b,S=h(y),N=t.coord2pos(S).v,D=N-S.t,I=N+S.b,Y=t.pos2coord({vmin:D,vmax:I}),F={min:t.coord2pos({vmin:Y.vmax-k,vmax:Y.vmin+k}).vmax,max:t.coord2pos(b).vmax},X=0;y.target.setPointerCapture(y.pointerId),y.target.onpointermove=R=>{X+=R.movementY;let{xmin:U,xmax:G,ymin:it,ymax:_}=t.pos2coord({vmin:D,vmax:st(D+(I-D)*S.t/Math.max(S.t+X,1),F)});Object.assign(r,{xmin:U,xmax:G,ymin:it,ymax:_})},y.target.onpointerup=R=>{y.target.onpointermove=null,y.target.onpointerup=null,V(b,R)}}let O=0,B;function j(y){let b=h(y);m("wheel",y,b);let k=t.action.find(S=>["zoom","nudge"].includes(S.action)&&["ctrlKey","shiftKey","altKey","metaKey"].every(N=>S[N]==y[N]));k&&(B=clearTimeout(B),y.preventDefault(),y.stopPropagation(),m("update:transition","transform 0.1s ease-out"),O+=y.deltaY,L(k,b,O),B=setTimeout(()=>{V(k,y),O=0},300))}function L(y,b,k){if(y.action=="zoom"){let{"min-range-v":S=0,sensitivity:N=1.25}=y,D=N**(k/100),I=t.coord2pos(y),Y=Math.max(b.t-Math.max(b.t,0)*D,I.vmin??-1/0),F=Math.min(b.t+Math.max(b.b,0)*D,I.vmax??1/0),{[t.coord+"min"]:X,[t.coord+"max"]:R}=t.pos2coord({vmin:Y,vmax:F});if(D<1&&R-X<S){let U=(R+X)/2;X=U-S/2,R=U+S/2}r[t.coord+"min"]=X,r[t.coord+"max"]=R}if(y.action=="nudge"){let{sensitivity:S=.1}=y,N=t.coord2pos(y),D=0,I=t.layout.height,Y=S*t.layout.height*(-k/120),F=st(-Y,{min:N.vmin-D,max:N.vmax-I}),{xmin:X,xmax:R,ymin:U,ymax:G}=t.pos2coord({vmin:D+F,vmax:I+F});Object.assign(r,{xmin:X,xmax:R,ymin:U,ymax:G})}}function V(y,b){let k=Mt(r)??{};if(!Object.keys(k).length)return;let S=new PointerEvent(b.type,b);ce(y.emit,k,S)||m(y.action,k,S),m("rangechange",k),Object.assign(r,{xmin:void 0,xmax:void 0,ymin:void 0,ymax:void 0})}const v={pointerup(y){m("pointerup",y,h(y))},pointerover(y){m("pointerover",y,h(y))},pointerout(y){m("pointerout",y,h(y))},pointerenter(y){m("pointerenter",y,h(y))},pointerleave(y){m("pointerleave",y,h(y))},dblclick(y){m("dblclick",y,h(y))},click(y){m("click",y,h(y))},contextmenu(y){m("contextmenu",y,h(y))},pointermove(y){m("pointermove",y,h(y))},pointerdown:p,wheel:j};return(y,b)=>(l.openBlock(),l.createElementBlock("g",{transform:o.value,style:l.normalizeStyle({transition:t.transition})},[l.createElementVNode("line",l.mergeProps({ref:"i",x1:0,x2:0,y1:0,y2:i.value},c.value),null,16,df),b[1]||(b[1]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(f.value,k=>(l.openBlock(),l.createElementBlock("line",l.mergeProps({ref_for:!0},k),null,16))),256)),b[2]||(b[2]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,k=>(l.openBlock(),l.createElementBlock("g",l.mergeProps({ref_for:!0},k.wrapper),[l.createVNode(Ee,l.mergeProps({ref_for:!0},k.text),null,16)],16))),256)),b[3]||(b[3]=l.createTextVNode()),l.createElementVNode("g",yf,[l.createElementVNode("rect",l.mergeProps({width:10,height:i.value,x:-5},l.toHandlers(v,!0),{cursor:t.action.some?.(k=>k.action=="move")?"grab":null}),null,16,gf)]),b[4]||(b[4]=l.createTextVNode()),t.action.some?.(k=>k.action=="rescale")?(l.openBlock(),l.createElementBlock("g",xf,[l.createElementVNode("rect",{width:10,height:20,x:-5,style:{cursor:"ns-resize"},onPointerdown:$},null,32),b[0]||(b[0]=l.createTextVNode()),l.createElementVNode("rect",{width:10,height:20,x:-5,y:i.value-20,style:{cursor:"ns-resize"},onPointerdown:C},null,40,pf)])):l.createCommentVNode("",!0),b[5]||(b[5]=l.createTextVNode()),s.value.text?(l.openBlock(),l.createBlock(Ee,l.normalizeProps(l.mergeProps({key:1},s.value)),null,16)):l.createCommentVNode("",!0)],12,mf))}},El={__name:"CoreAxis",props:{theme:{type:Object,default:()=>({})},position:null,orientation:null},setup(t){const e={h:hf,v:wf};return(n,i)=>t.position!="none"?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(e[t.orientation]),{key:0,theme:t.theme,position:t.position},null,8,["theme","position"])):l.createCommentVNode("",!0)}},bf={__name:"CoreGridH",props:{majorBreaks:{type:Array,default:()=>[]},minorBreaks:{type:Array,default:()=>[]},coord2pos:Function,pos2coord:Function,layout:Object,theme:{type:Object,default:()=>({})},action:{type:Object,default:()=>({})},activeTransform:Object,transition:String},setup(t){const e=l.computed(()=>t.layout.width+t.layout.l+t.layout.r),n=l.computed(()=>t.layout.height+t.layout.t+t.layout.b),i=l.computed(()=>{let s=[];for(let c of t.majorBreaks){let f=t.coord2pos({v:c.position}).v;if(isNaN(f))continue;let a=f*(t.activeTransform.scaleV-1)+t.activeTransform.translateV,u=f+t.layout.t;u+a<0||u+a>n.value||s.push({key:"major-"+c.position,x1:0,x2:e.value,y1:u,y2:u,stroke:c.color??t.theme.line_color_major,"stroke-width":c.width??t.theme.line_width_major??0,transform:a?`translate(0,${a})`:null,style:{transition:t.transition}})}return s.filter(c=>c.stroke!==null)}),r=l.computed(()=>{let s=[];for(let c of t.minorBreaks){if(t.majorBreaks.some(h=>h.position==c.position))continue;let f=t.coord2pos({v:c.position}).v;if(isNaN(f))continue;let a=f*(t.activeTransform.scaleV-1)+t.activeTransform.translateV,u=f+t.layout.t;u+a<0||u+a>n.value||s.push({key:"minor-"+c.position,x1:0,x2:e.value,y1:u,y2:u,stroke:c.color??t.theme.line_color_minor,"stroke-width":c.width??t.theme.line_width_minor??0,transform:a?`translate(0,${a})`:null,style:{transition:t.transition}})}return s.filter(c=>c.stroke!==null)}),o=l.computed(()=>r.value.concat(i.value).sort((s,c)=>s.y1-c.y1));return(s,c)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,f=>(l.openBlock(),l.createElementBlock("line",l.mergeProps({ref_for:!0},f,{style:{transition:t.transition}}),null,16))),256))]))}},kf={__name:"CoreGridV",props:{majorBreaks:{type:Array,default:()=>[]},minorBreaks:{type:Array,default:()=>[]},coord2pos:Function,pos2coord:Function,layout:Object,theme:{type:Object,default:()=>({})},action:{type:Object,default:()=>({})},activeTransform:Object,transition:String},setup(t){const e=l.computed(()=>t.layout.width+t.layout.l+t.layout.r),n=l.computed(()=>t.layout.height+t.layout.t+t.layout.b),i=l.computed(()=>{let s=[];for(let c of t.majorBreaks){let f=t.coord2pos({h:c.position}).h;if(isNaN(f))continue;let a=f*(t.activeTransform.scaleH-1)+t.activeTransform.translateH,u=f+t.layout.l;u+a<0||u+a>e.value||s.push({key:"major-"+c.position,y1:0,y2:n.value,x1:u,x2:u,stroke:c.color??t.theme.line_color_major,"stroke-width":c.width??t.theme.line_width_major??0,transform:a?`translate(${a},0)`:null,style:{transition:t.transition}})}return s.filter(c=>c.stroke!==null)}),r=l.computed(()=>{let s=[];for(let c of t.minorBreaks){if(t.majorBreaks.some(h=>h.position==c.position))continue;let f=t.coord2pos({h:c.position}).h;if(isNaN(f))continue;let a=f*(t.activeTransform.scaleH-1)+t.activeTransform.translateH,u=f+t.layout.l;u+a<0||u+a>e.value||s.push({key:"minor-"+c.position,y1:0,y2:n.value,x1:u,x2:u,stroke:c.color??t.theme.line_color_minor,"stroke-width":c.width??t.theme.line_width_minor??0,transform:a?`translate(${a},0)`:null,style:{transition:t.transition}})}return s.filter(c=>c.stroke!==null)}),o=l.computed(()=>r.value.concat(i.value).sort((s,c)=>s.x1-c.x1));return(s,c)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,f=>(l.openBlock(),l.createElementBlock("line",l.mergeProps({ref_for:!0},f,{style:{transition:t.transition}}),null,16))),256))]))}},vf={__name:"CoreCanvasCurve",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const u=document.createElement("canvas");u.width=t.layout.fullWidth*(1+t.extendX*2),u.height=t.layout.fullHeight*(1+t.extendY*2);const h=u.getContext("2d");h.clearRect(0,0,u.width,u.height),h.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let m=new Map,d=new Map;for(const g of t.data)for(let{points:p,fill:$="none",color:C="black",linewidth:O,linetype:B,alpha:j,"translate-x":L=0,"translate-y":V=0,$raw:v,interpolate:y}of g){if(p=p.map(N=>(({h:D,v:I})=>({x:D,y:I}))(t.coord2pos(N))).filter(N=>N.x!=null&&N.y!=null),p.length===0)continue;const b=new Path2D;let S=(f[y]??kn)(b);S.lineStart();for(let N=0;N<p.length;N++)S.point(p[N].x+L,p[N].y+V);S.lineEnd(),m.set(b,v),h.lineWidth=O,h.globalAlpha=j,h.setLineDash(a(B)),$!=="none"&&(h.fillStyle=$,h.fill(b)),C!=null&&(h.strokeStyle=C,h.stroke(b))}for(let g of Array.from(m.keys()).reverse())d.set(g,m.get(g));for(let g of i)u.addEventListener(g,function(p){if(p._vhandled)return;const $=u.getBoundingClientRect(),C=p.clientX-$.left,O=p.clientY-$.top;for(const[B,j]of d)if(h.isPointInPath(B,C,O)){r(g,p,t.getCoord(p),j),p._vhandled=!0;break}});return u});l.watch(c,u=>s.value.replaceChildren(u)),e({dispatchEvent:u=>c.value?.dispatchEvent?.(u)});const f={cardinal:gl,catmullRom:pl,linear:fi,natural:kn};function a(u){return u==null?[]:Array.isArray(u)?u:u==="solid"?[]:u==="dashed"?[4,4]:u==="dotted"?[1,3]:u==="dotdash"?[1,3,4,3]:u==="longdash"?[8,4]:u==="twodash"?[2,2,6,2]:u.includes(" ")?u:u.split("").map(h=>+("0x"+h))}return(u,h)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},Nf={__name:"CoreCanvasBoxplot",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{x:g,xmin:p,xmax:$,y:C,ymin:O,ymax:B,lwisker:j,Q1:L,median:V,Q3:v,uwisker:y,outliers:b,$xmin:k,$xmax:S,$ymin:N,$ymax:D,fill:I="white",color:Y="black",linewidth:F=1,linetype:X,alpha:R,"translate-x":U=0,"translate-y":G=0,$raw:it}of d){if(Y==="transparent")continue;const{hmin:_,hmax:rt,vmin:dt,vmax:gt}=t.coord2pos(g==null?{ymin:O,ymax:B,xmin:L,xmax:v}:{xmin:p,xmax:$,ymin:L,ymax:v}),{h:bt,v:St}=t.coord2pos(g==null?{y:C,x:j}:{x:g,y:j}),{h:vt,v:wt}=t.coord2pos(g==null?{y:C,x:y}:{x:g,y}),{h:Vt,v:jt}=t.coord2pos(g==null?{y:O,x:V}:{x:p,y:V}),{h:A,v:E}=t.coord2pos(g==null?{y:B,x:V}:{x:$,y:V}),{h:P,v:x}=t.coord2pos(g==null?{y:O*.25+B*.75,x:y}:{x:p*.25+$*.75,y}),{h:w,v:M}=t.coord2pos(g==null?{y:O*.75+B*.25,x:y}:{x:p*.75+$*.25,y}),{h:T,v:z}=t.coord2pos(g==null?{y:O*.25+B*.75,x:j}:{x:p*.25+$*.75,y:j}),{h:H,v:K}=t.coord2pos(g==null?{y:O*.75+B*.25,x:j}:{x:p*.75+$*.25,y:j});u.globalAlpha=R,u.setLineDash(f(X));const J=new Path2D;J.moveTo(bt+U,St+G),J.lineTo(vt+U,wt+G);const tt=new Path2D;tt.moveTo(P+U,x+G),tt.lineTo(w+U,M+G),tt.moveTo(T+U,z+G),tt.lineTo(H+U,K+G),u.lineWidth=F,Y!=="none"&&(u.strokeStyle=Y,u.stroke(J),u.stroke(tt));const ct=new Path2D;ct.rect(_+U,dt+G,rt-_,gt-dt),I!=="none"&&(u.fillStyle=I,u.fill(ct)),Y!=null&&(u.strokeStyle=Y,u.stroke(ct)),h.set(ct,it);const ut=new Path2D;ut.moveTo(Vt+U,jt+G),ut.lineTo(A+U,E+G),u.lineWidth=F*2,Y!=="none"&&(u.strokeStyle=Y,u.stroke(ut));for(let{x:ot,y:et,$raw:q}of b){const{h:Q,v:W}=t.coord2pos({x:ot,y:et}),nt=new Path2D;nt.arc(Q+U,W+G,2,0,Math.PI*2),I!=="none"&&(u.fillStyle=Y,u.fill(nt)),h.set(nt,q)}}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){return a==null?[]:Array.isArray(a)?a:a==="solid"?[]:a==="dashed"?[4,4]:a==="dotted"?[1,3]:a==="dotdash"?[1,3,4,3]:a==="longdash"?[8,4]:a==="twodash"?[2,2,6,2]:a.includes(" ")?a:a.split("").map(u=>+("0x"+u))}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},Cl={__name:"CoreCanvasLine",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{x:g,y:p,xend:$,yend:C,color:O,linewidth:B,alpha:j,linetype:L,"translate-x":V=0,"translate-y":v=0,$raw:y}of d){if(O==="transparent")continue;const{h:b,v:k}=t.coord2pos({x:g,y:p}),{h:S,v:N}=t.coord2pos({x:$,y:C}),D=new Path2D;D.moveTo(b+V,k+v),D.lineTo(S+V,N+v),h.set(D,y),u.lineWidth=B,u.globalAlpha=j,u.setLineDash(f(L)),O!=="none"&&(u.strokeStyle=O,u.stroke(D))}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){return a==null?[]:Array.isArray(a)?a:a==="solid"?[]:a==="dashed"?[4,4]:a==="dotted"?[1,3]:a==="dotdash"?[1,3,4,3]:a==="longdash"?[8,4]:a==="twodash"?[2,2,6,2]:a.includes(" ")?a:a.split("").map(u=>+("0x"+u))}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},Af={__name:"CoreCanvasPoint",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o={triangle:a=>`M0-${a*2/3}L${a*.577},${a/3}L-${a*.577},${a/3}Z`,diamond:a=>`M0-${a*.707}L${a*.707},0L0,${a*.707}L-${a*.707},0Z`,square:a=>`M-${a/2}-${a/2}H${a/2}V${a/2}H-${a/2}Z`,plus:a=>`M-${a/10}-${a/2}V-${a/10}H-${a/2}V${a/10}H-${a/10}V${a/2}H${a/10}V${a/10}H${a/2}V-${a/10}H${a/10}V-${a/2}H-${a/10}Z`,corss:a=>`M-${a*.283}-${a*.424}L-${a*.424}-${a*.283}L-${a*.141},0L-${a*.424},${a*.283}L-${a*.283},${a*.424}L0,${a*.141}L${a*.283},${a*.424}L${a*.424},${a*.283}L${a*.141},0L${a*.424},-${a*.283}L${a*.283},-${a*.424}L0,-${a*.141}Z`},s=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),c=l.useTemplateRef("container"),f=l.computed(()=>{if(c.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{x:g,y:p,size:$=6,shape:C,color:O,stroke:B,linewidth:j,alpha:L,"translate-x":V=0,"translate-y":v=0,$raw:y}of d){const{h:b,v:k}=t.coord2pos({x:g,y:p}),S=new Path2D;String(C).startsWith("path:")?S.addPath(new Path2D(C.slice(5)),new DOMMatrix().translateSelf(b+V,k+v)):C in o?S.addPath(new Path2D(o[C]($)),new DOMMatrix().translate(b+V,k+v)):S.arc(b+V,k+v,$/2,0,Math.PI*2),h.set(S,y),u.lineWidth=j,u.globalAlpha=L,u.beginPath(),O!=="none"&&(u.fillStyle=O,u.fill(S)),B!=null&&(u.strokeStyle=B,u.stroke(S))}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});return l.watch(f,a=>c.value.replaceChildren(a)),e({dispatchEvent:a=>f.value?.dispatchEvent?.(a)}),(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(s.value,{ref:"container"}),null,16))}},$f={__name:"CoreCanvasPolygon",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{points:g,fill:p,color:$,linewidth:C,linetype:O,alpha:B,"translate-x":j=0,"translate-y":L=0,$raw:V}of d){if(g=g.map(y=>(({h:b,v:k})=>({x:b,y:k}))(t.coord2pos(y))).filter(y=>y.x!=null&&y.y!=null),g.length===0)continue;const v=new Path2D;v.moveTo(g[0].x+j,g[0].y+L);for(let y=1;y<g.length;y++)v.lineTo(g[y].x+j,g[y].y+L);v.closePath(),h.set(v,V),u.lineWidth=C,u.globalAlpha=B,u.setLineDash(f(O)),p!=="none"&&(u.fillStyle=p,u.fill(v)),$!=null&&(u.strokeStyle=$,u.stroke(v))}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){return a==null?[]:Array.isArray(a)?a:a==="solid"?[]:a==="dashed"?[4,4]:a==="dotted"?[1,3]:a==="dotdash"?[1,3,4,3]:a==="longdash"?[8,4]:a==="twodash"?[2,2,6,2]:a.includes(" ")?a:a.split("").map(u=>+("0x"+u))}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},Pl={__name:"CoreCanvasRect",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{xmin:g,xmax:p,ymin:$,ymax:C,fill:O,color:B,linewidth:j,linetype:L,alpha:V,"translate-x":v=0,"translate-y":y=0,$raw:b}of d){const{hmin:k,hmax:S,vmin:N,vmax:D}=t.coord2pos({xmin:g,xmax:p,ymin:$,ymax:C}),I=new Path2D;I.rect(k+v,N+y,S-k,D-N),h.set(I,b),u.lineWidth=j,u.globalAlpha=V,u.setLineDash(f(L)),O!=="none"&&(u.fillStyle=O,u.fill(I)),B!=null&&(u.strokeStyle=B,u.stroke(I))}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){return a==null?[]:Array.isArray(a)?a:a==="solid"?[]:a==="dashed"?[4,4]:a==="dotted"?[1,3]:a==="dotdash"?[1,3,4,3]:a==="longdash"?[8,4]:a==="twodash"?[2,2,6,2]:a.includes(" ")?a:a.split("").map(u=>+("0x"+u))}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},Mf=Object.freeze(Object.defineProperty({__proto__:null,boxplot:Nf,curve:vf,line:Cl,point:Af,polygon:$f,rect:Pl,stick:Cl,text:{__name:"CoreCanvasText",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{x:g,y:p,color:$,size:C=4,label:O="",title:B,stroke:j,linewidth:L,linetype:V,alpha:v,"anchor-x":y,"anchor-y":b,"dock-x":k,"dock-y":S,"translate-x":N=0,"translate-y":D=0,angle:I,"text-length":Y,$raw:F}of d){u.save();const{h:X,v:R}=t.coord2pos({x:g,y:p});u.textAlign="center",u.textBaseline="middle",u.lineWidth=L,u.globalAlpha=v,u.font=`${C*4}px sans-serif`,u.setLineDash(f(V)),u.translate(X+N,R+D);let{width:U,fontBoundingBoxAscent:G,fontBoundingBoxDescent:it}=u.measureText(O),_=U,rt=G+it;if(typeof Y=="object"){let{x:dt=0,y:gt=0}=Y,{h:bt,v:St}=t.coord2pos({x:g+dt/2,y:p+gt/2}),{h:vt,v:wt}=t.coord2pos({x:g-dt/2,y:p-gt/2});_=Math.hypot(bt-vt||0,St-wt||0)}else Y!=null&&(_=Y);if(k!=null||S!=null){let dt={left:0,center:.5,right:1}[k]??+(k??.5),gt={bottom:0,center:.5,top:1}[S]??+(S??.5);isNaN(dt)&&(dt=.5),isNaN(gt)&&(gt=.5);let bt=_*Math.abs(Math.cos(I*Math.PI/180))+rt*Math.abs(Math.sin(I*Math.PI/180)),St=_*Math.abs(Math.sin(I*Math.PI/180))+rt*Math.abs(Math.cos(I*Math.PI/180));u.translate(bt*(.5-dt),St*(gt-.5)),u.rotate(I*Math.PI/180)}else{let dt={left:0,center:.5,right:1}[y]??+(y??.5),gt={bottom:0,center:.5,top:1}[b]??+(b??.5);isNaN(dt)&&(dt=.5),isNaN(gt)&&(gt=.5);let bt=_,St=rt;u.rotate(I*Math.PI/180),u.translate(bt*(.5-dt),St*(gt-.5))}_!=U&&u.scale(_/U,1),$!=="none"&&(u.fillStyle=$,u.fillText(O,0,0)),j!=null&&(u.strokeStyle=j,u.strokeText(O,0,0)),u.restore()}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){return a==null?[]:Array.isArray(a)?a:a==="solid"?[]:a==="dashed"?[4,4]:a==="dotted"?[1,3]:a==="dotdash"?[1,3,4,3]:a==="longdash"?[8,4]:a==="twodash"?[2,2,6,2]:a.includes(" ")?a:a.split("").map(u=>+("0x"+u))}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},textsegment:{__name:"CoreCanvasTextsegment",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"],setup(t,{expose:e,emit:n}){let i=["click","contextmenu","singleclick","dblclick","pointermove","pointerdown","pointerup","wheel"];const r=n,o=l.computed(()=>({width:t.layout.fullWidth*(1+t.extendX*2),height:t.layout.fullHeight*(1+t.extendY*2),x:-t.layout.l-t.layout.fullWidth*t.extendX,y:-t.layout.t-t.layout.fullHeight*t.extendY})),s=l.useTemplateRef("container"),c=l.computed(()=>{if(s.value==null)return;const a=document.createElement("canvas");a.width=t.layout.fullWidth*(1+t.extendX*2),a.height=t.layout.fullHeight*(1+t.extendY*2);const u=a.getContext("2d");u.clearRect(0,0,a.width,a.height),u.translate(t.layout.l+t.layout.fullWidth*t.extendX,t.layout.t+t.layout.fullHeight*t.extendY);let h=new Map,m=new Map;for(const d of t.data)for(let{x:g,xend:p,y:$,yend:C,size:O=4,label:B="",title:j,color:L,stroke:V,linewidth:v,linetype:y,alpha:b,"translate-x":k=0,"translate-y":S=0,"text-length":N,$raw:D}of d){u.save(),u.translate(k,S),u.textAlign="center",u.textBaseline="middle",u.lineWidth=v,u.globalAlpha=b,u.font=`${O*4}px sans-serif`;let I=f(String(B)),Y=(p-g)/(I.length-1||1),F=(C-$)/(I.length-1||1);for(let X=0;X<I.length;X++){u.save();let R=g+X*Y,U=$+X*F;const{h:G,v:it}=t.coord2pos({x:R,y:U});u.translate(G,it);let _=I[X],{width:rt,fontBoundingBoxAscent:dt,fontBoundingBoxDescent:gt}=u.measureText(_),bt=rt;if(typeof N=="object"){let{x:St=0,y:vt=0}=N,{h:wt,v:Vt}=t.coord2pos({x:g+St/2,y:$+vt/2}),{h:jt,v:A}=t.coord2pos({x:g-St/2,y:$-vt/2});bt=Math.hypot(wt-jt||0,Vt-A||0)}else N!=null&&(bt=N);bt!=rt&&u.scale(bt/rt,1),L!=="none"&&(u.fillStyle=L,u.fillText(_,0,0)),V!=null&&(u.strokeStyle=V,u.strokeText(_,0,0)),u.restore()}u.restore()}for(let d of Array.from(h.keys()).reverse())m.set(d,h.get(d));for(let d of i)a.addEventListener(d,function(g){if(g._vhandled)return;const p=a.getBoundingClientRect(),$=g.clientX-p.left,C=g.clientY-p.top;for(const[O,B]of m)if(u.isPointInPath(O,$,C)){r(d,g,t.getCoord(g),B),g._vhandled=!0;break}});return a});l.watch(c,a=>s.value.replaceChildren(a)),e({dispatchEvent:a=>c.value?.dispatchEvent?.(a)});function f(a){let u=[];for(let h=0;h<a.length;h++)if(a[h]==""){let m=h+1;for(;m<a.length&&a[m]!="";)m++;u.push(a.slice(h+1,m)),h=m}else u.push(a[h]);return u}return(a,u)=>(l.openBlock(),l.createElementBlock("foreignObject",l.mergeProps(o.value,{ref:"container"}),null,16))}},tile:Pl},Symbol.toStringTag,{value:"Module"})),Sf={__name:"CoreSvgBlank",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup"],setup(t,{emit:e}){return(n,i)=>(l.openBlock(),l.createElementBlock("g"))}},Bn={__name:"CoreTile",props:{x:{type:Number,default:0},y:{type:Number,default:0},width:{type:Number,default:0},height:{type:Number,default:0},fill:String,color:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},setup(t){const e=l.computed(()=>({x:t.x-t.width/2,y:t.y-t.height/2,width:t.width,height:t.height,fill:t.fill||null,"fill-opacity":t.alpha==1?null:t.alpha,stroke:t.color||null,"stroke-width":t.linewidth,"stroke-opacity":t.alpha==1?null:t.alpha,"stroke-dasharray":n(t.linetype),transform:t.translateX||t.translateY?`translate(${t.translateX}, ${t.translateY})`:null}));function n(i){return i==null?null:Array.isArray(i)?i.join(" "):i==="solid"?null:i==="dashed"?"4 4":i==="dotted"?"1 3":i==="dotdash"?"1 3 4 3":i==="longdash"?"8 4":i==="twodash"?"2 2 6 2":i.includes(" ")?i:i.split("").map(r=>+("0x"+r)).join(" ")}return(i,r)=>(l.openBlock(),l.createElementBlock("rect",l.normalizeProps(l.guardReactiveProps(e.value)),null,16))}},pi={__name:"CorePoint",props:{x:{type:Number,default:0},y:{type:Number,default:0},shape:String,size:{type:Number,default:6},color:String,stroke:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},angle:{type:Number,default:0},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},setup(t){const e={square:"M-0.5-0.5H0.5V0.5H-0.5Z",triangle:"M0-0.667L0.577,0.333L-0.577,0.333Z",diamond:"M0-0.707L0.707,0L0,0.707L-0.707,0Z",plus:"M-0.1-0.5V-0.1H-0.5V0.1H-0.1V0.5H0.1V0.1H0.5V-0.1H0.1V-0.5H-0.1Z",cross:"M-0.283-0.424L-0.424-0.283L-0.141,0L-0.424,0.283L-0.283,0.424L0,0.141L0.283,0.424L0.424,0.283L0.141,0L0.424,-0.283L0.283,-0.424L0,-0.141Z"},n=l.computed(()=>{let r=t.shape?.startsWith?.("path:")?t.shape?.slice?.(5):e[t.shape],o={fill:t.color||null,"fill-opacity":t.alpha==1?null:t.alpha,stroke:t.stroke||null,"stroke-width":t.linewidth,"stroke-opacity":t.alpha==1?null:t.alpha,"stroke-dasharray":i(t.linetype)};if(r!=null){let s=`translate(${t.x+t.translateX},${t.y+t.translateY})`;t.size!=1&&(s+=`scale(${t.size})`),t.angle&&(s+=`rotate(${t.angle})`),Object.assign(o,{d:r,transform:s})}else{let s=t.translateX||t.translateY?`translate(${t.translateX}, ${t.translateY})`:null;Object.assign(o,{cx:t.x,cy:t.y,r:t.size/2,transform:s})}return o});function i(r){return r==null?null:Array.isArray(r)?r.join(" "):r==="solid"?null:r==="dashed"?"4 4":r==="dotted"?"1 3":r==="dotdash"?"1 3 4 3":r==="longdash"?"8 4":r==="twodash"?"2 2 6 2":r.includes(" ")?r:r.split("").map(o=>+("0x"+o)).join(" ")}return(r,o)=>n.value.d?(l.openBlock(),l.createElementBlock("path",l.normalizeProps(l.mergeProps({key:0},n.value)),null,16)):(l.openBlock(),l.createElementBlock("circle",l.normalizeProps(l.mergeProps({key:1},n.value)),null,16))}},Ce={__name:"CoreLine",props:{x1:{type:Number,default:0},y1:{type:Number,default:0},x2:{type:Number,default:0},y2:{type:Number,default:0},color:String,stroke:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},setup(t){const e=l.computed(()=>({x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2,stroke:t.color||null,"stroke-width":t.linewidth,"stroke-opacity":t.alpha==1?null:t.alpha,"stroke-dasharray":n(t.linetype),transform:t.translateX||t.translateY?`translate(${t.translateX}, ${t.translateY})`:null}));function n(i){return i==null?null:Array.isArray(i)?i.join(" "):i==="solid"?null:i==="dashed"?"4 4":i==="dotted"?"1 3":i==="dotdash"?"1 3 4 3":i==="longdash"?"8 4":i==="twodash"?"2 2 6 2":i.includes(" ")?i:i.split("").map(r=>+("0x"+r)).join(" ")}return(i,r)=>(l.openBlock(),l.createElementBlock("line",l.normalizeProps(l.guardReactiveProps(e.value)),null,16))}},Bf={__name:"CoreSvgBoxplot",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({x:u,xmin:h,xmax:m,y:d,ymin:g,ymax:p,lwisker:$,Q1:C,median:O,Q3:B,uwisker:j,outliers:L,$xmin:V,$xmax:v,$ymin:y,$ymax:b,fill:k="white",color:S="black",linewidth:N,linetype:D,alpha:I,"translate-x":Y=0,"translate-y":F=0,$raw:X})=>{const{hmin:R,hmax:U,vmin:G,vmax:it}=t.coord2pos({xmin:V,xmax:v,ymin:y,ymax:b});if(R<o&&U<o||R>s&&U>s||G<c&&it<c||G>f&&it>f)return null;const{hmin:_,hmax:rt,vmin:dt,vmax:gt}=t.coord2pos(u==null?{ymin:g,ymax:p,xmin:C,xmax:B}:{xmin:h,xmax:m,ymin:C,ymax:B}),{h:bt,v:St}=t.coord2pos(u==null?{y:d,x:$}:{x:u,y:$}),{h:vt,v:wt}=t.coord2pos(u==null?{y:d,x:j}:{x:u,y:j}),{h:Vt,v:jt}=t.coord2pos(u==null?{y:g,x:O}:{x:h,y:O}),{h:A,v:E}=t.coord2pos(u==null?{y:p,x:O}:{x:m,y:O}),{h:P,v:x}=t.coord2pos(u==null?{y:g*.25+p*.75,x:j}:{x:h*.25+m*.75,y:j}),{h:w,v:M}=t.coord2pos(u==null?{y:g*.75+p*.25,x:j}:{x:h*.75+m*.25,y:j}),{h:T,v:z}=t.coord2pos(u==null?{y:g*.25+p*.75,x:$}:{x:h*.25+m*.75,y:$}),{h:H,v:K}=t.coord2pos(u==null?{y:g*.75+p*.25,x:$}:{x:h*.75+m*.25,y:$});let J={rect:{x:(_+rt)/2,width:rt-_,y:(dt+gt)/2,height:gt-dt,fill:k,color:S,linetype:D,linewidth:N,alpha:I,translateX:Y,translateY:F},line:{x1:bt,y1:St,x2:vt,y2:wt,color:S,linetype:D,linewidth:N,alpha:I,translateX:Y,translateY:F},midline:{x1:Vt,y1:jt,x2:A,y2:E,color:S,linetype:D,linewidth:(N??1)*2,alpha:I,translateX:Y,translateY:F},uwisker:{x1:P,y1:x,x2:w,y2:M,color:S,linetype:D,linewidth:N,alpha:I,translateX:Y,translateY:F},lwisker:{x1:T,y1:z,x2:H,y2:K,color:S,linetype:D,linewidth:N,alpha:I,translateX:Y,translateY:F},outliers:L?.map(({x:ct,y:ut,$raw:ot})=>{const{h:et,v:q}=t.coord2pos({x:ct,y:ut});let Q={x:et,y:q,shape:"circle",size:4,color:S,alpha:I,translateX:Y,translateY:F},W=Object.fromEntries(n.map(nt=>[nt,mt=>i(nt,mt,ot)]));return[Q,W]})},tt=Object.fromEntries(n.map(ct=>[ct,ut=>i(ct,Object.assign(ut,{_vhandled:!0}),t.getCoord(ut),X)]));return[J,tt]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createElementBlock("g",null,[l.createVNode(Ce,l.mergeProps({ref_for:!0},f.line),null,16),s[0]||(s[0]=l.createTextVNode()),l.createVNode(Bn,l.mergeProps({ref_for:!0},f.rect,l.toHandlers(a)),null,16),s[1]||(s[1]=l.createTextVNode()),l.createVNode(Ce,l.mergeProps({ref_for:!0},f.midline),null,16),s[2]||(s[2]=l.createTextVNode()),l.createVNode(Ce,l.mergeProps({ref_for:!0},f.uwisker),null,16),s[3]||(s[3]=l.createTextVNode()),l.createVNode(Ce,l.mergeProps({ref_for:!0},f.lwisker),null,16),s[4]||(s[4]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(f.outliers,([u,h])=>(l.openBlock(),l.createBlock(pi,l.mergeProps({ref_for:!0},u,l.toHandlers(h)),null,16))),256))]))),256))]))),256))]))}},Ol={__name:"CoreCurve",props:{points:{type:Array,default:()=>[]},interpolate:{default:"natural"},fill:{type:String,default:"none"},color:String,stroke:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},setup(t){const e=l.computed(()=>{let r=n[t.interpolate]??kn;return{d:Ru().curve(r)(t.points.map(o=>[o.x,o.y])),fill:t.fill||null,stroke:t.color||null,"stroke-width":t.linewidth,"stroke-opacity":t.alpha==1?null:t.alpha,"stroke-dasharray":i(t.linetype),transform:t.translateX||t.translateY?`translate(${t.translateX}, ${t.translateY})`:null}}),n={cardinal:gl,catmullRom:pl,linear:fi,natural:kn};function i(r){return r==null?null:Array.isArray(r)?r.join(" "):r==="solid"?null:r==="dashed"?"4 4":r==="dotted"?"1 3":r==="dotdash"?"1 3 4 3":r==="longdash"?"8 4":r==="twodash"?"2 2 6 2":r.includes(" ")?r:r.split("").map(o=>+("0x"+o)).join(" ")}return(r,o)=>(l.openBlock(),l.createElementBlock("path",l.normalizeProps(l.guardReactiveProps(e.value)),null,16))}},Tf={__name:"CoreSvgCurve",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({points:u,fill:h="none",color:m="black",linewidth:d,linetype:g,alpha:p,"translate-x":$=0,"translate-y":C=0,$raw:O,interpolate:B})=>{if(u=u.map(V=>(({h:v,v:y})=>({x:v,y}))(t.coord2pos(V))),u.every(V=>V.x<o)||u.every(V=>V.x>s)||u.every(V=>V.y<c)||u.every(V=>V.y>f))return null;let j={points:u,fill:h,color:m,linetype:g,linewidth:d,alpha:p,translateX:$,translateY:C,interpolate:B},L=Object.fromEntries(n.map(V=>[V,v=>i(V,Object.assign(v,{_vhandled:!0}),t.getCoord(v),O)]));return[j,L]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(Ol,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},Vl={__name:"CoreSvgLine",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({x:u,y:h,xend:m,yend:d,color:g="black",linewidth:p,linetype:$,alpha:C,"translate-x":O=0,"translate-y":B=0,$raw:j})=>{const{h:L,v:V}=t.coord2pos({x:u,y:h}),{h:v,v:y}=t.coord2pos({x:m,y:d});if(L<o&&v<o||L>s&&v>s||V<c&&y<c||V>f&&y>f)return null;let b={x1:L,x2:v,y1:V,y2:y,color:g,linetype:$,linewidth:p,alpha:C,translateX:O,translateY:B},k=Object.fromEntries(n.map(S=>[S,N=>i(S,Object.assign(N,{_vhandled:!0}),t.getCoord(N),j)]));return[b,k]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(Ce,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},Ef={__name:"CoreSvgPoint",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({x:u,y:h,shape:m,size:d=6,color:g,stroke:p,linetype:$,linewidth:C,alpha:O,"translate-x":B=0,"translate-y":j=0,angle:L,$raw:V})=>{const{h:v,v:y}=t.coord2pos({x:u,y:h});if(v<o||v>s||y<c||y>f)return null;let b={x:v,y,shape:m,size:d,color:g,stroke:p,linetype:$,linewidth:C,alpha:O,angle:L,translateX:B,translateY:j},k=Object.fromEntries(n.map(S=>[S,N=>i(S,Object.assign(N,{_vhandled:!0}),t.getCoord(N),V)]));return[b,k]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(pi,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},jl={__name:"CorePolygon",props:{points:{type:Array,default:()=>[]},fill:String,color:String,linewidth:Number,linetype:String,alpha:{type:Number,default:1},translateX:{type:Number,default:0},translateY:{type:Number,default:0}},setup(t){const e=l.computed(()=>({points:t.points.map(i=>`${i.x},${i.y}`).join(" "),fill:t.fill||null,"fill-opacity":t.alpha==1?null:t.alpha,stroke:t.color||null,"stroke-width":t.linewidth,"stroke-opacity":t.alpha==1?null:t.alpha,"stroke-dasharray":n(t.linetype),transform:t.translateX||t.translateY?`translate(${t.translateX}, ${t.translateY})`:null}));function n(i){return i==null?null:Array.isArray(i)?i.join(" "):i==="solid"?null:i==="dashed"?"4 4":i==="dotted"?"1 3":i==="dotdash"?"1 3 4 3":i==="longdash"?"8 4":i==="twodash"?"2 2 6 2":i.includes(" ")?i:i.split("").map(r=>+("0x"+r)).join(" ")}return(i,r)=>(l.openBlock(),l.createElementBlock("polygon",l.normalizeProps(l.guardReactiveProps(e.value)),null,16))}},Cf={__name:"CoreSvgPolygon",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({points:u,fill:h,color:m,linewidth:d,linetype:g,alpha:p,"translate-x":$=0,"translate-y":C=0,$raw:O})=>{if(u=u.map(L=>(({h:V,v})=>({x:V,y:v}))(t.coord2pos(L))),u.every(L=>L.x<o)||u.every(L=>L.x>s)||u.every(L=>L.y<c)||u.every(L=>L.y>f))return null;let B={points:u,fill:h,color:m,linewidth:d,linetype:g,alpha:p,translateX:$,translateY:C},j=Object.fromEntries(n.map(L=>[L,V=>i(L,Object.assign(V,{_vhandled:!0}),t.getCoord(V),O)]));return[B,j]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(jl,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},Ll={__name:"CoreSvgRect",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({xmin:u,xmax:h,ymin:m,ymax:d,fill:g="black",color:p,linewidth:$,linetype:C,alpha:O,"translate-x":B=0,"translate-y":j=0,$raw:L})=>{const{hmin:V,hmax:v,vmin:y,vmax:b}=t.coord2pos({xmin:u,xmax:h,ymin:m,ymax:d});if(V<o&&v<o||V>s&&v>s||y<c&&b<c||y>f&&b>f)return null;let k={x:(V+v)/2,width:v-V,y:(y+b)/2,height:b-y,fill:g,color:p,linetype:C,linewidth:$,alpha:O,translateX:B,translateY:j},S=Object.fromEntries(n.map(N=>[N,D=>i(N,Object.assign(D,{_vhandled:!0}),t.getCoord(D),L)]));return[k,S]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(Bn,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},Pf=Object.freeze(Object.defineProperty({__proto__:null,blank:Sf,boxplot:Bf,curve:Tf,line:Vl,point:Ef,polygon:Cf,rect:Ll,stick:Vl,text:{__name:"CoreSvgText",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let o=-t.layout.fullWidth*t.extendX-t.layout.l,s=t.layout.fullWidth*(1+t.extendX)-t.layout.l,c=-t.layout.fullHeight*t.extendY-t.layout.t,f=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(a=>a.map(({x:u,y:h,size:m=4,label:d,title:g,color:p,stroke:$,linewidth:C,linetype:O,alpha:B,"anchor-x":j,"anchor-y":L,"dock-x":V,"dock-y":v,"translate-x":y=0,"translate-y":b=0,angle:k,"text-length":S,$raw:N})=>{if(d==null)return null;const{h:D,v:I}=t.coord2pos({x:u,y:h});if(D<o||D>s||I<c||I>f)return null;if(typeof S=="object"){let{x:X=0,y:R=0}=S,{h:U,v:G}=t.coord2pos({x:u+X/2,y:h+R/2}),{h:it,v:_}=t.coord2pos({x:u-X/2,y:h-R/2});S=Math.hypot(U-it||0,G-_||0)}let Y={x:D,y:I,text:String(d),title:String(g??d),size:m,color:p,stroke:$,linetype:O,linewidth:C,alpha:B,angle:k,translateX:y,translateY:b,anchorX:j,anchorY:L,dockX:V,dockY:v,textLength:S},F=Object.fromEntries(n.map(X=>[X,R=>i(X,Object.assign(R,{_vhandled:!0}),t.getCoord(R),N)]));return[Y,F]}).filter(u=>u!=null))});return(o,s)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,c=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(c,([f,a])=>(l.openBlock(),l.createBlock(Ee,l.mergeProps({ref_for:!0},f,l.toHandlers(a)),null,16))),256))]))),256))]))}},textsegment:{__name:"CoreSvgTextsegment",props:{extendX:{type:Number,default:0},extendY:{type:Number,default:0},data:Object,coord2pos:Function,getCoord:Function,layout:Object},emits:["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"],setup(t,{emit:e}){let n=["click","contextmenu","singleclick","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointerdown","pointerup","wheel"];const i=e,r=l.computed(()=>{let s=-t.layout.fullWidth*t.extendX-t.layout.l,c=t.layout.fullWidth*(1+t.extendX)-t.layout.l,f=-t.layout.fullHeight*t.extendY-t.layout.t,a=t.layout.fullHeight*(1+t.extendY)-t.layout.t;return t.data.map(u=>u.map(({x:h,xend:m,y:d,yend:g,size:p=4,label:$,title:C,color:O,stroke:B,linewidth:j,linetype:L,alpha:V,"translate-x":v=0,"translate-y":y=0,"text-length":b,$raw:k})=>{if($==null)return null;const{h:S,v:N}=t.coord2pos({x:h,y:d}),{h:D,v:I}=t.coord2pos({x:m,y:g});if(S<s&&D<s||S>c&&D>c||N<f&&I<f||N>a&&I>a)return null;let Y=o(String($)),F=(m-h)/(Y.length-1||1),X=(g-d)/(Y.length-1||1),R=Y.map((it,_)=>{let rt=h+_*F,dt=d+_*X;const{h:gt,v:bt}=t.coord2pos({x:rt,y:dt});if(typeof b=="object"){let{x:vt=0,y:wt=0}=b,{h:Vt,v:jt}=t.coord2pos({x:rt+vt/2,y:dt+wt/2}),{h:A,v:E}=t.coord2pos({x:rt-vt/2,y:dt-wt/2});b=Math.hypot(Vt-A||0,jt-E||0)}return[{x:gt,y:bt,"text-anchor":"middle","alignment-baseline":"central",textLength:b,lengthAdjust:b?"spacingAndGlyphs":null},it]}),U={fill:O,"font-size":p*4,stroke:B,"stroke-width":j,"stroke-dasharray":L,"fill-opacity":V,"stroke-opacity":V,transform:v||y?`translate(${v}, ${y})`:null},G=Object.fromEntries(n.map(it=>[it,_=>i(it,Object.assign(_,{_vhandled:!0}),t.getCoord(_),k)]));return[U,G,R,String(C??$)]}).filter(h=>h!=null))});function o(s){let c=[];for(let f=0;f<s.length;f++)if(s[f]==""){let a=f+1;for(;a<s.length&&s[a]!="";)a++;c.push(s.slice(f+1,a)),f=a}else c.push(s[f]);return c}return(s,c)=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,f=>(l.openBlock(),l.createElementBlock("g",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(f,([a,u,h,m])=>(l.openBlock(),l.createElementBlock("text",l.mergeProps({ref_for:!0},a,l.toHandlers(u,!0)),[l.createElementVNode("title",null,l.toDisplayString(m),1),c[0]||(c[0]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(h,([d,g])=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[g?(l.openBlock(),l.createElementBlock("tspan",l.mergeProps({key:0,ref_for:!0},d),l.toDisplayString(g),17)):l.createCommentVNode("",!0)],64))),256))],16))),256))]))),256))]))}},tile:Ll},Symbol.toStringTag,{value:"Module"})),Of={__name:"CoreLayer",props:{data:Object,geom:String,render:String,defaultRender:{type:String,default:"auto"}},setup(t,{expose:e}){const n={svg:Pf,canvas:Mf},i=l.computed(()=>{let s=t.render??t.defaultRender;return s=="auto"?t.data.map(f=>f.length).reduce((f,a)=>f+a,0)>1e3?"canvas":"svg":n[s][t.geom]!=null?s:"svg"}),r=l.useTemplateRef("layer"),o=l.computed(()=>i.value=="canvas"?"pointer-events: none;":"");return e({render:i,dispatchEvent:s=>r.value?.dispatchEvent?.(s)}),(s,c)=>(l.openBlock(),l.createBlock(l.resolveDynamicComponent(n[i.value][t.geom]),{ref_key:"layer",ref:r,style:l.normalizeStyle(o.value),data:t.data},null,8,["style","data"]))}},Vf={key:0},jf=["onPointerdown"],Il={__name:"CoreSelection",props:l.mergeModels({coord2pos:Function,pos2coord:Function,layout:Object,theme:Object,flip:Boolean,move:Boolean,resize:Boolean,dismissible:Boolean,xmin:Number,xmax:Number,ymin:Number,ymax:Number,x:Boolean,y:Boolean,minRangeX:Number,minRangeY:Number,ctrlKey:Boolean,shiftKey:Boolean,altKey:Boolean,metaKey:Boolean,buttons:Number,activeTransform:Object,transition:String},{modelValue:{default:()=>({})},modelModifiers:{}}),emits:l.mergeModels(["select","selecting","selectend","click","contextmenu"],["update:modelValue"]),setup(t,{emit:e}){const n=l.useModel(t,"modelValue"),i=l.createPropsRestProxy(t,["coord2pos","pos2coord","layout","theme","flip","activeTransform","transition"]),r=l.computed(()=>{if(n.value==null||n.value.hidden||["xmin","xmax","ymin","ymax"].every($=>n.value?.[$]==null))return null;let{hmin:h,hmax:m,vmin:d,vmax:g}=t.coord2pos(n.value,{limited:!0}),p=t.coord2pos(n.value);return h!=null&&m!=null&&([h,m]=[h,m].sort(($,C)=>$-C)),d!=null&&g!=null&&([d,g]=[d,g].sort(($,C)=>$-C)),{hmin:h,hmax:m,vmin:d,vmax:g,pos:p}}),o=l.computed(()=>{if(!r.value)return null;let{translateH:h,translateV:m,scaleH:d,scaleV:g}=t.activeTransform,{hmin:p,hmax:$,vmin:C,vmax:O,pos:B}=r.value,j=$-p,L=O-C,V=t.layout.left,v=t.layout.top,y=1,b=1;if(B.hmin!=null&&B.hmax!=null)V+=h,y=d;else if(B.hmin!=null){let S=h+p*(d-1);y=1-S/j,V+=S*(1+p/j)}else if(B.hmax!=null){let S=h+$*(d-1);y=1+S/j,V+=S*(1-$/j)}if(B.vmin!=null&&B.vmax!=null)v+=t.activeTransform.translateV,b=t.activeTransform.scaleV;else if(B.vmin!=null){let S=m+C*(g-1);b=1-S/L,v+=S*(1+C/L)}else if(B.vmax!=null){let S=m+O*(g-1);b=1+S/L,v+=S*(1-O/L)}let k=[];return(V!=0||v!=0)&&k.push(`translate(${V}, ${v})`),(y!=1||b!=1)&&k.push(`scale(${y}, ${b})`),k.join(" ")||null}),s=l.computed(()=>t.activeTransform.translateH!=0||t.activeTransform.translateV!=0||t.activeTransform.scaleH!=1||t.activeTransform.scaleV!=1),c=l.computed(()=>{if(!r.value)return null;let{hmin:h,hmax:m,vmin:d,vmax:g,pos:p}=r.value,$=t.theme?.line_width??1;p.hmin==null&&(h-=$/2),p.hmax==null&&(m+=$/2),p.vmin==null&&(d-=$/2),p.vmax==null&&(g+=$/2);let C=m-h,O=g-d;return{x:h,y:d,width:C,height:O,fill:t.theme?.background??"transparent","fill-opacity":t.theme?.opacity,stroke:t.theme?.line_color??"none","stroke-width":t.theme?.line_width,"stroke-opacity":t.theme?.opacity,transform:o.value,style:{transition:t.transition,"pointer-events":"none"}}}),f=l.computed(()=>{if(!r.value||s.value)return null;let h=10,{hmin:m,hmax:d,vmin:g,vmax:p,pos:$}=r.value,C=d-m,O=p-g,B={};i.move&&(B.tblr={x:m,y:g,width:C,height:O,fill:"transparent",style:"cursor:move;"}),i.resize&&($.hmin!=null&&(B.l={x:m-h/2,y:g,width:h,height:O,style:"cursor:ew-resize;",class:"vvplot-interactive"}),$.hmax!=null&&(B.r={x:d-h/2,y:g,width:h,height:O,style:"cursor:ew-resize;"}),$.vmin!=null&&(B.t={x:m,y:g-h/2,width:C,height:h,style:"cursor:ns-resize;"}),$.vmax!=null&&(B.b={x:m,y:p-h/2,width:C,height:h,style:"cursor:ns-resize;"}),$.hmin!=null&&$.vmin!=null&&(B.tl={x:m-h/2,y:g-h/2,width:h,height:h,style:"cursor:nwse-resize;"}),$.hmax!=null&&$.vmin!=null&&(B.tr={x:d-h/2,y:g-h/2,width:h,height:h,style:"cursor:nesw-resize;"}),$.hmin!=null&&$.vmax!=null&&(B.bl={x:m-h/2,y:p-h/2,width:h,height:h,style:"cursor:nesw-resize;"}),$.hmax!=null&&$.vmax!=null&&(B.br={x:d-h/2,y:p-h/2,width:h,height:h,style:"cursor:nwse-resize;"}));let j=t.layout.left,L=t.layout.top;if(j||L)for(let V in B)B[V].transform=`translate(${j}, ${L})`;return B}),a=e;function u(h,m){if(!m||!["buttons","ctrlKey","shiftKey","altKey","metaKey"].every(G=>i[G]==h[G]))return;h.stopPropagation(),h.preventDefault(),h.target.setPointerCapture(h.pointerId);let d=t.coord2pos(n.value),{h:g,v:p}=t.pos2coord({h:d.hmin,v:d.vmin}),{h:$,v:C}=t.pos2coord({h:d.hmax,v:d.vmax}),{hmin:O,hmax:B,vmin:j,vmax:L}=d,V=!1,v={min:i.xmin,max:i.xmax},y={min:i.ymin,max:i.ymax},[b=0,k=0]=t.flip?[i.minRangeY,i.minRangeX]:[i.minRangeX,i.minRangeY],S=t.coord2pos(i),N=0,D=0,I,Y,F,X,R=!1,U=!1;h.target.onpointermove=G=>{if(V=!0,N+=G.movementX,D+=G.movementY,m.includes("l")&&m.includes("r")){let it=st(N,{min:S.hmin-O,max:S.hmax-B}),_=t.pos2coord({hmin:lt(O,it),hmax:lt(B,it)});g=_.hmin,$=_.hmax}else m.includes("l")?(g=t.pos2coord({h:O+N}).h,g=st(g,g>$?{min:lt($,b)}:{max:lt($,-b)}),R=O+N>B):m.includes("r")&&($=t.pos2coord({h:B+N}).h,$=st($,$>g?{min:lt(g,b)}:{max:lt(g,-b)}),R=B+N<O);if(m.includes("t")&&m.includes("b")){let it=st(D,{min:S.vmin-j,max:S.vmax-L}),_=t.pos2coord({vmin:lt(j,it),vmax:lt(L,it)});p=_.vmin,C=_.vmax}else m.includes("t")?(p=t.pos2coord({v:j+D}).v,p=st(p,p>C?{min:lt(C,k)}:{max:lt(C,-k)}),U=j+D>L):m.includes("b")&&(C=t.pos2coord({v:L+D}).v,C=st(C,C>p?{min:lt(p,k)}:{max:lt(p,-k)}),U=L+D<j);I=st(t.flip?p:g,v),Y=st(t.flip?C:$,v),F=st(t.flip?g:p,y),X=st(t.flip?$:C,y),I>Y&&([I,Y]=[Y,I]),F>X&&([F,X]=[X,F]),a("selecting",{xmin:I,xmax:Y,ymin:F,ymax:X},t.theme)},h.target.onpointerup=G=>{if(G.currentTarget.onpointerup=null,G.currentTarget.onpointermove=null,i.buttons&1&&(G.currentTarget.onclick=rt=>{rt.currentTarget.onclick=null,a("click",rt)}),i.buttons&2&&(G.currentTarget.oncontextmenu=rt=>{rt.currentTarget.onclick=null,a("contextmenu",rt)}),!V)return;let it={xmin:I,xmax:Y,xreverse:!!(R^n.value.xreverse),ymin:F,ymax:X,yreverse:!!(U^n.value.yreverse)},_=new PointerEvent("select",h);n.value=Mt(it),a("selectend"),a("select",Mt(it),_)}}return(h,m)=>c.value?(l.openBlock(),l.createElementBlock("g",Vf,[l.createElementVNode("rect",l.normalizeProps(l.guardReactiveProps(c.value)),null,16),m[0]||(m[0]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(f.value,(d,g)=>(l.openBlock(),l.createElementBlock("rect",l.mergeProps({fill:"transparent"},{ref_for:!0},d,{onPointerdown:p=>u(p,g),class:"vvplot-interactive"}),null,16,jf))),256))])):l.createCommentVNode("",!0)}},Lf=["height","width"],If=["y1","y2"],Df=["y"],Xf={__name:"CoreGuideGradientbar",props:{scales:Array,appearance:{type:Object,default:()=>({})},theme:{type:Object,default:()=>({})},breaks:Array,limits:Object},setup(t){const e=l.computed(()=>{let{min:o,max:s}=t.limits;return t.breaks.map(c=>({position:(c-o)/(s-o),label:String(c)}))}),n=l.computed(()=>{let o=30,{min:s,max:c}=t.limits,f=(c-s)/(o-1),a=Array.from({length:o},(h,m)=>s+m*f),u=t.scales.map(h=>h(a));return a.map((h,m)=>Object.fromEntries(t.scales.map((d,g)=>[{color:"fill"}[d.aesthetics]??d.aesthetics,u[g][m]])))}),i=l.ref(0),r=l.useTemplateRef("svg");return l.watch(e,async()=>{await l.nextTick();let o=r.value?.getBBox?.();o&&(i.value=o.width+o.x)},{immediate:!0}),(o,s)=>(l.openBlock(),l.createElementBlock("svg",{height:n.value.length*3+20,width:i.value,ref:"svg"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.value,(c,f)=>(l.openBlock(),l.createBlock(Bn,l.mergeProps({width:10,height:3.1,x:10,y:10+(29-f+.5)*3,alpha:t.appearance.alpha},{ref_for:!0},c),null,16,["y","alpha"]))),256)),s[1]||(s[1]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.value,(c,f)=>(l.openBlock(),l.createElementBlock("g",null,[l.createElementVNode("line",{x1:"15",x2:"18",y1:10+(1-c.position)*90,y2:10+(1-c.position)*90,stroke:"black"},null,8,If),s[0]||(s[0]=l.createTextVNode()),l.createElementVNode("text",{x:"20",y:10+(1-c.position)*90,"alignment-baseline":"central"},l.toDisplayString(c.label),9,Df)]))),256))],8,Lf))}},Yf=Object.freeze(Object.defineProperty({__proto__:null,curve:Ol,line:Ce,point:pi,polygon:jl,text:Ee,tile:Bn},Symbol.toStringTag,{value:"Module"})),Ff=["height","width"],Rf=["transform"],Hf={transform:"translate(10, 10)"},zf={x:"20",y:"10","alignment-baseline":"central"},qf={__name:"CoreGuideLegendkey",props:{scales:Array,appearances:{type:Object,default:()=>({})},theme:{type:Object,default:()=>({})},breaks:Array},setup(t){const e=l.computed(()=>{let o=t.scales.map(a=>a(t.breaks)),s=t.breaks.map((a,u)=>({bind:Object.fromEntries(t.scales.map((h,m)=>[h.aesthetics,o[m][u]])),label:String(a)})),c=wo(s.map(a=>a.bind)),f=Map.groupBy(s.map(a=>a.label),(a,u)=>c.categories[c[u]]);return Array.from(f).map(([a,u])=>({bind:a,label:u.join("; ")}))}),n=l.computed(()=>{let{text:o,line:s,point:c,tile:f}=t.appearances,a={};return o!=null&&(a.text={size:4,text:"a",...o}),s!=null&&(a.line={x1:-5,x2:5,color:"black",...s}),c!=null&&(a.point={size:6,...c}),f!=null&&(a.tile={width:10,height:10,fill:"transparent",...f}),a}),i=l.ref(0),r=l.useTemplateRef("svg");return l.watch(e,async()=>{await l.nextTick();let o=r.value?.getBBox?.();o&&(i.value=o.width+o.x)},{immediate:!0}),(o,s)=>(l.openBlock(),l.createElementBlock("svg",{height:e.value.length*20,width:i.value,ref:"svg"},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.value,(c,f)=>(l.openBlock(),l.createElementBlock("g",{transform:`translate(0, ${f*20})`},[l.createElementVNode("g",Hf,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.value,(a,u)=>(l.openBlock(),l.createBlock(l.resolveDynamicComponent(Yf[u]),l.mergeProps({ref_for:!0},{...a,...c.bind}),null,16))),256))]),s[0]||(s[0]=l.createTextVNode()),l.createElementVNode("text",zf,l.toDisplayString(c.label),1)],8,Rf))),256))],8,Ff))}},Wf=Object.assign({inheritAttrs:!1},{__name:"CoreGuide",props:{scales:Array,type:{type:String,default:"legendkey"}},setup(t){const e={legendkey:qf,gradientbar:Xf},n=l.computed(()=>t.scales.map(([o])=>o.title).find(o=>o!=null)),i=l.computed(()=>{let o=t.scales.map(([c])=>c),s=o.find(c=>c.breaks!=null);return Array.isArray(s?.breaks)?Array.from(s.breaks):(s=o.find(c=>c.level!=null),s?.level?s.level.apply(Array.from(s.level)):(s=o.find(c=>c.limits!=null),An.number({minor:!0})(s.limits)))}),r=l.computed(()=>{let o={scales:t.scales.map(([s])=>s)};if(t.type=="legendkey")o.appearances={text:pt(...t.scales.flatMap(([s,c])=>[c.text])),line:pt(...t.scales.flatMap(([s,c])=>[c.line,c.linerange,c.curve])),point:pt(...t.scales.flatMap(([s,c])=>[c.point])),tile:pt(...t.scales.flatMap(([s,c])=>[c.rect,c.tile,c.polygon]))};else if(t.type=="gradientbar"){let s=t.scales.map(([f])=>f.limits?.max).filter(f=>f!=null).reduce((f,a)=>Math.min(f,a),1/0),c=t.scales.map(([f])=>f.limits?.min).filter(f=>f!=null).reduce((f,a)=>Math.max(f,a),-1/0);o.limits={min:c,max:s},o.appearance=pt(...t.scales.flatMap(([f,a])=>Object.values(a)))}return o});return(o,s)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("span",null,l.toDisplayString(n.value),1),s[0]||(s[0]=l.createTextVNode()),(l.openBlock(),l.createBlock(l.resolveDynamicComponent(e[t.type]),l.mergeProps(r.value,{breaks:i.value}),null,16,["breaks"]))],64))}}),Gf={__name:"CoreLegend",props:{theme:{type:Object,default:()=>({})},scales:Map},setup(t){const e=l.computed(()=>{let i=new Map(Array.from(t.scales).filter(([a])=>a.legend!==!1)),r=Array.from(i.keys()),o=r.map(a=>a.key),s=1;for(let a in o){for(;o.includes("_guide_"+s);)s++;o[a]==null&&(o[a]="_guide_"+s)}let c=r.map(a=>n(a)),f=bo(o,c);return Map.groupBy(i,(a,u)=>f.categories[f[u]])});function n(i){return i==null?null:["gradientbar","legendkey"].includes(i.guide)?i.guide:i.level?"legendkey":["color","fill","alpha"].includes(i.aesthetics)?"gradientbar":"legendkey"}return(i,r)=>t.scales?(l.openBlock(),l.createElementBlock("div",{key:0,class:"vvplot-legend",style:l.normalizeStyle({gap:t.theme.spacing+"px"})},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.value,([[o,s],c])=>(l.openBlock(),l.createBlock(Wf,{key:o,type:s,scales:c},null,8,["type","scales"]))),128))],4)):l.createCommentVNode("",!0)}},Uf=["id"],Kf=["width","height"],Qf=["transform","width","height","fill"],Zf=["transform"],Jf=["transform","clip-path"],_f=["transform"],th=["clip-path"],eh={key:1},nh=Object.assign({inheritAttrs:!1},{__name:"CorePlot",props:l.mergeModels({schema:Object,layers:Array,minRange:Object,expandAdd:Object,flip:Boolean,reverse:Object,paddings:Object,expandMult:Object,coordLevels:Object,levels:Object,scales:Object,axes:{type:Array,default:()=>[]},theme:Object,render:String,clip:Boolean,action:{type:Array,default:()=>[]},selections:{type:Array,default:()=>[]},legendTeleport:null},{selectionPreview:{},selectionPreviewModifiers:{},selectionPreviewTheme:{},selectionPreviewThemeModifiers:{},transition:{},transitionModifiers:{}}),emits:l.mergeModels(["click","singleclick","dblclick","contextmenu","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","wheel","select","move","zoom","rescale","nudge"],["update:selectionPreview","update:selectionPreviewTheme","update:transition"]),setup(t,{expose:e,emit:n}){const i=l.useId(),r=l.createPropsRestProxy(t,["schema","theme","expandAdd","expandMult","coordLevels","levels","scales","flip","reverse","paddings"]),o=n,s=l.inject("range"),c=l.inject("rangePreview"),f=l.useModel(t,"selectionPreview"),a=l.useModel(t,"selectionPreviewTheme");function u(A,E){f.value=A,a.value=E}const h=l.computed(()=>Object.assign({},t.theme?.selection,a.value));function m(){f.value={}}const d=l.useModel(t,"transition"),g=l.useTemplateRef("svg"),p=l.useTemplateRef("layers"),$=l.ref(0),C=l.ref(0);Fi(g,A=>{let{width:E,height:P}=A[0].contentRect;$.value=E,C.value=P});const O=l.computed(()=>new ef(t.schema,r.layers)),B=l.computed(()=>O.value.useScales(t.scales,t.levels).useCoordLevels(t.coordLevels).render(s,t.expandAdd,r.minRange)),j=ne(()=>{let A=Object.fromEntries(["left","right","top","bottom"].map(M=>[M,t.paddings[M]&&t.theme.plot.padding[M]||0])),E=+t.theme.plot.margin.left+A.left,P=+t.theme.plot.margin.right+A.right,x=+t.theme.plot.margin.top+A.top,w=+t.theme.plot.margin.bottom+A.bottom;return x+w>C.value&&(x=C.value*(x/(x+w)),w=C.value-x),E+P>$.value&&(E=$.value*(E/(E+P)),P=$.value-E),{l:E,r:P,t:x,b:w,left:E,right:$.value-P,top:x,bottom:C.value-w,width:$.value-E-P,height:C.value-x-w}}),L=ne(()=>{let A=B.value.coordScales,E=t.expandMult,{min:P,max:x}=S(A.x.range,E.x),{min:w,max:M}=S(A.y.range,E.y),[T,z,H,K]=t.flip?[w,M,P,x]:[P,x,w,M],{width:J,height:tt}=j;return{left:J*T||0,right:J*(1-z)||0,top:tt*K||0,bottom:tt*(1-H)||0,l:J*T||0,r:J*z||0,t:tt*K||0,b:tt*H||0,width:J*(1-T-z),height:tt*(1-K-H),fullWidth:J,fullHeight:tt}});e({vplot:B,panel:j,svg:g});const V=l.computed(()=>{let A=rt.value.translateH+L.left,E=rt.value.translateV+L.top,P=rt.value.scaleH,x=rt.value.scaleV,w=[];return(A!=0||E!=0)&&w.push(`translate(${A}, ${E})`),(P!=1||x!=1)&&w.push(`scale(${P}, ${x})`),{transform:w.join(" ")||null}});function v({value:A,min:E,max:P},x,w,M){let T={};return A!=null&&(T.value=x.invert(w?1-A/M:A/M)),w?(P!=null&&(T.min=x.invert(1-P/M)),E!=null&&(T.max=x.invert(1-E/M))):(E!=null&&(T.min=x.invert(E/M)),P!=null&&(T.max=x.invert(P/M))),T}function y({h:A,hmin:E,hmax:P,v:x,vmin:w,vmax:M}={}){let T=B.value.coordScales,{width:z,height:H}=L,K={},[J,tt,ct]=t.flip?[x,w,M]:[A,E,P],[ut,ot,et]=t.flip?[A,E,P]:[x,w,M];if(J!=null||tt!=null||ct!=null){let{value:q,min:Q,max:W}=v({value:J,min:tt,max:ct},T.x,t.flip!=t.reverse.x,t.flip?H:z);Object.assign(K,Mt({x:q,xmin:Q,xmax:W})),t.flip?Object.assign(K,Mt({v:q,vmin:Q,vmax:W})):Object.assign(K,Mt({h:q,hmin:Q,hmax:W}))}if(ut!=null||ot!=null||et!=null){let{value:q,min:Q,max:W}=v({value:ut,min:ot,max:et},T.y,t.flip==t.reverse.y,t.flip?z:H);Object.assign(K,Mt({y:q,ymin:Q,ymax:W})),t.flip?Object.assign(K,Mt({h:q,hmin:Q,hmax:W})):Object.assign(K,Mt({v:q,vmin:Q,vmax:W}))}return K}function b({value:A,min:E,max:P}={},{oob:x=In}={},w,M,T,z){let H={};return A!=null&&(H.value=T?x(T*(M?1-w(A):w(A)),z):0),E==null&&P==null||(M?(P!=null&&(H.min=T?x(T*(1-w(P)),z):0),E!=null&&(H.max=T?x(T*(1-w(E)),z):0)):(E!=null&&(H.min=T?x(T*w(E),z):0),P!=null&&(H.max=T?x(T*w(P),z):0))),H}function k({h:A,hmin:E,hmax:P,v:x,vmin:w,vmax:M,x:T,xmin:z,xmax:H,y:K,ymin:J,ymax:tt}={},{limited:ct=!1,oob:ut=In}={}){let{width:ot,height:et,l:q,r:Q,t:W,b:nt}=L,mt={},Ft=B.value.coordScales,Pt={min:-q,max:ot+Q},ee={min:-W,max:et+nt};if((T!=null||z!=null||H!=null)&&(t.flip?[x,w,M]=[T,z,H]:[A,E,P]=[T,z,H]),(K!=null||J!=null||tt!=null)&&(t.flip?[A,E,P]=[K,J,tt]:[x,w,M]=[K,J,tt]),A!=null||E!=null||P!=null){let{value:Wt,min:Gt,max:Ut}=b({value:A,min:E,max:P},{oob:ut},Ft[t.flip?"y":"x"],t.reverse[t.flip?"y":"x"],ot,Pt);Object.assign(mt,Mt({h:Wt,hmin:Gt,hmax:Ut}))}if(x!=null||w!=null||M!=null){let{value:Wt,min:Gt,max:Ut}=b({value:x,min:w,max:M},{oob:ut},Ft[t.flip?"x":"y"],!t.reverse[t.flip?"x":"y"],et,ee);Object.assign(mt,Mt({v:Wt,vmin:Gt,vmax:Ut}))}return ct&&(mt.hmin==null&&(mt.hmin=Pt.min),mt.hmax==null&&(mt.hmax=Pt.max),mt.vmin==null&&(mt.vmin=ee.min),mt.vmax==null&&(mt.vmax=ee.max)),mt}function S({min:A,max:E}={},{min:P=0,max:x=0}={}){let w=E-A,M=+A-P*w,T=+E+x*w,z=T-M;return{min:z==0?0:(A-M)/z,max:z==0?0:(T-E)/z}}function N(A){let E=g.value.getBoundingClientRect(),P=Math.trunc(A.clientX)-(E.left+j.left+L.left),x=Math.trunc(A.clientY)-(E.top+j.top+L.top),w=E.left+j.left+L.right-Math.trunc(A.clientX),M=E.top+j.top+L.bottom-Math.trunc(A.clientY),{x:T,y:z}=y({h:P,v:x});return{l:P,t:x,r:w,b:M,x:T,y:z}}function D(A){let E=g.value.getBoundingClientRect();return A.clientX>E.left+j.l&&A.clientX<E.right-j.r&&A.clientY>E.top+j.t&&A.clientY<E.bottom-j.b}function I(A){if(!p.value||A._vhandled||!D(A)||!Array.from(p.value).filter(w=>w.render=="canvas").length)return A;let P={};for(let w in A)P[w]=A[w];P.bubbles=!1;let x=new PointerEvent(A.type,P);for(let w of Object.keys(A)){let M=Object.getOwnPropertyDescriptor(x,w);M&&!M.writable&&!M.set||(x[w]=A[w])}for(let w=p.value.length-1;w>=0;w--)p.value[w].dispatchEvent(x)===!1&&A.preventDefault();for(let w of Object.keys(x)){let M=Object.getOwnPropertyDescriptor(x,w);M&&!M.writable&&!M.set||(A[w]=x[w])}return x._vhandled?x:A}let Y,F=0,X=0;function R(A){let E=I(A),P=N(A);if(o("pointerdown",E,P),E.defaultPrevented&&A.preventDefault(),r.clip&&!D(A))return;let x=A.currentTarget,w=!1;function M(H){(Math.abs(H.screenX-A.screenX)>3||Math.abs(H.screenY-A.screenY)>3)&&(w=!0,H.currentTarget.removeEventListener("pointermove",M))}A.target.addEventListener("pointermove",M,{passive:!0}),A.target.addEventListener("pointerup",function(H){if(A.target.removeEventListener("pointermove",M),!w){let K=new PointerEvent("singleclick",H);H.target.dispatchEvent(K)}},{once:!0});let T=r.selections.findLast(H=>["buttons","ctrlKey","shiftKey","altKey","metaKey"].every(K=>H[K]==A[K]));if(T){let{x:H=!1,y:K=!1,"min-range-x":J=0,"min-range-y":tt=0}=T;A.target.setPointerCapture(A.pointerId),x.style.userSelect="none";let ct=(({xmin:ot,xmax:et})=>({min:ot,max:et}))(T),ut=(({ymin:ot,ymax:et})=>({min:ot,max:et}))(T);A.target.onpointermove=ot=>{if(!H&&!K||!w)return;let et=N(ot),q={};if(H){let Q=st(P.x,ct),W=st(st(et.x,et.x>Q?{min:lt(Q,J)}:{max:lt(Q,-J)}),ct);q.xmin=Q>W?W:Q,q.xmax=Q>W?Q:W,q.xreverse=Q>W}if(K){let Q=st(P.y,ut),W=st(st(et.y,et.y>Q?{min:lt(Q,tt)}:{max:lt(Q,-tt)}),ut);q.ymin=Q>W?W:Q,q.ymax=Q>W?Q:W}f.value=q,a.value=T.theme},A.target.onpointerup=ot=>{if(ot.currentTarget.onpointerup=null,ot.currentTarget.onpointermove=null,x.style.userSelect=null,f.value={},w&&(H||K)){T.buttons&1&&(ot.currentTarget.onclick=W=>{W.currentTarget.onclick=null,ce(T.onClick,W)}),T.buttons&2&&(ot.currentTarget.oncontextmenu=W=>{W.currentTarget.oncontextmenu=null,ce(T.onContextmenu,W)});let et=N(ot),q={},Q=new PointerEvent("select",A);if(H){let W=st(P.x,ct),nt=st(st(et.x,et.x>W?{min:lt(W,J)}:{max:lt(W,-J)}),ct);if(W==nt)return;q.xmin=W>nt?nt:W,q.xmax=W>nt?W:nt,q.xreverse=W>nt}if(K){let W=st(P.y,ut),nt=st(st(et.y,et.y>W?{min:lt(W,tt)}:{max:lt(W,-tt)}),ut);if(W==nt)return;q.ymin=W>nt?nt:W,q.ymax=W>nt?W:nt,q.yreverse=W>nt}T["onUpdate:modelValue"]?.(q),ce(T.onSelect,Mt(q),Q)||o("select",Mt(q),Q)}if(!w&&T.dismissible!==!1){if(ot.defaultPrevented)return;let et=T.modelValue;if(T.dismissible!==!0&&["xmin","xmax","ymin","ymax"].every(W=>et?.[W]==null))return;let q={},Q=new PointerEvent("select",A);T["onUpdate:modelValue"]?.(q),ce(T.onDismiss,Mt(q),Q)||o("select",Mt(q),Q)}};return}let z=r.action.find(H=>H.action=="move"&&["buttons","ctrlKey","shiftKey","altKey","metaKey"].every(K=>H[K]==A[K]));if(z){A.target.setPointerCapture(A.pointerId),x.style.userSelect="none",Y=clearTimeout(Y);let H=0,K=L.width,J=0,tt=L.height,ct,ut,ot,et,q=k(z);A.target.onpointermove=Q=>{let{x:W=!1,y:nt=!1}=z,[mt,Ft]=t.flip?[nt,W]:[W,nt];if(mt){F+=Q.movementX;let Ut=st(-F,{min:q.hmin-H,max:q.hmax-K});ct=H+Ut,ut=K+Ut}if(Ft){X+=Q.movementY;let Ut=st(-X,{min:q.vmin-J,max:q.vmax-tt});ot=J+Ut,et=tt+Ut}let{xmin:Pt,xmax:ee,ymin:Wt,ymax:Gt}=y({hmin:ct,hmax:ut,vmin:ot,vmax:et});Object.assign(c,{xmin:Pt,xmax:ee,ymin:Wt,ymax:Gt})},A.target.onpointerup=Q=>{Q.currentTarget.onpointerup=null,Q.currentTarget.onpointermove=null,x.style.userSelect=null,Y=setTimeout(()=>{dt(z,Q),F=X=0},300)};return}}let U=0,G;function it(A){let E=I(A),P=N(A);if(o("wheel",E,P),E.defaultPrevented&&A.preventDefault(),r.clip&&!D(A))return;let x=r.action.find(w=>["zoom","nudge"].includes(w.action)&&["ctrlKey","shiftKey","altKey","metaKey"].every(M=>w[M]==A[M]));!x||!x.x&&!x.y||(G=clearTimeout(G),A.preventDefault(),d.value="transform 0.1s ease-out",U+=A.deltaY,_(x,P,U),G=setTimeout(()=>{dt(x,A),U=0},300))}function _(A,E,P){if(A.action=="zoom"){let{x=!1,y:w=!1,"min-range-x":M=0,"min-range-y":T=0,sensitivity:z=1.25}=A,H=z**(U/100),[K,J]=t.flip?[w,x]:[x,w],tt=k(A),ct,ut,ot,et;K&&(ct=Math.max(E.l-Math.max(E.l,0)*H,tt.hmin??-1/0),ut=Math.min(E.l+Math.max(E.r,0)*H,tt.hmax??1/0)),J&&(ot=Math.max(E.t-Math.max(E.t,0)*H,tt.vmin??-1/0),et=Math.min(E.t+Math.max(E.b,0)*H,tt.vmax??1/0));let{xmin:q,xmax:Q,ymin:W,ymax:nt}=y({hmin:ct,hmax:ut,vmin:ot,vmax:et});if(x&&H<1&&Q-q<M){let mt=(Q+q)/2;q=mt-M/2,Q=mt+M/2}if(w&&H<1&&nt-W<T){let mt=(nt+W)/2;W=mt-T/2,nt=mt+T/2}Object.assign(c,{xmin:q,xmax:Q,ymin:W,ymax:nt})}if(A.action=="nudge"){let{x=!1,y:w=!1,sensitivity:M=.1}=A,[T,z]=t.flip?[w,x]:[x,w],H=k(A),K=0,J=L.width,tt=0,ct=L.height,ut,ot,et,q;if(T){let Ft=M*L.width*(-P/120),Pt=st(-Ft,{min:H.hmin-K,max:H.hmax-J});ut=K+Pt,ot=J+Pt}if(z){let Ft=M*L.height*(-P/120),Pt=st(-Ft,{min:H.vmin-tt,max:H.vmax-ct});et=tt+Pt,q=ct+Pt}let{xmin:Q,xmax:W,ymin:nt,ymax:mt}=y({hmin:ut,hmax:ot,vmin:et,vmax:q});Object.assign(c,{xmin:Q,xmax:W,ymin:nt,ymax:mt})}}const rt=l.computed(()=>{let A=0,E=L.width,P=0,x=L.height,{hmin:w=A,hmax:M=E,vmin:T=P,vmax:z=x}=k(c??{}),H=E-A,K=M-w,J=x-P,tt=z-T;return{scaleH:H<1||K<1||Math.abs(H-K)<1?1:H/K,translateH:(A*M-w*E)/(M-w)||0,scaleV:J<1||tt<1||Math.abs(J-tt)<1?1:J/tt,translateV:(P*z-T*x)/(z-T)||0}});l.watch(rt,({translateH:A,translateV:E,scaleH:P,scaleV:x})=>{!A&&!E&&P==1&&x==1&&(d.value=null)},{deep:!0});function dt(A,E){let P=Mt(c)??{};if(!Object.keys(P).length)return;let x=new PointerEvent(E.type,E);ce(A.emit,P,x)||o(A.action,P,x),bt(P),Object.assign(c,{xmin:void 0,xmax:void 0,ymin:void 0,ymax:void 0})}const gt={pointerdown:R,pointerup(A){let E=I(A),P=N(A);o("pointerup",E,P),E.defaultPrevented&&A.preventDefault()},pointerover(A){o("pointerover",A,N(A))},pointerout(A){o("pointerout",A,N(A))},pointerenter(A){o("pointerenter",A,N(A))},pointerleave(A){o("pointerleave",A,N(A))},click(A){o("click",I(A),N(A))},contextmenu(A){let E=I(A),P=N(A);o("contextmenu",E,P),E.defaultPrevented&&A.preventDefault()},singleclick(A){o("singleclick",I(A),N(A))},dblclick(A){let E=I(A),P=N(A);o("dblclick",E,P),E.defaultPrevented&&A.preventDefault()},pointermove(A){let E=I(A),P=N(A);o("pointermove",E,P),E.defaultPrevented&&A.preventDefault()},wheel:it};function bt(A){let{xmin:E,xmax:P,ymin:x,ymax:w}=A,{xmin:M,xmax:T,ymin:z,ymax:H}=s;E=E!=null?lt(E,+t.expandAdd.x.min):M,P=P!=null?lt(P,-t.expandAdd.x.max):T,x=x!=null?lt(x,+t.expandAdd.y.min):z,w=w!=null?lt(w,-t.expandAdd.y.max):H,!(E==M&&P==T&&x==z&&w==H)&&Object.assign(s,{xmin:E,xmax:P,ymin:x,ymax:w})}const St=ne(()=>{let A=c?.xmin??s?.xmin,E=c?.xmax??s?.xmax,P=c?.ymin??s?.ymin,x=c?.ymax??s?.ymax;return{x:A||E?{min:A,max:E}:void 0,y:P||x?{min:P,max:x}:void 0}}),vt=l.computed(()=>{let A={x:B.value.coordScales.x,y:B.value.coordScales.y};return r.axes.filter(E=>E.coord in A).filter(E=>["h","v"].includes(E.orientation)).map(({coord:E,breaks:P,labels:x,titles:w,minorBreaks:M,...T})=>({coord:E,axis:new nf(A[E],{breaks:P,labels:x,titles:w,minorBreaks:M}),etc:T}))}),wt=l.computed(()=>vt.value.map(({coord:A,axis:E,etc:P})=>{let{majorBreaks:x,minorBreaks:w,ticks:M}=E.getBindings({range:St[A],expandMult:t.expandMult[A]}),{showGrid:T,orientation:z,...H}=P;return{majorBreaks:x,minorBreaks:w,ticks:M,showGrid:T,coord:A,orientation:z,bind:H}})),Vt=l.computed(()=>{let A=wt.value.filter(P=>P.showGrid&&P.orientation=="v"),E=wt.value.filter(P=>P.showGrid&&P.orientation=="h");return{h:{majorBreaks:Oe(A.flatMap(P=>P.majorBreaks),P=>P.position),minorBreaks:Oe(A.flatMap(P=>P.minorBreaks),P=>P.position)},v:{majorBreaks:Oe(E.flatMap(P=>P.majorBreaks),P=>P.position),minorBreaks:Oe(E.flatMap(P=>P.minorBreaks),P=>P.position)}}}),jt=l.computed(()=>wt.value.map(({orientation:A,coord:E,bind:P,ticks:x})=>{let{onMove:w=(...K)=>o("move",...K),onZoom:M=(...K)=>o("zoom",...K),onRescale:T=(...K)=>o("rescale",...K),onNudge:z=(...K)=>o("nudge",...K),...H}=P;return{orientation:A,bind:{coord:E,orientation:A,ticks:x,layout:L,coord2pos:k,pos2coord:y,...H},on:{zoom:M,move:w,rescale:T,nudge:z,rangechange:bt}}}));return(A,E)=>(l.openBlock(),l.createElementBlock("svg",l.mergeProps({ref:"svg",width:"100%",height:"100%"},l.toHandlers(gt,!0),A.$attrs),[l.createElementVNode("defs",null,[l.createElementVNode("clipPath",{id:`${l.unref(i)}-plot-clip`},[l.createElementVNode("rect",{x:"0",y:"0",width:l.unref(j).width,height:l.unref(j).height},null,8,Kf)],8,Uf)]),E[6]||(E[6]=l.createTextVNode()),t.theme.plot.background?(l.openBlock(),l.createElementBlock("rect",{key:0,transform:`translate(${l.unref(j).left}, ${l.unref(j).top})`,width:l.unref(j).width,height:l.unref(j).height,fill:t.theme.plot.background},null,8,Qf)):l.createCommentVNode("",!0),E[7]||(E[7]=l.createTextVNode()),l.createElementVNode("g",{transform:`translate(${l.unref(j).left}, ${l.unref(j).top})`,style:{"pointer-events":"none"}},[t.theme.grid.h?(l.openBlock(),l.createBlock(bf,l.mergeProps({key:0},Vt.value.h,{layout:l.unref(L),theme:t.theme.grid.h,activeTransform:rt.value,coord2pos:k,transition:d.value}),null,16,["layout","theme","activeTransform","transition"])):l.createCommentVNode("",!0),E[2]||(E[2]=l.createTextVNode()),t.theme.grid.v?(l.openBlock(),l.createBlock(kf,l.mergeProps({key:1},Vt.value.v,{layout:l.unref(L),theme:t.theme.grid.v,activeTransform:rt.value,coord2pos:k,transition:d.value}),null,16,["layout","theme","activeTransform","transition"])):l.createCommentVNode("",!0)],8,Zf),E[8]||(E[8]=l.createTextVNode()),l.createElementVNode("g",{transform:`translate(${l.unref(j).left}, ${l.unref(j).top})`,"clip-path":r.clip?`url(#${l.unref(i)}-plot-clip)`:null},[l.createElementVNode("g",l.mergeProps(V.value,{style:{transition:d.value}}),[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(B.value.layers,P=>(l.openBlock(),l.createBlock(Of,l.mergeProps({ref_for:!0,ref_key:"layers",ref:p,data:P.data},{ref_for:!0},P.vBind,{layout:l.unref(L),geom:P.geom,coord2pos:k,getCoord:N,"default-render":r.render}),null,16,["data","layout","geom","default-render"]))),256))],16),E[3]||(E[3]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.selections,P=>(l.openBlock(),l.createBlock(Il,l.mergeProps({coord2pos:k,pos2coord:y,layout:l.unref(L),onSelecting:u,onSelectend:m,transition:d.value,activeTransform:rt.value},{ref_for:!0},P,{flip:t.flip}),null,16,["layout","transition","activeTransform","flip"]))),256)),E[4]||(E[4]=l.createTextVNode()),l.createVNode(Il,{coord2pos:k,pos2coord:y,layout:l.unref(L),modelValue:f.value,transition:d.value,activeTransform:rt.value,theme:h.value,flip:t.flip},null,8,["layout","modelValue","transition","activeTransform","theme","flip"])],8,Jf),E[9]||(E[9]=l.createTextVNode()),l.createElementVNode("g",{transform:`translate(${l.unref(j).left}, ${l.unref(j).top})`},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(jt.value.filter(P=>typeof P.bind.position!="number"),P=>(l.openBlock(),l.createBlock(El,l.mergeProps({ref_for:!0},P.bind,l.toHandlers(P.on),{transition:d.value,"onUpdate:transition":E[0]||(E[0]=x=>d.value=x),activeTransform:rt.value}),null,16,["transition","activeTransform"]))),256)),E[5]||(E[5]=l.createTextVNode()),l.createElementVNode("g",{"clip-path":r.clip?`url(#${l.unref(i)}-plot-clip)`:null},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(jt.value.filter(P=>typeof P.bind.position=="number"),P=>(l.openBlock(),l.createBlock(El,l.mergeProps({ref_for:!0},P.bind,l.toHandlers(P.on),{transition:d.value,"onUpdate:transition":E[1]||(E[1]=x=>d.value=x),activeTransform:rt.value}),null,16,["transition","activeTransform"]))),256))],8,th)],8,_f),E[10]||(E[10]=l.createTextVNode()),r.legendTeleport?(l.openBlock(),l.createElementBlock("foreignObject",eh,[(l.openBlock(),l.createBlock(l.Teleport,{defer:"",to:r.legendTeleport},[l.createVNode(Gf,{scales:B.value?.scales,theme:t.theme.legend},null,8,["scales","theme"])],8,["to"]))])):l.createCommentVNode("",!0)],16))}}),Tn={$_type:"action",$_props:{}},wi={$_type:"layer"},bi={$_props:{geom:"tile",stat:"bar"},$_type:"layer"},ki={$_props:{geom:"blank",stat:"identity"},$_type:"layer"},vi={$_props:{geom:"boxplot",stat:"boxplot"},$_type:"layer"},Ni={$_props:{geom:"curve",stat:"curve"},$_type:"layer"},Ai={$_props:{geom:"curve",stat:"density"},$_type:"layer",$_argnames:["n","kernel"]},$i={$_props:{geom:"rect",stat:"histogram"},$_type:"layer",$_argnames:["bins","binwidth","breaks"]},Mi={$_props:{geom:"line",stat:"line"},$_type:"layer",$_argnames:["orientation"]},Si={$_props:{geom:"line",stat:"linerange"},$_type:"layer"},Bi={$_props:{geom:"line",stat:"path"},$_type:"layer"},Ti={$_props:{geom:"point",stat:"point"},$_type:"layer"},Ei={$_props:{geom:"polygon",stat:"polygon"},$_type:"layer"},Ci={$_props:{geom:"rect",stat:"rect"},$_type:"layer"},Pi={$_props:{geom:"line",stat:"segment"},$_type:"layer"},Oi={$_props:{geom:"stick",stat:"stick"},$_type:"layer"},Vi={$_props:{geom:"text",stat:"text"},$_type:"layer"},ji={$_props:{geom:"textsegment",stat:"textsegment"},$_type:"layer"},Li={$_props:{geom:"tile",stat:"tile"},$_type:"layer"},ih=Object.freeze(Object.defineProperty({__proto__:null,VVGeom:wi,VVGeomBar:bi,VVGeomBlank:ki,VVGeomBoxplot:vi,VVGeomCurve:Ni,VVGeomDensity:Ai,VVGeomHistogram:$i,VVGeomLine:Mi,VVGeomLinerange:Si,VVGeomPath:Bi,VVGeomPoint:Ti,VVGeomPolygon:Ei,VVGeomRect:Ci,VVGeomSegment:Pi,VVGeomStick:Oi,VVGeomText:Vi,VVGeomTextsegment:ji,VVGeomTile:Li},Symbol.toStringTag,{value:"Module"})),Ii={$_type:"axis",$_props:{}},Di={$_type:"axis",$_props:{coord:"x"}},Xi={$_type:"axis",$_props:{coord:"y"}},rh=Object.freeze(Object.defineProperty({__proto__:null,VVAxis:Ii,VVAxisX:Di,VVAxisY:Xi},Symbol.toStringTag,{value:"Module"})),lh={key:0,class:"vvplot-panel",style:{"pointer-events":"auto",display:"contents"}},Dl=Object.assign({inheritAttrs:!1},{__name:"Plot",props:l.mergeModels({data:Array,scales:Object,aes:Object,expandAdd:Object,expandMult:Object,extend:Object,levels:Object,range:Object,minRange:Object,rangePreview:Object,axes:[Object,Array],theme:[Object,Array],action:[Object,Array],reverse:Object,render:String,flip:Boolean,clip:{type:Boolean,default:!0},resize:null,legendTeleport:null},{selectionPreview:{default:()=>({})},selectionPreviewModifiers:{},selectionPreviewTheme:{default:()=>({})},selectionPreviewThemeModifiers:{},transition:{},transitionModifiers:{},width:{},widthModifiers:{},height:{},heightModifiers:{}}),emits:l.mergeModels(["resize","rangechange","select","update:range","update:rangePreview"],["update:selectionPreview","update:selectionPreviewTheme","update:transition","update:width","update:height"]),setup(t,{expose:e,emit:n}){const i={...ih,...rh,VVAction:Tn,VVSelection:Tn},r={x:"y",y:"x",h:"v",v:"h",top:"bottom",bottom:"top",left:"right",right:"left"};function o(x){return x==null?x:x===""||!!x}const s=n,c=l.useModel(t,"selectionPreview"),f=l.useModel(t,"selectionPreviewTheme"),a=l.useModel(t,"transition");function u(x){return x==null?[]:x.flatMap(w=>w.type==l.Fragment?u(w.children):w.type=="template"?u(w.children).map(M=>(M.props={...M.props,...w.props},M)):w)}function h(x){return{props:Object.fromEntries(x.props.map(M=>{try{if(M.type==7)return[M.arg.content,new Function("return "+M.exp.content)()];if(M.type==6)return[M.name,M.value?.content??""]}catch{}}).filter(M=>M!=null)),children:x.children.map(M=>()=>[h(M)]),type:i[x.tag]}}const m=l.useSlots(),d=l.useAttrs(),g=l.reactive({axis:{},layer:{},action:{},selection:{},dom:{}});for(let x in m)l.watch(()=>m[x]?.(),w=>{let M=u(w).flatMap(z=>z.type?.template?po(z.type.template,{decodeEntities:!0}).children.map(K=>h(K)):z).filter(z=>z!=null),T=Object.groupBy(M,z=>z.type.$_type??"dom");for(let z in T)g[z][x]=T[z]},{immediate:!0});const p=l.computed(()=>Object.values(g.layer).flat()),$=l.computed(()=>Object.values(g.axis).flat()),C=l.computed(()=>Object.values(g.action).flat()),O=l.computed(()=>Object.values(g.selection).flat()),B=l.computed(()=>Object.keys(g.dom).flatMap(x=>x=="panel"?[]:g.dom[x])),j=l.computed(()=>{let x={},w={};for(let M in d)if(M.startsWith("on")){let T=Array.isArray(d[M])?d[M]:[d[M]];x[M]=T.filter(z=>typeof z=="function"),w[M]=T.filter(z=>typeof z!="function")}else w[M]=d[M];return{plot:x,wrapper:w}}),L=l.computed(()=>{let x=[or,ar].concat(t.theme??[]);return Eo(To(Bo(...x),t.flip))},{deep:!0}),V=ne(()=>{let x=$.value.map(T=>({...T.type.$_props,...T.props})),w=x.filter(T=>T.coord==="x"),M=x.filter(T=>T.coord==="y");return{x:w.find(T=>o(T.primary))??w.find(T=>T.primary==null&&!o(T.secondary)),y:M.find(T=>o(T.primary))??M.find(T=>T.primary==null&&!o(T.secondary))}}),v={levels:l.reactive({}),extend:l.reactive({}),"min-range":l.reactive({}),"expand-add":l.reactive({}),"expand-mult":l.reactive({}),boundary:l.reactive({}),reverse:l.reactive({}),min:l.reactive({}),max:l.reactive({}),"min-preview":l.reactive({}),"max-preview":l.reactive({})};l.watch(V,x=>{for(let w of["x","y"])for(let M in v)v[M][w]=x?.[w]?.[M]},{immediate:!0});const y=ne(()=>{let x={};for(let w of["x","y"]){let M=v.boundary[w];x[w]={min:M?.min??M?.[0],max:M?.max??M?.[1]}}return x}),b=l.computed(()=>({data:t.data,aes:t.aes,extendX:v.extend.x??t.extend?.x??0,extendY:v.extend.y??t.extend?.y??0})),k=l.computed(()=>p.value.map(x=>{let{geom:w,stat:M,scales:T,data:z,"extend-x":H,"extend-y":K,...J}={...x.type.$_props,...x.props},tt=x.type.$_argnames||[],ct={},ut={},ot={},et={};for(let q in J)q!="key"&&(tt.includes(q)?ut[q]=J[q]:q.startsWith("on")?et[q]=J[q]:typeof J[q]=="function"?ct[q]=J[q]:["class","style","render"].includes(q)?et[q]=J[q]:ot[q]=J[q]);return{geom:w,stat:M,data:z,aes:ct,attrs:ot,scales:T,args:ut,extendX:H,extendY:K,vBind:et}})),S=l.computed(()=>(({x,y:w,...M})=>M)(t.levels??{})),N=l.computed(()=>{let x={};for(let w of["x","y"])x[w]=v.levels[w]??t.levels?.[w];return x}),D=l.computed(()=>{let x={};for(let w of["x","y"]){let M=v.min[w]??t.range?.[w+"min"],T=v.max[w]??t.range?.[w+"max"];x[w+"min"]=isFinite(M)&&!Number.isNaN(M)?M:null,x[w+"max"]=isFinite(T)&&!Number.isNaN(T)?T:null}return x}),I=l.computed(()=>{let x={};for(let w of["x","y"]){let M=v["min-preview"][w]??t.rangePreview?.[w+"min"],T=v["max-preview"][w]??t.rangePreview?.[w+"max"];x[w+"min"]=isFinite(M)&&!Number.isNaN(M)?M:null,x[w+"max"]=isFinite(T)&&!Number.isNaN(T)?T:null}return x}),Y=ne(()=>({xmin:V?.x?.["onUpdate:min"],xmax:V?.x?.["onUpdate:max"],ymin:V?.y?.["onUpdate:min"],ymax:V?.y?.["onUpdate:max"]})),F=ne(()=>({xmin:V?.x?.["onUpdate:minPreview"],xmax:V?.x?.["onUpdate:maxPreview"],ymin:V?.y?.["onUpdate:minPreview"],ymax:V?.y?.["onUpdate:maxPreview"]})),X=l.reactive({}),R=l.reactive({});l.watch(D,(x,w)=>{x?.xmin!==w?.xmin&&(X.xmin=x.xmin),x?.xmax!==w?.xmax&&(X.xmax=x.xmax),x?.ymin!==w?.ymin&&(X.ymin=x.ymin),x?.ymax!==w?.ymax&&(X.ymax=x.ymax)},{immediate:!0}),l.watch(I,(x,w)=>{x?.xmin!==w?.xmin&&(R.xmin=x.xmin),x?.xmax!==w?.xmax&&(R.xmax=x.xmax),x?.ymin!==w?.ymin&&(R.ymin=x.ymin),x?.ymax!==w?.ymax&&(R.ymax=x.ymax)},{immediate:!0}),l.watch(()=>({...X}),(x,w)=>{for(let M in Y)Y[M]?.(x[M]);s("rangechange",{...x},{...w}),s("update:range",{...x})},{deep:!0}),l.watch(()=>R,x=>{for(let w in F)F[w]?.(x[w]);s("update:rangePreview",{...x})},{deep:!0}),l.provide("range",X),l.provide("rangePreview",R);const U=l.computed(()=>({x:v["min-range"].x??t.minRange?.x??0,y:v["min-range"].y??t.minRange?.y??0})),G=l.computed(()=>{let x=v["expand-add"].x??t.expandAdd?.x??0,w=v["expand-add"].y??t.expandAdd?.y??0;return Array.isArray(x)?x={min:x[0],max:x[1]}:typeof x=="number"&&(x={min:x,max:x}),Array.isArray(w)?w={min:w[0],max:w[1]}:typeof w=="number"&&(w={min:w,max:w}),{x,y:w}}),it=l.computed(()=>{let x=v["expand-mult"].x??t.expandMult?.x??.05,w=v["expand-mult"].y??t.expandMult?.y??.05;return Array.isArray(x)?x={min:x[0],max:x[1]}:typeof x=="number"&&(x={min:x,max:x}),Array.isArray(w)?w={min:w[0],max:w[1]}:typeof w=="number"&&(w={min:w,max:w}),{x,y:w}}),_=ne(()=>({x:o(v.reverse.x)??t.reverse?.x??!1,y:o(v.reverse.y)??t.reverse?.y??!1})),rt={left:1,right:2,middle:4,X1:8,X2:16},dt=l.computed(()=>{let x=t.flip?{x:"v",y:"h"}:{x:"h",y:"v"},w=$.value.map(M=>({...M.type.$_props,...M.props,$_children:M.children})).concat(t.axes??[]);return w.every(M=>M?.coord!="x")&&w.push({coord:"x"}),w.every(M=>M?.coord!="y")&&w.push({coord:"y"}),w.map(({coord:M,position:T,title:z,breaks:H,labels:K,titles:J,"minor-breaks":tt,"show-grid":ct,theme:ut=[],extend:ot,boundary:et,action:q,primary:Q,secondary:W,"expand-mult":nt,"expand-add":mt,levels:Ft,limits:Pt,min:ee,max:Wt,"onUpdate:min":Gt,"onUpdate:max":Ut,$_children:ah,...sh})=>{let ge=x[M];T=T??"start",T=="start"?(T={h:"bottom",v:"left"}[ge],_[r[M]]&&(T=r[T])):T=="end"&&(T={h:"top",v:"right"}[ge],_[r[M]]&&(T=r[T]));let ch=Object.values(ah??{}).filter(Nt=>typeof Nt=="function").flatMap(Nt=>u(Nt())).map(Nt=>({...Nt.type.$_props,...Nt.props})).concat(q??[]).flatMap(Nt=>{let Yl=[];for(let En of["move","nudge","zoom","rescale"]){let Rt=Nt[En];if(Rt==null||Rt===!1)continue;let uh="on"+En.charAt(0).toUpperCase()+En.slice(1);Yl.push({action:En,[ge+"min"]:Rt.min??Nt.min??et?.min??et?.[0]??y?.[M]?.min,[ge+"max"]:Rt.max??Nt.max??et?.max??et?.[1]??y?.[M]?.max,["min-range-"+ge]:Rt["min-range"]??Nt["min-range"],ctrlKey:!!(Rt.ctrl??o(Nt.ctrl)),shiftKey:!!(Rt.shift??o(Nt.shift)),altKey:!!(Rt.alt??o(Nt.alt)),metaKey:!!(Rt.meta??o(Nt.meta)),buttons:Rt.buttons??rt[Rt.button]??Nt.buttons??rt[Nt.button]??1,emit:Nt[uh]})}return Yl});return{coord:M,orientation:ge,position:T,title:z,breaks:H,labels:K,titles:J,minorBreaks:tt,showGrid:o(ct)??T!=="none",extend:ot??v.extend[M],theme:Object.assign({},...[L.value?.axis?.[T]??L.value?.axis?.[ge]].concat(ut)),action:ch,...sh}}).filter(M=>M!=null)}),gt=l.reactive({});l.watch(dt,x=>{for(let w of["left","right","top","bottom"])gt[w]=x.some(M=>M.position==w)},{immediate:!0});const bt=l.computed(()=>C.value.map(x=>({...x.type.$_props,...x.props})).concat(t.action??[]).flatMap(x=>{let w=[];for(let M of["select","move","nudge","zoom"]){let T=x[M];if(T==null||T===!1)continue;let z=T.x==null&&T.y==null&&x.x==null&&x.y==null,H="on"+M.charAt(0).toUpperCase()+M.slice(1);w.push({action:M,x:z||!!(T.x??o(x.x)),y:z||!!(T.y??o(x.y)),xmin:T.xmin??x.xmin??y?.x?.min,xmax:T.xmax??x.xmax??y?.x?.max,ymin:T.ymin??x.ymin??y?.y?.min,ymax:T.ymax??x.ymax??y?.y?.max,"min-range-x":T["min-range-x"]??x["min-range-x"],"min-range-y":T["min-range-y"]??x["min-range-y"],ctrlKey:!!(T.ctrl??o(x.ctrl)),shiftKey:!!(T.shift??o(x.shift)),altKey:!!(T.alt??o(x.alt)),metaKey:!!(T.meta??o(x.meta)),buttons:T.buttons??rt[T.button]??x.buttons??rt[x.button]??1,emit:x[H]})}return w})),St=l.computed(()=>O.value.map(x=>({...x.type.$_props,...x.props})).map(({once:x,move:w,dismissible:M,resize:T,x:z,y:H,xmin:K,xmax:J,ymin:tt,ymax:ct,ctrl:ut,shift:ot,alt:et,meta:q,button:Q,buttons:W,modelValue:nt,"onUpdate:modelValue":mt,theme:Ft=[],...Pt})=>{let ee=z==null&&H==null;return o(x)?(nt=l.reactive({}),mt=null):mt==null&&(nt=l.reactive(nt??{}),mt=Wt=>{for(let Gt in nt)delete nt[Gt];Object.assign(nt,Wt)}),{move:!!o(w),dismissible:M==null?void 0:M!==!1,resize:!!o(T),x:ee||!!o(z),y:ee||!!o(H),xmin:K??y?.x?.min,xmax:J??y?.x?.max,ymin:tt??y?.y?.min,ymax:ct??y?.y?.max,ctrlKey:!!o(ut),shiftKey:!!o(ot),altKey:!!o(et),metaKey:!!o(q),buttons:W??rt[Q]??1,modelValue:nt,"onUpdate:modelValue":mt,theme:Object.assign({},...[L.value?.selection].concat(Ft)),onSelect:(Wt,Gt)=>s("select",Wt,Gt),...Pt}})),vt=l.useTemplateRef("wrapper"),wt=l.useTemplateRef("plot"),Vt=l.useModel(t,"width"),jt=l.useModel(t,"height");l.onMounted(()=>{l.watch(Vt,x=>{vt.value.style.width=we(x,"px")??null},{immediate:!0}),l.watch(jt,x=>{vt.value.style.height=we(x,"px")??null},{immediate:!0})});let A={width:0,height:0};Fi(wt,x=>{let{width:w,height:M}=x[0].contentRect;vt.value.style.width&&(Vt.value=w),vt.value.style.height&&(jt.value=M),(w>0||M>0)&&(A.width>0||A.height>0)&&s("resize",{width:w,height:M},A),A={width:w,height:M}});const E=l.computed(()=>({position:"absolute",pointerEvents:"none",left:we(wt.value?.panel?.left,"px"),top:we(wt.value?.panel?.top,"px"),width:we(wt.value?.panel?.width,"px"),height:we(wt.value?.panel?.height,"px")})),P=l.computed(()=>{let x={position:"relative",overflow:"hidden",boxSizing:"border-box"};return t.resize==="both"||t.resize===!0||t.resize===""?Object.assign(x,{resize:"both"}):t.resize==="horizontal"||t.resize==="x"&&!t.flip||t.resize==="y"&&t.flip?Object.assign(x,{resize:"horizontal"}):(t.resize==="vertical"||t.resize==="y"&&!t.flip||t.resize==="x"&&t.flip)&&Object.assign(x,{resize:"vertical"}),x});return e({get svg(){return wt.value.svg},serialize(){return ko(wt.value.svg)}}),(x,w)=>(l.openBlock(),l.createElementBlock("div",l.mergeProps({ref:"wrapper",class:"vvplot",style:P.value},j.value.wrapper),[l.createVNode(nh,l.mergeProps({ref:"plot",paddings:gt,schema:b.value,layers:k.value,"min-range":U.value,"expand-add":G.value,"expand-mult":it.value,reverse:l.unref(_),flip:t.flip,"coord-levels":N.value,levels:S.value,scales:t.scales,axes:dt.value,theme:L.value,selections:St.value,transition:a.value,"onUpdate:transition":w[0]||(w[0]=M=>a.value=M)},j.value.plot,{"selection-preview":c.value,"onUpdate:selectionPreview":w[1]||(w[1]=M=>c.value=M),"selection-preview-theme":f.value,"onUpdate:selectionPreviewTheme":w[2]||(w[2]=M=>f.value=M),action:bt.value,clip:t.clip,render:t.render,legendTeleport:t.legendTeleport,onSelect:w[3]||(w[3]=(M,T)=>s("select",M,T))}),null,16,["paddings","schema","layers","min-range","expand-add","expand-mult","reverse","flip","coord-levels","levels","scales","axes","theme","selections","transition","selection-preview","selection-preview-theme","action","clip","render","legendTeleport"]),w[4]||(w[4]=l.createTextVNode()),l.createElementVNode("div",{class:"vvplot-panel-container",style:l.normalizeStyle(E.value)},[g.dom.panel?.length?(l.openBlock(),l.createElementBlock("div",lh,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(g.dom.panel,M=>(l.openBlock(),l.createBlock(l.resolveDynamicComponent(M)))),256))])):l.createCommentVNode("",!0)],4),w[5]||(w[5]=l.createTextVNode()),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(B.value,M=>(l.openBlock(),l.createBlock(l.resolveDynamicComponent(M)))),256))],16))}}),Xl={$_type:"selection",$_props:{}},oh=Object.freeze(Object.defineProperty({__proto__:null,VVAction:Tn,VVAxis:Ii,VVAxisX:Di,VVAxisY:Xi,VVGeom:wi,VVGeomBar:bi,VVGeomBlank:ki,VVGeomBoxplot:vi,VVGeomCurve:Ni,VVGeomDensity:Ai,VVGeomHistogram:$i,VVGeomLine:Mi,VVGeomLinerange:Si,VVGeomPath:Bi,VVGeomPoint:Ti,VVGeomPolygon:Ei,VVGeomRect:Ci,VVGeomSegment:Pi,VVGeomStick:Oi,VVGeomText:Vi,VVGeomTextsegment:ji,VVGeomTile:Li,VVPlot:Dl,VVSelection:Xl},Symbol.toStringTag,{value:"Module"}));return ft.VVAction=Tn,ft.VVAxis=Ii,ft.VVAxisX=Di,ft.VVAxisY=Xi,ft.VVGeom=wi,ft.VVGeomBar=bi,ft.VVGeomBlank=ki,ft.VVGeomBoxplot=vi,ft.VVGeomCurve=Ni,ft.VVGeomDensity=Ai,ft.VVGeomHistogram=$i,ft.VVGeomLine=Mi,ft.VVGeomLinerange=Si,ft.VVGeomPath=Bi,ft.VVGeomPoint=Ti,ft.VVGeomPolygon=Ei,ft.VVGeomRect=Ci,ft.VVGeomSegment=Pi,ft.VVGeomStick=Oi,ft.VVGeomText=Vi,ft.VVGeomTextsegment=ji,ft.VVGeomTile=Li,ft.VVPlot=Dl,ft.VVSelection=Xl,ft.components=oh,ft.number_cut=Sl,ft.oob=zu,ft.vvbreak=An,ft.vvlabel=xi,ft.vvscale=Ml,ft.vvtheme=Co,Object.defineProperty(ft,Symbol.toStringTag,{value:"Module"}),ft})({},Vue);
|