vibe64 0.1.26 → 0.1.28
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/dist/assets/{VRadioGroup-D6WRdUau.js → VRadioGroup-BuRMvs7d.js} +1 -1
- package/dist/assets/{VTabs-BGX5dGoS.js → VTabs-CQq9CAuT.js} +1 -1
- package/dist/assets/{VTextarea-CD6H_mtJ.js → VTextarea-Duvzvmjq.js} +1 -1
- package/dist/assets/{Vibe64AsyncModuleState-Cel3OePx.js → Vibe64AsyncModuleState-DuuzlJDp.js} +1 -1
- package/dist/assets/{Vibe64AuthSettingsButton-CMMeacsl.js → Vibe64AuthSettingsButton-CKOCL-kl.js} +1 -1
- package/dist/assets/{Vibe64DashboardShell-C2UhX2ke.js → Vibe64DashboardShell-DMT8aOp1.js} +1 -1
- package/dist/assets/{Vibe64DatabaseWorkspace-C43TE5-O.js → Vibe64DatabaseWorkspace-CqH0zfFZ.js} +1 -1
- package/dist/assets/{Vibe64OutputControls-BmzH2ASf.js → Vibe64OutputControls-DDILWOYb.js} +1 -1
- package/dist/assets/{Vibe64RepositoryWorkspace-CT9tkvHh.js → Vibe64RepositoryWorkspace-D11BZHtF.js} +1 -1
- package/dist/assets/Vibe64SessionFiles-BSoB7Xrs.js +1 -0
- package/dist/assets/{Vibe64SessionFiles-CH5PCxwg.css → Vibe64SessionFiles-DVux69YS.css} +1 -1
- package/dist/assets/{Vibe64SubsystemsView-DNx-pZp8.js → Vibe64SubsystemsView-tLlxmK3M.js} +1 -1
- package/dist/assets/{Vibe64SystemWorldView-UdNJZbqX.js → Vibe64SystemWorldView-8og8TPyL.js} +1 -1
- package/dist/assets/{_sessionId_-DZTmI19N.js → _sessionId_-Dts6gv4W.js} +1 -1
- package/dist/assets/{_sessionTool_-CugJWIK4.js → _sessionTool_-bHJUlHCW.js} +1 -1
- package/dist/assets/_slug_-B3fqw8Sl.js +12 -0
- package/dist/assets/_slug_-DfHqx2_b.css +1 -0
- package/dist/assets/{dashboard-D4NXqPY1.js → dashboard-CcD6GIaB.js} +1 -1
- package/dist/assets/{definitions-CyUCoqu-.js → definitions-ChGXm26a.js} +1 -1
- package/dist/assets/{error-kYKTA8fu.js → error-CStS-Kbt.js} +1 -1
- package/dist/assets/{index-hy7AAm-B.js → index-B262pg9q.js} +1 -1
- package/dist/assets/{index-DX6Rm6jZ.js → index-B_grpOta.js} +1 -1
- package/dist/assets/{index-Cpt19GIW.js → index-BtHA_DX9.js} +1 -1
- package/dist/assets/{index-SBc6H2In.js → index-C4KnwA0g.js} +4 -4
- package/dist/assets/{index-DeRx59Iq.js → index-CC7BFJAg.js} +1 -1
- package/dist/assets/{index-6Kv-7k0S.js → index-CKFrWxnr.js} +1 -1
- package/dist/assets/{index-BDe3NnFP.js → index-CPG-_bMW.js} +1 -1
- package/dist/assets/{index-CuEZOpKL.js → index-CV9pOpbQ.js} +1 -1
- package/dist/assets/{index-D4p1hWbM.js → index-DIQxSy1c.js} +1 -1
- package/dist/assets/{index-D5vnCntG.js → index-DVaJ8fEr.js} +1 -1
- package/dist/assets/{index-BGu7hfTb.js → index-DtGqjUin.js} +1 -1
- package/dist/assets/{index-Cca4WXur.js → index-YQALXwL4.js} +1 -1
- package/dist/assets/{placement-Nw6LF6xp.js → placement-Cyt3SnRe.js} +1 -1
- package/dist/assets/{studioGateApi-B2eiydiA.js → studioGateApi-BwBnOYBp.js} +1 -1
- package/dist/assets/{useArchivedVibe64Sessions-LeGda1Y9.js → useArchivedVibe64Sessions-_FKt1-qN.js} +1 -1
- package/dist/assets/{useVibe64ConversationLog-BPyKYbvH.js → useVibe64ConversationLog-BjnpqM9K.js} +1 -1
- package/dist/assets/{useVibe64ProjectScope-n5T5l2pY.js → useVibe64ProjectScope-DcDkjbLT.js} +1 -1
- package/dist/assets/{useVibe64SessionData-BToODuTg.js → useVibe64SessionData-BHLSmuPm.js} +1 -1
- package/dist/assets/{useVibe64SessionSelection-D1wXIWTm.js → useVibe64SessionSelection-G6KQKJxb.js} +1 -1
- package/dist/assets/{vibe64RepositoryRealtime-Xo7aIksE.js → vibe64RepositoryRealtime-C2WPn5do.js} +1 -1
- package/dist/assets/{vibe64SessionInfo-Dy_4bL3a.js → vibe64SessionInfo-8kuxgD5r.js} +1 -1
- package/dist/assets/{vibe64SessionPanelModel-5UED-6V-.js → vibe64SessionPanelModel-DDaXjAJ_.js} +1 -1
- package/dist/assets/{vibe64SessionRequestConfig-B7Llggdb.js → vibe64SessionRequestConfig-uGWcyQY6.js} +1 -1
- package/dist/assets/{vibe64SessionToolDefinitions-C4maKOfp.js → vibe64SessionToolDefinitions-D5CgOIqa.js} +1 -1
- package/dist/assets/{vueRefOrGetterValue-_KqAOFjr.js → vueRefOrGetterValue-CV9c3oBd.js} +1 -1
- package/dist/index.html +1 -1
- package/node_modules/@jskit-ai/connector-google-calendar/package.json +3 -3
- package/node_modules/@jskit-ai/connector-google-calendar/patterns/calendar-cli/example/package.json +4 -4
- package/node_modules/@jskit-ai/connectors-catalog/package.json +3 -3
- package/node_modules/@jskit-ai/connectors-catalog/test/dbt-semantic-layer.test.js +3 -0
- package/node_modules/@jskit-ai/connectors-catalog/test/google-ads.test.js +3 -0
- package/node_modules/@jskit-ai/connectors-catalog/test/salesforce.test.js +3 -0
- package/node_modules/@jskit-ai/connectors-catalog/test/xero.test.js +3 -0
- package/node_modules/@jskit-ai/connectors-core/package.json +4 -4
- package/node_modules/@jskit-ai/http-web/package.json +6 -6
- package/node_modules/@jskit-ai/kernel/package.json +1 -1
- package/node_modules/@jskit-ai/kernel/server/runtime/fastifyBootstrap.js +50 -10
- package/node_modules/@jskit-ai/kernel/server/runtime/fastifyBootstrap.test.js +38 -0
- package/node_modules/@jskit-ai/kernel/shared/support/normalize.js +8 -0
- package/node_modules/@jskit-ai/kernel/shared/support/normalize.test.js +10 -0
- package/node_modules/@jskit-ai/payments-core/package.json +1 -1
- package/node_modules/@jskit-ai/realtime/package.json +3 -3
- package/node_modules/@jskit-ai/realtime/patterns/realtime-application/example/package.json +2 -2
- package/node_modules/@jskit-ai/resource-core/package.json +2 -2
- package/node_modules/@jskit-ai/resource-crud-core/package.json +3 -3
- package/node_modules/@jskit-ai/shell-web/package.json +2 -2
- package/node_modules/@jskit-ai/uploads-runtime/package.json +2 -2
- package/node_modules/@local/current-app/package.json +1 -1
- package/node_modules/@local/main/package.json +2 -2
- package/node_modules/@local/studio-health/package.json +1 -1
- package/node_modules/@local/vibe64-accounts/package.json +3 -3
- package/node_modules/@local/vibe64-core/package.json +1 -1
- package/node_modules/@local/vibe64-database-tools/package.json +3 -3
- package/node_modules/@local/vibe64-project/package.json +1 -1
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProvider.js +34 -0
- package/node_modules/@local/vibe64-sessions/package.json +1 -1
- package/node_modules/@local/vibe64-sessions/src/server/sessionRenewal.js +4 -1
- package/node_modules/@local/vibe64-source-editor/package.json +5 -5
- package/node_modules/@local/vibe64-system-graph/package.json +3 -3
- package/node_modules/@local/vibe64-terminals/package.json +2 -2
- package/node_modules/@local/vibe64-terminals/src/server/agent/providers/codexSessionAgentProvider.js +6 -0
- package/node_modules/@local/vibe64-terminals/src/server/agent/sessionAgentManager.js +16 -0
- package/node_modules/@local/vibe64-terminals/src/server/codexTerminal.js +180 -64
- package/node_modules/@local/vibe64-terminals/src/server/registerRoutes.js +12 -0
- package/node_modules/@local/vibe64-terminals/src/server/service.js +57 -16
- package/node_modules/@local/vibe64-terminals/src/server/sessionPromptHints.js +9 -1
- package/node_modules/@local/vibe64-terminals/src/server/sessionSaveCommitMessage.js +1 -1
- package/package.json +15 -15
- package/packages/current-app/package.json +1 -1
- package/packages/main/package.json +2 -2
- package/packages/studio-health/package.json +1 -1
- package/packages/vibe64-accounts/package.json +3 -3
- package/packages/vibe64-core/package.json +1 -1
- package/packages/vibe64-database-tools/package.json +3 -3
- package/packages/vibe64-project/package.json +1 -1
- package/packages/vibe64-runtime/src/server/codexAppServerProvider.js +34 -0
- package/packages/vibe64-sessions/package.json +1 -1
- package/packages/vibe64-sessions/src/server/sessionRenewal.js +4 -1
- package/packages/vibe64-source-editor/package.json +5 -5
- package/packages/vibe64-system-graph/package.json +3 -3
- package/packages/vibe64-terminals/package.json +2 -2
- package/packages/vibe64-terminals/src/server/agent/providers/codexSessionAgentProvider.js +6 -0
- package/packages/vibe64-terminals/src/server/agent/sessionAgentManager.js +16 -0
- package/packages/vibe64-terminals/src/server/codexTerminal.js +180 -64
- package/packages/vibe64-terminals/src/server/registerRoutes.js +12 -0
- package/packages/vibe64-terminals/src/server/service.js +57 -16
- package/packages/vibe64-terminals/src/server/sessionPromptHints.js +9 -1
- package/packages/vibe64-terminals/src/server/sessionSaveCommitMessage.js +1 -1
- package/dist/assets/Vibe64SessionFiles-BS5MW7Qz.js +0 -1
- package/dist/assets/_slug_-BzRzebKA.js +0 -12
- package/dist/assets/_slug_-Q7ibe3SE.css +0 -1
package/dist/assets/{Vibe64DatabaseWorkspace-C43TE5-O.js → Vibe64DatabaseWorkspace-CqH0zfFZ.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as _export_sfc,a as openBlock,c as createElementBlock,d as createBaseVNode,F as Fragment,y as renderList,t as toDisplayString,$ as normalizeClass,e as createVNode,i as unref,dC as mdiTableEye,dD as mdiTable,h as VIcon,r as createCommentVNode,J as renderSlot,b as createBlock,w as withCtx,ad as resolveDynamicComponent,A as computed,dE as mdiKeyVariant,dF as mdiLinkVariant,aK as defineComponent,o as onMounted,dG as createPropsRestProxy,ck as toRef,B as ref,bT as useSlots,dm as onUnmounted,dH as useAttrs,N as mergeProps,H as watch,c2 as normalizeStyle,j as createTextVNode,au as inject,dI as effectScope,a6 as nextTick,dJ as onBeforeMount,C as onBeforeUnmount,dK as isMemoSame,aP as shallowRef,dL as getCurrentInstance,cm as getCurrentScope,ag as onScopeDispose,dM as toValue$1,bC as provide,aM as h,cq as resolveComponent,bz as reactive,bd as isRef,dN as toRefs$1,dO as customRef,dP as readonly,aQ as markRaw,bE as watchEffect,am as normalizeProps,a3 as withModifiers,dQ as mdiPin,dR as mdiPinOutline,n as VBtn,bG as mdiChevronDown,dS as mdiChevronUp,af as useUiFeedback,aa as mdiMagnify,Y as VAutocomplete,dT as mdiImageFilterCenterFocus,S as VSheet,dn as VBtnToggle,bb as VSelect,br as VDivider,cC as mdiRestore,dU as mdiUndo,dV as mdiRedo,O as VMenu,a$ as VList,b0 as VListItem,ab as mdiClose,dW as mdiFullscreenExit,dX as mdiFullscreen,dY as mdiTuneVariant,ai as VChip,K as VSkeletonLoader,an as guardReactiveProps,V as VCard,k as VCardText,a9 as VTextField,a8 as withKeys,l as VCardActions,z as VSpacer,p as VDialog,dZ as toRaw,aC as withDirectives,aD as vShow,a2 as VSwitch,d_ as useVibe64DatabaseTools,d$ as mdiDatabaseAlertOutline,e0 as mdiDatabaseOutline,e1 as mdiGraphOutline,e2 as mdiTableSearch,ar as mdiCreationOutline,bF as mdiChevronRight,bI as mdiChevronLeft,aj as mdiRefresh,at as mdiPlus,e3 as mdiBookmarkOutline,cH as mdiDeleteOutline,e4 as mdiHistory,q as mdiAlertCircleOutline,e5 as mdiPlay,cs as mdiStop,e6 as mdiFilterPlusOutline,e7 as mdiBookmarkPlusOutline,ba as mdiPencilOutline,aA as mdiCheckCircleOutline,e8 as mdiCodeTags,b8 as mdiSend,av as mdiInformationOutline,g as VCardTitle,b_ as VCheckbox,I as VAlert}from"./index-SBc6H2In.js";import{p as LanguageSupport,w as LRLanguage,q as ifNotIn,u as completeFromList,x as indentNodeProp,z as continuedIndent,B as foldNodeProp,o as styleTags,t as tags,l as ExternalTokenizer,L as LRParser,I as syntaxTree,a as EditorView,h as EditorState,a6 as lineNumbers,a8 as history,a9 as drawSelection,ao as highlightActiveLine,ad as bracketMatching,ac as syntaxHighlighting,am as defaultHighlightStyle,Z as keymap,ah as defaultKeymap,ai as historyKeymap}from"./index-BYZl5lR4.js";import{V as VRadioGroup,a as VRadio}from"./VRadioGroup-D6WRdUau.js";import{V as VTextarea}from"./VTextarea-CD6H_mtJ.js";const whitespace=36;const LineComment=1;const BlockComment=2;const String$1=3;const Number$1=4;const Bool=5;const Null=6;const ParenL=7;const ParenR=8;const BraceL=9;const BraceR=10;const BracketL=11;const BracketR=12;const Semi=13;const Dot=14;const Operator=15;const Punctuation=16;const SpecialVar=17;const Identifier=18;const QuotedIdentifier=19;const Keyword=20;const Type=21;const Bits=22;const Bytes=23;const Builtin=24;function isAlpha(ch){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=48&&ch<=57}function isHexDigit(ch){return ch>=48&&ch<=57||ch>=97&&ch<=102||ch>=65&&ch<=70}function readLiteral(input,endQuote,backslashEscapes){for(let escaped=false;;){if(input.next<0)return;if(input.next==endQuote&&!escaped){input.advance();return}escaped=backslashEscapes&&!escaped&&input.next==92;input.advance()}}function readDoubleDollarLiteral(input,tag){scan:for(;;){if(input.next<0)return;if(input.next==36){input.advance();for(let i=0;i<tag.length;i++){if(input.next!=tag.charCodeAt(i))continue scan;input.advance()}if(input.next==36){input.advance();return}}else{input.advance()}}}function readPLSQLQuotedLiteral(input,openDelim){let matchingDelim="[{<(".indexOf(String.fromCharCode(openDelim));let closeDelim=matchingDelim<0?openDelim:"]}>)".charCodeAt(matchingDelim);for(;;){if(input.next<0)return;if(input.next==closeDelim&&input.peek(1)==39){input.advance(2);return}input.advance()}}function readWord(input,result){for(;;){if(input.next!=95&&!isAlpha(input.next))break;if(result!=null)result+=String.fromCharCode(input.next);input.advance()}return result}function readWordOrQuoted(input){if(input.next==39||input.next==34||input.next==96){let quote=input.next;input.advance();readLiteral(input,quote,false)}else{readWord(input)}}function readBits(input,endQuote){while(input.next==48||input.next==49)input.advance();if(endQuote&&input.next==endQuote)input.advance()}function readNumber(input,sawDot){for(;;){if(input.next==46){if(sawDot)break;sawDot=true}else if(input.next<48||input.next>57){break}input.advance()}if(input.next==69||input.next==101){input.advance();if(input.next==43||input.next==45)input.advance();while(input.next>=48&&input.next<=57)input.advance()}}function eol(input){while(!(input.next<0||input.next==10))input.advance()}function inString(ch,str){for(let i=0;i<str.length;i++)if(str.charCodeAt(i)==ch)return true;return false}const Space=" \r\n";function keywords(keywords2,types,builtin){let result=Object.create(null);result["true"]=result["false"]=Bool;result["null"]=result["unknown"]=Null;for(let kw of keywords2.split(" "))if(kw)result[kw]=Keyword;for(let tp of types.split(" "))if(tp)result[tp]=Type;for(let kw of(builtin||"").split(" "))if(kw)result[kw]=Builtin;return result}const SQLTypes="array binary bit boolean char character clob date decimal double float int integer interval large national nchar nclob numeric object precision real smallint time timestamp varchar varying ";const SQLKeywords="absolute action add after all allocate alter and any are as asc assertion at authorization before begin between both breadth by call cascade cascaded case cast catalog check close collate collation column commit condition connect connection constraint constraints constructor continue corresponding count create cross cube current current_date current_default_transform_group current_transform_group_for_type current_path current_role current_time current_timestamp current_user cursor cycle data day deallocate declare default deferrable deferred delete depth deref desc describe descriptor deterministic diagnostics disconnect distinct do domain drop dynamic each else elseif end end-exec equals escape except exception exec execute exists exit external fetch first for foreign found from free full function general get global go goto grant group grouping handle having hold hour identity if immediate in indicator initially inner inout input insert intersect into is isolation join key language last lateral leading leave left level like limit local localtime localtimestamp locator loop map match method minute modifies module month names natural nesting new next no none not of old on only open option or order ordinality out outer output overlaps pad parameter partial path prepare preserve primary prior privileges procedure public read reads recursive redo ref references referencing relative release repeat resignal restrict result return returns revoke right role rollback rollup routine row rows savepoint schema scroll search second section select session session_user set sets signal similar size some space specific specifictype sql sqlexception sqlstate sqlwarning start state static system_user table temporary then timezone_hour timezone_minute to trailing transaction translation treat trigger under undo union unique unnest until update usage user using value values view when whenever where while with without work write year zone ";const defaults={backslashEscapes:false,hashComments:false,spaceAfterDashes:false,slashComments:false,doubleQuotedStrings:false,doubleDollarQuotedStrings:false,unquotedBitLiterals:false,treatBitsAsBytes:false,charSetCasts:false,plsqlQuotingMechanism:false,operatorChars:"*+-%<>!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:false,words:keywords(SQLKeywords,SQLTypes)};function dialect(spec,kws,types,builtin){let dialect2={};for(let prop in defaults)dialect2[prop]=(spec.hasOwnProperty(prop)?spec:defaults)[prop];if(kws)dialect2.words=keywords(kws,types||"",builtin);return dialect2}function tokensFor(d){return new ExternalTokenizer(input=>{var _a;let{next}=input;input.advance();if(inString(next,Space)){while(inString(input.next,Space))input.advance();input.acceptToken(whitespace)}else if(next==36&&d.doubleDollarQuotedStrings){let tag=readWord(input,"");if(input.next==36){input.advance();readDoubleDollarLiteral(input,tag);input.acceptToken(String$1)}}else if(next==39||next==34&&d.doubleQuotedStrings){readLiteral(input,next,d.backslashEscapes);input.acceptToken(String$1)}else if(next==35&&d.hashComments||next==47&&input.next==47&&d.slashComments){eol(input);input.acceptToken(LineComment)}else if(next==45&&input.next==45&&(!d.spaceAfterDashes||input.peek(1)==32)){eol(input);input.acceptToken(LineComment)}else if(next==47&&input.next==42){input.advance();for(let depth=1;;){let cur=input.next;if(input.next<0)break;input.advance();if(cur==42&&input.next==47){depth--;input.advance();if(!depth)break}else if(cur==47&&input.next==42){depth++;input.advance()}}input.acceptToken(BlockComment)}else if((next==101||next==69)&&input.next==39){input.advance();readLiteral(input,39,true);input.acceptToken(String$1)}else if((next==110||next==78)&&input.next==39&&d.charSetCasts){input.advance();readLiteral(input,39,d.backslashEscapes);input.acceptToken(String$1)}else if(next==95&&d.charSetCasts){for(let i=0;;i++){if(input.next==39&&i>1){input.advance();readLiteral(input,39,d.backslashEscapes);input.acceptToken(String$1);break}if(!isAlpha(input.next))break;input.advance()}}else if(d.plsqlQuotingMechanism&&(next==113||next==81)&&input.next==39&&input.peek(1)>0&&!inString(input.peek(1),Space)){let openDelim=input.peek(1);input.advance(2);readPLSQLQuotedLiteral(input,openDelim);input.acceptToken(String$1)}else if(inString(next,d.identifierQuotes)){const endQuote=next==91?93:next;readLiteral(input,endQuote,false);input.acceptToken(QuotedIdentifier)}else if(next==40){input.acceptToken(ParenL)}else if(next==41){input.acceptToken(ParenR)}else if(next==123){input.acceptToken(BraceL)}else if(next==125){input.acceptToken(BraceR)}else if(next==91){input.acceptToken(BracketL)}else if(next==93){input.acceptToken(BracketR)}else if(next==59){input.acceptToken(Semi)}else if(d.unquotedBitLiterals&&next==48&&input.next==98){input.advance();readBits(input);input.acceptToken(Bits)}else if((next==98||next==66)&&(input.next==39||input.next==34)){const quoteStyle=input.next;input.advance();if(d.treatBitsAsBytes){readLiteral(input,quoteStyle,d.backslashEscapes);input.acceptToken(Bytes)}else{readBits(input,quoteStyle);input.acceptToken(Bits)}}else if(next==48&&(input.next==120||input.next==88)||(next==120||next==88)&&input.next==39){let quoted=input.next==39;input.advance();while(isHexDigit(input.next))input.advance();if(quoted&&input.next==39)input.advance();input.acceptToken(Number$1)}else if(next==46&&input.next>=48&&input.next<=57){readNumber(input,true);input.acceptToken(Number$1)}else if(next==46){input.acceptToken(Dot)}else if(next>=48&&next<=57){readNumber(input,false);input.acceptToken(Number$1)}else if(inString(next,d.operatorChars)){while(inString(input.next,d.operatorChars))input.advance();input.acceptToken(Operator)}else if(inString(next,d.specialVar)){if(input.next==next)input.advance();readWordOrQuoted(input);input.acceptToken(SpecialVar)}else if(next==58||next==44){input.acceptToken(Punctuation)}else if(isAlpha(next)){let word=readWord(input,String.fromCharCode(next));input.acceptToken(input.next==46||input.peek(-word.length-1)==46?Identifier:(_a=d.words[word.toLowerCase()])!==null&&_a!==void 0?_a:Identifier)}})}const tokens=tokensFor(defaults);const parser$1=LRParser.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,tokens],topRules:{"Script":[0,25]},tokenPrec:0});function tokenBefore(tree){let cursor=tree.cursor().moveTo(tree.from,-1);while(/Comment/.test(cursor.name))cursor.moveTo(cursor.from,-1);return cursor.node}function idName(doc,node){let text=doc.sliceString(node.from,node.to);let quoted=/^([`'"\[])(.*)([`'"\]])$/.exec(text);return quoted?quoted[2]:text}function plainID(node){return node&&(node.name=="Identifier"||node.name=="QuotedIdentifier")}function pathFor(doc,id2){if(id2.name=="CompositeIdentifier"){let path=[];for(let ch=id2.firstChild;ch;ch=ch.nextSibling)if(plainID(ch))path.push(idName(doc,ch));return path}return[idName(doc,id2)]}function parentsFor(doc,node){for(let path=[];;){if(!node||node.name!=".")return path;let name=tokenBefore(node);if(!plainID(name))return path;path.unshift(idName(doc,name));node=tokenBefore(name)}}function sourceContext(state,startPos){let pos=syntaxTree(state).resolveInner(startPos,-1);let aliases=getAliases(state.doc,pos);if(pos.name=="Identifier"||pos.name=="QuotedIdentifier"||pos.name=="Keyword"){return{from:pos.from,quoted:pos.name=="QuotedIdentifier"?state.doc.sliceString(pos.from,pos.from+1):null,parents:parentsFor(state.doc,tokenBefore(pos)),aliases}}if(pos.name=="."){return{from:startPos,quoted:null,parents:parentsFor(state.doc,pos),aliases}}else{return{from:startPos,quoted:null,parents:[],empty:true,aliases}}}const EndFrom=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function getAliases(doc,at){let statement;for(let parent=at;!statement;parent=parent.parent){if(!parent)return null;if(parent.name=="Statement")statement=parent}let aliases=null;for(let scan=statement.firstChild,sawFrom=false,prevID=null;scan;scan=scan.nextSibling){let kw=scan.name=="Keyword"?doc.sliceString(scan.from,scan.to).toLowerCase():null;let alias=null;if(!sawFrom){sawFrom=kw=="from"}else if(kw=="as"&&prevID&&plainID(scan.nextSibling)){alias=idName(doc,scan.nextSibling)}else if(kw&&EndFrom.has(kw)){break}else if(prevID&&plainID(scan)){alias=idName(doc,scan)}if(alias){if(!aliases)aliases=Object.create(null);aliases[alias]=pathFor(doc,prevID)}prevID=/Identifier$/.test(scan.name)?scan:null}return aliases}function maybeQuoteCompletions(openingQuote,closingQuote,completions){return completions.map(c=>({...c,label:c.label[0]==openingQuote?c.label:openingQuote+c.label+closingQuote,apply:void 0}))}const Span=/^\w*$/;const QuotedSpan=/^[`'"\[]?\w*[`'"\]]?$/;function isSelfTag(namespace2){return namespace2.self&&typeof namespace2.self.label=="string"}class CompletionLevel{constructor(idQuote,idCaseInsensitive){this.idQuote=idQuote;this.idCaseInsensitive=idCaseInsensitive;this.list=[];this.children=void 0}child(name){let children2=this.children||(this.children=Object.create(null));let found=children2[name];if(found)return found;if(name&&!this.list.some(c=>c.label==name))this.list.push(nameCompletion(name,"type",this.idQuote,this.idCaseInsensitive));return children2[name]=new CompletionLevel(this.idQuote,this.idCaseInsensitive)}maybeChild(name){return this.children?this.children[name]:null}addCompletion(option){let found=this.list.findIndex(o=>o.label==option.label);if(found>-1)this.list[found]=option;else this.list.push(option)}addCompletions(completions){for(let option of completions)this.addCompletion(typeof option=="string"?nameCompletion(option,"property",this.idQuote,this.idCaseInsensitive):option)}addNamespace(namespace2){if(Array.isArray(namespace2)){this.addCompletions(namespace2)}else if(isSelfTag(namespace2)){this.addNamespace(namespace2.children)}else{this.addNamespaceObject(namespace2)}}addNamespaceObject(namespace2){for(let name of Object.keys(namespace2)){let children2=namespace2[name],self=null;let parts=name.replace(/\\?\./g,p=>p=="."?"\0":p).split("\0");let scope=this;if(isSelfTag(children2)){self=children2.self;children2=children2.children}for(let i=0;i<parts.length;i++){if(self&&i==parts.length-1)scope.addCompletion(self);scope=scope.child(parts[i].replace(/\\\./g,"."))}scope.addNamespace(children2)}}}function nameCompletion(label,type,idQuote,idCaseInsensitive){if(new RegExp("^[a-z_][a-z_\\d]*$",idCaseInsensitive?"i":"").test(label))return{label,type};return{label,type,apply:idQuote+label+getClosingQuote(idQuote)}}function getClosingQuote(openingQuote){return openingQuote==="["?"]":openingQuote}function completeFromSchema(schema,tables,schemas,defaultTableName,defaultSchemaName,dialect2){var _a;let idQuote=((_a=dialect2===null||dialect2===void 0?void 0:dialect2.spec.identifierQuotes)===null||_a===void 0?void 0:_a[0])||'"';let top=new CompletionLevel(idQuote,!!(dialect2===null||dialect2===void 0?void 0:dialect2.spec.caseInsensitiveIdentifiers));let defaultSchema=defaultSchemaName?top.child(defaultSchemaName):null;top.addNamespace(schema);if(tables)(defaultSchema||top).addCompletions(tables);if(schemas)top.addCompletions(schemas);if(defaultSchema)top.addCompletions(defaultSchema.list);if(defaultTableName)top.addCompletions((defaultSchema||top).child(defaultTableName).list);return context=>{let{parents,from,quoted,empty:empty2,aliases}=sourceContext(context.state,context.pos);if(empty2&&!context.explicit)return null;if(aliases&&parents.length==1)parents=aliases[parents[0]]||parents;let level=top;for(let name of parents){while(!level.children||!level.children[name]){if(level==top&&defaultSchema)level=defaultSchema;else if(level==defaultSchema&&defaultTableName)level=level.child(defaultTableName);else return null}let next=level.maybeChild(name);if(!next)return null;level=next}let options=level.list;if(level==top&&aliases)options=options.concat(Object.keys(aliases).map(name=>({label:name,type:"constant"})));if(quoted){let openingQuote=quoted[0];let closingQuote=getClosingQuote(openingQuote);let quoteAfter=context.state.sliceDoc(context.pos,context.pos+1)==closingQuote;return{from,to:quoteAfter?context.pos+1:void 0,options:maybeQuoteCompletions(openingQuote,closingQuote,options),validFor:QuotedSpan}}else{return{from,options,validFor:Span}}}}function completionType(tokenType){return tokenType==Type?"type":tokenType==Keyword?"keyword":"variable"}function completeKeywords(keywords2,upperCase,build){let completions=Object.keys(keywords2).map(keyword=>build(upperCase?keyword.toUpperCase():keyword,completionType(keywords2[keyword])));return ifNotIn(["QuotedIdentifier","String","LineComment","BlockComment","."],completeFromList(completions))}let parser=parser$1.configure({props:[indentNodeProp.add({Statement:continuedIndent()}),foldNodeProp.add({Statement(tree,state){return{from:Math.min(tree.from+100,state.doc.lineAt(tree.from).to),to:tree.to}},BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}}),styleTags({Keyword:tags.keyword,Type:tags.typeName,Builtin:tags.standard(tags.name),Bits:tags.number,Bytes:tags.string,Bool:tags.bool,Null:tags.null,Number:tags.number,String:tags.string,Identifier:tags.name,QuotedIdentifier:tags.special(tags.string),SpecialVar:tags.special(tags.name),LineComment:tags.lineComment,BlockComment:tags.blockComment,Operator:tags.operator,"Semi Punctuation":tags.punctuation,"( )":tags.paren,"{ }":tags.brace,"[ ]":tags.squareBracket})]});class SQLDialect{constructor(dialect2,language,spec){this.dialect=dialect2;this.language=language;this.spec=spec}get extension(){return this.language.extension}configureLanguage(options,name){return new SQLDialect(this.dialect,this.language.configure(options,name),this.spec)}static define(spec){let d=dialect(spec,spec.keywords,spec.types,spec.builtin);let language=LRLanguage.define({name:"sql",parser:parser.configure({tokenizers:[{from:tokens,to:tokensFor(d)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new SQLDialect(d,language,spec)}}function defaultKeyword(label,type){return{label,type,boost:-1}}function keywordCompletionSource(dialect2,upperCase=false,build){return completeKeywords(dialect2.dialect.words,upperCase,build||defaultKeyword)}function schemaCompletionSource(config){return config.schema?completeFromSchema(config.schema,config.tables,config.schemas,config.defaultTable,config.defaultSchema,config.dialect||StandardSQL):()=>null}function schemaCompletion(config){return config.schema?(config.dialect||StandardSQL).language.data.of({autocomplete:schemaCompletionSource(config)}):[]}function sql(config={}){let lang=config.dialect||StandardSQL;return new LanguageSupport(lang.language,[schemaCompletion(config),lang.language.data.of({autocomplete:keywordCompletionSource(lang,config.upperCaseKeywords,config.keywordCompletion)})])}const StandardSQL=SQLDialect.define({});const PostgreSQL=SQLDialect.define({charSetCasts:true,doubleDollarQuotedStrings:true,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:SQLKeywords+"abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:SQLTypes+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"});const MySQLKeywords="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill";const MySQLTypes=SQLTypes+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed";const MySQLBuiltin="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee";const MariaSQL=SQLDialect.define({operatorChars:"*+-%<>!=&|^",charSetCasts:true,doubleQuotedStrings:true,unquotedBitLiterals:true,hashComments:true,spaceAfterDashes:true,specialVar:"@?",identifierQuotes:"`",keywords:SQLKeywords+"always generated groupby_concat hard persistent shutdown soft virtual "+MySQLKeywords,types:MySQLTypes,builtin:MySQLBuiltin});function quotedIdentifier(value="",delimiter='"'){const name=String(value||"");if(!name){throw new TypeError("A database identifier is missing.")}return`${delimiter}${name.replaceAll(delimiter,delimiter.repeat(2))}${delimiter}`}function defineDatabaseClientDialect(definition={}){if(!definition.codeMirrorDialect||typeof definition.quoteIdentifier!=="function"||typeof definition.stringLiteral!=="function"){throw new TypeError("A database client dialect must implement the complete UI adapter contract.")}return Object.freeze(definition)}const DATABASE_CLIENT_DIALECTS=Object.freeze({mysql:defineDatabaseClientDialect({codeMirrorDialect:MariaSQL,quoteIdentifier:value=>quotedIdentifier(value,"`"),stringLiteral:value=>`'${String(value).replaceAll("\\","\\\\").replaceAll("'","''")}'`}),postgresql:defineDatabaseClientDialect({codeMirrorDialect:PostgreSQL,quoteIdentifier:value=>quotedIdentifier(value,'"'),stringLiteral:value=>`'${String(value).replaceAll("'","''")}'`})});function databaseClientDialect(engine=""){const candidate=String(engine||"").trim().toLowerCase();const dialect2=DATABASE_CLIENT_DIALECTS[candidate];if(!dialect2){throw new TypeError(`Unsupported database client dialect: ${candidate||"missing"}.`)}return dialect2}const _hoisted_1$b={class:"database-table-list"};const _hoisted_2$6={class:"database-workspace__nav-scroll"};const _hoisted_3$6={class:"database-workspace__schema-label"};const _hoisted_4$4=["disabled","title","onClick"];const _hoisted_5$4={key:0,class:"database-workspace__empty-copy"};const _hoisted_6$3={key:0,class:"database-workspace__table-detail"};const _hoisted_7$3={key:0};const _sfc_main$h={__name:"DatabaseTableList",props:{schema:{type:Object,required:true},selectedTableName:{type:String,default:""},search:{type:String,default:""},database:{type:String,default:""},running:{type:Boolean,default:false},interactiveColumns:{type:Boolean,default:false}},emits:["select-table","select-column"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const selectedTable=computed(()=>props.schema.tables.find(table=>table.qualifiedName===props.selectedTableName));const filteredSchemas=computed(()=>{const search=(props.search||"").trim().toLowerCase();return(props.schema.schemas||[]).map(group=>({...group,tables:(props.schema.tables||[]).filter(table=>table.schema===group.name&&(!search||`${table.qualifiedName} ${table.comment}`.toLowerCase().includes(search)))})).filter(group=>group.tables.length>0)});function columnKeyIcon(column={}){var _a,_b,_c;const primary=(_b=(_a=selectedTable.value)==null?void 0:_a.keys)==null?void 0:_b.some(key=>key.primary&&key.columns.includes(column.name));if(primary)return mdiKeyVariant;const foreign=(_c=props.schema.relationships)==null?void 0:_c.some(relationship=>{var _a2;return relationship.sourceTable===((_a2=selectedTable.value)==null?void 0:_a2.qualifiedName)&&relationship.columns.includes(column.name)});return foreign?mdiLinkVariant:mdiTable}return(_ctx,_cache)=>{return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$6,[(openBlock(true),createElementBlock(Fragment,null,renderList(filteredSchemas.value,group=>{return openBlock(),createElementBlock(Fragment,{key:group.name},[createBaseVNode("div",_hoisted_3$6,[createBaseVNode("span",null,toDisplayString(group.name||__props.database),1),createBaseVNode("small",null,toDisplayString(group.tables.length),1)]),(openBlock(true),createElementBlock(Fragment,null,renderList(group.tables,table=>{return openBlock(),createElementBlock("button",{key:table.qualifiedName,class:normalizeClass([{"database-workspace__table-button--active":__props.selectedTableName===table.qualifiedName},"database-workspace__table-button"]),disabled:__props.running,title:table.comment||table.qualifiedName,type:"button",onClick:$event=>emit("select-table",table)},[createVNode(VIcon,{icon:table.kind.includes("view")?unref(mdiTableEye):unref(mdiTable),size:"15"},null,8,["icon"]),createBaseVNode("span",null,[createBaseVNode("strong",null,toDisplayString(table.name),1),createBaseVNode("small",null,toDisplayString(table.kind)+" · "+toDisplayString(table.columns.length)+" fields",1)])],10,_hoisted_4$4)}),128))],64)}),128)),filteredSchemas.value.length===0?(openBlock(),createElementBlock("p",_hoisted_5$4,"No matching tables or views.")):createCommentVNode("",true)]),selectedTable.value?(openBlock(),createElementBlock("section",_hoisted_6$3,[createBaseVNode("header",null,[createBaseVNode("strong",null,toDisplayString(selectedTable.value.name),1),renderSlot(_ctx.$slots,"table-actions",{table:selectedTable.value},void 0,true)]),selectedTable.value.comment?(openBlock(),createElementBlock("p",_hoisted_7$3,toDisplayString(selectedTable.value.comment),1)):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(selectedTable.value.columns,column=>{return openBlock(),createBlock(resolveDynamicComponent(__props.interactiveColumns?"button":"div"),{key:column.name,type:__props.interactiveColumns?"button":void 0,title:column.comment||column.nativeType,class:"database-table-list__column",onClick:$event=>emit("select-column",column)},{default:withCtx(()=>[createVNode(VIcon,{icon:columnKeyIcon(column),size:"13"},null,8,["icon"]),createBaseVNode("span",null,toDisplayString(column.name),1),createBaseVNode("small",null,toDisplayString(column.nativeType),1)]),_:2},1032,["type","title","onClick"])}),128))])):createCommentVNode("",true)])}}};const DatabaseTableList=_export_sfc(_sfc_main$h,[["__scopeId","data-v-3b1c50a4"]]);function tryOnScopeDispose(fn){if(getCurrentScope()){onScopeDispose(fn);return true}return false}function toValue(r){return typeof r==="function"?r():unref(r)}const isClient=typeof window!=="undefined"&&typeof document!=="undefined";const isDef$1=val=>typeof val!=="undefined";const toString=Object.prototype.toString;const isObject=val=>toString.call(val)==="[object Object]";const noop$3=()=>{};function createFilterWrapper(filter2,fn){function wrapper(...args){return new Promise((resolve,reject)=>{Promise.resolve(filter2(()=>fn.apply(this,args),{fn,thisArg:this,args})).then(resolve).catch(reject)})}return wrapper}const bypassFilter=invoke=>{return invoke()};function pausableFilter(extendFilter=bypassFilter){const isActive=ref(true);function pause(){isActive.value=false}function resume(){isActive.value=true}const eventFilter=(...args)=>{if(isActive.value)extendFilter(...args)};return{isActive:readonly(isActive),pause,resume,eventFilter}}function promiseTimeout(ms,throwOnTimeout=false,reason="Timeout"){return new Promise((resolve,reject)=>{if(throwOnTimeout)setTimeout(()=>reject(reason),ms);else setTimeout(resolve,ms)})}function watchWithFilter(source,cb,options={}){const{eventFilter=bypassFilter,...watchOptions}=options;return watch(source,createFilterWrapper(eventFilter,cb),watchOptions)}function watchPausable(source,cb,options={}){const{eventFilter:filter2,...watchOptions}=options;const{eventFilter,pause,resume,isActive}=pausableFilter(filter2);const stop=watchWithFilter(source,cb,{...watchOptions,eventFilter});return{stop,pause,resume,isActive}}function toRefs(objectRef,options={}){if(!isRef(objectRef))return toRefs$1(objectRef);const result=Array.isArray(objectRef.value)?Array.from({length:objectRef.value.length}):{};for(const key in objectRef.value){result[key]=customRef(()=>({get(){return objectRef.value[key]},set(v){var _a;const replaceRef=(_a=toValue(options.replaceRef))!=null?_a:true;if(replaceRef){if(Array.isArray(objectRef.value)){const copy=[...objectRef.value];copy[key]=v;objectRef.value=copy}else{const newObject={...objectRef.value,[key]:v};Object.setPrototypeOf(newObject,Object.getPrototypeOf(objectRef.value));objectRef.value=newObject}}else{objectRef.value[key]=v}}}))}return result}function createUntil(r,isNot=false){function toMatch(condition,{flush="sync",deep=false,timeout:timeout2,throwOnTimeout}={}){let stop=null;const watcher=new Promise(resolve=>{stop=watch(r,v=>{if(condition(v)!==isNot){stop==null?void 0:stop();resolve(v)}},{flush,deep,immediate:true})});const promises=[watcher];if(timeout2!=null){promises.push(promiseTimeout(timeout2,throwOnTimeout).then(()=>toValue(r)).finally(()=>stop==null?void 0:stop()))}return Promise.race(promises)}function toBe(value,options){if(!isRef(value))return toMatch(v=>v===value,options);const{flush="sync",deep=false,timeout:timeout2,throwOnTimeout}=options!=null?options:{};let stop=null;const watcher=new Promise(resolve=>{stop=watch([r,value],([v1,v2])=>{if(isNot!==(v1===v2)){stop==null?void 0:stop();resolve(v1)}},{flush,deep,immediate:true})});const promises=[watcher];if(timeout2!=null){promises.push(promiseTimeout(timeout2,throwOnTimeout).then(()=>toValue(r)).finally(()=>{stop==null?void 0:stop();return toValue(r)}))}return Promise.race(promises)}function toBeTruthy(options){return toMatch(v=>Boolean(v),options)}function toBeNull(options){return toBe(null,options)}function toBeUndefined(options){return toBe(void 0,options)}function toBeNaN(options){return toMatch(Number.isNaN,options)}function toContains(value,options){return toMatch(v=>{const array2=Array.from(v);return array2.includes(value)||array2.includes(toValue(value))},options)}function changed(options){return changedTimes(1,options)}function changedTimes(n=1,options){let count=-1;return toMatch(()=>{count+=1;return count>=n},options)}if(Array.isArray(toValue(r))){const instance={toMatch,toContains,changed,changedTimes,get not(){return createUntil(r,!isNot)}};return instance}else{const instance={toMatch,toBe,toBeTruthy,toBeNull,toBeNaN,toBeUndefined,changed,changedTimes,get not(){return createUntil(r,!isNot)}};return instance}}function until(r){return createUntil(r)}function unrefElement(elRef){var _a;const plain=toValue(elRef);return(_a=plain==null?void 0:plain.$el)!=null?_a:plain}const defaultWindow=isClient?window:void 0;function useEventListener(...args){let target;let events;let listeners;let options;if(typeof args[0]==="string"||Array.isArray(args[0])){[events,listeners,options]=args;target=defaultWindow}else{[target,events,listeners,options]=args}if(!target)return noop$3;if(!Array.isArray(events))events=[events];if(!Array.isArray(listeners))listeners=[listeners];const cleanups=[];const cleanup=()=>{cleanups.forEach(fn=>fn());cleanups.length=0};const register=(el,event,listener,options2)=>{el.addEventListener(event,listener,options2);return()=>el.removeEventListener(event,listener,options2)};const stopWatch=watch(()=>[unrefElement(target),toValue(options)],([el,options2])=>{cleanup();if(!el)return;const optionsClone=isObject(options2)?{...options2}:options2;cleanups.push(...events.flatMap(event=>{return listeners.map(listener=>register(el,event,listener,optionsClone))}))},{immediate:true,flush:"post"});const stop=()=>{stopWatch();cleanup()};tryOnScopeDispose(stop);return stop}function createKeyPredicate$1(keyFilter){if(typeof keyFilter==="function")return keyFilter;else if(typeof keyFilter==="string")return event=>event.key===keyFilter;else if(Array.isArray(keyFilter))return event=>keyFilter.includes(event.key);return()=>true}function onKeyStroke(...args){let key;let handler;let options={};if(args.length===3){key=args[0];handler=args[1];options=args[2]}else if(args.length===2){if(typeof args[1]==="object"){key=true;handler=args[0];options=args[1]}else{key=args[0];handler=args[1]}}else{key=true;handler=args[0]}const{target=defaultWindow,eventName="keydown",passive=false,dedupe=false}=options;const predicate=createKeyPredicate$1(key);const listener=e=>{if(e.repeat&&toValue(dedupe))return;if(predicate(e))handler(e)};return useEventListener(target,eventName,listener,passive)}function cloneFnJSON(source){return JSON.parse(JSON.stringify(source))}function useVModel(props,key,emit,options={}){var _a,_b,_c;const{clone=false,passive=false,eventName,deep=false,defaultValue,shouldEmit}=options;const vm=getCurrentInstance();const _emit=emit||(vm==null?void 0:vm.emit)||((_a=vm==null?void 0:vm.$emit)==null?void 0:_a.bind(vm))||((_c=(_b=vm==null?void 0:vm.proxy)==null?void 0:_b.$emit)==null?void 0:_c.bind(vm==null?void 0:vm.proxy));let event=eventName;if(!key){{key="modelValue"}}event=event||`update:${key.toString()}`;const cloneFn=val=>!clone?val:typeof clone==="function"?clone(val):cloneFnJSON(val);const getValue=()=>isDef$1(props[key])?cloneFn(props[key]):defaultValue;const triggerEmit=value=>{if(shouldEmit){if(shouldEmit(value))_emit(event,value)}else{_emit(event,value)}};if(passive){const initialValue=getValue();const proxy=ref(initialValue);let isUpdating=false;watch(()=>props[key],v=>{if(!isUpdating){isUpdating=true;proxy.value=cloneFn(v);nextTick(()=>isUpdating=false)}});watch(proxy,v=>{if(!isUpdating&&(v!==props[key]||deep))triggerEmit(v)},{deep});return proxy}else{return computed({get(){return getValue()},set(value){triggerEmit(value)}})}}var noop$2={value:()=>{}};function dispatch$1(){for(var i=0,n=arguments.length,_={},t;i<n;++i){if(!(t=arguments[i]+"")||t in _||/[\s.]/.test(t))throw new Error("illegal type: "+t);_[t]=[]}return new Dispatch$1(_)}function Dispatch$1(_){this._=_}function parseTypenames$1$1(typenames,types){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);if(t&&!types.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name}})}Dispatch$1.prototype=dispatch$1.prototype={constructor:Dispatch$1,on:function(typename,callback){var _=this._,T=parseTypenames$1$1(typename+"",_),t,i=-1,n=T.length;if(arguments.length<2){while(++i<n)if((t=(typename=T[i]).type)&&(t=get$1$1(_[t],typename.name)))return t;return}if(callback!=null&&typeof callback!=="function")throw new Error("invalid callback: "+callback);while(++i<n){if(t=(typename=T[i]).type)_[t]=set$1$1(_[t],typename.name,callback);else if(callback==null)for(t in _)_[t]=set$1$1(_[t],typename.name,null)}return this},copy:function(){var copy={},_=this._;for(var t in _)copy[t]=_[t].slice();return new Dispatch$1(copy)},call:function(type,that){if((n=arguments.length-2)>0)for(var args=new Array(n),i=0,n,t;i<n;++i)args[i]=arguments[i+2];if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)},apply:function(type,that,args){if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(var t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)}};function get$1$1(type,name){for(var i=0,n=type.length,c;i<n;++i){if((c=type[i]).name===name){return c.value}}}function set$1$1(type,name,callback){for(var i=0,n=type.length;i<n;++i){if(type[i].name===name){type[i]=noop$2,type=type.slice(0,i).concat(type.slice(i+1));break}}if(callback!=null)type.push({name,value:callback});return type}var xhtml$1="http://www.w3.org/1999/xhtml";const namespaces$1={svg:"http://www.w3.org/2000/svg",xhtml:xhtml$1,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace$1(name){var prefix=name+="",i=prefix.indexOf(":");if(i>=0&&(prefix=name.slice(0,i))!=="xmlns")name=name.slice(i+1);return namespaces$1.hasOwnProperty(prefix)?{space:namespaces$1[prefix],local:name}:name}function creatorInherit$1(name){return function(){var document2=this.ownerDocument,uri=this.namespaceURI;return uri===xhtml$1&&document2.documentElement.namespaceURI===xhtml$1?document2.createElement(name):document2.createElementNS(uri,name)}}function creatorFixed$1(fullname){return function(){return this.ownerDocument.createElementNS(fullname.space,fullname.local)}}function creator$1(name){var fullname=namespace$1(name);return(fullname.local?creatorFixed$1:creatorInherit$1)(fullname)}function none$1(){}function selector$1(selector2){return selector2==null?none$1:function(){return this.querySelector(selector2)}}function selection_select$1(select2){if(typeof select2!=="function")select2=selector$1(select2);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=new Array(n),node,subnode,i=0;i<n;++i){if((node=group[i])&&(subnode=select2.call(node,node.__data__,i,group))){if("__data__"in node)subnode.__data__=node.__data__;subgroup[i]=subnode}}}return new Selection$1$1(subgroups,this._parents)}function array$1(x){return x==null?[]:Array.isArray(x)?x:Array.from(x)}function empty$1(){return[]}function selectorAll$1(selector2){return selector2==null?empty$1:function(){return this.querySelectorAll(selector2)}}function arrayAll$1(select2){return function(){return array$1(select2.apply(this,arguments))}}function selection_selectAll$1(select2){if(typeof select2==="function")select2=arrayAll$1(select2);else select2=selectorAll$1(select2);for(var groups=this._groups,m=groups.length,subgroups=[],parents=[],j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){subgroups.push(select2.call(node,node.__data__,i,group));parents.push(node)}}}return new Selection$1$1(subgroups,parents)}function matcher$1(selector2){return function(){return this.matches(selector2)}}function childMatcher$1(selector2){return function(node){return node.matches(selector2)}}var find$1=Array.prototype.find;function childFind$1(match){return function(){return find$1.call(this.children,match)}}function childFirst$1(){return this.firstElementChild}function selection_selectChild$1(match){return this.select(match==null?childFirst$1:childFind$1(typeof match==="function"?match:childMatcher$1(match)))}var filter$1=Array.prototype.filter;function children$1(){return Array.from(this.children)}function childrenFilter$1(match){return function(){return filter$1.call(this.children,match)}}function selection_selectChildren$1(match){return this.selectAll(match==null?children$1:childrenFilter$1(typeof match==="function"?match:childMatcher$1(match)))}function selection_filter$1(match){if(typeof match!=="function")match=matcher$1(match);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=[],node,i=0;i<n;++i){if((node=group[i])&&match.call(node,node.__data__,i,group)){subgroup.push(node)}}}return new Selection$1$1(subgroups,this._parents)}function sparse$1(update){return new Array(update.length)}function selection_enter$1(){return new Selection$1$1(this._enter||this._groups.map(sparse$1),this._parents)}function EnterNode$1(parent,datum2){this.ownerDocument=parent.ownerDocument;this.namespaceURI=parent.namespaceURI;this._next=null;this._parent=parent;this.__data__=datum2}EnterNode$1.prototype={constructor:EnterNode$1,appendChild:function(child){return this._parent.insertBefore(child,this._next)},insertBefore:function(child,next){return this._parent.insertBefore(child,next)},querySelector:function(selector2){return this._parent.querySelector(selector2)},querySelectorAll:function(selector2){return this._parent.querySelectorAll(selector2)}};function constant$3(x){return function(){return x}}function bindIndex$1(parent,group,enter,update,exit,data){var i=0,node,groupLength=group.length,dataLength=data.length;for(;i<dataLength;++i){if(node=group[i]){node.__data__=data[i];update[i]=node}else{enter[i]=new EnterNode$1(parent,data[i])}}for(;i<groupLength;++i){if(node=group[i]){exit[i]=node}}}function bindKey$1(parent,group,enter,update,exit,data,key){var i,node,nodeByKeyValue=new Map,groupLength=group.length,dataLength=data.length,keyValues=new Array(groupLength),keyValue;for(i=0;i<groupLength;++i){if(node=group[i]){keyValues[i]=keyValue=key.call(node,node.__data__,i,group)+"";if(nodeByKeyValue.has(keyValue)){exit[i]=node}else{nodeByKeyValue.set(keyValue,node)}}}for(i=0;i<dataLength;++i){keyValue=key.call(parent,data[i],i,data)+"";if(node=nodeByKeyValue.get(keyValue)){update[i]=node;node.__data__=data[i];nodeByKeyValue.delete(keyValue)}else{enter[i]=new EnterNode$1(parent,data[i])}}for(i=0;i<groupLength;++i){if((node=group[i])&&nodeByKeyValue.get(keyValues[i])===node){exit[i]=node}}}function datum$1(node){return node.__data__}function selection_data$1(value,key){if(!arguments.length)return Array.from(this,datum$1);var bind=key?bindKey$1:bindIndex$1,parents=this._parents,groups=this._groups;if(typeof value!=="function")value=constant$3(value);for(var m=groups.length,update=new Array(m),enter=new Array(m),exit=new Array(m),j=0;j<m;++j){var parent=parents[j],group=groups[j],groupLength=group.length,data=arraylike$1(value.call(parent,parent&&parent.__data__,j,parents)),dataLength=data.length,enterGroup=enter[j]=new Array(dataLength),updateGroup=update[j]=new Array(dataLength),exitGroup=exit[j]=new Array(groupLength);bind(parent,group,enterGroup,updateGroup,exitGroup,data,key);for(var i0=0,i1=0,previous,next;i0<dataLength;++i0){if(previous=enterGroup[i0]){if(i0>=i1)i1=i0+1;while(!(next=updateGroup[i1])&&++i1<dataLength);previous._next=next||null}}}update=new Selection$1$1(update,parents);update._enter=enter;update._exit=exit;return update}function arraylike$1(data){return typeof data==="object"&&"length"in data?data:Array.from(data)}function selection_exit$1(){return new Selection$1$1(this._exit||this._groups.map(sparse$1),this._parents)}function selection_join$1(onenter,onupdate,onexit){var enter=this.enter(),update=this,exit=this.exit();if(typeof onenter==="function"){enter=onenter(enter);if(enter)enter=enter.selection()}else{enter=enter.append(onenter+"")}if(onupdate!=null){update=onupdate(update);if(update)update=update.selection()}if(onexit==null)exit.remove();else onexit(exit);return enter&&update?enter.merge(update).order():update}function selection_merge$1(context){var selection2=context.selection?context.selection():context;for(var groups0=this._groups,groups1=selection2._groups,m0=groups0.length,m1=groups1.length,m=Math.min(m0,m1),merges=new Array(m0),j=0;j<m;++j){for(var group0=groups0[j],group1=groups1[j],n=group0.length,merge=merges[j]=new Array(n),node,i=0;i<n;++i){if(node=group0[i]||group1[i]){merge[i]=node}}}for(;j<m0;++j){merges[j]=groups0[j]}return new Selection$1$1(merges,this._parents)}function selection_order$1(){for(var groups=this._groups,j=-1,m=groups.length;++j<m;){for(var group=groups[j],i=group.length-1,next=group[i],node;--i>=0;){if(node=group[i]){if(next&&node.compareDocumentPosition(next)^4)next.parentNode.insertBefore(node,next);next=node}}}return this}function selection_sort$1(compare){if(!compare)compare=ascending$1;function compareNode(a,b){return a&&b?compare(a.__data__,b.__data__):!a-!b}for(var groups=this._groups,m=groups.length,sortgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,sortgroup=sortgroups[j]=new Array(n),node,i=0;i<n;++i){if(node=group[i]){sortgroup[i]=node}}sortgroup.sort(compareNode)}return new Selection$1$1(sortgroups,this._parents).order()}function ascending$1(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function selection_call$1(){var callback=arguments[0];arguments[0]=this;callback.apply(null,arguments);return this}function selection_nodes$1(){return Array.from(this)}function selection_node$1(){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length;i<n;++i){var node=group[i];if(node)return node}}return null}function selection_size$1(){let size=0;for(const node of this)++size;return size}function selection_empty$1(){return!this.node()}function selection_each$1(callback){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length,node;i<n;++i){if(node=group[i])callback.call(node,node.__data__,i,group)}}return this}function attrRemove$1$1(name){return function(){this.removeAttribute(name)}}function attrRemoveNS$1$1(fullname){return function(){this.removeAttributeNS(fullname.space,fullname.local)}}function attrConstant$1$1(name,value){return function(){this.setAttribute(name,value)}}function attrConstantNS$1$1(fullname,value){return function(){this.setAttributeNS(fullname.space,fullname.local,value)}}function attrFunction$1$1(name,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttribute(name);else this.setAttribute(name,v)}}function attrFunctionNS$1$1(fullname,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttributeNS(fullname.space,fullname.local);else this.setAttributeNS(fullname.space,fullname.local,v)}}function selection_attr$1(name,value){var fullname=namespace$1(name);if(arguments.length<2){var node=this.node();return fullname.local?node.getAttributeNS(fullname.space,fullname.local):node.getAttribute(fullname)}return this.each((value==null?fullname.local?attrRemoveNS$1$1:attrRemove$1$1:typeof value==="function"?fullname.local?attrFunctionNS$1$1:attrFunction$1$1:fullname.local?attrConstantNS$1$1:attrConstant$1$1)(fullname,value))}function defaultView$1(node){return node.ownerDocument&&node.ownerDocument.defaultView||node.document&&node||node.defaultView}function styleRemove$1$1(name){return function(){this.style.removeProperty(name)}}function styleConstant$1$1(name,value,priority){return function(){this.style.setProperty(name,value,priority)}}function styleFunction$1$1(name,value,priority){return function(){var v=value.apply(this,arguments);if(v==null)this.style.removeProperty(name);else this.style.setProperty(name,v,priority)}}function selection_style$1(name,value,priority){return arguments.length>1?this.each((value==null?styleRemove$1$1:typeof value==="function"?styleFunction$1$1:styleConstant$1$1)(name,value,priority==null?"":priority)):styleValue$1(this.node(),name)}function styleValue$1(node,name){return node.style.getPropertyValue(name)||defaultView$1(node).getComputedStyle(node,null).getPropertyValue(name)}function propertyRemove$1(name){return function(){delete this[name]}}function propertyConstant$1(name,value){return function(){this[name]=value}}function propertyFunction$1(name,value){return function(){var v=value.apply(this,arguments);if(v==null)delete this[name];else this[name]=v}}function selection_property$1(name,value){return arguments.length>1?this.each((value==null?propertyRemove$1:typeof value==="function"?propertyFunction$1:propertyConstant$1)(name,value)):this.node()[name]}function classArray$1(string){return string.trim().split(/^|\s+/)}function classList$1(node){return node.classList||new ClassList$1(node)}function ClassList$1(node){this._node=node;this._names=classArray$1(node.getAttribute("class")||"")}ClassList$1.prototype={add:function(name){var i=this._names.indexOf(name);if(i<0){this._names.push(name);this._node.setAttribute("class",this._names.join(" "))}},remove:function(name){var i=this._names.indexOf(name);if(i>=0){this._names.splice(i,1);this._node.setAttribute("class",this._names.join(" "))}},contains:function(name){return this._names.indexOf(name)>=0}};function classedAdd$1(node,names){var list=classList$1(node),i=-1,n=names.length;while(++i<n)list.add(names[i])}function classedRemove$1(node,names){var list=classList$1(node),i=-1,n=names.length;while(++i<n)list.remove(names[i])}function classedTrue$1(names){return function(){classedAdd$1(this,names)}}function classedFalse$1(names){return function(){classedRemove$1(this,names)}}function classedFunction$1(names,value){return function(){(value.apply(this,arguments)?classedAdd$1:classedRemove$1)(this,names)}}function selection_classed$1(name,value){var names=classArray$1(name+"");if(arguments.length<2){var list=classList$1(this.node()),i=-1,n=names.length;while(++i<n)if(!list.contains(names[i]))return false;return true}return this.each((typeof value==="function"?classedFunction$1:value?classedTrue$1:classedFalse$1)(names,value))}function textRemove$1(){this.textContent=""}function textConstant$1$1(value){return function(){this.textContent=value}}function textFunction$1$1(value){return function(){var v=value.apply(this,arguments);this.textContent=v==null?"":v}}function selection_text$1(value){return arguments.length?this.each(value==null?textRemove$1:(typeof value==="function"?textFunction$1$1:textConstant$1$1)(value)):this.node().textContent}function htmlRemove$1(){this.innerHTML=""}function htmlConstant$1(value){return function(){this.innerHTML=value}}function htmlFunction$1(value){return function(){var v=value.apply(this,arguments);this.innerHTML=v==null?"":v}}function selection_html$1(value){return arguments.length?this.each(value==null?htmlRemove$1:(typeof value==="function"?htmlFunction$1:htmlConstant$1)(value)):this.node().innerHTML}function raise$1(){if(this.nextSibling)this.parentNode.appendChild(this)}function selection_raise$1(){return this.each(raise$1)}function lower$1(){if(this.previousSibling)this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower$1(){return this.each(lower$1)}function selection_append$1(name){var create2=typeof name==="function"?name:creator$1(name);return this.select(function(){return this.appendChild(create2.apply(this,arguments))})}function constantNull$1(){return null}function selection_insert$1(name,before){var create2=typeof name==="function"?name:creator$1(name),select2=before==null?constantNull$1:typeof before==="function"?before:selector$1(before);return this.select(function(){return this.insertBefore(create2.apply(this,arguments),select2.apply(this,arguments)||null)})}function remove$1(){var parent=this.parentNode;if(parent)parent.removeChild(this)}function selection_remove$1(){return this.each(remove$1)}function selection_cloneShallow$1(){var clone=this.cloneNode(false),parent=this.parentNode;return parent?parent.insertBefore(clone,this.nextSibling):clone}function selection_cloneDeep$1(){var clone=this.cloneNode(true),parent=this.parentNode;return parent?parent.insertBefore(clone,this.nextSibling):clone}function selection_clone$1(deep){return this.select(deep?selection_cloneDeep$1:selection_cloneShallow$1)}function selection_datum$1(value){return arguments.length?this.property("__data__",value):this.node().__data__}function contextListener$1(listener){return function(event){listener.call(this,event,this.__data__)}}function parseTypenames$2(typenames){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);return{type:t,name}})}function onRemove$1(typename){return function(){var on=this.__on;if(!on)return;for(var j=0,i=-1,m=on.length,o;j<m;++j){if(o=on[j],(!typename.type||o.type===typename.type)&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.options)}else{on[++i]=o}}if(++i)on.length=i;else delete this.__on}}function onAdd$1(typename,value,options){return function(){var on=this.__on,o,listener=contextListener$1(value);if(on)for(var j=0,m=on.length;j<m;++j){if((o=on[j]).type===typename.type&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.options);this.addEventListener(o.type,o.listener=listener,o.options=options);o.value=value;return}}this.addEventListener(typename.type,listener,options);o={type:typename.type,name:typename.name,value,listener,options};if(!on)this.__on=[o];else on.push(o)}}function selection_on$1(typename,value,options){var typenames=parseTypenames$2(typename+""),i,n=typenames.length,t;if(arguments.length<2){var on=this.node().__on;if(on)for(var j=0,m=on.length,o;j<m;++j){for(i=0,o=on[j];i<n;++i){if((t=typenames[i]).type===o.type&&t.name===o.name){return o.value}}}return}on=value?onAdd$1:onRemove$1;for(i=0;i<n;++i)this.each(on(typenames[i],value,options));return this}function dispatchEvent$1(node,type,params){var window2=defaultView$1(node),event=window2.CustomEvent;if(typeof event==="function"){event=new event(type,params)}else{event=window2.document.createEvent("Event");if(params)event.initEvent(type,params.bubbles,params.cancelable),event.detail=params.detail;else event.initEvent(type,false,false)}node.dispatchEvent(event)}function dispatchConstant$1(type,params){return function(){return dispatchEvent$1(this,type,params)}}function dispatchFunction$1(type,params){return function(){return dispatchEvent$1(this,type,params.apply(this,arguments))}}function selection_dispatch$1(type,params){return this.each((typeof params==="function"?dispatchFunction$1:dispatchConstant$1)(type,params))}function*selection_iterator$1(){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length,node;i<n;++i){if(node=group[i])yield node}}}var root$1=[null];function Selection$1$1(groups,parents){this._groups=groups;this._parents=parents}function selection$1(){return new Selection$1$1([[document.documentElement]],root$1)}function selection_selection$1(){return this}Selection$1$1.prototype=selection$1.prototype={constructor:Selection$1$1,select:selection_select$1,selectAll:selection_selectAll$1,selectChild:selection_selectChild$1,selectChildren:selection_selectChildren$1,filter:selection_filter$1,data:selection_data$1,enter:selection_enter$1,exit:selection_exit$1,join:selection_join$1,merge:selection_merge$1,selection:selection_selection$1,order:selection_order$1,sort:selection_sort$1,call:selection_call$1,nodes:selection_nodes$1,node:selection_node$1,size:selection_size$1,empty:selection_empty$1,each:selection_each$1,attr:selection_attr$1,style:selection_style$1,property:selection_property$1,classed:selection_classed$1,text:selection_text$1,html:selection_html$1,raise:selection_raise$1,lower:selection_lower$1,append:selection_append$1,insert:selection_insert$1,remove:selection_remove$1,clone:selection_clone$1,datum:selection_datum$1,on:selection_on$1,dispatch:selection_dispatch$1,[Symbol.iterator]:selection_iterator$1};function select$1(selector2){return typeof selector2==="string"?new Selection$1$1([[document.querySelector(selector2)]],[document.documentElement]):new Selection$1$1([[selector2]],root$1)}function sourceEvent$1(event){let sourceEvent2;while(sourceEvent2=event.sourceEvent)event=sourceEvent2;return event}function pointer$1(event,node){event=sourceEvent$1(event);if(node===void 0)node=event.currentTarget;if(node){var svg=node.ownerSVGElement||node;if(svg.createSVGPoint){var point=svg.createSVGPoint();point.x=event.clientX,point.y=event.clientY;point=point.matrixTransform(node.getScreenCTM().inverse());return[point.x,point.y]}if(node.getBoundingClientRect){var rect=node.getBoundingClientRect();return[event.clientX-rect.left-node.clientLeft,event.clientY-rect.top-node.clientTop]}}return[event.pageX,event.pageY]}const nonpassive={passive:false};const nonpassivecapture$1={capture:true,passive:false};function nopropagation$1(event){event.stopImmediatePropagation()}function noevent$1$1(event){event.preventDefault();event.stopImmediatePropagation()}function dragDisable$1(view){var root2=view.document.documentElement,selection2=select$1(view).on("dragstart.drag",noevent$1$1,nonpassivecapture$1);if("onselectstart"in root2){selection2.on("selectstart.drag",noevent$1$1,nonpassivecapture$1)}else{root2.__noselect=root2.style.MozUserSelect;root2.style.MozUserSelect="none"}}function yesdrag$1(view,noclick){var root2=view.document.documentElement,selection2=select$1(view).on("dragstart.drag",null);if(noclick){selection2.on("click.drag",noevent$1$1,nonpassivecapture$1);setTimeout(function(){selection2.on("click.drag",null)},0)}if("onselectstart"in root2){selection2.on("selectstart.drag",null)}else{root2.style.MozUserSelect=root2.__noselect;delete root2.__noselect}}const constant$2$1=x=>()=>x;function DragEvent(type,{sourceEvent:sourceEvent2,subject,target,identifier,active,x,y,dx,dy,dispatch:dispatch2}){Object.defineProperties(this,{type:{value:type,enumerable:true,configurable:true},sourceEvent:{value:sourceEvent2,enumerable:true,configurable:true},subject:{value:subject,enumerable:true,configurable:true},target:{value:target,enumerable:true,configurable:true},identifier:{value:identifier,enumerable:true,configurable:true},active:{value:active,enumerable:true,configurable:true},x:{value:x,enumerable:true,configurable:true},y:{value:y,enumerable:true,configurable:true},dx:{value:dx,enumerable:true,configurable:true},dy:{value:dy,enumerable:true,configurable:true},_:{value:dispatch2}})}DragEvent.prototype.on=function(){var value=this._.on.apply(this._,arguments);return value===this._?this:value};function defaultFilter$1(event){return!event.ctrlKey&&!event.button}function defaultContainer(){return this.parentNode}function defaultSubject(event,d){return d==null?{x:event.x,y:event.y}:d}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag(){var filter2=defaultFilter$1,container=defaultContainer,subject=defaultSubject,touchable=defaultTouchable$1,gestures={},listeners=dispatch$1("start","drag","end"),active=0,mousedownx,mousedowny,mousemoving,touchending,clickDistance2=0;function drag2(selection2){selection2.on("mousedown.drag",mousedowned).filter(touchable).on("touchstart.drag",touchstarted).on("touchmove.drag",touchmoved,nonpassive).on("touchend.drag touchcancel.drag",touchended).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function mousedowned(event,d){if(touchending||!filter2.call(this,event,d))return;var gesture=beforestart(this,container.call(this,event,d),event,d,"mouse");if(!gesture)return;select$1(event.view).on("mousemove.drag",mousemoved,nonpassivecapture$1).on("mouseup.drag",mouseupped,nonpassivecapture$1);dragDisable$1(event.view);nopropagation$1(event);mousemoving=false;mousedownx=event.clientX;mousedowny=event.clientY;gesture("start",event)}function mousemoved(event){noevent$1$1(event);if(!mousemoving){var dx=event.clientX-mousedownx,dy=event.clientY-mousedowny;mousemoving=dx*dx+dy*dy>clickDistance2}gestures.mouse("drag",event)}function mouseupped(event){select$1(event.view).on("mousemove.drag mouseup.drag",null);yesdrag$1(event.view,mousemoving);noevent$1$1(event);gestures.mouse("end",event)}function touchstarted(event,d){if(!filter2.call(this,event,d))return;var touches=event.changedTouches,c=container.call(this,event,d),n=touches.length,i,gesture;for(i=0;i<n;++i){if(gesture=beforestart(this,c,event,d,touches[i].identifier,touches[i])){nopropagation$1(event);gesture("start",event,touches[i])}}}function touchmoved(event){var touches=event.changedTouches,n=touches.length,i,gesture;for(i=0;i<n;++i){if(gesture=gestures[touches[i].identifier]){noevent$1$1(event);gesture("drag",event,touches[i])}}}function touchended(event){var touches=event.changedTouches,n=touches.length,i,gesture;if(touchending)clearTimeout(touchending);touchending=setTimeout(function(){touchending=null},500);for(i=0;i<n;++i){if(gesture=gestures[touches[i].identifier]){nopropagation$1(event);gesture("end",event,touches[i])}}}function beforestart(that,container2,event,d,identifier,touch){var dispatch2=listeners.copy(),p=pointer$1(touch||event,container2),dx,dy,s;if((s=subject.call(that,new DragEvent("beforestart",{sourceEvent:event,target:drag2,identifier,active,x:p[0],y:p[1],dx:0,dy:0,dispatch:dispatch2}),d))==null)return;dx=s.x-p[0]||0;dy=s.y-p[1]||0;return function gesture(type,event2,touch2){var p0=p,n;switch(type){case"start":gestures[identifier]=gesture,n=active++;break;case"end":delete gestures[identifier],--active;case"drag":p=pointer$1(touch2||event2,container2),n=active;break}dispatch2.call(type,that,new DragEvent(type,{sourceEvent:event2,subject:s,target:drag2,identifier,active:n,x:p[0]+dx,y:p[1]+dy,dx:p[0]-p0[0],dy:p[1]-p0[1],dispatch:dispatch2}),d)}}drag2.filter=function(_){return arguments.length?(filter2=typeof _==="function"?_:constant$2$1(!!_),drag2):filter2};drag2.container=function(_){return arguments.length?(container=typeof _==="function"?_:constant$2$1(_),drag2):container};drag2.subject=function(_){return arguments.length?(subject=typeof _==="function"?_:constant$2$1(_),drag2):subject};drag2.touchable=function(_){return arguments.length?(touchable=typeof _==="function"?_:constant$2$1(!!_),drag2):touchable};drag2.on=function(){var value=listeners.on.apply(listeners,arguments);return value===listeners?drag2:value};drag2.clickDistance=function(_){return arguments.length?(clickDistance2=(_=+_)*_,drag2):Math.sqrt(clickDistance2)};return drag2}function define$1(constructor,factory,prototype){constructor.prototype=factory.prototype=prototype;prototype.constructor=constructor}function extend$1(parent,definition){var prototype=Object.create(parent.prototype);for(var key in definition)prototype[key]=definition[key];return prototype}function Color$1(){}var darker$1=.7;var brighter$1=1/darker$1;var reI$1="\\s*([+-]?\\d+)\\s*";var reN$1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*";var reP$1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*";var reHex$1=/^#([0-9a-f]{3,8})$/;var reRgbInteger$1=new RegExp(`^rgb\\(${reI$1},${reI$1},${reI$1}\\)$`);var reRgbPercent$1=new RegExp(`^rgb\\(${reP$1},${reP$1},${reP$1}\\)$`);var reRgbaInteger$1=new RegExp(`^rgba\\(${reI$1},${reI$1},${reI$1},${reN$1}\\)$`);var reRgbaPercent$1=new RegExp(`^rgba\\(${reP$1},${reP$1},${reP$1},${reN$1}\\)$`);var reHslPercent$1=new RegExp(`^hsl\\(${reN$1},${reP$1},${reP$1}\\)$`);var reHslaPercent$1=new RegExp(`^hsla\\(${reN$1},${reP$1},${reP$1},${reN$1}\\)$`);var named$1={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};define$1(Color$1,color$1,{copy(channels){return Object.assign(new this.constructor,this,channels)},displayable(){return this.rgb().displayable()},hex:color_formatHex$1,formatHex:color_formatHex$1,formatHex8:color_formatHex8$1,formatHsl:color_formatHsl$1,formatRgb:color_formatRgb$1,toString:color_formatRgb$1});function color_formatHex$1(){return this.rgb().formatHex()}function color_formatHex8$1(){return this.rgb().formatHex8()}function color_formatHsl$1(){return hslConvert$1(this).formatHsl()}function color_formatRgb$1(){return this.rgb().formatRgb()}function color$1(format){var m,l;format=(format+"").trim().toLowerCase();return(m=reHex$1.exec(format))?(l=m[1].length,m=parseInt(m[1],16),l===6?rgbn$1(m):l===3?new Rgb$1(m>>8&15|m>>4&240,m>>4&15|m&240,(m&15)<<4|m&15,1):l===8?rgba$1(m>>24&255,m>>16&255,m>>8&255,(m&255)/255):l===4?rgba$1(m>>12&15|m>>8&240,m>>8&15|m>>4&240,m>>4&15|m&240,((m&15)<<4|m&15)/255):null):(m=reRgbInteger$1.exec(format))?new Rgb$1(m[1],m[2],m[3],1):(m=reRgbPercent$1.exec(format))?new Rgb$1(m[1]*255/100,m[2]*255/100,m[3]*255/100,1):(m=reRgbaInteger$1.exec(format))?rgba$1(m[1],m[2],m[3],m[4]):(m=reRgbaPercent$1.exec(format))?rgba$1(m[1]*255/100,m[2]*255/100,m[3]*255/100,m[4]):(m=reHslPercent$1.exec(format))?hsla$1(m[1],m[2]/100,m[3]/100,1):(m=reHslaPercent$1.exec(format))?hsla$1(m[1],m[2]/100,m[3]/100,m[4]):named$1.hasOwnProperty(format)?rgbn$1(named$1[format]):format==="transparent"?new Rgb$1(NaN,NaN,NaN,0):null}function rgbn$1(n){return new Rgb$1(n>>16&255,n>>8&255,n&255,1)}function rgba$1(r,g,b,a){if(a<=0)r=g=b=NaN;return new Rgb$1(r,g,b,a)}function rgbConvert$1(o){if(!(o instanceof Color$1))o=color$1(o);if(!o)return new Rgb$1;o=o.rgb();return new Rgb$1(o.r,o.g,o.b,o.opacity)}function rgb$1(r,g,b,opacity){return arguments.length===1?rgbConvert$1(r):new Rgb$1(r,g,b,opacity==null?1:opacity)}function Rgb$1(r,g,b,opacity){this.r=+r;this.g=+g;this.b=+b;this.opacity=+opacity}define$1(Rgb$1,rgb$1,extend$1(Color$1,{brighter(k){k=k==null?brighter$1:Math.pow(brighter$1,k);return new Rgb$1(this.r*k,this.g*k,this.b*k,this.opacity)},darker(k){k=k==null?darker$1:Math.pow(darker$1,k);return new Rgb$1(this.r*k,this.g*k,this.b*k,this.opacity)},rgb(){return this},clamp(){return new Rgb$1(clampi$1(this.r),clampi$1(this.g),clampi$1(this.b),clampa$1(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:rgb_formatHex$1,formatHex:rgb_formatHex$1,formatHex8:rgb_formatHex8$1,formatRgb:rgb_formatRgb$1,toString:rgb_formatRgb$1}));function rgb_formatHex$1(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}`}function rgb_formatHex8$1(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}${hex$1((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb$1(){const a=clampa$1(this.opacity);return`${a===1?"rgb(":"rgba("}${clampi$1(this.r)}, ${clampi$1(this.g)}, ${clampi$1(this.b)}${a===1?")":`, ${a})`}`}function clampa$1(opacity){return isNaN(opacity)?1:Math.max(0,Math.min(1,opacity))}function clampi$1(value){return Math.max(0,Math.min(255,Math.round(value)||0))}function hex$1(value){value=clampi$1(value);return(value<16?"0":"")+value.toString(16)}function hsla$1(h2,s,l,a){if(a<=0)h2=s=l=NaN;else if(l<=0||l>=1)h2=s=NaN;else if(s<=0)h2=NaN;return new Hsl$1(h2,s,l,a)}function hslConvert$1(o){if(o instanceof Hsl$1)return new Hsl$1(o.h,o.s,o.l,o.opacity);if(!(o instanceof Color$1))o=color$1(o);if(!o)return new Hsl$1;if(o instanceof Hsl$1)return o;o=o.rgb();var r=o.r/255,g=o.g/255,b=o.b/255,min=Math.min(r,g,b),max=Math.max(r,g,b),h2=NaN,s=max-min,l=(max+min)/2;if(s){if(r===max)h2=(g-b)/s+(g<b)*6;else if(g===max)h2=(b-r)/s+2;else h2=(r-g)/s+4;s/=l<.5?max+min:2-max-min;h2*=60}else{s=l>0&&l<1?0:h2}return new Hsl$1(h2,s,l,o.opacity)}function hsl$1(h2,s,l,opacity){return arguments.length===1?hslConvert$1(h2):new Hsl$1(h2,s,l,opacity==null?1:opacity)}function Hsl$1(h2,s,l,opacity){this.h=+h2;this.s=+s;this.l=+l;this.opacity=+opacity}define$1(Hsl$1,hsl$1,extend$1(Color$1,{brighter(k){k=k==null?brighter$1:Math.pow(brighter$1,k);return new Hsl$1(this.h,this.s,this.l*k,this.opacity)},darker(k){k=k==null?darker$1:Math.pow(darker$1,k);return new Hsl$1(this.h,this.s,this.l*k,this.opacity)},rgb(){var h2=this.h%360+(this.h<0)*360,s=isNaN(h2)||isNaN(this.s)?0:this.s,l=this.l,m2=l+(l<.5?l:1-l)*s,m1=2*l-m2;return new Rgb$1(hsl2rgb$1(h2>=240?h2-240:h2+120,m1,m2),hsl2rgb$1(h2,m1,m2),hsl2rgb$1(h2<120?h2+240:h2-120,m1,m2),this.opacity)},clamp(){return new Hsl$1(clamph$1(this.h),clampt$1(this.s),clampt$1(this.l),clampa$1(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 a=clampa$1(this.opacity);return`${a===1?"hsl(":"hsla("}${clamph$1(this.h)}, ${clampt$1(this.s)*100}%, ${clampt$1(this.l)*100}%${a===1?")":`, ${a})`}`}}));function clamph$1(value){value=(value||0)%360;return value<0?value+360:value}function clampt$1(value){return Math.max(0,Math.min(1,value||0))}function hsl2rgb$1(h2,m1,m2){return(h2<60?m1+(m2-m1)*h2/60:h2<180?m2:h2<240?m1+(m2-m1)*(240-h2)/60:m1)*255}const constant$1$1=x=>()=>x;function linear$1(a,d){return function(t){return a+t*d}}function exponential$1(a,b,y){return a=Math.pow(a,y),b=Math.pow(b,y)-a,y=1/y,function(t){return Math.pow(a+t*b,y)}}function gamma$1(y){return(y=+y)===1?nogamma$1:function(a,b){return b-a?exponential$1(a,b,y):constant$1$1(isNaN(a)?b:a)}}function nogamma$1(a,b){var d=b-a;return d?linear$1(a,d):constant$1$1(isNaN(a)?b:a)}const interpolateRgb$1=(function rgbGamma(y){var color2=gamma$1(y);function rgb$1$1(start2,end){var r=color2((start2=rgb$1(start2)).r,(end=rgb$1(end)).r),g=color2(start2.g,end.g),b=color2(start2.b,end.b),opacity=nogamma$1(start2.opacity,end.opacity);return function(t){start2.r=r(t);start2.g=g(t);start2.b=b(t);start2.opacity=opacity(t);return start2+""}}rgb$1$1.gamma=rgbGamma;return rgb$1$1})(1);function numberArray(a,b){if(!b)b=[];var n=a?Math.min(b.length,a.length):0,c=b.slice(),i;return function(t){for(i=0;i<n;++i)c[i]=a[i]*(1-t)+b[i]*t;return c}}function isNumberArray(x){return ArrayBuffer.isView(x)&&!(x instanceof DataView)}function genericArray(a,b){var nb=b?b.length:0,na=a?Math.min(nb,a.length):0,x=new Array(na),c=new Array(nb),i;for(i=0;i<na;++i)x[i]=interpolate$1(a[i],b[i]);for(;i<nb;++i)c[i]=b[i];return function(t){for(i=0;i<na;++i)c[i]=x[i](t);return c}}function date(a,b){var d=new Date;return a=+a,b=+b,function(t){return d.setTime(a*(1-t)+b*t),d}}function interpolateNumber$1(a,b){return a=+a,b=+b,function(t){return a*(1-t)+b*t}}function object(a,b){var i={},c={},k;if(a===null||typeof a!=="object")a={};if(b===null||typeof b!=="object")b={};for(k in b){if(k in a){i[k]=interpolate$1(a[k],b[k])}else{c[k]=b[k]}}return function(t){for(k in i)c[k]=i[k](t);return c}}var reA$1=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;var reB$1=new RegExp(reA$1.source,"g");function zero$1(b){return function(){return b}}function one$1(b){return function(t){return b(t)+""}}function interpolateString$1(a,b){var bi=reA$1.lastIndex=reB$1.lastIndex=0,am,bm,bs,i=-1,s=[],q=[];a=a+"",b=b+"";while((am=reA$1.exec(a))&&(bm=reB$1.exec(b))){if((bs=bm.index)>bi){bs=b.slice(bi,bs);if(s[i])s[i]+=bs;else s[++i]=bs}if((am=am[0])===(bm=bm[0])){if(s[i])s[i]+=bm;else s[++i]=bm}else{s[++i]=null;q.push({i,x:interpolateNumber$1(am,bm)})}bi=reB$1.lastIndex}if(bi<b.length){bs=b.slice(bi);if(s[i])s[i]+=bs;else s[++i]=bs}return s.length<2?q[0]?one$1(q[0].x):zero$1(b):(b=q.length,function(t){for(var i2=0,o;i2<b;++i2)s[(o=q[i2]).i]=o.x(t);return s.join("")})}function interpolate$1(a,b){var t=typeof b,c;return b==null||t==="boolean"?constant$1$1(b):(t==="number"?interpolateNumber$1:t==="string"?(c=color$1(b))?(b=c,interpolateRgb$1):interpolateString$1:b instanceof color$1?interpolateRgb$1:b instanceof Date?date:isNumberArray(b)?numberArray:Array.isArray(b)?genericArray:typeof b.valueOf!=="function"&&typeof b.toString!=="function"||isNaN(b)?object:interpolateNumber$1)(a,b)}var degrees$1=180/Math.PI;var identity$1$1={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function decompose$1(a,b,c,d,e,f){var scaleX,scaleY,skewX;if(scaleX=Math.sqrt(a*a+b*b))a/=scaleX,b/=scaleX;if(skewX=a*c+b*d)c-=a*skewX,d-=b*skewX;if(scaleY=Math.sqrt(c*c+d*d))c/=scaleY,d/=scaleY,skewX/=scaleY;if(a*d<b*c)a=-a,b=-b,skewX=-skewX,scaleX=-scaleX;return{translateX:e,translateY:f,rotate:Math.atan2(b,a)*degrees$1,skewX:Math.atan(skewX)*degrees$1,scaleX,scaleY}}var svgNode$1;function parseCss$1(value){const m=new(typeof DOMMatrix==="function"?DOMMatrix:WebKitCSSMatrix)(value+"");return m.isIdentity?identity$1$1:decompose$1(m.a,m.b,m.c,m.d,m.e,m.f)}function parseSvg$1(value){if(value==null)return identity$1$1;if(!svgNode$1)svgNode$1=document.createElementNS("http://www.w3.org/2000/svg","g");svgNode$1.setAttribute("transform",value);if(!(value=svgNode$1.transform.baseVal.consolidate()))return identity$1$1;value=value.matrix;return decompose$1(value.a,value.b,value.c,value.d,value.e,value.f)}function interpolateTransform$1(parse,pxComma,pxParen,degParen){function pop2(s){return s.length?s.pop()+" ":""}function translate(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push("translate(",null,pxComma,null,pxParen);q.push({i:i-4,x:interpolateNumber$1(xa,xb)},{i:i-2,x:interpolateNumber$1(ya,yb)})}else if(xb||yb){s.push("translate("+xb+pxComma+yb+pxParen)}}function rotate(a,b,s,q){if(a!==b){if(a-b>180)b+=360;else if(b-a>180)a+=360;q.push({i:s.push(pop2(s)+"rotate(",null,degParen)-2,x:interpolateNumber$1(a,b)})}else if(b){s.push(pop2(s)+"rotate("+b+degParen)}}function skewX(a,b,s,q){if(a!==b){q.push({i:s.push(pop2(s)+"skewX(",null,degParen)-2,x:interpolateNumber$1(a,b)})}else if(b){s.push(pop2(s)+"skewX("+b+degParen)}}function scale(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push(pop2(s)+"scale(",null,",",null,")");q.push({i:i-4,x:interpolateNumber$1(xa,xb)},{i:i-2,x:interpolateNumber$1(ya,yb)})}else if(xb!==1||yb!==1){s.push(pop2(s)+"scale("+xb+","+yb+")")}}return function(a,b){var s=[],q=[];a=parse(a),b=parse(b);translate(a.translateX,a.translateY,b.translateX,b.translateY,s,q);rotate(a.rotate,b.rotate,s,q);skewX(a.skewX,b.skewX,s,q);scale(a.scaleX,a.scaleY,b.scaleX,b.scaleY,s,q);a=b=null;return function(t){var i=-1,n=q.length,o;while(++i<n)s[(o=q[i]).i]=o.x(t);return s.join("")}}}var interpolateTransformCss$1=interpolateTransform$1(parseCss$1,"px, ","px)","deg)");var interpolateTransformSvg$1=interpolateTransform$1(parseSvg$1,", ",")",")");var epsilon2$1=1e-12;function cosh$1(x){return((x=Math.exp(x))+1/x)/2}function sinh$1(x){return((x=Math.exp(x))-1/x)/2}function tanh$1(x){return((x=Math.exp(2*x))-1)/(x+1)}const interpolateZoom$1=(function zoomRho(rho,rho2,rho4){function zoom2(p0,p1){var ux0=p0[0],uy0=p0[1],w0=p0[2],ux1=p1[0],uy1=p1[1],w1=p1[2],dx=ux1-ux0,dy=uy1-uy0,d2=dx*dx+dy*dy,i,S;if(d2<epsilon2$1){S=Math.log(w1/w0)/rho;i=function(t){return[ux0+t*dx,uy0+t*dy,w0*Math.exp(rho*t*S)]}}else{var d1=Math.sqrt(d2),b0=(w1*w1-w0*w0+rho4*d2)/(2*w0*rho2*d1),b1=(w1*w1-w0*w0-rho4*d2)/(2*w1*rho2*d1),r0=Math.log(Math.sqrt(b0*b0+1)-b0),r1=Math.log(Math.sqrt(b1*b1+1)-b1);S=(r1-r0)/rho;i=function(t){var s=t*S,coshr0=cosh$1(r0),u=w0/(rho2*d1)*(coshr0*tanh$1(rho*s+r0)-sinh$1(r0));return[ux0+u*dx,uy0+u*dy,w0*coshr0/cosh$1(rho*s+r0)]}}i.duration=S*1e3*rho/Math.SQRT2;return i}zoom2.rho=function(_){var _1=Math.max(.001,+_),_2=_1*_1,_4=_2*_2;return zoomRho(_1,_2,_4)};return zoom2})(Math.SQRT2,2,4);var frame$1=0;var timeout$1$1=0;var interval$1=0;var pokeDelay$1=1e3;var taskHead$1;var taskTail$1;var clockLast$1=0;var clockNow$1=0;var clockSkew$1=0;var clock$1=typeof performance==="object"&&performance.now?performance:Date;var setFrame$1=typeof window==="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(f){setTimeout(f,17)};function now$1(){return clockNow$1||(setFrame$1(clearNow$1),clockNow$1=clock$1.now()+clockSkew$1)}function clearNow$1(){clockNow$1=0}function Timer$1(){this._call=this._time=this._next=null}Timer$1.prototype=timer$1.prototype={constructor:Timer$1,restart:function(callback,delay,time){if(typeof callback!=="function")throw new TypeError("callback is not a function");time=(time==null?now$1():+time)+(delay==null?0:+delay);if(!this._next&&taskTail$1!==this){if(taskTail$1)taskTail$1._next=this;else taskHead$1=this;taskTail$1=this}this._call=callback;this._time=time;sleep$1()},stop:function(){if(this._call){this._call=null;this._time=Infinity;sleep$1()}}};function timer$1(callback,delay,time){var t=new Timer$1;t.restart(callback,delay,time);return t}function timerFlush$1(){now$1();++frame$1;var t=taskHead$1,e;while(t){if((e=clockNow$1-t._time)>=0)t._call.call(void 0,e);t=t._next}--frame$1}function wake$1(){clockNow$1=(clockLast$1=clock$1.now())+clockSkew$1;frame$1=timeout$1$1=0;try{timerFlush$1()}finally{frame$1=0;nap$1();clockNow$1=0}}function poke$1(){var now2=clock$1.now(),delay=now2-clockLast$1;if(delay>pokeDelay$1)clockSkew$1-=delay,clockLast$1=now2}function nap$1(){var t0,t1=taskHead$1,t2,time=Infinity;while(t1){if(t1._call){if(time>t1._time)time=t1._time;t0=t1,t1=t1._next}else{t2=t1._next,t1._next=null;t1=t0?t0._next=t2:taskHead$1=t2}}taskTail$1=t0;sleep$1(time)}function sleep$1(time){if(frame$1)return;if(timeout$1$1)timeout$1$1=clearTimeout(timeout$1$1);var delay=time-clockNow$1;if(delay>24){if(time<Infinity)timeout$1$1=setTimeout(wake$1,time-clock$1.now()-clockSkew$1);if(interval$1)interval$1=clearInterval(interval$1)}else{if(!interval$1)clockLast$1=clock$1.now(),interval$1=setInterval(poke$1,pokeDelay$1);frame$1=1,setFrame$1(wake$1)}}function timeout$2(callback,delay,time){var t=new Timer$1;delay=delay==null?0:+delay;t.restart(elapsed=>{t.stop();callback(elapsed+delay)},delay,time);return t}var emptyOn$1=dispatch$1("start","end","cancel","interrupt");var emptyTween$1=[];var CREATED$1=0;var SCHEDULED$1=1;var STARTING$1=2;var STARTED$1=3;var RUNNING$1=4;var ENDING$1=5;var ENDED$1=6;function schedule$1(node,name,id2,index,group,timing){var schedules=node.__transition;if(!schedules)node.__transition={};else if(id2 in schedules)return;create$1(node,id2,{name,index,group,on:emptyOn$1,tween:emptyTween$1,time:timing.time,delay:timing.delay,duration:timing.duration,ease:timing.ease,timer:null,state:CREATED$1})}function init$1(node,id2){var schedule2=get$2(node,id2);if(schedule2.state>CREATED$1)throw new Error("too late; already scheduled");return schedule2}function set$2(node,id2){var schedule2=get$2(node,id2);if(schedule2.state>STARTED$1)throw new Error("too late; already running");return schedule2}function get$2(node,id2){var schedule2=node.__transition;if(!schedule2||!(schedule2=schedule2[id2]))throw new Error("transition not found");return schedule2}function create$1(node,id2,self){var schedules=node.__transition,tween;schedules[id2]=self;self.timer=timer$1(schedule2,0,self.time);function schedule2(elapsed){self.state=SCHEDULED$1;self.timer.restart(start2,self.delay,self.time);if(self.delay<=elapsed)start2(elapsed-self.delay)}function start2(elapsed){var i,j,n,o;if(self.state!==SCHEDULED$1)return stop();for(i in schedules){o=schedules[i];if(o.name!==self.name)continue;if(o.state===STARTED$1)return timeout$2(start2);if(o.state===RUNNING$1){o.state=ENDED$1;o.timer.stop();o.on.call("interrupt",node,node.__data__,o.index,o.group);delete schedules[i]}else if(+i<id2){o.state=ENDED$1;o.timer.stop();o.on.call("cancel",node,node.__data__,o.index,o.group);delete schedules[i]}}timeout$2(function(){if(self.state===STARTED$1){self.state=RUNNING$1;self.timer.restart(tick,self.delay,self.time);tick(elapsed)}});self.state=STARTING$1;self.on.call("start",node,node.__data__,self.index,self.group);if(self.state!==STARTING$1)return;self.state=STARTED$1;tween=new Array(n=self.tween.length);for(i=0,j=-1;i<n;++i){if(o=self.tween[i].value.call(node,node.__data__,self.index,self.group)){tween[++j]=o}}tween.length=j+1}function tick(elapsed){var t=elapsed<self.duration?self.ease.call(null,elapsed/self.duration):(self.timer.restart(stop),self.state=ENDING$1,1),i=-1,n=tween.length;while(++i<n){tween[i].call(node,t)}if(self.state===ENDING$1){self.on.call("end",node,node.__data__,self.index,self.group);stop()}}function stop(){self.state=ENDED$1;self.timer.stop();delete schedules[id2];for(var i in schedules)return;delete node.__transition}}function interrupt$1(node,name){var schedules=node.__transition,schedule2,active,empty2=true,i;if(!schedules)return;name=name==null?null:name+"";for(i in schedules){if((schedule2=schedules[i]).name!==name){empty2=false;continue}active=schedule2.state>STARTING$1&&schedule2.state<ENDING$1;schedule2.state=ENDED$1;schedule2.timer.stop();schedule2.on.call(active?"interrupt":"cancel",node,node.__data__,schedule2.index,schedule2.group);delete schedules[i]}if(empty2)delete node.__transition}function selection_interrupt$1(name){return this.each(function(){interrupt$1(this,name)})}function tweenRemove$1(id2,name){var tween0,tween1;return function(){var schedule2=set$2(this,id2),tween=schedule2.tween;if(tween!==tween0){tween1=tween0=tween;for(var i=0,n=tween1.length;i<n;++i){if(tween1[i].name===name){tween1=tween1.slice();tween1.splice(i,1);break}}}schedule2.tween=tween1}}function tweenFunction$1(id2,name,value){var tween0,tween1;if(typeof value!=="function")throw new Error;return function(){var schedule2=set$2(this,id2),tween=schedule2.tween;if(tween!==tween0){tween1=(tween0=tween).slice();for(var t={name,value},i=0,n=tween1.length;i<n;++i){if(tween1[i].name===name){tween1[i]=t;break}}if(i===n)tween1.push(t)}schedule2.tween=tween1}}function transition_tween$1(name,value){var id2=this._id;name+="";if(arguments.length<2){var tween=get$2(this.node(),id2).tween;for(var i=0,n=tween.length,t;i<n;++i){if((t=tween[i]).name===name){return t.value}}return null}return this.each((value==null?tweenRemove$1:tweenFunction$1)(id2,name,value))}function tweenValue$1(transition,name,value){var id2=transition._id;transition.each(function(){var schedule2=set$2(this,id2);(schedule2.value||(schedule2.value={}))[name]=value.apply(this,arguments)});return function(node){return get$2(node,id2).value[name]}}function interpolate$2(a,b){var c;return(typeof b==="number"?interpolateNumber$1:b instanceof color$1?interpolateRgb$1:(c=color$1(b))?(b=c,interpolateRgb$1):interpolateString$1)(a,b)}function attrRemove$2(name){return function(){this.removeAttribute(name)}}function attrRemoveNS$2(fullname){return function(){this.removeAttributeNS(fullname.space,fullname.local)}}function attrConstant$2(name,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=this.getAttribute(name);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function attrConstantNS$2(fullname,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=this.getAttributeNS(fullname.space,fullname.local);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function attrFunction$2(name,interpolate2,value){var string00,string10,interpolate0;return function(){var string0,value1=value(this),string1;if(value1==null)return void this.removeAttribute(name);string0=this.getAttribute(name);string1=value1+"";return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function attrFunctionNS$2(fullname,interpolate2,value){var string00,string10,interpolate0;return function(){var string0,value1=value(this),string1;if(value1==null)return void this.removeAttributeNS(fullname.space,fullname.local);string0=this.getAttributeNS(fullname.space,fullname.local);string1=value1+"";return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function transition_attr$1(name,value){var fullname=namespace$1(name),i=fullname==="transform"?interpolateTransformSvg$1:interpolate$2;return this.attrTween(name,typeof value==="function"?(fullname.local?attrFunctionNS$2:attrFunction$2)(fullname,i,tweenValue$1(this,"attr."+name,value)):value==null?(fullname.local?attrRemoveNS$2:attrRemove$2)(fullname):(fullname.local?attrConstantNS$2:attrConstant$2)(fullname,i,value))}function attrInterpolate$1(name,i){return function(t){this.setAttribute(name,i.call(this,t))}}function attrInterpolateNS$1(fullname,i){return function(t){this.setAttributeNS(fullname.space,fullname.local,i.call(this,t))}}function attrTweenNS$1(fullname,value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&attrInterpolateNS$1(fullname,i);return t0}tween._value=value;return tween}function attrTween$1(name,value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&attrInterpolate$1(name,i);return t0}tween._value=value;return tween}function transition_attrTween$1(name,value){var key="attr."+name;if(arguments.length<2)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;var fullname=namespace$1(name);return this.tween(key,(fullname.local?attrTweenNS$1:attrTween$1)(fullname,value))}function delayFunction$1(id2,value){return function(){init$1(this,id2).delay=+value.apply(this,arguments)}}function delayConstant$1(id2,value){return value=+value,function(){init$1(this,id2).delay=value}}function transition_delay$1(value){var id2=this._id;return arguments.length?this.each((typeof value==="function"?delayFunction$1:delayConstant$1)(id2,value)):get$2(this.node(),id2).delay}function durationFunction$1(id2,value){return function(){set$2(this,id2).duration=+value.apply(this,arguments)}}function durationConstant$1(id2,value){return value=+value,function(){set$2(this,id2).duration=value}}function transition_duration$1(value){var id2=this._id;return arguments.length?this.each((typeof value==="function"?durationFunction$1:durationConstant$1)(id2,value)):get$2(this.node(),id2).duration}function easeConstant$1(id2,value){if(typeof value!=="function")throw new Error;return function(){set$2(this,id2).ease=value}}function transition_ease$1(value){var id2=this._id;return arguments.length?this.each(easeConstant$1(id2,value)):get$2(this.node(),id2).ease}function easeVarying$1(id2,value){return function(){var v=value.apply(this,arguments);if(typeof v!=="function")throw new Error;set$2(this,id2).ease=v}}function transition_easeVarying$1(value){if(typeof value!=="function")throw new Error;return this.each(easeVarying$1(this._id,value))}function transition_filter$1(match){if(typeof match!=="function")match=matcher$1(match);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=[],node,i=0;i<n;++i){if((node=group[i])&&match.call(node,node.__data__,i,group)){subgroup.push(node)}}}return new Transition$1(subgroups,this._parents,this._name,this._id)}function transition_merge$1(transition){if(transition._id!==this._id)throw new Error;for(var groups0=this._groups,groups1=transition._groups,m0=groups0.length,m1=groups1.length,m=Math.min(m0,m1),merges=new Array(m0),j=0;j<m;++j){for(var group0=groups0[j],group1=groups1[j],n=group0.length,merge=merges[j]=new Array(n),node,i=0;i<n;++i){if(node=group0[i]||group1[i]){merge[i]=node}}}for(;j<m0;++j){merges[j]=groups0[j]}return new Transition$1(merges,this._parents,this._name,this._id)}function start$1(name){return(name+"").trim().split(/^|\s+/).every(function(t){var i=t.indexOf(".");if(i>=0)t=t.slice(0,i);return!t||t==="start"})}function onFunction$1(id2,name,listener){var on0,on1,sit=start$1(name)?init$1:set$2;return function(){var schedule2=sit(this,id2),on=schedule2.on;if(on!==on0)(on1=(on0=on).copy()).on(name,listener);schedule2.on=on1}}function transition_on$1(name,listener){var id2=this._id;return arguments.length<2?get$2(this.node(),id2).on.on(name):this.each(onFunction$1(id2,name,listener))}function removeFunction$1(id2){return function(){var parent=this.parentNode;for(var i in this.__transition)if(+i!==id2)return;if(parent)parent.removeChild(this)}}function transition_remove$1(){return this.on("end.remove",removeFunction$1(this._id))}function transition_select$1(select2){var name=this._name,id2=this._id;if(typeof select2!=="function")select2=selector$1(select2);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=new Array(n),node,subnode,i=0;i<n;++i){if((node=group[i])&&(subnode=select2.call(node,node.__data__,i,group))){if("__data__"in node)subnode.__data__=node.__data__;subgroup[i]=subnode;schedule$1(subgroup[i],name,id2,i,subgroup,get$2(node,id2))}}}return new Transition$1(subgroups,this._parents,name,id2)}function transition_selectAll$1(select2){var name=this._name,id2=this._id;if(typeof select2!=="function")select2=selectorAll$1(select2);for(var groups=this._groups,m=groups.length,subgroups=[],parents=[],j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){for(var children2=select2.call(node,node.__data__,i,group),child,inherit2=get$2(node,id2),k=0,l=children2.length;k<l;++k){if(child=children2[k]){schedule$1(child,name,id2,k,children2,inherit2)}}subgroups.push(children2);parents.push(node)}}}return new Transition$1(subgroups,parents,name,id2)}var Selection$2=selection$1.prototype.constructor;function transition_selection$1(){return new Selection$2(this._groups,this._parents)}function styleNull$1(name,interpolate2){var string00,string10,interpolate0;return function(){var string0=styleValue$1(this,name),string1=(this.style.removeProperty(name),styleValue$1(this,name));return string0===string1?null:string0===string00&&string1===string10?interpolate0:interpolate0=interpolate2(string00=string0,string10=string1)}}function styleRemove$2(name){return function(){this.style.removeProperty(name)}}function styleConstant$2(name,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=styleValue$1(this,name);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function styleFunction$2(name,interpolate2,value){var string00,string10,interpolate0;return function(){var string0=styleValue$1(this,name),value1=value(this),string1=value1+"";if(value1==null)string1=value1=(this.style.removeProperty(name),styleValue$1(this,name));return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function styleMaybeRemove$1(id2,name){var on0,on1,listener0,key="style."+name,event="end."+key,remove2;return function(){var schedule2=set$2(this,id2),on=schedule2.on,listener=schedule2.value[key]==null?remove2||(remove2=styleRemove$2(name)):void 0;if(on!==on0||listener0!==listener)(on1=(on0=on).copy()).on(event,listener0=listener);schedule2.on=on1}}function transition_style$1(name,value,priority){var i=(name+="")==="transform"?interpolateTransformCss$1:interpolate$2;return value==null?this.styleTween(name,styleNull$1(name,i)).on("end.style."+name,styleRemove$2(name)):typeof value==="function"?this.styleTween(name,styleFunction$2(name,i,tweenValue$1(this,"style."+name,value))).each(styleMaybeRemove$1(this._id,name)):this.styleTween(name,styleConstant$2(name,i,value),priority).on("end.style."+name,null)}function styleInterpolate$1(name,i,priority){return function(t){this.style.setProperty(name,i.call(this,t),priority)}}function styleTween$1(name,value,priority){var t,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t=(i0=i)&&styleInterpolate$1(name,i,priority);return t}tween._value=value;return tween}function transition_styleTween$1(name,value,priority){var key="style."+(name+="");if(arguments.length<2)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;return this.tween(key,styleTween$1(name,value,priority==null?"":priority))}function textConstant$2(value){return function(){this.textContent=value}}function textFunction$2(value){return function(){var value1=value(this);this.textContent=value1==null?"":value1}}function transition_text$1(value){return this.tween("text",typeof value==="function"?textFunction$2(tweenValue$1(this,"text",value)):textConstant$2(value==null?"":value+""))}function textInterpolate$1(i){return function(t){this.textContent=i.call(this,t)}}function textTween$1(value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&textInterpolate$1(i);return t0}tween._value=value;return tween}function transition_textTween$1(value){var key="text";if(arguments.length<1)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;return this.tween(key,textTween$1(value))}function transition_transition$1(){var name=this._name,id0=this._id,id1=newId$1();for(var groups=this._groups,m=groups.length,j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){var inherit2=get$2(node,id0);schedule$1(node,name,id1,i,group,{time:inherit2.time+inherit2.delay+inherit2.duration,delay:0,duration:inherit2.duration,ease:inherit2.ease})}}}return new Transition$1(groups,this._parents,name,id1)}function transition_end$1(){var on0,on1,that=this,id2=that._id,size=that.size();return new Promise(function(resolve,reject){var cancel={value:reject},end={value:function(){if(--size===0)resolve()}};that.each(function(){var schedule2=set$2(this,id2),on=schedule2.on;if(on!==on0){on1=(on0=on).copy();on1._.cancel.push(cancel);on1._.interrupt.push(cancel);on1._.end.push(end)}schedule2.on=on1});if(size===0)resolve()})}var id$1=0;function Transition$1(groups,parents,name,id2){this._groups=groups;this._parents=parents;this._name=name;this._id=id2}function newId$1(){return++id$1}var selection_prototype$1=selection$1.prototype;Transition$1.prototype={constructor:Transition$1,select:transition_select$1,selectAll:transition_selectAll$1,selectChild:selection_prototype$1.selectChild,selectChildren:selection_prototype$1.selectChildren,filter:transition_filter$1,merge:transition_merge$1,selection:transition_selection$1,transition:transition_transition$1,call:selection_prototype$1.call,nodes:selection_prototype$1.nodes,node:selection_prototype$1.node,size:selection_prototype$1.size,empty:selection_prototype$1.empty,each:selection_prototype$1.each,on:transition_on$1,attr:transition_attr$1,attrTween:transition_attrTween$1,style:transition_style$1,styleTween:transition_styleTween$1,text:transition_text$1,textTween:transition_textTween$1,remove:transition_remove$1,tween:transition_tween$1,delay:transition_delay$1,duration:transition_duration$1,ease:transition_ease$1,easeVarying:transition_easeVarying$1,end:transition_end$1,[Symbol.iterator]:selection_prototype$1[Symbol.iterator]};function cubicInOut$1(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var defaultTiming$1={time:null,delay:0,duration:250,ease:cubicInOut$1};function inherit$1(node,id2){var timing;while(!(timing=node.__transition)||!(timing=timing[id2])){if(!(node=node.parentNode)){throw new Error(`transition ${id2} not found`)}}return timing}function selection_transition$1(name){var id2,timing;if(name instanceof Transition$1){id2=name._id,name=name._name}else{id2=newId$1(),(timing=defaultTiming$1).time=now$1(),name=name==null?null:name+""}for(var groups=this._groups,m=groups.length,j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){schedule$1(node,name,id2,i,group,timing||inherit$1(node,id2))}}}return new Transition$1(groups,this._parents,name,id2)}selection$1.prototype.interrupt=selection_interrupt$1;selection$1.prototype.transition=selection_transition$1;const constant$4=x=>()=>x;function ZoomEvent$1(type,{sourceEvent:sourceEvent2,target,transform,dispatch:dispatch2}){Object.defineProperties(this,{type:{value:type,enumerable:true,configurable:true},sourceEvent:{value:sourceEvent2,enumerable:true,configurable:true},target:{value:target,enumerable:true,configurable:true},transform:{value:transform,enumerable:true,configurable:true},_:{value:dispatch2}})}function Transform$1(k,x,y){this.k=k;this.x=x;this.y=y}Transform$1.prototype={constructor:Transform$1,scale:function(k){return k===1?this:new Transform$1(this.k*k,this.x,this.y)},translate:function(x,y){return x===0&y===0?this:new Transform$1(this.k,this.x+this.k*x,this.y+this.k*y)},apply:function(point){return[point[0]*this.k+this.x,point[1]*this.k+this.y]},applyX:function(x){return x*this.k+this.x},applyY:function(y){return y*this.k+this.y},invert:function(location){return[(location[0]-this.x)/this.k,(location[1]-this.y)/this.k]},invertX:function(x){return(x-this.x)/this.k},invertY:function(y){return(y-this.y)/this.k},rescaleX:function(x){return x.copy().domain(x.range().map(this.invertX,this).map(x.invert,x))},rescaleY:function(y){return y.copy().domain(y.range().map(this.invertY,this).map(y.invert,y))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity$2=new Transform$1(1,0,0);Transform$1.prototype;function nopropagation$2(event){event.stopImmediatePropagation()}function noevent$2(event){event.preventDefault();event.stopImmediatePropagation()}function defaultFilter$2(event){return(!event.ctrlKey||event.type==="wheel")&&!event.button}function defaultExtent$1(){var e=this;if(e instanceof SVGElement){e=e.ownerSVGElement||e;if(e.hasAttribute("viewBox")){e=e.viewBox.baseVal;return[[e.x,e.y],[e.x+e.width,e.y+e.height]]}return[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}return[[0,0],[e.clientWidth,e.clientHeight]]}function defaultTransform$1(){return this.__zoom||identity$2}function defaultWheelDelta$1(event){return-event.deltaY*(event.deltaMode===1?.05:event.deltaMode?1:.002)*(event.ctrlKey?10:1)}function defaultTouchable$2(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain$1(transform,extent,translateExtent){var dx0=transform.invertX(extent[0][0])-translateExtent[0][0],dx1=transform.invertX(extent[1][0])-translateExtent[1][0],dy0=transform.invertY(extent[0][1])-translateExtent[0][1],dy1=transform.invertY(extent[1][1])-translateExtent[1][1];return transform.translate(dx1>dx0?(dx0+dx1)/2:Math.min(0,dx0)||Math.max(0,dx1),dy1>dy0?(dy0+dy1)/2:Math.min(0,dy0)||Math.max(0,dy1))}function zoom$1(){var filter2=defaultFilter$2,extent=defaultExtent$1,constrain=defaultConstrain$1,wheelDelta2=defaultWheelDelta$1,touchable=defaultTouchable$2,scaleExtent=[0,Infinity],translateExtent=[[-Infinity,-Infinity],[Infinity,Infinity]],duration=250,interpolate2=interpolateZoom$1,listeners=dispatch$1("start","zoom","end"),touchstarting,touchfirst,touchending,touchDelay=500,wheelDelay=150,clickDistance2=0,tapDistance=10;function zoom2(selection2){selection2.property("__zoom",defaultTransform$1).on("wheel.zoom",wheeled,{passive:false}).on("mousedown.zoom",mousedowned).on("dblclick.zoom",dblclicked).filter(touchable).on("touchstart.zoom",touchstarted).on("touchmove.zoom",touchmoved).on("touchend.zoom touchcancel.zoom",touchended).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}zoom2.transform=function(collection,transform,point,event){var selection2=collection.selection?collection.selection():collection;selection2.property("__zoom",defaultTransform$1);if(collection!==selection2){schedule2(collection,transform,point,event)}else{selection2.interrupt().each(function(){gesture(this,arguments).event(event).start().zoom(null,typeof transform==="function"?transform.apply(this,arguments):transform).end()})}};zoom2.scaleBy=function(selection2,k,p,event){zoom2.scaleTo(selection2,function(){var k0=this.__zoom.k,k1=typeof k==="function"?k.apply(this,arguments):k;return k0*k1},p,event)};zoom2.scaleTo=function(selection2,k,p,event){zoom2.transform(selection2,function(){var e=extent.apply(this,arguments),t0=this.__zoom,p0=p==null?centroid(e):typeof p==="function"?p.apply(this,arguments):p,p1=t0.invert(p0),k1=typeof k==="function"?k.apply(this,arguments):k;return constrain(translate(scale(t0,k1),p0,p1),e,translateExtent)},p,event)};zoom2.translateBy=function(selection2,x,y,event){zoom2.transform(selection2,function(){return constrain(this.__zoom.translate(typeof x==="function"?x.apply(this,arguments):x,typeof y==="function"?y.apply(this,arguments):y),extent.apply(this,arguments),translateExtent)},null,event)};zoom2.translateTo=function(selection2,x,y,p,event){zoom2.transform(selection2,function(){var e=extent.apply(this,arguments),t=this.__zoom,p0=p==null?centroid(e):typeof p==="function"?p.apply(this,arguments):p;return constrain(identity$2.translate(p0[0],p0[1]).scale(t.k).translate(typeof x==="function"?-x.apply(this,arguments):-x,typeof y==="function"?-y.apply(this,arguments):-y),e,translateExtent)},p,event)};function scale(transform,k){k=Math.max(scaleExtent[0],Math.min(scaleExtent[1],k));return k===transform.k?transform:new Transform$1(k,transform.x,transform.y)}function translate(transform,p0,p1){var x=p0[0]-p1[0]*transform.k,y=p0[1]-p1[1]*transform.k;return x===transform.x&&y===transform.y?transform:new Transform$1(transform.k,x,y)}function centroid(extent2){return[(+extent2[0][0]+ +extent2[1][0])/2,(+extent2[0][1]+ +extent2[1][1])/2]}function schedule2(transition,transform,point,event){transition.on("start.zoom",function(){gesture(this,arguments).event(event).start()}).on("interrupt.zoom end.zoom",function(){gesture(this,arguments).event(event).end()}).tween("zoom",function(){var that=this,args=arguments,g=gesture(that,args).event(event),e=extent.apply(that,args),p=point==null?centroid(e):typeof point==="function"?point.apply(that,args):point,w=Math.max(e[1][0]-e[0][0],e[1][1]-e[0][1]),a=that.__zoom,b=typeof transform==="function"?transform.apply(that,args):transform,i=interpolate2(a.invert(p).concat(w/a.k),b.invert(p).concat(w/b.k));return function(t){if(t===1)t=b;else{var l=i(t),k=w/l[2];t=new Transform$1(k,p[0]-l[0]*k,p[1]-l[1]*k)}g.zoom(null,t)}})}function gesture(that,args,clean){return!clean&&that.__zooming||new Gesture(that,args)}function Gesture(that,args){this.that=that;this.args=args;this.active=0;this.sourceEvent=null;this.extent=extent.apply(that,args);this.taps=0}Gesture.prototype={event:function(event){if(event)this.sourceEvent=event;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(key,transform){if(this.mouse&&key!=="mouse")this.mouse[1]=transform.invert(this.mouse[0]);if(this.touch0&&key!=="touch")this.touch0[1]=transform.invert(this.touch0[0]);if(this.touch1&&key!=="touch")this.touch1[1]=transform.invert(this.touch1[0]);this.that.__zoom=transform;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(type){var d=select$1(this.that).datum();listeners.call(type,this.that,new ZoomEvent$1(type,{sourceEvent:this.sourceEvent,target:zoom2,transform:this.that.__zoom,dispatch:listeners}),d)}};function wheeled(event,...args){if(!filter2.apply(this,arguments))return;var g=gesture(this,args).event(event),t=this.__zoom,k=Math.max(scaleExtent[0],Math.min(scaleExtent[1],t.k*Math.pow(2,wheelDelta2.apply(this,arguments)))),p=pointer$1(event);if(g.wheel){if(g.mouse[0][0]!==p[0]||g.mouse[0][1]!==p[1]){g.mouse[1]=t.invert(g.mouse[0]=p)}clearTimeout(g.wheel)}else if(t.k===k)return;else{g.mouse=[p,t.invert(p)];interrupt$1(this);g.start()}noevent$2(event);g.wheel=setTimeout(wheelidled,wheelDelay);g.zoom("mouse",constrain(translate(scale(t,k),g.mouse[0],g.mouse[1]),g.extent,translateExtent));function wheelidled(){g.wheel=null;g.end()}}function mousedowned(event,...args){if(touchending||!filter2.apply(this,arguments))return;var currentTarget=event.currentTarget,g=gesture(this,args,true).event(event),v=select$1(event.view).on("mousemove.zoom",mousemoved,true).on("mouseup.zoom",mouseupped,true),p=pointer$1(event,currentTarget),x0=event.clientX,y0=event.clientY;dragDisable$1(event.view);nopropagation$2(event);g.mouse=[p,this.__zoom.invert(p)];interrupt$1(this);g.start();function mousemoved(event2){noevent$2(event2);if(!g.moved){var dx=event2.clientX-x0,dy=event2.clientY-y0;g.moved=dx*dx+dy*dy>clickDistance2}g.event(event2).zoom("mouse",constrain(translate(g.that.__zoom,g.mouse[0]=pointer$1(event2,currentTarget),g.mouse[1]),g.extent,translateExtent))}function mouseupped(event2){v.on("mousemove.zoom mouseup.zoom",null);yesdrag$1(event2.view,g.moved);noevent$2(event2);g.event(event2).end()}}function dblclicked(event,...args){if(!filter2.apply(this,arguments))return;var t0=this.__zoom,p0=pointer$1(event.changedTouches?event.changedTouches[0]:event,this),p1=t0.invert(p0),k1=t0.k*(event.shiftKey?.5:2),t1=constrain(translate(scale(t0,k1),p0,p1),extent.apply(this,args),translateExtent);noevent$2(event);if(duration>0)select$1(this).transition().duration(duration).call(schedule2,t1,p0,event);else select$1(this).call(zoom2.transform,t1,p0,event)}function touchstarted(event,...args){if(!filter2.apply(this,arguments))return;var touches=event.touches,n=touches.length,g=gesture(this,args,event.changedTouches.length===n).event(event),started,i,t,p;nopropagation$2(event);for(i=0;i<n;++i){t=touches[i],p=pointer$1(t,this);p=[p,this.__zoom.invert(p),t.identifier];if(!g.touch0)g.touch0=p,started=true,g.taps=1+!!touchstarting;else if(!g.touch1&&g.touch0[2]!==p[2])g.touch1=p,g.taps=0}if(touchstarting)touchstarting=clearTimeout(touchstarting);if(started){if(g.taps<2)touchfirst=p[0],touchstarting=setTimeout(function(){touchstarting=null},touchDelay);interrupt$1(this);g.start()}}function touchmoved(event,...args){if(!this.__zooming)return;var g=gesture(this,args).event(event),touches=event.changedTouches,n=touches.length,i,t,p,l;noevent$2(event);for(i=0;i<n;++i){t=touches[i],p=pointer$1(t,this);if(g.touch0&&g.touch0[2]===t.identifier)g.touch0[0]=p;else if(g.touch1&&g.touch1[2]===t.identifier)g.touch1[0]=p}t=g.that.__zoom;if(g.touch1){var p0=g.touch0[0],l0=g.touch0[1],p1=g.touch1[0],l1=g.touch1[1],dp=(dp=p1[0]-p0[0])*dp+(dp=p1[1]-p0[1])*dp,dl=(dl=l1[0]-l0[0])*dl+(dl=l1[1]-l0[1])*dl;t=scale(t,Math.sqrt(dp/dl));p=[(p0[0]+p1[0])/2,(p0[1]+p1[1])/2];l=[(l0[0]+l1[0])/2,(l0[1]+l1[1])/2]}else if(g.touch0)p=g.touch0[0],l=g.touch0[1];else return;g.zoom("touch",constrain(translate(t,p,l),g.extent,translateExtent))}function touchended(event,...args){if(!this.__zooming)return;var g=gesture(this,args).event(event),touches=event.changedTouches,n=touches.length,i,t;nopropagation$2(event);if(touchending)clearTimeout(touchending);touchending=setTimeout(function(){touchending=null},touchDelay);for(i=0;i<n;++i){t=touches[i];if(g.touch0&&g.touch0[2]===t.identifier)delete g.touch0;else if(g.touch1&&g.touch1[2]===t.identifier)delete g.touch1}if(g.touch1&&!g.touch0)g.touch0=g.touch1,delete g.touch1;if(g.touch0)g.touch0[1]=this.__zoom.invert(g.touch0[0]);else{g.end();if(g.taps===2){t=pointer$1(t,this);if(Math.hypot(touchfirst[0]-t[0],touchfirst[1]-t[1])<tapDistance){var p=select$1(this).on("dblclick.zoom");if(p)p.apply(this,arguments)}}}}zoom2.wheelDelta=function(_){return arguments.length?(wheelDelta2=typeof _==="function"?_:constant$4(+_),zoom2):wheelDelta2};zoom2.filter=function(_){return arguments.length?(filter2=typeof _==="function"?_:constant$4(!!_),zoom2):filter2};zoom2.touchable=function(_){return arguments.length?(touchable=typeof _==="function"?_:constant$4(!!_),zoom2):touchable};zoom2.extent=function(_){return arguments.length?(extent=typeof _==="function"?_:constant$4([[+_[0][0],+_[0][1]],[+_[1][0],+_[1][1]]]),zoom2):extent};zoom2.scaleExtent=function(_){return arguments.length?(scaleExtent[0]=+_[0],scaleExtent[1]=+_[1],zoom2):[scaleExtent[0],scaleExtent[1]]};zoom2.translateExtent=function(_){return arguments.length?(translateExtent[0][0]=+_[0][0],translateExtent[1][0]=+_[1][0],translateExtent[0][1]=+_[0][1],translateExtent[1][1]=+_[1][1],zoom2):[[translateExtent[0][0],translateExtent[0][1]],[translateExtent[1][0],translateExtent[1][1]]]};zoom2.constrain=function(_){return arguments.length?(constrain=_,zoom2):constrain};zoom2.duration=function(_){return arguments.length?(duration=+_,zoom2):duration};zoom2.interpolate=function(_){return arguments.length?(interpolate2=_,zoom2):interpolate2};zoom2.on=function(){var value=listeners.on.apply(listeners,arguments);return value===listeners?zoom2:value};zoom2.clickDistance=function(_){return arguments.length?(clickDistance2=(_=+_)*_,zoom2):Math.sqrt(clickDistance2)};zoom2.tapDistance=function(_){return arguments.length?(tapDistance=+_,zoom2):tapDistance};return zoom2}var Position=(Position2=>{Position2["Left"]="left";Position2["Top"]="top";Position2["Right"]="right";Position2["Bottom"]="bottom";return Position2})(Position||{});var SelectionMode=(SelectionMode2=>{SelectionMode2["Partial"]="partial";SelectionMode2["Full"]="full";return SelectionMode2})(SelectionMode||{});var ConnectionLineType=(ConnectionLineType2=>{ConnectionLineType2["Bezier"]="default";ConnectionLineType2["SimpleBezier"]="simple-bezier";ConnectionLineType2["Straight"]="straight";ConnectionLineType2["Step"]="step";ConnectionLineType2["SmoothStep"]="smoothstep";return ConnectionLineType2})(ConnectionLineType||{});var ConnectionMode=(ConnectionMode2=>{ConnectionMode2["Strict"]="strict";ConnectionMode2["Loose"]="loose";return ConnectionMode2})(ConnectionMode||{});var MarkerType=(MarkerType2=>{MarkerType2["Arrow"]="arrow";MarkerType2["ArrowClosed"]="arrowclosed";return MarkerType2})(MarkerType||{});var PanOnScrollMode=(PanOnScrollMode2=>{PanOnScrollMode2["Free"]="free";PanOnScrollMode2["Vertical"]="vertical";PanOnScrollMode2["Horizontal"]="horizontal";return PanOnScrollMode2})(PanOnScrollMode||{});const inputTags=["INPUT","SELECT","TEXTAREA"];const defaultDoc=typeof document!=="undefined"?document:null;function isInputDOMNode(event){var _a,_b;const target=((_b=(_a=event.composedPath)==null?void 0:_a.call(event))==null?void 0:_b[0])||event.target;const hasAttribute=typeof(target==null?void 0:target.hasAttribute)==="function"?target.hasAttribute("contenteditable"):false;const closest=typeof(target==null?void 0:target.closest)==="function"?target.closest(".nokey"):null;return inputTags.includes(target==null?void 0:target.nodeName)||hasAttribute||!!closest}function wasModifierPressed(event){return event.ctrlKey||event.metaKey||event.shiftKey||event.altKey}function isKeyMatch(pressedKey,keyToMatch,pressedKeys,isKeyUp){const keyCombination=keyToMatch.replace("+","\n").replace("\n\n","\n+").split("\n").map(k=>k.trim().toLowerCase());if(keyCombination.length===1){return pressedKey.toLowerCase()===keyToMatch.toLowerCase()}if(!isKeyUp){pressedKeys.add(pressedKey.toLowerCase())}const isMatch=keyCombination.every((key,index)=>pressedKeys.has(key)&&Array.from(pressedKeys.values())[index]===keyCombination[index]);if(isKeyUp){pressedKeys.delete(pressedKey.toLowerCase())}return isMatch}function createKeyPredicate(keyFilter,pressedKeys){return event=>{if(!event.code&&!event.key){return false}const keyOrCode=useKeyOrCode(event.code,keyFilter);if(Array.isArray(keyFilter)){return keyFilter.some(key=>isKeyMatch(event[keyOrCode],key,pressedKeys,event.type==="keyup"))}return isKeyMatch(event[keyOrCode],keyFilter,pressedKeys,event.type==="keyup")}}function useKeyOrCode(code,keysToWatch){return keysToWatch.includes(code)?"code":"key"}function useKeyPress(keyFilter,options){const target=computed(()=>toValue$1(options==null?void 0:options.target)??defaultDoc);const isPressed=shallowRef(toValue$1(keyFilter)===true);let modifierPressed=false;const pressedKeys=new Set;let currentFilter=createKeyFilterFn(toValue$1(keyFilter));watch(()=>toValue$1(keyFilter),(nextKeyFilter,previousKeyFilter)=>{if(typeof previousKeyFilter==="boolean"&&typeof nextKeyFilter!=="boolean"){reset()}currentFilter=createKeyFilterFn(nextKeyFilter)},{immediate:true});useEventListener(["blur","contextmenu"],reset);onKeyStroke((...args)=>currentFilter(...args),e=>{var _a,_b;const actInsideInputWithModifier=toValue$1(options==null?void 0:options.actInsideInputWithModifier)??true;const preventDefault=toValue$1(options==null?void 0:options.preventDefault)??false;modifierPressed=wasModifierPressed(e);const preventAction=(!modifierPressed||modifierPressed&&!actInsideInputWithModifier)&&isInputDOMNode(e);if(preventAction){return}const target2=((_b=(_a=e.composedPath)==null?void 0:_a.call(e))==null?void 0:_b[0])||e.target;const isInteractiveElement=(target2==null?void 0:target2.nodeName)==="BUTTON"||(target2==null?void 0:target2.nodeName)==="A";if(!preventDefault&&(modifierPressed||!isInteractiveElement)){e.preventDefault()}isPressed.value=true},{eventName:"keydown",target});onKeyStroke((...args)=>currentFilter(...args),e=>{const actInsideInputWithModifier=toValue$1(options==null?void 0:options.actInsideInputWithModifier)??true;if(isPressed.value){const preventAction=(!modifierPressed||modifierPressed&&!actInsideInputWithModifier)&&isInputDOMNode(e);if(preventAction){return}modifierPressed=false;isPressed.value=false}},{eventName:"keyup",target});function reset(){modifierPressed=false;pressedKeys.clear();isPressed.value=toValue$1(keyFilter)===true}function createKeyFilterFn(keyFilter2){if(keyFilter2===null){reset();return()=>false}if(typeof keyFilter2==="boolean"){reset();isPressed.value=keyFilter2;return()=>false}if(Array.isArray(keyFilter2)||typeof keyFilter2==="string"){return createKeyPredicate(keyFilter2,pressedKeys)}return keyFilter2}return isPressed}const ARIA_NODE_DESC_KEY="vue-flow__node-desc";const ARIA_EDGE_DESC_KEY="vue-flow__edge-desc";const ARIA_LIVE_MESSAGE="vue-flow__aria-live";const elementSelectionKeys=["Enter"," ","Escape"];const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function nodeToRect(node){return{...node.computedPosition||{x:0,y:0},width:node.dimensions.width||0,height:node.dimensions.height||0}}function getOverlappingArea(rectA,rectB){const xOverlap=Math.max(0,Math.min(rectA.x+rectA.width,rectB.x+rectB.width)-Math.max(rectA.x,rectB.x));const yOverlap=Math.max(0,Math.min(rectA.y+rectA.height,rectB.y+rectB.height)-Math.max(rectA.y,rectB.y));return Math.ceil(xOverlap*yOverlap)}function getDimensions(node){return{width:node.offsetWidth,height:node.offsetHeight}}function clamp(val,min=0,max=1){return Math.min(Math.max(val,min),max)}function clampPosition(position,extent){return{x:clamp(position.x,extent[0][0],extent[1][0]),y:clamp(position.y,extent[0][1],extent[1][1])}}function getHostForElement(element){const doc=element.getRootNode();if("elementFromPoint"in doc){return doc}return window.document}function isEdge(element){return element&&typeof element==="object"&&"id"in element&&"source"in element&&"target"in element}function isNode(element){return element&&typeof element==="object"&&"id"in element&&"position"in element&&!isEdge(element)}function isGraphNode(element){return isNode(element)&&"computedPosition"in element}function isNumeric(n){return!Number.isNaN(n)&&Number.isFinite(n)}function isRect(obj){return isNumeric(obj.width)&&isNumeric(obj.height)&&isNumeric(obj.x)&&isNumeric(obj.y)}function parseNode(node,existingNode,parentNode){const initialState={id:node.id.toString(),type:node.type??"default",dimensions:markRaw({width:0,height:0}),computedPosition:markRaw({z:0,...node.position}),handleBounds:{source:[],target:[]},draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:false,dragging:false,resizing:false,initialized:false,isParent:false,position:{x:0,y:0},data:isDef(node.data)?node.data:{},events:markRaw(isDef(node.events)?node.events:{})};return Object.assign(existingNode??initialState,node,{id:node.id.toString(),parentNode})}function parseEdge(edge,existingEdge,defaultEdgeOptions){var _a,_b;const initialState={id:edge.id.toString(),type:edge.type??(existingEdge==null?void 0:existingEdge.type)??"default",source:edge.source.toString(),target:edge.target.toString(),sourceHandle:(_a=edge.sourceHandle)==null?void 0:_a.toString(),targetHandle:(_b=edge.targetHandle)==null?void 0:_b.toString(),updatable:edge.updatable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.updatable),selectable:edge.selectable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.selectable),focusable:edge.focusable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.focusable),data:isDef(edge.data)?edge.data:{},events:markRaw(isDef(edge.events)?edge.events:{}),label:edge.label??"",interactionWidth:edge.interactionWidth??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.interactionWidth),...defaultEdgeOptions??{}};return Object.assign(existingEdge??initialState,edge,{id:edge.id.toString()})}function getConnectedElements(nodeOrId,nodes,edges,dir){const id2=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const connectedIds=new Set;const origin=dir==="source"?"target":"source";for(const edge of edges){if(edge[origin]===id2){connectedIds.add(edge[dir])}}return nodes.filter(n=>connectedIds.has(n.id))}function getOutgoers(...args){if(args.length===3){const[nodeOrId2,nodes,edges]=args;return getConnectedElements(nodeOrId2,nodes,edges,"target")}const[nodeOrId,elements]=args;const nodeId=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const outgoers=elements.filter(el=>isEdge(el)&&el.source===nodeId);return outgoers.map(edge=>elements.find(el=>isNode(el)&&el.id===edge.target))}function getIncomers(...args){if(args.length===3){const[nodeOrId2,nodes,edges]=args;return getConnectedElements(nodeOrId2,nodes,edges,"source")}const[nodeOrId,elements]=args;const nodeId=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const incomers=elements.filter(el=>isEdge(el)&&el.target===nodeId);return incomers.map(edge=>elements.find(el=>isNode(el)&&el.id===edge.source))}function getEdgeId({source,sourceHandle,target,targetHandle}){return`vueflow__edge-${source}${sourceHandle??""}-${target}${targetHandle??""}`}function connectionExists(edge,elements){return elements.some(el=>isEdge(el)&&el.source===edge.source&&el.target===edge.target&&(el.sourceHandle===edge.sourceHandle||!el.sourceHandle&&!edge.sourceHandle)&&(el.targetHandle===edge.targetHandle||!el.targetHandle&&!edge.targetHandle))}function rendererPointToPoint({x,y},{x:tx,y:ty,zoom:tScale}){return{x:x*tScale+tx,y:y*tScale+ty}}function pointToRendererPoint({x,y},{x:tx,y:ty,zoom:tScale},snapToGrid=false,snapGrid=[1,1]){const position={x:(x-tx)/tScale,y:(y-ty)/tScale};return snapToGrid?snapPosition(position,snapGrid):position}function getBoundsOfBoxes(box1,box2){return{x:Math.min(box1.x,box2.x),y:Math.min(box1.y,box2.y),x2:Math.max(box1.x2,box2.x2),y2:Math.max(box1.y2,box2.y2)}}function rectToBox({x,y,width,height}){return{x,y,x2:x+width,y2:y+height}}function boxToRect({x,y,x2,y2}){return{x,y,width:x2-x,height:y2-y}}function getBoundsofRects(rect1,rect2){return boxToRect(getBoundsOfBoxes(rectToBox(rect1),rectToBox(rect2)))}function getRectOfNodes(nodes){let box={x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY};for(let i=0;i<nodes.length;i++){const node=nodes[i];box=getBoundsOfBoxes(box,rectToBox({...node.computedPosition,...node.dimensions}))}return boxToRect(box)}function getNodesInside(nodes,rect,viewport={x:0,y:0,zoom:1},partially=false,excludeNonSelectableNodes=false){const paneRect={...pointToRendererPoint(rect,viewport),width:rect.width/viewport.zoom,height:rect.height/viewport.zoom};const visibleNodes=[];for(const node of nodes){const{dimensions,selectable=true,hidden=false}=node;const width=dimensions.width??node.width??null;const height=dimensions.height??node.height??null;if(excludeNonSelectableNodes&&!selectable||hidden){continue}const overlappingArea=getOverlappingArea(paneRect,nodeToRect(node));const notInitialized=width===null||height===null;const partiallyVisible=partially&&overlappingArea>0;const area=(width??0)*(height??0);const isVisible=notInitialized||partiallyVisible||overlappingArea>=area;if(isVisible||node.dragging){visibleNodes.push(node)}}return visibleNodes}function getConnectedEdges(nodesOrId,edges){const nodeIds=new Set;if(typeof nodesOrId==="string"){nodeIds.add(nodesOrId)}else if(nodesOrId.length>=1){for(const n of nodesOrId){nodeIds.add(n.id)}}return edges.filter(edge=>nodeIds.has(edge.source)||nodeIds.has(edge.target))}function parsePadding(padding,viewport){if(typeof padding==="number"){return Math.floor((viewport-viewport/(1+padding))*.5)}if(typeof padding==="string"&&padding.endsWith("px")){const paddingValue=Number.parseFloat(padding);if(!Number.isNaN(paddingValue)){return Math.floor(paddingValue)}}if(typeof padding==="string"&&padding.endsWith("%")){const paddingValue=Number.parseFloat(padding);if(!Number.isNaN(paddingValue)){return Math.floor(viewport*paddingValue*.01)}}warn(`The padding value "${padding}" is invalid. Please provide a number or a string with a valid unit (px or %).`);return 0}function parsePaddings(padding,width,height){if(typeof padding==="string"||typeof padding==="number"){const paddingY=parsePadding(padding,height);const paddingX=parsePadding(padding,width);return{top:paddingY,right:paddingX,bottom:paddingY,left:paddingX,x:paddingX*2,y:paddingY*2}}if(typeof padding==="object"){const top=parsePadding(padding.top??padding.y??0,height);const bottom=parsePadding(padding.bottom??padding.y??0,height);const left=parsePadding(padding.left??padding.x??0,width);const right=parsePadding(padding.right??padding.x??0,width);return{top,right,bottom,left,x:left+right,y:top+bottom}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function calculateAppliedPaddings(bounds,x,y,zoom2,width,height){const{x:left,y:top}=rendererPointToPoint(bounds,{x,y,zoom:zoom2});const{x:boundRight,y:boundBottom}=rendererPointToPoint({x:bounds.x+bounds.width,y:bounds.y+bounds.height},{x,y,zoom:zoom2});const right=width-boundRight;const bottom=height-boundBottom;return{left:Math.floor(left),top:Math.floor(top),right:Math.floor(right),bottom:Math.floor(bottom)}}function getTransformForBounds(bounds,width,height,minZoom,maxZoom,padding=.1){const p=parsePaddings(padding,width,height);const xZoom=(width-p.x)/bounds.width;const yZoom=(height-p.y)/bounds.height;const zoom2=Math.min(xZoom,yZoom);const clampedZoom=clamp(zoom2,minZoom,maxZoom);const boundsCenterX=bounds.x+bounds.width/2;const boundsCenterY=bounds.y+bounds.height/2;const x=width/2-boundsCenterX*clampedZoom;const y=height/2-boundsCenterY*clampedZoom;const newPadding=calculateAppliedPaddings(bounds,x,y,clampedZoom,width,height);const offset={left:Math.min(newPadding.left-p.left,0),top:Math.min(newPadding.top-p.top,0),right:Math.min(newPadding.right-p.right,0),bottom:Math.min(newPadding.bottom-p.bottom,0)};return{x:x-offset.left+offset.right,y:y-offset.top+offset.bottom,zoom:clampedZoom}}function getXYZPos(parentPos,computedPosition){return{x:computedPosition.x+parentPos.x,y:computedPosition.y+parentPos.y,z:(parentPos.z>computedPosition.z?parentPos.z:computedPosition.z)+1}}function isParentSelected(node,nodeLookup){if(!node.parentNode){return false}const parent=nodeLookup.get(node.parentNode);if(!parent){return false}if(parent.selected){return true}return isParentSelected(parent,nodeLookup)}function getMarkerId(marker,vueFlowId){if(typeof marker==="undefined"){return""}if(typeof marker==="string"){return marker}const idPrefix=vueFlowId?`${vueFlowId}__`:"";return`${idPrefix}${Object.keys(marker).sort().map(key=>`${key}=${marker[key]}`).join("&")}`}function wheelDelta(event){const factor=event.ctrlKey&&isMacOs()?10:1;return-event.deltaY*(event.deltaMode===1?.05:event.deltaMode?1:.002)*factor}function calcAutoPanVelocity(value,min,max){if(value<min){return clamp(Math.abs(value-min),1,min)/min}if(value>max){return-clamp(Math.abs(value-max),1,min)/min}return 0}function calcAutoPan(pos,bounds,speed=15,distance2=40){const xMovement=calcAutoPanVelocity(pos.x,distance2,bounds.width-distance2)*speed;const yMovement=calcAutoPanVelocity(pos.y,distance2,bounds.height-distance2)*speed;return[xMovement,yMovement]}function handleParentExpand(updateItem,parent){if(parent){const extendWidth=updateItem.position.x+updateItem.dimensions.width-parent.dimensions.width;const extendHeight=updateItem.position.y+updateItem.dimensions.height-parent.dimensions.height;if(extendWidth>0||extendHeight>0||updateItem.position.x<0||updateItem.position.y<0){let parentStyles={};if(typeof parent.style==="function"){parentStyles={...parent.style(parent)}}else if(parent.style){parentStyles={...parent.style}}parentStyles.width=parentStyles.width??`${parent.dimensions.width}px`;parentStyles.height=parentStyles.height??`${parent.dimensions.height}px`;if(extendWidth>0){if(typeof parentStyles.width==="string"){const currWidth=Number(parentStyles.width.replace("px",""));parentStyles.width=`${currWidth+extendWidth}px`}else{parentStyles.width+=extendWidth}}if(extendHeight>0){if(typeof parentStyles.height==="string"){const currWidth=Number(parentStyles.height.replace("px",""));parentStyles.height=`${currWidth+extendHeight}px`}else{parentStyles.height+=extendHeight}}if(updateItem.position.x<0){const xDiff=Math.abs(updateItem.position.x);parent.position.x=parent.position.x-xDiff;if(typeof parentStyles.width==="string"){const currWidth=Number(parentStyles.width.replace("px",""));parentStyles.width=`${currWidth+xDiff}px`}else{parentStyles.width+=xDiff}updateItem.position.x=0}if(updateItem.position.y<0){const yDiff=Math.abs(updateItem.position.y);parent.position.y=parent.position.y-yDiff;if(typeof parentStyles.height==="string"){const currWidth=Number(parentStyles.height.replace("px",""));parentStyles.height=`${currWidth+yDiff}px`}else{parentStyles.height+=yDiff}updateItem.position.y=0}parent.dimensions.width=Number(parentStyles.width.toString().replace("px",""));parent.dimensions.height=Number(parentStyles.height.toString().replace("px",""));if(typeof parent.style==="function"){parent.style=p=>{const styleFunc=parent.style;return{...styleFunc(p),...parentStyles}}}else{parent.style={...parent.style,...parentStyles}}}}}function applyChanges(changes,elements){var _a,_b;const addRemoveChanges=changes.filter(c=>c.type==="add"||c.type==="remove");for(const change of addRemoveChanges){if(change.type==="add"){const index=elements.findIndex(el=>el.id===change.item.id);if(index===-1){elements.push(change.item)}}else if(change.type==="remove"){const index=elements.findIndex(el=>el.id===change.id);if(index!==-1){elements.splice(index,1)}}}const elementIds=elements.map(el=>el.id);for(const element of elements){for(const currentChange of changes){if(currentChange.id!==element.id){continue}switch(currentChange.type){case"select":element.selected=currentChange.selected;break;case"position":if(isGraphNode(element)){if(typeof currentChange.position!=="undefined"){element.position=currentChange.position}if(typeof currentChange.dragging!=="undefined"){element.dragging=currentChange.dragging}if(element.expandParent&&element.parentNode){const parent=elements[elementIds.indexOf(element.parentNode)];if(parent&&isGraphNode(parent)){handleParentExpand(element,parent)}}}break;case"dimensions":if(isGraphNode(element)){if(typeof currentChange.dimensions!=="undefined"){element.dimensions=currentChange.dimensions}if(typeof currentChange.updateStyle!=="undefined"&¤tChange.updateStyle){element.style={...element.style||{},width:`${(_a=currentChange.dimensions)==null?void 0:_a.width}px`,height:`${(_b=currentChange.dimensions)==null?void 0:_b.height}px`}}if(typeof currentChange.resizing!=="undefined"){element.resizing=currentChange.resizing}if(element.expandParent&&element.parentNode){const parent=elements[elementIds.indexOf(element.parentNode)];if(parent&&isGraphNode(parent)){const parentInit=!!parent.dimensions.width&&!!parent.dimensions.height;if(!parentInit){nextTick(()=>{handleParentExpand(element,parent)})}else{handleParentExpand(element,parent)}}}}break}}}return elements}function createSelectionChange(id2,selected){return{id:id2,type:"select",selected}}function createAdditionChange(item){return{item,type:"add"}}function createNodeRemoveChange(id2){return{id:id2,type:"remove"}}function createEdgeRemoveChange(id2,source,target,sourceHandle,targetHandle){return{id:id2,source,target,sourceHandle:sourceHandle||null,targetHandle:targetHandle||null,type:"remove"}}function getSelectionChanges(items,selectedIds=new Set,mutateItem=false){const changes=[];for(const[id2,item]of items){const willBeSelected=selectedIds.has(id2);if(!(item.selected===void 0&&!willBeSelected)&&item.selected!==willBeSelected){if(mutateItem){item.selected=willBeSelected}changes.push(createSelectionChange(item.id,willBeSelected))}}return changes}const noop$1=()=>{};function createExtendedEventHook(defaultHandler){const listeners=new Set;let emitter=noop$1;let hasEmitListeners=()=>false;const hasListeners=()=>listeners.size>0||hasEmitListeners();const setEmitter=fn=>{emitter=fn};const removeEmitter=()=>{emitter=noop$1};const setHasEmitListeners=fn=>{hasEmitListeners=fn};const removeHasEmitListeners=()=>{hasEmitListeners=()=>false};const off=fn=>{listeners.delete(fn)};const on=fn=>{listeners.add(fn);const offFn=()=>off(fn);tryOnScopeDispose(offFn);return{off:offFn}};const trigger=param=>{const queue=[emitter];if(hasListeners()){queue.push(...listeners)}else if(defaultHandler){queue.push(defaultHandler)}return Promise.allSettled(queue.map(fn=>fn(param)))};return{on,off,trigger,hasListeners,listeners,setEmitter,removeEmitter,setHasEmitListeners,removeHasEmitListeners}}function hasSelector(target,selector2,node){let current=target;do{if(current&¤t.matches(selector2)){return true}else if(current===node){return false}current=current.parentElement}while(current);return false}function getDragItems(nodeLookup,nodesDraggable,mousePos,nodeId){var _a,_b;const dragItems=new Map;for(const[id2,node]of nodeLookup){if((node.selected||node.id===nodeId)&&(!node.parentNode||!isParentSelected(node,nodeLookup))&&(node.draggable||nodesDraggable&&typeof node.draggable==="undefined")){const internalNode=nodeLookup.get(id2);if(internalNode){dragItems.set(id2,{id:node.id,position:node.position||{x:0,y:0},distance:{x:mousePos.x-((_a=node.computedPosition)==null?void 0:_a.x)||0,y:mousePos.y-((_b=node.computedPosition)==null?void 0:_b.y)||0},from:{x:node.computedPosition.x,y:node.computedPosition.y},extent:node.extent,parentNode:node.parentNode,dimensions:{...node.dimensions},expandParent:node.expandParent})}}}return Array.from(dragItems.values())}function getEventHandlerParams({id:id2,dragItems,findNode}){const extendedDragItems=[];for(const dragItem of dragItems){const node=findNode(dragItem.id);if(node){extendedDragItems.push(node)}}return[id2?extendedDragItems.find(n=>n.id===id2):extendedDragItems[0],extendedDragItems]}function getExtentPadding(padding){if(Array.isArray(padding)){switch(padding.length){case 1:return[padding[0],padding[0],padding[0],padding[0]];case 2:return[padding[0],padding[1],padding[0],padding[1]];case 3:return[padding[0],padding[1],padding[2],padding[1]];case 4:return padding;default:return[0,0,0,0]}}return[padding,padding,padding,padding]}function getParentExtent(currentExtent,node,parent){const[top,right,bottom,left]=typeof currentExtent!=="string"?getExtentPadding(currentExtent.padding):[0,0,0,0];if(parent&&typeof parent.computedPosition.x!=="undefined"&&typeof parent.computedPosition.y!=="undefined"&&typeof parent.dimensions.width!=="undefined"&&typeof parent.dimensions.height!=="undefined"){return[[parent.computedPosition.x+left,parent.computedPosition.y+top],[parent.computedPosition.x+parent.dimensions.width-right,parent.computedPosition.y+parent.dimensions.height-bottom]]}return false}function getExtent(item,triggerError,extent,parent){let currentExtent=item.extent||extent;if((currentExtent==="parent"||!Array.isArray(currentExtent)&&(currentExtent==null?void 0:currentExtent.range)==="parent")&&!item.expandParent){if(item.parentNode&&parent&&item.dimensions.width&&item.dimensions.height){const parentExtent=getParentExtent(currentExtent,item,parent);if(parentExtent){currentExtent=parentExtent}}else{triggerError(new VueFlowError(ErrorCode.NODE_EXTENT_INVALID,item.id));currentExtent=extent}}else if(Array.isArray(currentExtent)){const parentX=(parent==null?void 0:parent.computedPosition.x)||0;const parentY=(parent==null?void 0:parent.computedPosition.y)||0;currentExtent=[[currentExtent[0][0]+parentX,currentExtent[0][1]+parentY],[currentExtent[1][0]+parentX,currentExtent[1][1]+parentY]]}else if(currentExtent!=="parent"&&(currentExtent==null?void 0:currentExtent.range)&&Array.isArray(currentExtent.range)){const[top,right,bottom,left]=getExtentPadding(currentExtent.padding);const parentX=(parent==null?void 0:parent.computedPosition.x)||0;const parentY=(parent==null?void 0:parent.computedPosition.y)||0;currentExtent=[[currentExtent.range[0][0]+parentX+left,currentExtent.range[0][1]+parentY+top],[currentExtent.range[1][0]+parentX-right,currentExtent.range[1][1]+parentY-bottom]]}return currentExtent==="parent"?[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]]:currentExtent}function clampNodeExtent({width,height},extent){return[extent[0],[extent[1][0]-(width||0),extent[1][1]-(height||0)]]}function calcNextPosition(node,nextPosition,triggerError,nodeExtent,parentNode){const extent=clampNodeExtent(node.dimensions,getExtent(node,triggerError,nodeExtent,parentNode));const clampedPos=clampPosition(nextPosition,extent);return{position:{x:clampedPos.x-((parentNode==null?void 0:parentNode.computedPosition.x)||0),y:clampedPos.y-((parentNode==null?void 0:parentNode.computedPosition.y)||0)},computedPosition:clampedPos}}function getHandlePosition(node,handle,fallbackPosition=Position.Left,center=false){const x=((handle==null?void 0:handle.x)??0)+node.computedPosition.x;const y=((handle==null?void 0:handle.y)??0)+node.computedPosition.y;const{width,height}=handle??getNodeDimensions(node);if(center){return{x:x+width/2,y:y+height/2}}const position=(handle==null?void 0:handle.position)??fallbackPosition;switch(position){case Position.Top:return{x:x+width/2,y};case Position.Right:return{x:x+width,y:y+height/2};case Position.Bottom:return{x:x+width/2,y:y+height};case Position.Left:return{x,y:y+height/2}}}function getEdgeHandle(bounds,handleId){if(!bounds){return null}return(!handleId?bounds[0]:bounds.find(d=>d.id===handleId))||null}function isEdgeVisible({sourcePos,targetPos,sourceWidth,sourceHeight,targetWidth,targetHeight,width,height,viewport}){const edgeBox={x:Math.min(sourcePos.x,targetPos.x),y:Math.min(sourcePos.y,targetPos.y),x2:Math.max(sourcePos.x+sourceWidth,targetPos.x+targetWidth),y2:Math.max(sourcePos.y+sourceHeight,targetPos.y+targetHeight)};if(edgeBox.x===edgeBox.x2){edgeBox.x2+=1}if(edgeBox.y===edgeBox.y2){edgeBox.y2+=1}const viewBox=rectToBox({x:(0-viewport.x)/viewport.zoom,y:(0-viewport.y)/viewport.zoom,width:width/viewport.zoom,height:height/viewport.zoom});const xOverlap=Math.max(0,Math.min(viewBox.x2,edgeBox.x2)-Math.max(viewBox.x,edgeBox.x));const yOverlap=Math.max(0,Math.min(viewBox.y2,edgeBox.y2)-Math.max(viewBox.y,edgeBox.y));const overlappingArea=Math.ceil(xOverlap*yOverlap);return overlappingArea>0}function getEdgeZIndex(edge,findNode,elevateEdgesOnSelect=false){const hasZIndex=typeof edge.zIndex==="number";let z=hasZIndex?edge.zIndex:0;const source=findNode(edge.source);const target=findNode(edge.target);if(!source||!target){return 0}if(elevateEdgesOnSelect){z=hasZIndex?edge.zIndex:Math.max(source.computedPosition.z||0,target.computedPosition.z||0)}return z}var ErrorCode=(ErrorCode2=>{ErrorCode2["MISSING_STYLES"]="MISSING_STYLES";ErrorCode2["MISSING_VIEWPORT_DIMENSIONS"]="MISSING_VIEWPORT_DIMENSIONS";ErrorCode2["NODE_INVALID"]="NODE_INVALID";ErrorCode2["NODE_NOT_FOUND"]="NODE_NOT_FOUND";ErrorCode2["NODE_MISSING_PARENT"]="NODE_MISSING_PARENT";ErrorCode2["NODE_TYPE_MISSING"]="NODE_TYPE_MISSING";ErrorCode2["NODE_EXTENT_INVALID"]="NODE_EXTENT_INVALID";ErrorCode2["EDGE_INVALID"]="EDGE_INVALID";ErrorCode2["EDGE_NOT_FOUND"]="EDGE_NOT_FOUND";ErrorCode2["EDGE_SOURCE_MISSING"]="EDGE_SOURCE_MISSING";ErrorCode2["EDGE_TARGET_MISSING"]="EDGE_TARGET_MISSING";ErrorCode2["EDGE_TYPE_MISSING"]="EDGE_TYPE_MISSING";ErrorCode2["EDGE_SOURCE_TARGET_SAME"]="EDGE_SOURCE_TARGET_SAME";ErrorCode2["EDGE_SOURCE_TARGET_MISSING"]="EDGE_SOURCE_TARGET_MISSING";ErrorCode2["EDGE_ORPHANED"]="EDGE_ORPHANED";ErrorCode2["USEVUEFLOW_OPTIONS"]="USEVUEFLOW_OPTIONS";return ErrorCode2})(ErrorCode||{});const messages={["MISSING_STYLES"]:()=>`It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly`,["MISSING_VIEWPORT_DIMENSIONS"]:()=>"The Vue Flow parent container needs a width and a height to render the graph",["NODE_INVALID"]:id2=>`Node is invalid
|
|
1
|
+
import{_ as _export_sfc,a as openBlock,c as createElementBlock,d as createBaseVNode,F as Fragment,y as renderList,t as toDisplayString,$ as normalizeClass,e as createVNode,i as unref,dC as mdiTableEye,dD as mdiTable,h as VIcon,r as createCommentVNode,J as renderSlot,b as createBlock,w as withCtx,ad as resolveDynamicComponent,A as computed,dE as mdiKeyVariant,dF as mdiLinkVariant,aK as defineComponent,o as onMounted,dG as createPropsRestProxy,ck as toRef,B as ref,bT as useSlots,dm as onUnmounted,dH as useAttrs,N as mergeProps,H as watch,c2 as normalizeStyle,j as createTextVNode,au as inject,dI as effectScope,a6 as nextTick,dJ as onBeforeMount,C as onBeforeUnmount,dK as isMemoSame,aP as shallowRef,dL as getCurrentInstance,cm as getCurrentScope,ag as onScopeDispose,dM as toValue$1,bC as provide,aM as h,cq as resolveComponent,bz as reactive,bd as isRef,dN as toRefs$1,dO as customRef,dP as readonly,aQ as markRaw,bE as watchEffect,am as normalizeProps,a3 as withModifiers,dQ as mdiPin,dR as mdiPinOutline,n as VBtn,bG as mdiChevronDown,dS as mdiChevronUp,af as useUiFeedback,aa as mdiMagnify,Y as VAutocomplete,dT as mdiImageFilterCenterFocus,S as VSheet,dn as VBtnToggle,bb as VSelect,br as VDivider,cC as mdiRestore,dU as mdiUndo,dV as mdiRedo,O as VMenu,a$ as VList,b0 as VListItem,ab as mdiClose,dW as mdiFullscreenExit,dX as mdiFullscreen,dY as mdiTuneVariant,ai as VChip,K as VSkeletonLoader,an as guardReactiveProps,V as VCard,k as VCardText,a9 as VTextField,a8 as withKeys,l as VCardActions,z as VSpacer,p as VDialog,dZ as toRaw,aC as withDirectives,aD as vShow,a2 as VSwitch,d_ as useVibe64DatabaseTools,d$ as mdiDatabaseAlertOutline,e0 as mdiDatabaseOutline,e1 as mdiGraphOutline,e2 as mdiTableSearch,ar as mdiCreationOutline,bF as mdiChevronRight,bI as mdiChevronLeft,aj as mdiRefresh,at as mdiPlus,e3 as mdiBookmarkOutline,cH as mdiDeleteOutline,e4 as mdiHistory,q as mdiAlertCircleOutline,e5 as mdiPlay,cs as mdiStop,e6 as mdiFilterPlusOutline,e7 as mdiBookmarkPlusOutline,ba as mdiPencilOutline,aA as mdiCheckCircleOutline,e8 as mdiCodeTags,b8 as mdiSend,av as mdiInformationOutline,g as VCardTitle,b_ as VCheckbox,I as VAlert}from"./index-C4KnwA0g.js";import{p as LanguageSupport,w as LRLanguage,q as ifNotIn,u as completeFromList,x as indentNodeProp,z as continuedIndent,B as foldNodeProp,o as styleTags,t as tags,l as ExternalTokenizer,L as LRParser,I as syntaxTree,a as EditorView,h as EditorState,a6 as lineNumbers,a8 as history,a9 as drawSelection,ao as highlightActiveLine,ad as bracketMatching,ac as syntaxHighlighting,am as defaultHighlightStyle,Z as keymap,ah as defaultKeymap,ai as historyKeymap}from"./index-BYZl5lR4.js";import{V as VRadioGroup,a as VRadio}from"./VRadioGroup-BuRMvs7d.js";import{V as VTextarea}from"./VTextarea-Duvzvmjq.js";const whitespace=36;const LineComment=1;const BlockComment=2;const String$1=3;const Number$1=4;const Bool=5;const Null=6;const ParenL=7;const ParenR=8;const BraceL=9;const BraceR=10;const BracketL=11;const BracketR=12;const Semi=13;const Dot=14;const Operator=15;const Punctuation=16;const SpecialVar=17;const Identifier=18;const QuotedIdentifier=19;const Keyword=20;const Type=21;const Bits=22;const Bytes=23;const Builtin=24;function isAlpha(ch){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=48&&ch<=57}function isHexDigit(ch){return ch>=48&&ch<=57||ch>=97&&ch<=102||ch>=65&&ch<=70}function readLiteral(input,endQuote,backslashEscapes){for(let escaped=false;;){if(input.next<0)return;if(input.next==endQuote&&!escaped){input.advance();return}escaped=backslashEscapes&&!escaped&&input.next==92;input.advance()}}function readDoubleDollarLiteral(input,tag){scan:for(;;){if(input.next<0)return;if(input.next==36){input.advance();for(let i=0;i<tag.length;i++){if(input.next!=tag.charCodeAt(i))continue scan;input.advance()}if(input.next==36){input.advance();return}}else{input.advance()}}}function readPLSQLQuotedLiteral(input,openDelim){let matchingDelim="[{<(".indexOf(String.fromCharCode(openDelim));let closeDelim=matchingDelim<0?openDelim:"]}>)".charCodeAt(matchingDelim);for(;;){if(input.next<0)return;if(input.next==closeDelim&&input.peek(1)==39){input.advance(2);return}input.advance()}}function readWord(input,result){for(;;){if(input.next!=95&&!isAlpha(input.next))break;if(result!=null)result+=String.fromCharCode(input.next);input.advance()}return result}function readWordOrQuoted(input){if(input.next==39||input.next==34||input.next==96){let quote=input.next;input.advance();readLiteral(input,quote,false)}else{readWord(input)}}function readBits(input,endQuote){while(input.next==48||input.next==49)input.advance();if(endQuote&&input.next==endQuote)input.advance()}function readNumber(input,sawDot){for(;;){if(input.next==46){if(sawDot)break;sawDot=true}else if(input.next<48||input.next>57){break}input.advance()}if(input.next==69||input.next==101){input.advance();if(input.next==43||input.next==45)input.advance();while(input.next>=48&&input.next<=57)input.advance()}}function eol(input){while(!(input.next<0||input.next==10))input.advance()}function inString(ch,str){for(let i=0;i<str.length;i++)if(str.charCodeAt(i)==ch)return true;return false}const Space=" \r\n";function keywords(keywords2,types,builtin){let result=Object.create(null);result["true"]=result["false"]=Bool;result["null"]=result["unknown"]=Null;for(let kw of keywords2.split(" "))if(kw)result[kw]=Keyword;for(let tp of types.split(" "))if(tp)result[tp]=Type;for(let kw of(builtin||"").split(" "))if(kw)result[kw]=Builtin;return result}const SQLTypes="array binary bit boolean char character clob date decimal double float int integer interval large national nchar nclob numeric object precision real smallint time timestamp varchar varying ";const SQLKeywords="absolute action add after all allocate alter and any are as asc assertion at authorization before begin between both breadth by call cascade cascaded case cast catalog check close collate collation column commit condition connect connection constraint constraints constructor continue corresponding count create cross cube current current_date current_default_transform_group current_transform_group_for_type current_path current_role current_time current_timestamp current_user cursor cycle data day deallocate declare default deferrable deferred delete depth deref desc describe descriptor deterministic diagnostics disconnect distinct do domain drop dynamic each else elseif end end-exec equals escape except exception exec execute exists exit external fetch first for foreign found from free full function general get global go goto grant group grouping handle having hold hour identity if immediate in indicator initially inner inout input insert intersect into is isolation join key language last lateral leading leave left level like limit local localtime localtimestamp locator loop map match method minute modifies module month names natural nesting new next no none not of old on only open option or order ordinality out outer output overlaps pad parameter partial path prepare preserve primary prior privileges procedure public read reads recursive redo ref references referencing relative release repeat resignal restrict result return returns revoke right role rollback rollup routine row rows savepoint schema scroll search second section select session session_user set sets signal similar size some space specific specifictype sql sqlexception sqlstate sqlwarning start state static system_user table temporary then timezone_hour timezone_minute to trailing transaction translation treat trigger under undo union unique unnest until update usage user using value values view when whenever where while with without work write year zone ";const defaults={backslashEscapes:false,hashComments:false,spaceAfterDashes:false,slashComments:false,doubleQuotedStrings:false,doubleDollarQuotedStrings:false,unquotedBitLiterals:false,treatBitsAsBytes:false,charSetCasts:false,plsqlQuotingMechanism:false,operatorChars:"*+-%<>!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:false,words:keywords(SQLKeywords,SQLTypes)};function dialect(spec,kws,types,builtin){let dialect2={};for(let prop in defaults)dialect2[prop]=(spec.hasOwnProperty(prop)?spec:defaults)[prop];if(kws)dialect2.words=keywords(kws,types||"",builtin);return dialect2}function tokensFor(d){return new ExternalTokenizer(input=>{var _a;let{next}=input;input.advance();if(inString(next,Space)){while(inString(input.next,Space))input.advance();input.acceptToken(whitespace)}else if(next==36&&d.doubleDollarQuotedStrings){let tag=readWord(input,"");if(input.next==36){input.advance();readDoubleDollarLiteral(input,tag);input.acceptToken(String$1)}}else if(next==39||next==34&&d.doubleQuotedStrings){readLiteral(input,next,d.backslashEscapes);input.acceptToken(String$1)}else if(next==35&&d.hashComments||next==47&&input.next==47&&d.slashComments){eol(input);input.acceptToken(LineComment)}else if(next==45&&input.next==45&&(!d.spaceAfterDashes||input.peek(1)==32)){eol(input);input.acceptToken(LineComment)}else if(next==47&&input.next==42){input.advance();for(let depth=1;;){let cur=input.next;if(input.next<0)break;input.advance();if(cur==42&&input.next==47){depth--;input.advance();if(!depth)break}else if(cur==47&&input.next==42){depth++;input.advance()}}input.acceptToken(BlockComment)}else if((next==101||next==69)&&input.next==39){input.advance();readLiteral(input,39,true);input.acceptToken(String$1)}else if((next==110||next==78)&&input.next==39&&d.charSetCasts){input.advance();readLiteral(input,39,d.backslashEscapes);input.acceptToken(String$1)}else if(next==95&&d.charSetCasts){for(let i=0;;i++){if(input.next==39&&i>1){input.advance();readLiteral(input,39,d.backslashEscapes);input.acceptToken(String$1);break}if(!isAlpha(input.next))break;input.advance()}}else if(d.plsqlQuotingMechanism&&(next==113||next==81)&&input.next==39&&input.peek(1)>0&&!inString(input.peek(1),Space)){let openDelim=input.peek(1);input.advance(2);readPLSQLQuotedLiteral(input,openDelim);input.acceptToken(String$1)}else if(inString(next,d.identifierQuotes)){const endQuote=next==91?93:next;readLiteral(input,endQuote,false);input.acceptToken(QuotedIdentifier)}else if(next==40){input.acceptToken(ParenL)}else if(next==41){input.acceptToken(ParenR)}else if(next==123){input.acceptToken(BraceL)}else if(next==125){input.acceptToken(BraceR)}else if(next==91){input.acceptToken(BracketL)}else if(next==93){input.acceptToken(BracketR)}else if(next==59){input.acceptToken(Semi)}else if(d.unquotedBitLiterals&&next==48&&input.next==98){input.advance();readBits(input);input.acceptToken(Bits)}else if((next==98||next==66)&&(input.next==39||input.next==34)){const quoteStyle=input.next;input.advance();if(d.treatBitsAsBytes){readLiteral(input,quoteStyle,d.backslashEscapes);input.acceptToken(Bytes)}else{readBits(input,quoteStyle);input.acceptToken(Bits)}}else if(next==48&&(input.next==120||input.next==88)||(next==120||next==88)&&input.next==39){let quoted=input.next==39;input.advance();while(isHexDigit(input.next))input.advance();if(quoted&&input.next==39)input.advance();input.acceptToken(Number$1)}else if(next==46&&input.next>=48&&input.next<=57){readNumber(input,true);input.acceptToken(Number$1)}else if(next==46){input.acceptToken(Dot)}else if(next>=48&&next<=57){readNumber(input,false);input.acceptToken(Number$1)}else if(inString(next,d.operatorChars)){while(inString(input.next,d.operatorChars))input.advance();input.acceptToken(Operator)}else if(inString(next,d.specialVar)){if(input.next==next)input.advance();readWordOrQuoted(input);input.acceptToken(SpecialVar)}else if(next==58||next==44){input.acceptToken(Punctuation)}else if(isAlpha(next)){let word=readWord(input,String.fromCharCode(next));input.acceptToken(input.next==46||input.peek(-word.length-1)==46?Identifier:(_a=d.words[word.toLowerCase()])!==null&&_a!==void 0?_a:Identifier)}})}const tokens=tokensFor(defaults);const parser$1=LRParser.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,tokens],topRules:{"Script":[0,25]},tokenPrec:0});function tokenBefore(tree){let cursor=tree.cursor().moveTo(tree.from,-1);while(/Comment/.test(cursor.name))cursor.moveTo(cursor.from,-1);return cursor.node}function idName(doc,node){let text=doc.sliceString(node.from,node.to);let quoted=/^([`'"\[])(.*)([`'"\]])$/.exec(text);return quoted?quoted[2]:text}function plainID(node){return node&&(node.name=="Identifier"||node.name=="QuotedIdentifier")}function pathFor(doc,id2){if(id2.name=="CompositeIdentifier"){let path=[];for(let ch=id2.firstChild;ch;ch=ch.nextSibling)if(plainID(ch))path.push(idName(doc,ch));return path}return[idName(doc,id2)]}function parentsFor(doc,node){for(let path=[];;){if(!node||node.name!=".")return path;let name=tokenBefore(node);if(!plainID(name))return path;path.unshift(idName(doc,name));node=tokenBefore(name)}}function sourceContext(state,startPos){let pos=syntaxTree(state).resolveInner(startPos,-1);let aliases=getAliases(state.doc,pos);if(pos.name=="Identifier"||pos.name=="QuotedIdentifier"||pos.name=="Keyword"){return{from:pos.from,quoted:pos.name=="QuotedIdentifier"?state.doc.sliceString(pos.from,pos.from+1):null,parents:parentsFor(state.doc,tokenBefore(pos)),aliases}}if(pos.name=="."){return{from:startPos,quoted:null,parents:parentsFor(state.doc,pos),aliases}}else{return{from:startPos,quoted:null,parents:[],empty:true,aliases}}}const EndFrom=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function getAliases(doc,at){let statement;for(let parent=at;!statement;parent=parent.parent){if(!parent)return null;if(parent.name=="Statement")statement=parent}let aliases=null;for(let scan=statement.firstChild,sawFrom=false,prevID=null;scan;scan=scan.nextSibling){let kw=scan.name=="Keyword"?doc.sliceString(scan.from,scan.to).toLowerCase():null;let alias=null;if(!sawFrom){sawFrom=kw=="from"}else if(kw=="as"&&prevID&&plainID(scan.nextSibling)){alias=idName(doc,scan.nextSibling)}else if(kw&&EndFrom.has(kw)){break}else if(prevID&&plainID(scan)){alias=idName(doc,scan)}if(alias){if(!aliases)aliases=Object.create(null);aliases[alias]=pathFor(doc,prevID)}prevID=/Identifier$/.test(scan.name)?scan:null}return aliases}function maybeQuoteCompletions(openingQuote,closingQuote,completions){return completions.map(c=>({...c,label:c.label[0]==openingQuote?c.label:openingQuote+c.label+closingQuote,apply:void 0}))}const Span=/^\w*$/;const QuotedSpan=/^[`'"\[]?\w*[`'"\]]?$/;function isSelfTag(namespace2){return namespace2.self&&typeof namespace2.self.label=="string"}class CompletionLevel{constructor(idQuote,idCaseInsensitive){this.idQuote=idQuote;this.idCaseInsensitive=idCaseInsensitive;this.list=[];this.children=void 0}child(name){let children2=this.children||(this.children=Object.create(null));let found=children2[name];if(found)return found;if(name&&!this.list.some(c=>c.label==name))this.list.push(nameCompletion(name,"type",this.idQuote,this.idCaseInsensitive));return children2[name]=new CompletionLevel(this.idQuote,this.idCaseInsensitive)}maybeChild(name){return this.children?this.children[name]:null}addCompletion(option){let found=this.list.findIndex(o=>o.label==option.label);if(found>-1)this.list[found]=option;else this.list.push(option)}addCompletions(completions){for(let option of completions)this.addCompletion(typeof option=="string"?nameCompletion(option,"property",this.idQuote,this.idCaseInsensitive):option)}addNamespace(namespace2){if(Array.isArray(namespace2)){this.addCompletions(namespace2)}else if(isSelfTag(namespace2)){this.addNamespace(namespace2.children)}else{this.addNamespaceObject(namespace2)}}addNamespaceObject(namespace2){for(let name of Object.keys(namespace2)){let children2=namespace2[name],self=null;let parts=name.replace(/\\?\./g,p=>p=="."?"\0":p).split("\0");let scope=this;if(isSelfTag(children2)){self=children2.self;children2=children2.children}for(let i=0;i<parts.length;i++){if(self&&i==parts.length-1)scope.addCompletion(self);scope=scope.child(parts[i].replace(/\\\./g,"."))}scope.addNamespace(children2)}}}function nameCompletion(label,type,idQuote,idCaseInsensitive){if(new RegExp("^[a-z_][a-z_\\d]*$",idCaseInsensitive?"i":"").test(label))return{label,type};return{label,type,apply:idQuote+label+getClosingQuote(idQuote)}}function getClosingQuote(openingQuote){return openingQuote==="["?"]":openingQuote}function completeFromSchema(schema,tables,schemas,defaultTableName,defaultSchemaName,dialect2){var _a;let idQuote=((_a=dialect2===null||dialect2===void 0?void 0:dialect2.spec.identifierQuotes)===null||_a===void 0?void 0:_a[0])||'"';let top=new CompletionLevel(idQuote,!!(dialect2===null||dialect2===void 0?void 0:dialect2.spec.caseInsensitiveIdentifiers));let defaultSchema=defaultSchemaName?top.child(defaultSchemaName):null;top.addNamespace(schema);if(tables)(defaultSchema||top).addCompletions(tables);if(schemas)top.addCompletions(schemas);if(defaultSchema)top.addCompletions(defaultSchema.list);if(defaultTableName)top.addCompletions((defaultSchema||top).child(defaultTableName).list);return context=>{let{parents,from,quoted,empty:empty2,aliases}=sourceContext(context.state,context.pos);if(empty2&&!context.explicit)return null;if(aliases&&parents.length==1)parents=aliases[parents[0]]||parents;let level=top;for(let name of parents){while(!level.children||!level.children[name]){if(level==top&&defaultSchema)level=defaultSchema;else if(level==defaultSchema&&defaultTableName)level=level.child(defaultTableName);else return null}let next=level.maybeChild(name);if(!next)return null;level=next}let options=level.list;if(level==top&&aliases)options=options.concat(Object.keys(aliases).map(name=>({label:name,type:"constant"})));if(quoted){let openingQuote=quoted[0];let closingQuote=getClosingQuote(openingQuote);let quoteAfter=context.state.sliceDoc(context.pos,context.pos+1)==closingQuote;return{from,to:quoteAfter?context.pos+1:void 0,options:maybeQuoteCompletions(openingQuote,closingQuote,options),validFor:QuotedSpan}}else{return{from,options,validFor:Span}}}}function completionType(tokenType){return tokenType==Type?"type":tokenType==Keyword?"keyword":"variable"}function completeKeywords(keywords2,upperCase,build){let completions=Object.keys(keywords2).map(keyword=>build(upperCase?keyword.toUpperCase():keyword,completionType(keywords2[keyword])));return ifNotIn(["QuotedIdentifier","String","LineComment","BlockComment","."],completeFromList(completions))}let parser=parser$1.configure({props:[indentNodeProp.add({Statement:continuedIndent()}),foldNodeProp.add({Statement(tree,state){return{from:Math.min(tree.from+100,state.doc.lineAt(tree.from).to),to:tree.to}},BlockComment(tree){return{from:tree.from+2,to:tree.to-2}}}),styleTags({Keyword:tags.keyword,Type:tags.typeName,Builtin:tags.standard(tags.name),Bits:tags.number,Bytes:tags.string,Bool:tags.bool,Null:tags.null,Number:tags.number,String:tags.string,Identifier:tags.name,QuotedIdentifier:tags.special(tags.string),SpecialVar:tags.special(tags.name),LineComment:tags.lineComment,BlockComment:tags.blockComment,Operator:tags.operator,"Semi Punctuation":tags.punctuation,"( )":tags.paren,"{ }":tags.brace,"[ ]":tags.squareBracket})]});class SQLDialect{constructor(dialect2,language,spec){this.dialect=dialect2;this.language=language;this.spec=spec}get extension(){return this.language.extension}configureLanguage(options,name){return new SQLDialect(this.dialect,this.language.configure(options,name),this.spec)}static define(spec){let d=dialect(spec,spec.keywords,spec.types,spec.builtin);let language=LRLanguage.define({name:"sql",parser:parser.configure({tokenizers:[{from:tokens,to:tokensFor(d)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new SQLDialect(d,language,spec)}}function defaultKeyword(label,type){return{label,type,boost:-1}}function keywordCompletionSource(dialect2,upperCase=false,build){return completeKeywords(dialect2.dialect.words,upperCase,build||defaultKeyword)}function schemaCompletionSource(config){return config.schema?completeFromSchema(config.schema,config.tables,config.schemas,config.defaultTable,config.defaultSchema,config.dialect||StandardSQL):()=>null}function schemaCompletion(config){return config.schema?(config.dialect||StandardSQL).language.data.of({autocomplete:schemaCompletionSource(config)}):[]}function sql(config={}){let lang=config.dialect||StandardSQL;return new LanguageSupport(lang.language,[schemaCompletion(config),lang.language.data.of({autocomplete:keywordCompletionSource(lang,config.upperCaseKeywords,config.keywordCompletion)})])}const StandardSQL=SQLDialect.define({});const PostgreSQL=SQLDialect.define({charSetCasts:true,doubleDollarQuotedStrings:true,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:SQLKeywords+"abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:SQLTypes+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"});const MySQLKeywords="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill";const MySQLTypes=SQLTypes+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed";const MySQLBuiltin="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee";const MariaSQL=SQLDialect.define({operatorChars:"*+-%<>!=&|^",charSetCasts:true,doubleQuotedStrings:true,unquotedBitLiterals:true,hashComments:true,spaceAfterDashes:true,specialVar:"@?",identifierQuotes:"`",keywords:SQLKeywords+"always generated groupby_concat hard persistent shutdown soft virtual "+MySQLKeywords,types:MySQLTypes,builtin:MySQLBuiltin});function quotedIdentifier(value="",delimiter='"'){const name=String(value||"");if(!name){throw new TypeError("A database identifier is missing.")}return`${delimiter}${name.replaceAll(delimiter,delimiter.repeat(2))}${delimiter}`}function defineDatabaseClientDialect(definition={}){if(!definition.codeMirrorDialect||typeof definition.quoteIdentifier!=="function"||typeof definition.stringLiteral!=="function"){throw new TypeError("A database client dialect must implement the complete UI adapter contract.")}return Object.freeze(definition)}const DATABASE_CLIENT_DIALECTS=Object.freeze({mysql:defineDatabaseClientDialect({codeMirrorDialect:MariaSQL,quoteIdentifier:value=>quotedIdentifier(value,"`"),stringLiteral:value=>`'${String(value).replaceAll("\\","\\\\").replaceAll("'","''")}'`}),postgresql:defineDatabaseClientDialect({codeMirrorDialect:PostgreSQL,quoteIdentifier:value=>quotedIdentifier(value,'"'),stringLiteral:value=>`'${String(value).replaceAll("'","''")}'`})});function databaseClientDialect(engine=""){const candidate=String(engine||"").trim().toLowerCase();const dialect2=DATABASE_CLIENT_DIALECTS[candidate];if(!dialect2){throw new TypeError(`Unsupported database client dialect: ${candidate||"missing"}.`)}return dialect2}const _hoisted_1$b={class:"database-table-list"};const _hoisted_2$6={class:"database-workspace__nav-scroll"};const _hoisted_3$6={class:"database-workspace__schema-label"};const _hoisted_4$4=["disabled","title","onClick"];const _hoisted_5$4={key:0,class:"database-workspace__empty-copy"};const _hoisted_6$3={key:0,class:"database-workspace__table-detail"};const _hoisted_7$3={key:0};const _sfc_main$h={__name:"DatabaseTableList",props:{schema:{type:Object,required:true},selectedTableName:{type:String,default:""},search:{type:String,default:""},database:{type:String,default:""},running:{type:Boolean,default:false},interactiveColumns:{type:Boolean,default:false}},emits:["select-table","select-column"],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const selectedTable=computed(()=>props.schema.tables.find(table=>table.qualifiedName===props.selectedTableName));const filteredSchemas=computed(()=>{const search=(props.search||"").trim().toLowerCase();return(props.schema.schemas||[]).map(group=>({...group,tables:(props.schema.tables||[]).filter(table=>table.schema===group.name&&(!search||`${table.qualifiedName} ${table.comment}`.toLowerCase().includes(search)))})).filter(group=>group.tables.length>0)});function columnKeyIcon(column={}){var _a,_b,_c;const primary=(_b=(_a=selectedTable.value)==null?void 0:_a.keys)==null?void 0:_b.some(key=>key.primary&&key.columns.includes(column.name));if(primary)return mdiKeyVariant;const foreign=(_c=props.schema.relationships)==null?void 0:_c.some(relationship=>{var _a2;return relationship.sourceTable===((_a2=selectedTable.value)==null?void 0:_a2.qualifiedName)&&relationship.columns.includes(column.name)});return foreign?mdiLinkVariant:mdiTable}return(_ctx,_cache)=>{return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$6,[(openBlock(true),createElementBlock(Fragment,null,renderList(filteredSchemas.value,group=>{return openBlock(),createElementBlock(Fragment,{key:group.name},[createBaseVNode("div",_hoisted_3$6,[createBaseVNode("span",null,toDisplayString(group.name||__props.database),1),createBaseVNode("small",null,toDisplayString(group.tables.length),1)]),(openBlock(true),createElementBlock(Fragment,null,renderList(group.tables,table=>{return openBlock(),createElementBlock("button",{key:table.qualifiedName,class:normalizeClass([{"database-workspace__table-button--active":__props.selectedTableName===table.qualifiedName},"database-workspace__table-button"]),disabled:__props.running,title:table.comment||table.qualifiedName,type:"button",onClick:$event=>emit("select-table",table)},[createVNode(VIcon,{icon:table.kind.includes("view")?unref(mdiTableEye):unref(mdiTable),size:"15"},null,8,["icon"]),createBaseVNode("span",null,[createBaseVNode("strong",null,toDisplayString(table.name),1),createBaseVNode("small",null,toDisplayString(table.kind)+" · "+toDisplayString(table.columns.length)+" fields",1)])],10,_hoisted_4$4)}),128))],64)}),128)),filteredSchemas.value.length===0?(openBlock(),createElementBlock("p",_hoisted_5$4,"No matching tables or views.")):createCommentVNode("",true)]),selectedTable.value?(openBlock(),createElementBlock("section",_hoisted_6$3,[createBaseVNode("header",null,[createBaseVNode("strong",null,toDisplayString(selectedTable.value.name),1),renderSlot(_ctx.$slots,"table-actions",{table:selectedTable.value},void 0,true)]),selectedTable.value.comment?(openBlock(),createElementBlock("p",_hoisted_7$3,toDisplayString(selectedTable.value.comment),1)):createCommentVNode("",true),(openBlock(true),createElementBlock(Fragment,null,renderList(selectedTable.value.columns,column=>{return openBlock(),createBlock(resolveDynamicComponent(__props.interactiveColumns?"button":"div"),{key:column.name,type:__props.interactiveColumns?"button":void 0,title:column.comment||column.nativeType,class:"database-table-list__column",onClick:$event=>emit("select-column",column)},{default:withCtx(()=>[createVNode(VIcon,{icon:columnKeyIcon(column),size:"13"},null,8,["icon"]),createBaseVNode("span",null,toDisplayString(column.name),1),createBaseVNode("small",null,toDisplayString(column.nativeType),1)]),_:2},1032,["type","title","onClick"])}),128))])):createCommentVNode("",true)])}}};const DatabaseTableList=_export_sfc(_sfc_main$h,[["__scopeId","data-v-3b1c50a4"]]);function tryOnScopeDispose(fn){if(getCurrentScope()){onScopeDispose(fn);return true}return false}function toValue(r){return typeof r==="function"?r():unref(r)}const isClient=typeof window!=="undefined"&&typeof document!=="undefined";const isDef$1=val=>typeof val!=="undefined";const toString=Object.prototype.toString;const isObject=val=>toString.call(val)==="[object Object]";const noop$3=()=>{};function createFilterWrapper(filter2,fn){function wrapper(...args){return new Promise((resolve,reject)=>{Promise.resolve(filter2(()=>fn.apply(this,args),{fn,thisArg:this,args})).then(resolve).catch(reject)})}return wrapper}const bypassFilter=invoke=>{return invoke()};function pausableFilter(extendFilter=bypassFilter){const isActive=ref(true);function pause(){isActive.value=false}function resume(){isActive.value=true}const eventFilter=(...args)=>{if(isActive.value)extendFilter(...args)};return{isActive:readonly(isActive),pause,resume,eventFilter}}function promiseTimeout(ms,throwOnTimeout=false,reason="Timeout"){return new Promise((resolve,reject)=>{if(throwOnTimeout)setTimeout(()=>reject(reason),ms);else setTimeout(resolve,ms)})}function watchWithFilter(source,cb,options={}){const{eventFilter=bypassFilter,...watchOptions}=options;return watch(source,createFilterWrapper(eventFilter,cb),watchOptions)}function watchPausable(source,cb,options={}){const{eventFilter:filter2,...watchOptions}=options;const{eventFilter,pause,resume,isActive}=pausableFilter(filter2);const stop=watchWithFilter(source,cb,{...watchOptions,eventFilter});return{stop,pause,resume,isActive}}function toRefs(objectRef,options={}){if(!isRef(objectRef))return toRefs$1(objectRef);const result=Array.isArray(objectRef.value)?Array.from({length:objectRef.value.length}):{};for(const key in objectRef.value){result[key]=customRef(()=>({get(){return objectRef.value[key]},set(v){var _a;const replaceRef=(_a=toValue(options.replaceRef))!=null?_a:true;if(replaceRef){if(Array.isArray(objectRef.value)){const copy=[...objectRef.value];copy[key]=v;objectRef.value=copy}else{const newObject={...objectRef.value,[key]:v};Object.setPrototypeOf(newObject,Object.getPrototypeOf(objectRef.value));objectRef.value=newObject}}else{objectRef.value[key]=v}}}))}return result}function createUntil(r,isNot=false){function toMatch(condition,{flush="sync",deep=false,timeout:timeout2,throwOnTimeout}={}){let stop=null;const watcher=new Promise(resolve=>{stop=watch(r,v=>{if(condition(v)!==isNot){stop==null?void 0:stop();resolve(v)}},{flush,deep,immediate:true})});const promises=[watcher];if(timeout2!=null){promises.push(promiseTimeout(timeout2,throwOnTimeout).then(()=>toValue(r)).finally(()=>stop==null?void 0:stop()))}return Promise.race(promises)}function toBe(value,options){if(!isRef(value))return toMatch(v=>v===value,options);const{flush="sync",deep=false,timeout:timeout2,throwOnTimeout}=options!=null?options:{};let stop=null;const watcher=new Promise(resolve=>{stop=watch([r,value],([v1,v2])=>{if(isNot!==(v1===v2)){stop==null?void 0:stop();resolve(v1)}},{flush,deep,immediate:true})});const promises=[watcher];if(timeout2!=null){promises.push(promiseTimeout(timeout2,throwOnTimeout).then(()=>toValue(r)).finally(()=>{stop==null?void 0:stop();return toValue(r)}))}return Promise.race(promises)}function toBeTruthy(options){return toMatch(v=>Boolean(v),options)}function toBeNull(options){return toBe(null,options)}function toBeUndefined(options){return toBe(void 0,options)}function toBeNaN(options){return toMatch(Number.isNaN,options)}function toContains(value,options){return toMatch(v=>{const array2=Array.from(v);return array2.includes(value)||array2.includes(toValue(value))},options)}function changed(options){return changedTimes(1,options)}function changedTimes(n=1,options){let count=-1;return toMatch(()=>{count+=1;return count>=n},options)}if(Array.isArray(toValue(r))){const instance={toMatch,toContains,changed,changedTimes,get not(){return createUntil(r,!isNot)}};return instance}else{const instance={toMatch,toBe,toBeTruthy,toBeNull,toBeNaN,toBeUndefined,changed,changedTimes,get not(){return createUntil(r,!isNot)}};return instance}}function until(r){return createUntil(r)}function unrefElement(elRef){var _a;const plain=toValue(elRef);return(_a=plain==null?void 0:plain.$el)!=null?_a:plain}const defaultWindow=isClient?window:void 0;function useEventListener(...args){let target;let events;let listeners;let options;if(typeof args[0]==="string"||Array.isArray(args[0])){[events,listeners,options]=args;target=defaultWindow}else{[target,events,listeners,options]=args}if(!target)return noop$3;if(!Array.isArray(events))events=[events];if(!Array.isArray(listeners))listeners=[listeners];const cleanups=[];const cleanup=()=>{cleanups.forEach(fn=>fn());cleanups.length=0};const register=(el,event,listener,options2)=>{el.addEventListener(event,listener,options2);return()=>el.removeEventListener(event,listener,options2)};const stopWatch=watch(()=>[unrefElement(target),toValue(options)],([el,options2])=>{cleanup();if(!el)return;const optionsClone=isObject(options2)?{...options2}:options2;cleanups.push(...events.flatMap(event=>{return listeners.map(listener=>register(el,event,listener,optionsClone))}))},{immediate:true,flush:"post"});const stop=()=>{stopWatch();cleanup()};tryOnScopeDispose(stop);return stop}function createKeyPredicate$1(keyFilter){if(typeof keyFilter==="function")return keyFilter;else if(typeof keyFilter==="string")return event=>event.key===keyFilter;else if(Array.isArray(keyFilter))return event=>keyFilter.includes(event.key);return()=>true}function onKeyStroke(...args){let key;let handler;let options={};if(args.length===3){key=args[0];handler=args[1];options=args[2]}else if(args.length===2){if(typeof args[1]==="object"){key=true;handler=args[0];options=args[1]}else{key=args[0];handler=args[1]}}else{key=true;handler=args[0]}const{target=defaultWindow,eventName="keydown",passive=false,dedupe=false}=options;const predicate=createKeyPredicate$1(key);const listener=e=>{if(e.repeat&&toValue(dedupe))return;if(predicate(e))handler(e)};return useEventListener(target,eventName,listener,passive)}function cloneFnJSON(source){return JSON.parse(JSON.stringify(source))}function useVModel(props,key,emit,options={}){var _a,_b,_c;const{clone=false,passive=false,eventName,deep=false,defaultValue,shouldEmit}=options;const vm=getCurrentInstance();const _emit=emit||(vm==null?void 0:vm.emit)||((_a=vm==null?void 0:vm.$emit)==null?void 0:_a.bind(vm))||((_c=(_b=vm==null?void 0:vm.proxy)==null?void 0:_b.$emit)==null?void 0:_c.bind(vm==null?void 0:vm.proxy));let event=eventName;if(!key){{key="modelValue"}}event=event||`update:${key.toString()}`;const cloneFn=val=>!clone?val:typeof clone==="function"?clone(val):cloneFnJSON(val);const getValue=()=>isDef$1(props[key])?cloneFn(props[key]):defaultValue;const triggerEmit=value=>{if(shouldEmit){if(shouldEmit(value))_emit(event,value)}else{_emit(event,value)}};if(passive){const initialValue=getValue();const proxy=ref(initialValue);let isUpdating=false;watch(()=>props[key],v=>{if(!isUpdating){isUpdating=true;proxy.value=cloneFn(v);nextTick(()=>isUpdating=false)}});watch(proxy,v=>{if(!isUpdating&&(v!==props[key]||deep))triggerEmit(v)},{deep});return proxy}else{return computed({get(){return getValue()},set(value){triggerEmit(value)}})}}var noop$2={value:()=>{}};function dispatch$1(){for(var i=0,n=arguments.length,_={},t;i<n;++i){if(!(t=arguments[i]+"")||t in _||/[\s.]/.test(t))throw new Error("illegal type: "+t);_[t]=[]}return new Dispatch$1(_)}function Dispatch$1(_){this._=_}function parseTypenames$1$1(typenames,types){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);if(t&&!types.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name}})}Dispatch$1.prototype=dispatch$1.prototype={constructor:Dispatch$1,on:function(typename,callback){var _=this._,T=parseTypenames$1$1(typename+"",_),t,i=-1,n=T.length;if(arguments.length<2){while(++i<n)if((t=(typename=T[i]).type)&&(t=get$1$1(_[t],typename.name)))return t;return}if(callback!=null&&typeof callback!=="function")throw new Error("invalid callback: "+callback);while(++i<n){if(t=(typename=T[i]).type)_[t]=set$1$1(_[t],typename.name,callback);else if(callback==null)for(t in _)_[t]=set$1$1(_[t],typename.name,null)}return this},copy:function(){var copy={},_=this._;for(var t in _)copy[t]=_[t].slice();return new Dispatch$1(copy)},call:function(type,that){if((n=arguments.length-2)>0)for(var args=new Array(n),i=0,n,t;i<n;++i)args[i]=arguments[i+2];if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)},apply:function(type,that,args){if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(var t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)}};function get$1$1(type,name){for(var i=0,n=type.length,c;i<n;++i){if((c=type[i]).name===name){return c.value}}}function set$1$1(type,name,callback){for(var i=0,n=type.length;i<n;++i){if(type[i].name===name){type[i]=noop$2,type=type.slice(0,i).concat(type.slice(i+1));break}}if(callback!=null)type.push({name,value:callback});return type}var xhtml$1="http://www.w3.org/1999/xhtml";const namespaces$1={svg:"http://www.w3.org/2000/svg",xhtml:xhtml$1,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace$1(name){var prefix=name+="",i=prefix.indexOf(":");if(i>=0&&(prefix=name.slice(0,i))!=="xmlns")name=name.slice(i+1);return namespaces$1.hasOwnProperty(prefix)?{space:namespaces$1[prefix],local:name}:name}function creatorInherit$1(name){return function(){var document2=this.ownerDocument,uri=this.namespaceURI;return uri===xhtml$1&&document2.documentElement.namespaceURI===xhtml$1?document2.createElement(name):document2.createElementNS(uri,name)}}function creatorFixed$1(fullname){return function(){return this.ownerDocument.createElementNS(fullname.space,fullname.local)}}function creator$1(name){var fullname=namespace$1(name);return(fullname.local?creatorFixed$1:creatorInherit$1)(fullname)}function none$1(){}function selector$1(selector2){return selector2==null?none$1:function(){return this.querySelector(selector2)}}function selection_select$1(select2){if(typeof select2!=="function")select2=selector$1(select2);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=new Array(n),node,subnode,i=0;i<n;++i){if((node=group[i])&&(subnode=select2.call(node,node.__data__,i,group))){if("__data__"in node)subnode.__data__=node.__data__;subgroup[i]=subnode}}}return new Selection$1$1(subgroups,this._parents)}function array$1(x){return x==null?[]:Array.isArray(x)?x:Array.from(x)}function empty$1(){return[]}function selectorAll$1(selector2){return selector2==null?empty$1:function(){return this.querySelectorAll(selector2)}}function arrayAll$1(select2){return function(){return array$1(select2.apply(this,arguments))}}function selection_selectAll$1(select2){if(typeof select2==="function")select2=arrayAll$1(select2);else select2=selectorAll$1(select2);for(var groups=this._groups,m=groups.length,subgroups=[],parents=[],j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){subgroups.push(select2.call(node,node.__data__,i,group));parents.push(node)}}}return new Selection$1$1(subgroups,parents)}function matcher$1(selector2){return function(){return this.matches(selector2)}}function childMatcher$1(selector2){return function(node){return node.matches(selector2)}}var find$1=Array.prototype.find;function childFind$1(match){return function(){return find$1.call(this.children,match)}}function childFirst$1(){return this.firstElementChild}function selection_selectChild$1(match){return this.select(match==null?childFirst$1:childFind$1(typeof match==="function"?match:childMatcher$1(match)))}var filter$1=Array.prototype.filter;function children$1(){return Array.from(this.children)}function childrenFilter$1(match){return function(){return filter$1.call(this.children,match)}}function selection_selectChildren$1(match){return this.selectAll(match==null?children$1:childrenFilter$1(typeof match==="function"?match:childMatcher$1(match)))}function selection_filter$1(match){if(typeof match!=="function")match=matcher$1(match);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=[],node,i=0;i<n;++i){if((node=group[i])&&match.call(node,node.__data__,i,group)){subgroup.push(node)}}}return new Selection$1$1(subgroups,this._parents)}function sparse$1(update){return new Array(update.length)}function selection_enter$1(){return new Selection$1$1(this._enter||this._groups.map(sparse$1),this._parents)}function EnterNode$1(parent,datum2){this.ownerDocument=parent.ownerDocument;this.namespaceURI=parent.namespaceURI;this._next=null;this._parent=parent;this.__data__=datum2}EnterNode$1.prototype={constructor:EnterNode$1,appendChild:function(child){return this._parent.insertBefore(child,this._next)},insertBefore:function(child,next){return this._parent.insertBefore(child,next)},querySelector:function(selector2){return this._parent.querySelector(selector2)},querySelectorAll:function(selector2){return this._parent.querySelectorAll(selector2)}};function constant$3(x){return function(){return x}}function bindIndex$1(parent,group,enter,update,exit,data){var i=0,node,groupLength=group.length,dataLength=data.length;for(;i<dataLength;++i){if(node=group[i]){node.__data__=data[i];update[i]=node}else{enter[i]=new EnterNode$1(parent,data[i])}}for(;i<groupLength;++i){if(node=group[i]){exit[i]=node}}}function bindKey$1(parent,group,enter,update,exit,data,key){var i,node,nodeByKeyValue=new Map,groupLength=group.length,dataLength=data.length,keyValues=new Array(groupLength),keyValue;for(i=0;i<groupLength;++i){if(node=group[i]){keyValues[i]=keyValue=key.call(node,node.__data__,i,group)+"";if(nodeByKeyValue.has(keyValue)){exit[i]=node}else{nodeByKeyValue.set(keyValue,node)}}}for(i=0;i<dataLength;++i){keyValue=key.call(parent,data[i],i,data)+"";if(node=nodeByKeyValue.get(keyValue)){update[i]=node;node.__data__=data[i];nodeByKeyValue.delete(keyValue)}else{enter[i]=new EnterNode$1(parent,data[i])}}for(i=0;i<groupLength;++i){if((node=group[i])&&nodeByKeyValue.get(keyValues[i])===node){exit[i]=node}}}function datum$1(node){return node.__data__}function selection_data$1(value,key){if(!arguments.length)return Array.from(this,datum$1);var bind=key?bindKey$1:bindIndex$1,parents=this._parents,groups=this._groups;if(typeof value!=="function")value=constant$3(value);for(var m=groups.length,update=new Array(m),enter=new Array(m),exit=new Array(m),j=0;j<m;++j){var parent=parents[j],group=groups[j],groupLength=group.length,data=arraylike$1(value.call(parent,parent&&parent.__data__,j,parents)),dataLength=data.length,enterGroup=enter[j]=new Array(dataLength),updateGroup=update[j]=new Array(dataLength),exitGroup=exit[j]=new Array(groupLength);bind(parent,group,enterGroup,updateGroup,exitGroup,data,key);for(var i0=0,i1=0,previous,next;i0<dataLength;++i0){if(previous=enterGroup[i0]){if(i0>=i1)i1=i0+1;while(!(next=updateGroup[i1])&&++i1<dataLength);previous._next=next||null}}}update=new Selection$1$1(update,parents);update._enter=enter;update._exit=exit;return update}function arraylike$1(data){return typeof data==="object"&&"length"in data?data:Array.from(data)}function selection_exit$1(){return new Selection$1$1(this._exit||this._groups.map(sparse$1),this._parents)}function selection_join$1(onenter,onupdate,onexit){var enter=this.enter(),update=this,exit=this.exit();if(typeof onenter==="function"){enter=onenter(enter);if(enter)enter=enter.selection()}else{enter=enter.append(onenter+"")}if(onupdate!=null){update=onupdate(update);if(update)update=update.selection()}if(onexit==null)exit.remove();else onexit(exit);return enter&&update?enter.merge(update).order():update}function selection_merge$1(context){var selection2=context.selection?context.selection():context;for(var groups0=this._groups,groups1=selection2._groups,m0=groups0.length,m1=groups1.length,m=Math.min(m0,m1),merges=new Array(m0),j=0;j<m;++j){for(var group0=groups0[j],group1=groups1[j],n=group0.length,merge=merges[j]=new Array(n),node,i=0;i<n;++i){if(node=group0[i]||group1[i]){merge[i]=node}}}for(;j<m0;++j){merges[j]=groups0[j]}return new Selection$1$1(merges,this._parents)}function selection_order$1(){for(var groups=this._groups,j=-1,m=groups.length;++j<m;){for(var group=groups[j],i=group.length-1,next=group[i],node;--i>=0;){if(node=group[i]){if(next&&node.compareDocumentPosition(next)^4)next.parentNode.insertBefore(node,next);next=node}}}return this}function selection_sort$1(compare){if(!compare)compare=ascending$1;function compareNode(a,b){return a&&b?compare(a.__data__,b.__data__):!a-!b}for(var groups=this._groups,m=groups.length,sortgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,sortgroup=sortgroups[j]=new Array(n),node,i=0;i<n;++i){if(node=group[i]){sortgroup[i]=node}}sortgroup.sort(compareNode)}return new Selection$1$1(sortgroups,this._parents).order()}function ascending$1(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function selection_call$1(){var callback=arguments[0];arguments[0]=this;callback.apply(null,arguments);return this}function selection_nodes$1(){return Array.from(this)}function selection_node$1(){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length;i<n;++i){var node=group[i];if(node)return node}}return null}function selection_size$1(){let size=0;for(const node of this)++size;return size}function selection_empty$1(){return!this.node()}function selection_each$1(callback){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length,node;i<n;++i){if(node=group[i])callback.call(node,node.__data__,i,group)}}return this}function attrRemove$1$1(name){return function(){this.removeAttribute(name)}}function attrRemoveNS$1$1(fullname){return function(){this.removeAttributeNS(fullname.space,fullname.local)}}function attrConstant$1$1(name,value){return function(){this.setAttribute(name,value)}}function attrConstantNS$1$1(fullname,value){return function(){this.setAttributeNS(fullname.space,fullname.local,value)}}function attrFunction$1$1(name,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttribute(name);else this.setAttribute(name,v)}}function attrFunctionNS$1$1(fullname,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttributeNS(fullname.space,fullname.local);else this.setAttributeNS(fullname.space,fullname.local,v)}}function selection_attr$1(name,value){var fullname=namespace$1(name);if(arguments.length<2){var node=this.node();return fullname.local?node.getAttributeNS(fullname.space,fullname.local):node.getAttribute(fullname)}return this.each((value==null?fullname.local?attrRemoveNS$1$1:attrRemove$1$1:typeof value==="function"?fullname.local?attrFunctionNS$1$1:attrFunction$1$1:fullname.local?attrConstantNS$1$1:attrConstant$1$1)(fullname,value))}function defaultView$1(node){return node.ownerDocument&&node.ownerDocument.defaultView||node.document&&node||node.defaultView}function styleRemove$1$1(name){return function(){this.style.removeProperty(name)}}function styleConstant$1$1(name,value,priority){return function(){this.style.setProperty(name,value,priority)}}function styleFunction$1$1(name,value,priority){return function(){var v=value.apply(this,arguments);if(v==null)this.style.removeProperty(name);else this.style.setProperty(name,v,priority)}}function selection_style$1(name,value,priority){return arguments.length>1?this.each((value==null?styleRemove$1$1:typeof value==="function"?styleFunction$1$1:styleConstant$1$1)(name,value,priority==null?"":priority)):styleValue$1(this.node(),name)}function styleValue$1(node,name){return node.style.getPropertyValue(name)||defaultView$1(node).getComputedStyle(node,null).getPropertyValue(name)}function propertyRemove$1(name){return function(){delete this[name]}}function propertyConstant$1(name,value){return function(){this[name]=value}}function propertyFunction$1(name,value){return function(){var v=value.apply(this,arguments);if(v==null)delete this[name];else this[name]=v}}function selection_property$1(name,value){return arguments.length>1?this.each((value==null?propertyRemove$1:typeof value==="function"?propertyFunction$1:propertyConstant$1)(name,value)):this.node()[name]}function classArray$1(string){return string.trim().split(/^|\s+/)}function classList$1(node){return node.classList||new ClassList$1(node)}function ClassList$1(node){this._node=node;this._names=classArray$1(node.getAttribute("class")||"")}ClassList$1.prototype={add:function(name){var i=this._names.indexOf(name);if(i<0){this._names.push(name);this._node.setAttribute("class",this._names.join(" "))}},remove:function(name){var i=this._names.indexOf(name);if(i>=0){this._names.splice(i,1);this._node.setAttribute("class",this._names.join(" "))}},contains:function(name){return this._names.indexOf(name)>=0}};function classedAdd$1(node,names){var list=classList$1(node),i=-1,n=names.length;while(++i<n)list.add(names[i])}function classedRemove$1(node,names){var list=classList$1(node),i=-1,n=names.length;while(++i<n)list.remove(names[i])}function classedTrue$1(names){return function(){classedAdd$1(this,names)}}function classedFalse$1(names){return function(){classedRemove$1(this,names)}}function classedFunction$1(names,value){return function(){(value.apply(this,arguments)?classedAdd$1:classedRemove$1)(this,names)}}function selection_classed$1(name,value){var names=classArray$1(name+"");if(arguments.length<2){var list=classList$1(this.node()),i=-1,n=names.length;while(++i<n)if(!list.contains(names[i]))return false;return true}return this.each((typeof value==="function"?classedFunction$1:value?classedTrue$1:classedFalse$1)(names,value))}function textRemove$1(){this.textContent=""}function textConstant$1$1(value){return function(){this.textContent=value}}function textFunction$1$1(value){return function(){var v=value.apply(this,arguments);this.textContent=v==null?"":v}}function selection_text$1(value){return arguments.length?this.each(value==null?textRemove$1:(typeof value==="function"?textFunction$1$1:textConstant$1$1)(value)):this.node().textContent}function htmlRemove$1(){this.innerHTML=""}function htmlConstant$1(value){return function(){this.innerHTML=value}}function htmlFunction$1(value){return function(){var v=value.apply(this,arguments);this.innerHTML=v==null?"":v}}function selection_html$1(value){return arguments.length?this.each(value==null?htmlRemove$1:(typeof value==="function"?htmlFunction$1:htmlConstant$1)(value)):this.node().innerHTML}function raise$1(){if(this.nextSibling)this.parentNode.appendChild(this)}function selection_raise$1(){return this.each(raise$1)}function lower$1(){if(this.previousSibling)this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower$1(){return this.each(lower$1)}function selection_append$1(name){var create2=typeof name==="function"?name:creator$1(name);return this.select(function(){return this.appendChild(create2.apply(this,arguments))})}function constantNull$1(){return null}function selection_insert$1(name,before){var create2=typeof name==="function"?name:creator$1(name),select2=before==null?constantNull$1:typeof before==="function"?before:selector$1(before);return this.select(function(){return this.insertBefore(create2.apply(this,arguments),select2.apply(this,arguments)||null)})}function remove$1(){var parent=this.parentNode;if(parent)parent.removeChild(this)}function selection_remove$1(){return this.each(remove$1)}function selection_cloneShallow$1(){var clone=this.cloneNode(false),parent=this.parentNode;return parent?parent.insertBefore(clone,this.nextSibling):clone}function selection_cloneDeep$1(){var clone=this.cloneNode(true),parent=this.parentNode;return parent?parent.insertBefore(clone,this.nextSibling):clone}function selection_clone$1(deep){return this.select(deep?selection_cloneDeep$1:selection_cloneShallow$1)}function selection_datum$1(value){return arguments.length?this.property("__data__",value):this.node().__data__}function contextListener$1(listener){return function(event){listener.call(this,event,this.__data__)}}function parseTypenames$2(typenames){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);return{type:t,name}})}function onRemove$1(typename){return function(){var on=this.__on;if(!on)return;for(var j=0,i=-1,m=on.length,o;j<m;++j){if(o=on[j],(!typename.type||o.type===typename.type)&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.options)}else{on[++i]=o}}if(++i)on.length=i;else delete this.__on}}function onAdd$1(typename,value,options){return function(){var on=this.__on,o,listener=contextListener$1(value);if(on)for(var j=0,m=on.length;j<m;++j){if((o=on[j]).type===typename.type&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.options);this.addEventListener(o.type,o.listener=listener,o.options=options);o.value=value;return}}this.addEventListener(typename.type,listener,options);o={type:typename.type,name:typename.name,value,listener,options};if(!on)this.__on=[o];else on.push(o)}}function selection_on$1(typename,value,options){var typenames=parseTypenames$2(typename+""),i,n=typenames.length,t;if(arguments.length<2){var on=this.node().__on;if(on)for(var j=0,m=on.length,o;j<m;++j){for(i=0,o=on[j];i<n;++i){if((t=typenames[i]).type===o.type&&t.name===o.name){return o.value}}}return}on=value?onAdd$1:onRemove$1;for(i=0;i<n;++i)this.each(on(typenames[i],value,options));return this}function dispatchEvent$1(node,type,params){var window2=defaultView$1(node),event=window2.CustomEvent;if(typeof event==="function"){event=new event(type,params)}else{event=window2.document.createEvent("Event");if(params)event.initEvent(type,params.bubbles,params.cancelable),event.detail=params.detail;else event.initEvent(type,false,false)}node.dispatchEvent(event)}function dispatchConstant$1(type,params){return function(){return dispatchEvent$1(this,type,params)}}function dispatchFunction$1(type,params){return function(){return dispatchEvent$1(this,type,params.apply(this,arguments))}}function selection_dispatch$1(type,params){return this.each((typeof params==="function"?dispatchFunction$1:dispatchConstant$1)(type,params))}function*selection_iterator$1(){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length,node;i<n;++i){if(node=group[i])yield node}}}var root$1=[null];function Selection$1$1(groups,parents){this._groups=groups;this._parents=parents}function selection$1(){return new Selection$1$1([[document.documentElement]],root$1)}function selection_selection$1(){return this}Selection$1$1.prototype=selection$1.prototype={constructor:Selection$1$1,select:selection_select$1,selectAll:selection_selectAll$1,selectChild:selection_selectChild$1,selectChildren:selection_selectChildren$1,filter:selection_filter$1,data:selection_data$1,enter:selection_enter$1,exit:selection_exit$1,join:selection_join$1,merge:selection_merge$1,selection:selection_selection$1,order:selection_order$1,sort:selection_sort$1,call:selection_call$1,nodes:selection_nodes$1,node:selection_node$1,size:selection_size$1,empty:selection_empty$1,each:selection_each$1,attr:selection_attr$1,style:selection_style$1,property:selection_property$1,classed:selection_classed$1,text:selection_text$1,html:selection_html$1,raise:selection_raise$1,lower:selection_lower$1,append:selection_append$1,insert:selection_insert$1,remove:selection_remove$1,clone:selection_clone$1,datum:selection_datum$1,on:selection_on$1,dispatch:selection_dispatch$1,[Symbol.iterator]:selection_iterator$1};function select$1(selector2){return typeof selector2==="string"?new Selection$1$1([[document.querySelector(selector2)]],[document.documentElement]):new Selection$1$1([[selector2]],root$1)}function sourceEvent$1(event){let sourceEvent2;while(sourceEvent2=event.sourceEvent)event=sourceEvent2;return event}function pointer$1(event,node){event=sourceEvent$1(event);if(node===void 0)node=event.currentTarget;if(node){var svg=node.ownerSVGElement||node;if(svg.createSVGPoint){var point=svg.createSVGPoint();point.x=event.clientX,point.y=event.clientY;point=point.matrixTransform(node.getScreenCTM().inverse());return[point.x,point.y]}if(node.getBoundingClientRect){var rect=node.getBoundingClientRect();return[event.clientX-rect.left-node.clientLeft,event.clientY-rect.top-node.clientTop]}}return[event.pageX,event.pageY]}const nonpassive={passive:false};const nonpassivecapture$1={capture:true,passive:false};function nopropagation$1(event){event.stopImmediatePropagation()}function noevent$1$1(event){event.preventDefault();event.stopImmediatePropagation()}function dragDisable$1(view){var root2=view.document.documentElement,selection2=select$1(view).on("dragstart.drag",noevent$1$1,nonpassivecapture$1);if("onselectstart"in root2){selection2.on("selectstart.drag",noevent$1$1,nonpassivecapture$1)}else{root2.__noselect=root2.style.MozUserSelect;root2.style.MozUserSelect="none"}}function yesdrag$1(view,noclick){var root2=view.document.documentElement,selection2=select$1(view).on("dragstart.drag",null);if(noclick){selection2.on("click.drag",noevent$1$1,nonpassivecapture$1);setTimeout(function(){selection2.on("click.drag",null)},0)}if("onselectstart"in root2){selection2.on("selectstart.drag",null)}else{root2.style.MozUserSelect=root2.__noselect;delete root2.__noselect}}const constant$2$1=x=>()=>x;function DragEvent(type,{sourceEvent:sourceEvent2,subject,target,identifier,active,x,y,dx,dy,dispatch:dispatch2}){Object.defineProperties(this,{type:{value:type,enumerable:true,configurable:true},sourceEvent:{value:sourceEvent2,enumerable:true,configurable:true},subject:{value:subject,enumerable:true,configurable:true},target:{value:target,enumerable:true,configurable:true},identifier:{value:identifier,enumerable:true,configurable:true},active:{value:active,enumerable:true,configurable:true},x:{value:x,enumerable:true,configurable:true},y:{value:y,enumerable:true,configurable:true},dx:{value:dx,enumerable:true,configurable:true},dy:{value:dy,enumerable:true,configurable:true},_:{value:dispatch2}})}DragEvent.prototype.on=function(){var value=this._.on.apply(this._,arguments);return value===this._?this:value};function defaultFilter$1(event){return!event.ctrlKey&&!event.button}function defaultContainer(){return this.parentNode}function defaultSubject(event,d){return d==null?{x:event.x,y:event.y}:d}function defaultTouchable$1(){return navigator.maxTouchPoints||"ontouchstart"in this}function drag(){var filter2=defaultFilter$1,container=defaultContainer,subject=defaultSubject,touchable=defaultTouchable$1,gestures={},listeners=dispatch$1("start","drag","end"),active=0,mousedownx,mousedowny,mousemoving,touchending,clickDistance2=0;function drag2(selection2){selection2.on("mousedown.drag",mousedowned).filter(touchable).on("touchstart.drag",touchstarted).on("touchmove.drag",touchmoved,nonpassive).on("touchend.drag touchcancel.drag",touchended).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function mousedowned(event,d){if(touchending||!filter2.call(this,event,d))return;var gesture=beforestart(this,container.call(this,event,d),event,d,"mouse");if(!gesture)return;select$1(event.view).on("mousemove.drag",mousemoved,nonpassivecapture$1).on("mouseup.drag",mouseupped,nonpassivecapture$1);dragDisable$1(event.view);nopropagation$1(event);mousemoving=false;mousedownx=event.clientX;mousedowny=event.clientY;gesture("start",event)}function mousemoved(event){noevent$1$1(event);if(!mousemoving){var dx=event.clientX-mousedownx,dy=event.clientY-mousedowny;mousemoving=dx*dx+dy*dy>clickDistance2}gestures.mouse("drag",event)}function mouseupped(event){select$1(event.view).on("mousemove.drag mouseup.drag",null);yesdrag$1(event.view,mousemoving);noevent$1$1(event);gestures.mouse("end",event)}function touchstarted(event,d){if(!filter2.call(this,event,d))return;var touches=event.changedTouches,c=container.call(this,event,d),n=touches.length,i,gesture;for(i=0;i<n;++i){if(gesture=beforestart(this,c,event,d,touches[i].identifier,touches[i])){nopropagation$1(event);gesture("start",event,touches[i])}}}function touchmoved(event){var touches=event.changedTouches,n=touches.length,i,gesture;for(i=0;i<n;++i){if(gesture=gestures[touches[i].identifier]){noevent$1$1(event);gesture("drag",event,touches[i])}}}function touchended(event){var touches=event.changedTouches,n=touches.length,i,gesture;if(touchending)clearTimeout(touchending);touchending=setTimeout(function(){touchending=null},500);for(i=0;i<n;++i){if(gesture=gestures[touches[i].identifier]){nopropagation$1(event);gesture("end",event,touches[i])}}}function beforestart(that,container2,event,d,identifier,touch){var dispatch2=listeners.copy(),p=pointer$1(touch||event,container2),dx,dy,s;if((s=subject.call(that,new DragEvent("beforestart",{sourceEvent:event,target:drag2,identifier,active,x:p[0],y:p[1],dx:0,dy:0,dispatch:dispatch2}),d))==null)return;dx=s.x-p[0]||0;dy=s.y-p[1]||0;return function gesture(type,event2,touch2){var p0=p,n;switch(type){case"start":gestures[identifier]=gesture,n=active++;break;case"end":delete gestures[identifier],--active;case"drag":p=pointer$1(touch2||event2,container2),n=active;break}dispatch2.call(type,that,new DragEvent(type,{sourceEvent:event2,subject:s,target:drag2,identifier,active:n,x:p[0]+dx,y:p[1]+dy,dx:p[0]-p0[0],dy:p[1]-p0[1],dispatch:dispatch2}),d)}}drag2.filter=function(_){return arguments.length?(filter2=typeof _==="function"?_:constant$2$1(!!_),drag2):filter2};drag2.container=function(_){return arguments.length?(container=typeof _==="function"?_:constant$2$1(_),drag2):container};drag2.subject=function(_){return arguments.length?(subject=typeof _==="function"?_:constant$2$1(_),drag2):subject};drag2.touchable=function(_){return arguments.length?(touchable=typeof _==="function"?_:constant$2$1(!!_),drag2):touchable};drag2.on=function(){var value=listeners.on.apply(listeners,arguments);return value===listeners?drag2:value};drag2.clickDistance=function(_){return arguments.length?(clickDistance2=(_=+_)*_,drag2):Math.sqrt(clickDistance2)};return drag2}function define$1(constructor,factory,prototype){constructor.prototype=factory.prototype=prototype;prototype.constructor=constructor}function extend$1(parent,definition){var prototype=Object.create(parent.prototype);for(var key in definition)prototype[key]=definition[key];return prototype}function Color$1(){}var darker$1=.7;var brighter$1=1/darker$1;var reI$1="\\s*([+-]?\\d+)\\s*";var reN$1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*";var reP$1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*";var reHex$1=/^#([0-9a-f]{3,8})$/;var reRgbInteger$1=new RegExp(`^rgb\\(${reI$1},${reI$1},${reI$1}\\)$`);var reRgbPercent$1=new RegExp(`^rgb\\(${reP$1},${reP$1},${reP$1}\\)$`);var reRgbaInteger$1=new RegExp(`^rgba\\(${reI$1},${reI$1},${reI$1},${reN$1}\\)$`);var reRgbaPercent$1=new RegExp(`^rgba\\(${reP$1},${reP$1},${reP$1},${reN$1}\\)$`);var reHslPercent$1=new RegExp(`^hsl\\(${reN$1},${reP$1},${reP$1}\\)$`);var reHslaPercent$1=new RegExp(`^hsla\\(${reN$1},${reP$1},${reP$1},${reN$1}\\)$`);var named$1={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};define$1(Color$1,color$1,{copy(channels){return Object.assign(new this.constructor,this,channels)},displayable(){return this.rgb().displayable()},hex:color_formatHex$1,formatHex:color_formatHex$1,formatHex8:color_formatHex8$1,formatHsl:color_formatHsl$1,formatRgb:color_formatRgb$1,toString:color_formatRgb$1});function color_formatHex$1(){return this.rgb().formatHex()}function color_formatHex8$1(){return this.rgb().formatHex8()}function color_formatHsl$1(){return hslConvert$1(this).formatHsl()}function color_formatRgb$1(){return this.rgb().formatRgb()}function color$1(format){var m,l;format=(format+"").trim().toLowerCase();return(m=reHex$1.exec(format))?(l=m[1].length,m=parseInt(m[1],16),l===6?rgbn$1(m):l===3?new Rgb$1(m>>8&15|m>>4&240,m>>4&15|m&240,(m&15)<<4|m&15,1):l===8?rgba$1(m>>24&255,m>>16&255,m>>8&255,(m&255)/255):l===4?rgba$1(m>>12&15|m>>8&240,m>>8&15|m>>4&240,m>>4&15|m&240,((m&15)<<4|m&15)/255):null):(m=reRgbInteger$1.exec(format))?new Rgb$1(m[1],m[2],m[3],1):(m=reRgbPercent$1.exec(format))?new Rgb$1(m[1]*255/100,m[2]*255/100,m[3]*255/100,1):(m=reRgbaInteger$1.exec(format))?rgba$1(m[1],m[2],m[3],m[4]):(m=reRgbaPercent$1.exec(format))?rgba$1(m[1]*255/100,m[2]*255/100,m[3]*255/100,m[4]):(m=reHslPercent$1.exec(format))?hsla$1(m[1],m[2]/100,m[3]/100,1):(m=reHslaPercent$1.exec(format))?hsla$1(m[1],m[2]/100,m[3]/100,m[4]):named$1.hasOwnProperty(format)?rgbn$1(named$1[format]):format==="transparent"?new Rgb$1(NaN,NaN,NaN,0):null}function rgbn$1(n){return new Rgb$1(n>>16&255,n>>8&255,n&255,1)}function rgba$1(r,g,b,a){if(a<=0)r=g=b=NaN;return new Rgb$1(r,g,b,a)}function rgbConvert$1(o){if(!(o instanceof Color$1))o=color$1(o);if(!o)return new Rgb$1;o=o.rgb();return new Rgb$1(o.r,o.g,o.b,o.opacity)}function rgb$1(r,g,b,opacity){return arguments.length===1?rgbConvert$1(r):new Rgb$1(r,g,b,opacity==null?1:opacity)}function Rgb$1(r,g,b,opacity){this.r=+r;this.g=+g;this.b=+b;this.opacity=+opacity}define$1(Rgb$1,rgb$1,extend$1(Color$1,{brighter(k){k=k==null?brighter$1:Math.pow(brighter$1,k);return new Rgb$1(this.r*k,this.g*k,this.b*k,this.opacity)},darker(k){k=k==null?darker$1:Math.pow(darker$1,k);return new Rgb$1(this.r*k,this.g*k,this.b*k,this.opacity)},rgb(){return this},clamp(){return new Rgb$1(clampi$1(this.r),clampi$1(this.g),clampi$1(this.b),clampa$1(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:rgb_formatHex$1,formatHex:rgb_formatHex$1,formatHex8:rgb_formatHex8$1,formatRgb:rgb_formatRgb$1,toString:rgb_formatRgb$1}));function rgb_formatHex$1(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}`}function rgb_formatHex8$1(){return`#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}${hex$1((isNaN(this.opacity)?1:this.opacity)*255)}`}function rgb_formatRgb$1(){const a=clampa$1(this.opacity);return`${a===1?"rgb(":"rgba("}${clampi$1(this.r)}, ${clampi$1(this.g)}, ${clampi$1(this.b)}${a===1?")":`, ${a})`}`}function clampa$1(opacity){return isNaN(opacity)?1:Math.max(0,Math.min(1,opacity))}function clampi$1(value){return Math.max(0,Math.min(255,Math.round(value)||0))}function hex$1(value){value=clampi$1(value);return(value<16?"0":"")+value.toString(16)}function hsla$1(h2,s,l,a){if(a<=0)h2=s=l=NaN;else if(l<=0||l>=1)h2=s=NaN;else if(s<=0)h2=NaN;return new Hsl$1(h2,s,l,a)}function hslConvert$1(o){if(o instanceof Hsl$1)return new Hsl$1(o.h,o.s,o.l,o.opacity);if(!(o instanceof Color$1))o=color$1(o);if(!o)return new Hsl$1;if(o instanceof Hsl$1)return o;o=o.rgb();var r=o.r/255,g=o.g/255,b=o.b/255,min=Math.min(r,g,b),max=Math.max(r,g,b),h2=NaN,s=max-min,l=(max+min)/2;if(s){if(r===max)h2=(g-b)/s+(g<b)*6;else if(g===max)h2=(b-r)/s+2;else h2=(r-g)/s+4;s/=l<.5?max+min:2-max-min;h2*=60}else{s=l>0&&l<1?0:h2}return new Hsl$1(h2,s,l,o.opacity)}function hsl$1(h2,s,l,opacity){return arguments.length===1?hslConvert$1(h2):new Hsl$1(h2,s,l,opacity==null?1:opacity)}function Hsl$1(h2,s,l,opacity){this.h=+h2;this.s=+s;this.l=+l;this.opacity=+opacity}define$1(Hsl$1,hsl$1,extend$1(Color$1,{brighter(k){k=k==null?brighter$1:Math.pow(brighter$1,k);return new Hsl$1(this.h,this.s,this.l*k,this.opacity)},darker(k){k=k==null?darker$1:Math.pow(darker$1,k);return new Hsl$1(this.h,this.s,this.l*k,this.opacity)},rgb(){var h2=this.h%360+(this.h<0)*360,s=isNaN(h2)||isNaN(this.s)?0:this.s,l=this.l,m2=l+(l<.5?l:1-l)*s,m1=2*l-m2;return new Rgb$1(hsl2rgb$1(h2>=240?h2-240:h2+120,m1,m2),hsl2rgb$1(h2,m1,m2),hsl2rgb$1(h2<120?h2+240:h2-120,m1,m2),this.opacity)},clamp(){return new Hsl$1(clamph$1(this.h),clampt$1(this.s),clampt$1(this.l),clampa$1(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 a=clampa$1(this.opacity);return`${a===1?"hsl(":"hsla("}${clamph$1(this.h)}, ${clampt$1(this.s)*100}%, ${clampt$1(this.l)*100}%${a===1?")":`, ${a})`}`}}));function clamph$1(value){value=(value||0)%360;return value<0?value+360:value}function clampt$1(value){return Math.max(0,Math.min(1,value||0))}function hsl2rgb$1(h2,m1,m2){return(h2<60?m1+(m2-m1)*h2/60:h2<180?m2:h2<240?m1+(m2-m1)*(240-h2)/60:m1)*255}const constant$1$1=x=>()=>x;function linear$1(a,d){return function(t){return a+t*d}}function exponential$1(a,b,y){return a=Math.pow(a,y),b=Math.pow(b,y)-a,y=1/y,function(t){return Math.pow(a+t*b,y)}}function gamma$1(y){return(y=+y)===1?nogamma$1:function(a,b){return b-a?exponential$1(a,b,y):constant$1$1(isNaN(a)?b:a)}}function nogamma$1(a,b){var d=b-a;return d?linear$1(a,d):constant$1$1(isNaN(a)?b:a)}const interpolateRgb$1=(function rgbGamma(y){var color2=gamma$1(y);function rgb$1$1(start2,end){var r=color2((start2=rgb$1(start2)).r,(end=rgb$1(end)).r),g=color2(start2.g,end.g),b=color2(start2.b,end.b),opacity=nogamma$1(start2.opacity,end.opacity);return function(t){start2.r=r(t);start2.g=g(t);start2.b=b(t);start2.opacity=opacity(t);return start2+""}}rgb$1$1.gamma=rgbGamma;return rgb$1$1})(1);function numberArray(a,b){if(!b)b=[];var n=a?Math.min(b.length,a.length):0,c=b.slice(),i;return function(t){for(i=0;i<n;++i)c[i]=a[i]*(1-t)+b[i]*t;return c}}function isNumberArray(x){return ArrayBuffer.isView(x)&&!(x instanceof DataView)}function genericArray(a,b){var nb=b?b.length:0,na=a?Math.min(nb,a.length):0,x=new Array(na),c=new Array(nb),i;for(i=0;i<na;++i)x[i]=interpolate$1(a[i],b[i]);for(;i<nb;++i)c[i]=b[i];return function(t){for(i=0;i<na;++i)c[i]=x[i](t);return c}}function date(a,b){var d=new Date;return a=+a,b=+b,function(t){return d.setTime(a*(1-t)+b*t),d}}function interpolateNumber$1(a,b){return a=+a,b=+b,function(t){return a*(1-t)+b*t}}function object(a,b){var i={},c={},k;if(a===null||typeof a!=="object")a={};if(b===null||typeof b!=="object")b={};for(k in b){if(k in a){i[k]=interpolate$1(a[k],b[k])}else{c[k]=b[k]}}return function(t){for(k in i)c[k]=i[k](t);return c}}var reA$1=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;var reB$1=new RegExp(reA$1.source,"g");function zero$1(b){return function(){return b}}function one$1(b){return function(t){return b(t)+""}}function interpolateString$1(a,b){var bi=reA$1.lastIndex=reB$1.lastIndex=0,am,bm,bs,i=-1,s=[],q=[];a=a+"",b=b+"";while((am=reA$1.exec(a))&&(bm=reB$1.exec(b))){if((bs=bm.index)>bi){bs=b.slice(bi,bs);if(s[i])s[i]+=bs;else s[++i]=bs}if((am=am[0])===(bm=bm[0])){if(s[i])s[i]+=bm;else s[++i]=bm}else{s[++i]=null;q.push({i,x:interpolateNumber$1(am,bm)})}bi=reB$1.lastIndex}if(bi<b.length){bs=b.slice(bi);if(s[i])s[i]+=bs;else s[++i]=bs}return s.length<2?q[0]?one$1(q[0].x):zero$1(b):(b=q.length,function(t){for(var i2=0,o;i2<b;++i2)s[(o=q[i2]).i]=o.x(t);return s.join("")})}function interpolate$1(a,b){var t=typeof b,c;return b==null||t==="boolean"?constant$1$1(b):(t==="number"?interpolateNumber$1:t==="string"?(c=color$1(b))?(b=c,interpolateRgb$1):interpolateString$1:b instanceof color$1?interpolateRgb$1:b instanceof Date?date:isNumberArray(b)?numberArray:Array.isArray(b)?genericArray:typeof b.valueOf!=="function"&&typeof b.toString!=="function"||isNaN(b)?object:interpolateNumber$1)(a,b)}var degrees$1=180/Math.PI;var identity$1$1={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function decompose$1(a,b,c,d,e,f){var scaleX,scaleY,skewX;if(scaleX=Math.sqrt(a*a+b*b))a/=scaleX,b/=scaleX;if(skewX=a*c+b*d)c-=a*skewX,d-=b*skewX;if(scaleY=Math.sqrt(c*c+d*d))c/=scaleY,d/=scaleY,skewX/=scaleY;if(a*d<b*c)a=-a,b=-b,skewX=-skewX,scaleX=-scaleX;return{translateX:e,translateY:f,rotate:Math.atan2(b,a)*degrees$1,skewX:Math.atan(skewX)*degrees$1,scaleX,scaleY}}var svgNode$1;function parseCss$1(value){const m=new(typeof DOMMatrix==="function"?DOMMatrix:WebKitCSSMatrix)(value+"");return m.isIdentity?identity$1$1:decompose$1(m.a,m.b,m.c,m.d,m.e,m.f)}function parseSvg$1(value){if(value==null)return identity$1$1;if(!svgNode$1)svgNode$1=document.createElementNS("http://www.w3.org/2000/svg","g");svgNode$1.setAttribute("transform",value);if(!(value=svgNode$1.transform.baseVal.consolidate()))return identity$1$1;value=value.matrix;return decompose$1(value.a,value.b,value.c,value.d,value.e,value.f)}function interpolateTransform$1(parse,pxComma,pxParen,degParen){function pop2(s){return s.length?s.pop()+" ":""}function translate(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push("translate(",null,pxComma,null,pxParen);q.push({i:i-4,x:interpolateNumber$1(xa,xb)},{i:i-2,x:interpolateNumber$1(ya,yb)})}else if(xb||yb){s.push("translate("+xb+pxComma+yb+pxParen)}}function rotate(a,b,s,q){if(a!==b){if(a-b>180)b+=360;else if(b-a>180)a+=360;q.push({i:s.push(pop2(s)+"rotate(",null,degParen)-2,x:interpolateNumber$1(a,b)})}else if(b){s.push(pop2(s)+"rotate("+b+degParen)}}function skewX(a,b,s,q){if(a!==b){q.push({i:s.push(pop2(s)+"skewX(",null,degParen)-2,x:interpolateNumber$1(a,b)})}else if(b){s.push(pop2(s)+"skewX("+b+degParen)}}function scale(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push(pop2(s)+"scale(",null,",",null,")");q.push({i:i-4,x:interpolateNumber$1(xa,xb)},{i:i-2,x:interpolateNumber$1(ya,yb)})}else if(xb!==1||yb!==1){s.push(pop2(s)+"scale("+xb+","+yb+")")}}return function(a,b){var s=[],q=[];a=parse(a),b=parse(b);translate(a.translateX,a.translateY,b.translateX,b.translateY,s,q);rotate(a.rotate,b.rotate,s,q);skewX(a.skewX,b.skewX,s,q);scale(a.scaleX,a.scaleY,b.scaleX,b.scaleY,s,q);a=b=null;return function(t){var i=-1,n=q.length,o;while(++i<n)s[(o=q[i]).i]=o.x(t);return s.join("")}}}var interpolateTransformCss$1=interpolateTransform$1(parseCss$1,"px, ","px)","deg)");var interpolateTransformSvg$1=interpolateTransform$1(parseSvg$1,", ",")",")");var epsilon2$1=1e-12;function cosh$1(x){return((x=Math.exp(x))+1/x)/2}function sinh$1(x){return((x=Math.exp(x))-1/x)/2}function tanh$1(x){return((x=Math.exp(2*x))-1)/(x+1)}const interpolateZoom$1=(function zoomRho(rho,rho2,rho4){function zoom2(p0,p1){var ux0=p0[0],uy0=p0[1],w0=p0[2],ux1=p1[0],uy1=p1[1],w1=p1[2],dx=ux1-ux0,dy=uy1-uy0,d2=dx*dx+dy*dy,i,S;if(d2<epsilon2$1){S=Math.log(w1/w0)/rho;i=function(t){return[ux0+t*dx,uy0+t*dy,w0*Math.exp(rho*t*S)]}}else{var d1=Math.sqrt(d2),b0=(w1*w1-w0*w0+rho4*d2)/(2*w0*rho2*d1),b1=(w1*w1-w0*w0-rho4*d2)/(2*w1*rho2*d1),r0=Math.log(Math.sqrt(b0*b0+1)-b0),r1=Math.log(Math.sqrt(b1*b1+1)-b1);S=(r1-r0)/rho;i=function(t){var s=t*S,coshr0=cosh$1(r0),u=w0/(rho2*d1)*(coshr0*tanh$1(rho*s+r0)-sinh$1(r0));return[ux0+u*dx,uy0+u*dy,w0*coshr0/cosh$1(rho*s+r0)]}}i.duration=S*1e3*rho/Math.SQRT2;return i}zoom2.rho=function(_){var _1=Math.max(.001,+_),_2=_1*_1,_4=_2*_2;return zoomRho(_1,_2,_4)};return zoom2})(Math.SQRT2,2,4);var frame$1=0;var timeout$1$1=0;var interval$1=0;var pokeDelay$1=1e3;var taskHead$1;var taskTail$1;var clockLast$1=0;var clockNow$1=0;var clockSkew$1=0;var clock$1=typeof performance==="object"&&performance.now?performance:Date;var setFrame$1=typeof window==="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(f){setTimeout(f,17)};function now$1(){return clockNow$1||(setFrame$1(clearNow$1),clockNow$1=clock$1.now()+clockSkew$1)}function clearNow$1(){clockNow$1=0}function Timer$1(){this._call=this._time=this._next=null}Timer$1.prototype=timer$1.prototype={constructor:Timer$1,restart:function(callback,delay,time){if(typeof callback!=="function")throw new TypeError("callback is not a function");time=(time==null?now$1():+time)+(delay==null?0:+delay);if(!this._next&&taskTail$1!==this){if(taskTail$1)taskTail$1._next=this;else taskHead$1=this;taskTail$1=this}this._call=callback;this._time=time;sleep$1()},stop:function(){if(this._call){this._call=null;this._time=Infinity;sleep$1()}}};function timer$1(callback,delay,time){var t=new Timer$1;t.restart(callback,delay,time);return t}function timerFlush$1(){now$1();++frame$1;var t=taskHead$1,e;while(t){if((e=clockNow$1-t._time)>=0)t._call.call(void 0,e);t=t._next}--frame$1}function wake$1(){clockNow$1=(clockLast$1=clock$1.now())+clockSkew$1;frame$1=timeout$1$1=0;try{timerFlush$1()}finally{frame$1=0;nap$1();clockNow$1=0}}function poke$1(){var now2=clock$1.now(),delay=now2-clockLast$1;if(delay>pokeDelay$1)clockSkew$1-=delay,clockLast$1=now2}function nap$1(){var t0,t1=taskHead$1,t2,time=Infinity;while(t1){if(t1._call){if(time>t1._time)time=t1._time;t0=t1,t1=t1._next}else{t2=t1._next,t1._next=null;t1=t0?t0._next=t2:taskHead$1=t2}}taskTail$1=t0;sleep$1(time)}function sleep$1(time){if(frame$1)return;if(timeout$1$1)timeout$1$1=clearTimeout(timeout$1$1);var delay=time-clockNow$1;if(delay>24){if(time<Infinity)timeout$1$1=setTimeout(wake$1,time-clock$1.now()-clockSkew$1);if(interval$1)interval$1=clearInterval(interval$1)}else{if(!interval$1)clockLast$1=clock$1.now(),interval$1=setInterval(poke$1,pokeDelay$1);frame$1=1,setFrame$1(wake$1)}}function timeout$2(callback,delay,time){var t=new Timer$1;delay=delay==null?0:+delay;t.restart(elapsed=>{t.stop();callback(elapsed+delay)},delay,time);return t}var emptyOn$1=dispatch$1("start","end","cancel","interrupt");var emptyTween$1=[];var CREATED$1=0;var SCHEDULED$1=1;var STARTING$1=2;var STARTED$1=3;var RUNNING$1=4;var ENDING$1=5;var ENDED$1=6;function schedule$1(node,name,id2,index,group,timing){var schedules=node.__transition;if(!schedules)node.__transition={};else if(id2 in schedules)return;create$1(node,id2,{name,index,group,on:emptyOn$1,tween:emptyTween$1,time:timing.time,delay:timing.delay,duration:timing.duration,ease:timing.ease,timer:null,state:CREATED$1})}function init$1(node,id2){var schedule2=get$2(node,id2);if(schedule2.state>CREATED$1)throw new Error("too late; already scheduled");return schedule2}function set$2(node,id2){var schedule2=get$2(node,id2);if(schedule2.state>STARTED$1)throw new Error("too late; already running");return schedule2}function get$2(node,id2){var schedule2=node.__transition;if(!schedule2||!(schedule2=schedule2[id2]))throw new Error("transition not found");return schedule2}function create$1(node,id2,self){var schedules=node.__transition,tween;schedules[id2]=self;self.timer=timer$1(schedule2,0,self.time);function schedule2(elapsed){self.state=SCHEDULED$1;self.timer.restart(start2,self.delay,self.time);if(self.delay<=elapsed)start2(elapsed-self.delay)}function start2(elapsed){var i,j,n,o;if(self.state!==SCHEDULED$1)return stop();for(i in schedules){o=schedules[i];if(o.name!==self.name)continue;if(o.state===STARTED$1)return timeout$2(start2);if(o.state===RUNNING$1){o.state=ENDED$1;o.timer.stop();o.on.call("interrupt",node,node.__data__,o.index,o.group);delete schedules[i]}else if(+i<id2){o.state=ENDED$1;o.timer.stop();o.on.call("cancel",node,node.__data__,o.index,o.group);delete schedules[i]}}timeout$2(function(){if(self.state===STARTED$1){self.state=RUNNING$1;self.timer.restart(tick,self.delay,self.time);tick(elapsed)}});self.state=STARTING$1;self.on.call("start",node,node.__data__,self.index,self.group);if(self.state!==STARTING$1)return;self.state=STARTED$1;tween=new Array(n=self.tween.length);for(i=0,j=-1;i<n;++i){if(o=self.tween[i].value.call(node,node.__data__,self.index,self.group)){tween[++j]=o}}tween.length=j+1}function tick(elapsed){var t=elapsed<self.duration?self.ease.call(null,elapsed/self.duration):(self.timer.restart(stop),self.state=ENDING$1,1),i=-1,n=tween.length;while(++i<n){tween[i].call(node,t)}if(self.state===ENDING$1){self.on.call("end",node,node.__data__,self.index,self.group);stop()}}function stop(){self.state=ENDED$1;self.timer.stop();delete schedules[id2];for(var i in schedules)return;delete node.__transition}}function interrupt$1(node,name){var schedules=node.__transition,schedule2,active,empty2=true,i;if(!schedules)return;name=name==null?null:name+"";for(i in schedules){if((schedule2=schedules[i]).name!==name){empty2=false;continue}active=schedule2.state>STARTING$1&&schedule2.state<ENDING$1;schedule2.state=ENDED$1;schedule2.timer.stop();schedule2.on.call(active?"interrupt":"cancel",node,node.__data__,schedule2.index,schedule2.group);delete schedules[i]}if(empty2)delete node.__transition}function selection_interrupt$1(name){return this.each(function(){interrupt$1(this,name)})}function tweenRemove$1(id2,name){var tween0,tween1;return function(){var schedule2=set$2(this,id2),tween=schedule2.tween;if(tween!==tween0){tween1=tween0=tween;for(var i=0,n=tween1.length;i<n;++i){if(tween1[i].name===name){tween1=tween1.slice();tween1.splice(i,1);break}}}schedule2.tween=tween1}}function tweenFunction$1(id2,name,value){var tween0,tween1;if(typeof value!=="function")throw new Error;return function(){var schedule2=set$2(this,id2),tween=schedule2.tween;if(tween!==tween0){tween1=(tween0=tween).slice();for(var t={name,value},i=0,n=tween1.length;i<n;++i){if(tween1[i].name===name){tween1[i]=t;break}}if(i===n)tween1.push(t)}schedule2.tween=tween1}}function transition_tween$1(name,value){var id2=this._id;name+="";if(arguments.length<2){var tween=get$2(this.node(),id2).tween;for(var i=0,n=tween.length,t;i<n;++i){if((t=tween[i]).name===name){return t.value}}return null}return this.each((value==null?tweenRemove$1:tweenFunction$1)(id2,name,value))}function tweenValue$1(transition,name,value){var id2=transition._id;transition.each(function(){var schedule2=set$2(this,id2);(schedule2.value||(schedule2.value={}))[name]=value.apply(this,arguments)});return function(node){return get$2(node,id2).value[name]}}function interpolate$2(a,b){var c;return(typeof b==="number"?interpolateNumber$1:b instanceof color$1?interpolateRgb$1:(c=color$1(b))?(b=c,interpolateRgb$1):interpolateString$1)(a,b)}function attrRemove$2(name){return function(){this.removeAttribute(name)}}function attrRemoveNS$2(fullname){return function(){this.removeAttributeNS(fullname.space,fullname.local)}}function attrConstant$2(name,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=this.getAttribute(name);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function attrConstantNS$2(fullname,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=this.getAttributeNS(fullname.space,fullname.local);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function attrFunction$2(name,interpolate2,value){var string00,string10,interpolate0;return function(){var string0,value1=value(this),string1;if(value1==null)return void this.removeAttribute(name);string0=this.getAttribute(name);string1=value1+"";return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function attrFunctionNS$2(fullname,interpolate2,value){var string00,string10,interpolate0;return function(){var string0,value1=value(this),string1;if(value1==null)return void this.removeAttributeNS(fullname.space,fullname.local);string0=this.getAttributeNS(fullname.space,fullname.local);string1=value1+"";return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function transition_attr$1(name,value){var fullname=namespace$1(name),i=fullname==="transform"?interpolateTransformSvg$1:interpolate$2;return this.attrTween(name,typeof value==="function"?(fullname.local?attrFunctionNS$2:attrFunction$2)(fullname,i,tweenValue$1(this,"attr."+name,value)):value==null?(fullname.local?attrRemoveNS$2:attrRemove$2)(fullname):(fullname.local?attrConstantNS$2:attrConstant$2)(fullname,i,value))}function attrInterpolate$1(name,i){return function(t){this.setAttribute(name,i.call(this,t))}}function attrInterpolateNS$1(fullname,i){return function(t){this.setAttributeNS(fullname.space,fullname.local,i.call(this,t))}}function attrTweenNS$1(fullname,value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&attrInterpolateNS$1(fullname,i);return t0}tween._value=value;return tween}function attrTween$1(name,value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&attrInterpolate$1(name,i);return t0}tween._value=value;return tween}function transition_attrTween$1(name,value){var key="attr."+name;if(arguments.length<2)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;var fullname=namespace$1(name);return this.tween(key,(fullname.local?attrTweenNS$1:attrTween$1)(fullname,value))}function delayFunction$1(id2,value){return function(){init$1(this,id2).delay=+value.apply(this,arguments)}}function delayConstant$1(id2,value){return value=+value,function(){init$1(this,id2).delay=value}}function transition_delay$1(value){var id2=this._id;return arguments.length?this.each((typeof value==="function"?delayFunction$1:delayConstant$1)(id2,value)):get$2(this.node(),id2).delay}function durationFunction$1(id2,value){return function(){set$2(this,id2).duration=+value.apply(this,arguments)}}function durationConstant$1(id2,value){return value=+value,function(){set$2(this,id2).duration=value}}function transition_duration$1(value){var id2=this._id;return arguments.length?this.each((typeof value==="function"?durationFunction$1:durationConstant$1)(id2,value)):get$2(this.node(),id2).duration}function easeConstant$1(id2,value){if(typeof value!=="function")throw new Error;return function(){set$2(this,id2).ease=value}}function transition_ease$1(value){var id2=this._id;return arguments.length?this.each(easeConstant$1(id2,value)):get$2(this.node(),id2).ease}function easeVarying$1(id2,value){return function(){var v=value.apply(this,arguments);if(typeof v!=="function")throw new Error;set$2(this,id2).ease=v}}function transition_easeVarying$1(value){if(typeof value!=="function")throw new Error;return this.each(easeVarying$1(this._id,value))}function transition_filter$1(match){if(typeof match!=="function")match=matcher$1(match);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=[],node,i=0;i<n;++i){if((node=group[i])&&match.call(node,node.__data__,i,group)){subgroup.push(node)}}}return new Transition$1(subgroups,this._parents,this._name,this._id)}function transition_merge$1(transition){if(transition._id!==this._id)throw new Error;for(var groups0=this._groups,groups1=transition._groups,m0=groups0.length,m1=groups1.length,m=Math.min(m0,m1),merges=new Array(m0),j=0;j<m;++j){for(var group0=groups0[j],group1=groups1[j],n=group0.length,merge=merges[j]=new Array(n),node,i=0;i<n;++i){if(node=group0[i]||group1[i]){merge[i]=node}}}for(;j<m0;++j){merges[j]=groups0[j]}return new Transition$1(merges,this._parents,this._name,this._id)}function start$1(name){return(name+"").trim().split(/^|\s+/).every(function(t){var i=t.indexOf(".");if(i>=0)t=t.slice(0,i);return!t||t==="start"})}function onFunction$1(id2,name,listener){var on0,on1,sit=start$1(name)?init$1:set$2;return function(){var schedule2=sit(this,id2),on=schedule2.on;if(on!==on0)(on1=(on0=on).copy()).on(name,listener);schedule2.on=on1}}function transition_on$1(name,listener){var id2=this._id;return arguments.length<2?get$2(this.node(),id2).on.on(name):this.each(onFunction$1(id2,name,listener))}function removeFunction$1(id2){return function(){var parent=this.parentNode;for(var i in this.__transition)if(+i!==id2)return;if(parent)parent.removeChild(this)}}function transition_remove$1(){return this.on("end.remove",removeFunction$1(this._id))}function transition_select$1(select2){var name=this._name,id2=this._id;if(typeof select2!=="function")select2=selector$1(select2);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=new Array(n),node,subnode,i=0;i<n;++i){if((node=group[i])&&(subnode=select2.call(node,node.__data__,i,group))){if("__data__"in node)subnode.__data__=node.__data__;subgroup[i]=subnode;schedule$1(subgroup[i],name,id2,i,subgroup,get$2(node,id2))}}}return new Transition$1(subgroups,this._parents,name,id2)}function transition_selectAll$1(select2){var name=this._name,id2=this._id;if(typeof select2!=="function")select2=selectorAll$1(select2);for(var groups=this._groups,m=groups.length,subgroups=[],parents=[],j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){for(var children2=select2.call(node,node.__data__,i,group),child,inherit2=get$2(node,id2),k=0,l=children2.length;k<l;++k){if(child=children2[k]){schedule$1(child,name,id2,k,children2,inherit2)}}subgroups.push(children2);parents.push(node)}}}return new Transition$1(subgroups,parents,name,id2)}var Selection$2=selection$1.prototype.constructor;function transition_selection$1(){return new Selection$2(this._groups,this._parents)}function styleNull$1(name,interpolate2){var string00,string10,interpolate0;return function(){var string0=styleValue$1(this,name),string1=(this.style.removeProperty(name),styleValue$1(this,name));return string0===string1?null:string0===string00&&string1===string10?interpolate0:interpolate0=interpolate2(string00=string0,string10=string1)}}function styleRemove$2(name){return function(){this.style.removeProperty(name)}}function styleConstant$2(name,interpolate2,value1){var string00,string1=value1+"",interpolate0;return function(){var string0=styleValue$1(this,name);return string0===string1?null:string0===string00?interpolate0:interpolate0=interpolate2(string00=string0,value1)}}function styleFunction$2(name,interpolate2,value){var string00,string10,interpolate0;return function(){var string0=styleValue$1(this,name),value1=value(this),string1=value1+"";if(value1==null)string1=value1=(this.style.removeProperty(name),styleValue$1(this,name));return string0===string1?null:string0===string00&&string1===string10?interpolate0:(string10=string1,interpolate0=interpolate2(string00=string0,value1))}}function styleMaybeRemove$1(id2,name){var on0,on1,listener0,key="style."+name,event="end."+key,remove2;return function(){var schedule2=set$2(this,id2),on=schedule2.on,listener=schedule2.value[key]==null?remove2||(remove2=styleRemove$2(name)):void 0;if(on!==on0||listener0!==listener)(on1=(on0=on).copy()).on(event,listener0=listener);schedule2.on=on1}}function transition_style$1(name,value,priority){var i=(name+="")==="transform"?interpolateTransformCss$1:interpolate$2;return value==null?this.styleTween(name,styleNull$1(name,i)).on("end.style."+name,styleRemove$2(name)):typeof value==="function"?this.styleTween(name,styleFunction$2(name,i,tweenValue$1(this,"style."+name,value))).each(styleMaybeRemove$1(this._id,name)):this.styleTween(name,styleConstant$2(name,i,value),priority).on("end.style."+name,null)}function styleInterpolate$1(name,i,priority){return function(t){this.style.setProperty(name,i.call(this,t),priority)}}function styleTween$1(name,value,priority){var t,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t=(i0=i)&&styleInterpolate$1(name,i,priority);return t}tween._value=value;return tween}function transition_styleTween$1(name,value,priority){var key="style."+(name+="");if(arguments.length<2)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;return this.tween(key,styleTween$1(name,value,priority==null?"":priority))}function textConstant$2(value){return function(){this.textContent=value}}function textFunction$2(value){return function(){var value1=value(this);this.textContent=value1==null?"":value1}}function transition_text$1(value){return this.tween("text",typeof value==="function"?textFunction$2(tweenValue$1(this,"text",value)):textConstant$2(value==null?"":value+""))}function textInterpolate$1(i){return function(t){this.textContent=i.call(this,t)}}function textTween$1(value){var t0,i0;function tween(){var i=value.apply(this,arguments);if(i!==i0)t0=(i0=i)&&textInterpolate$1(i);return t0}tween._value=value;return tween}function transition_textTween$1(value){var key="text";if(arguments.length<1)return(key=this.tween(key))&&key._value;if(value==null)return this.tween(key,null);if(typeof value!=="function")throw new Error;return this.tween(key,textTween$1(value))}function transition_transition$1(){var name=this._name,id0=this._id,id1=newId$1();for(var groups=this._groups,m=groups.length,j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){var inherit2=get$2(node,id0);schedule$1(node,name,id1,i,group,{time:inherit2.time+inherit2.delay+inherit2.duration,delay:0,duration:inherit2.duration,ease:inherit2.ease})}}}return new Transition$1(groups,this._parents,name,id1)}function transition_end$1(){var on0,on1,that=this,id2=that._id,size=that.size();return new Promise(function(resolve,reject){var cancel={value:reject},end={value:function(){if(--size===0)resolve()}};that.each(function(){var schedule2=set$2(this,id2),on=schedule2.on;if(on!==on0){on1=(on0=on).copy();on1._.cancel.push(cancel);on1._.interrupt.push(cancel);on1._.end.push(end)}schedule2.on=on1});if(size===0)resolve()})}var id$1=0;function Transition$1(groups,parents,name,id2){this._groups=groups;this._parents=parents;this._name=name;this._id=id2}function newId$1(){return++id$1}var selection_prototype$1=selection$1.prototype;Transition$1.prototype={constructor:Transition$1,select:transition_select$1,selectAll:transition_selectAll$1,selectChild:selection_prototype$1.selectChild,selectChildren:selection_prototype$1.selectChildren,filter:transition_filter$1,merge:transition_merge$1,selection:transition_selection$1,transition:transition_transition$1,call:selection_prototype$1.call,nodes:selection_prototype$1.nodes,node:selection_prototype$1.node,size:selection_prototype$1.size,empty:selection_prototype$1.empty,each:selection_prototype$1.each,on:transition_on$1,attr:transition_attr$1,attrTween:transition_attrTween$1,style:transition_style$1,styleTween:transition_styleTween$1,text:transition_text$1,textTween:transition_textTween$1,remove:transition_remove$1,tween:transition_tween$1,delay:transition_delay$1,duration:transition_duration$1,ease:transition_ease$1,easeVarying:transition_easeVarying$1,end:transition_end$1,[Symbol.iterator]:selection_prototype$1[Symbol.iterator]};function cubicInOut$1(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var defaultTiming$1={time:null,delay:0,duration:250,ease:cubicInOut$1};function inherit$1(node,id2){var timing;while(!(timing=node.__transition)||!(timing=timing[id2])){if(!(node=node.parentNode)){throw new Error(`transition ${id2} not found`)}}return timing}function selection_transition$1(name){var id2,timing;if(name instanceof Transition$1){id2=name._id,name=name._name}else{id2=newId$1(),(timing=defaultTiming$1).time=now$1(),name=name==null?null:name+""}for(var groups=this._groups,m=groups.length,j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){schedule$1(node,name,id2,i,group,timing||inherit$1(node,id2))}}}return new Transition$1(groups,this._parents,name,id2)}selection$1.prototype.interrupt=selection_interrupt$1;selection$1.prototype.transition=selection_transition$1;const constant$4=x=>()=>x;function ZoomEvent$1(type,{sourceEvent:sourceEvent2,target,transform,dispatch:dispatch2}){Object.defineProperties(this,{type:{value:type,enumerable:true,configurable:true},sourceEvent:{value:sourceEvent2,enumerable:true,configurable:true},target:{value:target,enumerable:true,configurable:true},transform:{value:transform,enumerable:true,configurable:true},_:{value:dispatch2}})}function Transform$1(k,x,y){this.k=k;this.x=x;this.y=y}Transform$1.prototype={constructor:Transform$1,scale:function(k){return k===1?this:new Transform$1(this.k*k,this.x,this.y)},translate:function(x,y){return x===0&y===0?this:new Transform$1(this.k,this.x+this.k*x,this.y+this.k*y)},apply:function(point){return[point[0]*this.k+this.x,point[1]*this.k+this.y]},applyX:function(x){return x*this.k+this.x},applyY:function(y){return y*this.k+this.y},invert:function(location){return[(location[0]-this.x)/this.k,(location[1]-this.y)/this.k]},invertX:function(x){return(x-this.x)/this.k},invertY:function(y){return(y-this.y)/this.k},rescaleX:function(x){return x.copy().domain(x.range().map(this.invertX,this).map(x.invert,x))},rescaleY:function(y){return y.copy().domain(y.range().map(this.invertY,this).map(y.invert,y))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var identity$2=new Transform$1(1,0,0);Transform$1.prototype;function nopropagation$2(event){event.stopImmediatePropagation()}function noevent$2(event){event.preventDefault();event.stopImmediatePropagation()}function defaultFilter$2(event){return(!event.ctrlKey||event.type==="wheel")&&!event.button}function defaultExtent$1(){var e=this;if(e instanceof SVGElement){e=e.ownerSVGElement||e;if(e.hasAttribute("viewBox")){e=e.viewBox.baseVal;return[[e.x,e.y],[e.x+e.width,e.y+e.height]]}return[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}return[[0,0],[e.clientWidth,e.clientHeight]]}function defaultTransform$1(){return this.__zoom||identity$2}function defaultWheelDelta$1(event){return-event.deltaY*(event.deltaMode===1?.05:event.deltaMode?1:.002)*(event.ctrlKey?10:1)}function defaultTouchable$2(){return navigator.maxTouchPoints||"ontouchstart"in this}function defaultConstrain$1(transform,extent,translateExtent){var dx0=transform.invertX(extent[0][0])-translateExtent[0][0],dx1=transform.invertX(extent[1][0])-translateExtent[1][0],dy0=transform.invertY(extent[0][1])-translateExtent[0][1],dy1=transform.invertY(extent[1][1])-translateExtent[1][1];return transform.translate(dx1>dx0?(dx0+dx1)/2:Math.min(0,dx0)||Math.max(0,dx1),dy1>dy0?(dy0+dy1)/2:Math.min(0,dy0)||Math.max(0,dy1))}function zoom$1(){var filter2=defaultFilter$2,extent=defaultExtent$1,constrain=defaultConstrain$1,wheelDelta2=defaultWheelDelta$1,touchable=defaultTouchable$2,scaleExtent=[0,Infinity],translateExtent=[[-Infinity,-Infinity],[Infinity,Infinity]],duration=250,interpolate2=interpolateZoom$1,listeners=dispatch$1("start","zoom","end"),touchstarting,touchfirst,touchending,touchDelay=500,wheelDelay=150,clickDistance2=0,tapDistance=10;function zoom2(selection2){selection2.property("__zoom",defaultTransform$1).on("wheel.zoom",wheeled,{passive:false}).on("mousedown.zoom",mousedowned).on("dblclick.zoom",dblclicked).filter(touchable).on("touchstart.zoom",touchstarted).on("touchmove.zoom",touchmoved).on("touchend.zoom touchcancel.zoom",touchended).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}zoom2.transform=function(collection,transform,point,event){var selection2=collection.selection?collection.selection():collection;selection2.property("__zoom",defaultTransform$1);if(collection!==selection2){schedule2(collection,transform,point,event)}else{selection2.interrupt().each(function(){gesture(this,arguments).event(event).start().zoom(null,typeof transform==="function"?transform.apply(this,arguments):transform).end()})}};zoom2.scaleBy=function(selection2,k,p,event){zoom2.scaleTo(selection2,function(){var k0=this.__zoom.k,k1=typeof k==="function"?k.apply(this,arguments):k;return k0*k1},p,event)};zoom2.scaleTo=function(selection2,k,p,event){zoom2.transform(selection2,function(){var e=extent.apply(this,arguments),t0=this.__zoom,p0=p==null?centroid(e):typeof p==="function"?p.apply(this,arguments):p,p1=t0.invert(p0),k1=typeof k==="function"?k.apply(this,arguments):k;return constrain(translate(scale(t0,k1),p0,p1),e,translateExtent)},p,event)};zoom2.translateBy=function(selection2,x,y,event){zoom2.transform(selection2,function(){return constrain(this.__zoom.translate(typeof x==="function"?x.apply(this,arguments):x,typeof y==="function"?y.apply(this,arguments):y),extent.apply(this,arguments),translateExtent)},null,event)};zoom2.translateTo=function(selection2,x,y,p,event){zoom2.transform(selection2,function(){var e=extent.apply(this,arguments),t=this.__zoom,p0=p==null?centroid(e):typeof p==="function"?p.apply(this,arguments):p;return constrain(identity$2.translate(p0[0],p0[1]).scale(t.k).translate(typeof x==="function"?-x.apply(this,arguments):-x,typeof y==="function"?-y.apply(this,arguments):-y),e,translateExtent)},p,event)};function scale(transform,k){k=Math.max(scaleExtent[0],Math.min(scaleExtent[1],k));return k===transform.k?transform:new Transform$1(k,transform.x,transform.y)}function translate(transform,p0,p1){var x=p0[0]-p1[0]*transform.k,y=p0[1]-p1[1]*transform.k;return x===transform.x&&y===transform.y?transform:new Transform$1(transform.k,x,y)}function centroid(extent2){return[(+extent2[0][0]+ +extent2[1][0])/2,(+extent2[0][1]+ +extent2[1][1])/2]}function schedule2(transition,transform,point,event){transition.on("start.zoom",function(){gesture(this,arguments).event(event).start()}).on("interrupt.zoom end.zoom",function(){gesture(this,arguments).event(event).end()}).tween("zoom",function(){var that=this,args=arguments,g=gesture(that,args).event(event),e=extent.apply(that,args),p=point==null?centroid(e):typeof point==="function"?point.apply(that,args):point,w=Math.max(e[1][0]-e[0][0],e[1][1]-e[0][1]),a=that.__zoom,b=typeof transform==="function"?transform.apply(that,args):transform,i=interpolate2(a.invert(p).concat(w/a.k),b.invert(p).concat(w/b.k));return function(t){if(t===1)t=b;else{var l=i(t),k=w/l[2];t=new Transform$1(k,p[0]-l[0]*k,p[1]-l[1]*k)}g.zoom(null,t)}})}function gesture(that,args,clean){return!clean&&that.__zooming||new Gesture(that,args)}function Gesture(that,args){this.that=that;this.args=args;this.active=0;this.sourceEvent=null;this.extent=extent.apply(that,args);this.taps=0}Gesture.prototype={event:function(event){if(event)this.sourceEvent=event;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(key,transform){if(this.mouse&&key!=="mouse")this.mouse[1]=transform.invert(this.mouse[0]);if(this.touch0&&key!=="touch")this.touch0[1]=transform.invert(this.touch0[0]);if(this.touch1&&key!=="touch")this.touch1[1]=transform.invert(this.touch1[0]);this.that.__zoom=transform;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(type){var d=select$1(this.that).datum();listeners.call(type,this.that,new ZoomEvent$1(type,{sourceEvent:this.sourceEvent,target:zoom2,transform:this.that.__zoom,dispatch:listeners}),d)}};function wheeled(event,...args){if(!filter2.apply(this,arguments))return;var g=gesture(this,args).event(event),t=this.__zoom,k=Math.max(scaleExtent[0],Math.min(scaleExtent[1],t.k*Math.pow(2,wheelDelta2.apply(this,arguments)))),p=pointer$1(event);if(g.wheel){if(g.mouse[0][0]!==p[0]||g.mouse[0][1]!==p[1]){g.mouse[1]=t.invert(g.mouse[0]=p)}clearTimeout(g.wheel)}else if(t.k===k)return;else{g.mouse=[p,t.invert(p)];interrupt$1(this);g.start()}noevent$2(event);g.wheel=setTimeout(wheelidled,wheelDelay);g.zoom("mouse",constrain(translate(scale(t,k),g.mouse[0],g.mouse[1]),g.extent,translateExtent));function wheelidled(){g.wheel=null;g.end()}}function mousedowned(event,...args){if(touchending||!filter2.apply(this,arguments))return;var currentTarget=event.currentTarget,g=gesture(this,args,true).event(event),v=select$1(event.view).on("mousemove.zoom",mousemoved,true).on("mouseup.zoom",mouseupped,true),p=pointer$1(event,currentTarget),x0=event.clientX,y0=event.clientY;dragDisable$1(event.view);nopropagation$2(event);g.mouse=[p,this.__zoom.invert(p)];interrupt$1(this);g.start();function mousemoved(event2){noevent$2(event2);if(!g.moved){var dx=event2.clientX-x0,dy=event2.clientY-y0;g.moved=dx*dx+dy*dy>clickDistance2}g.event(event2).zoom("mouse",constrain(translate(g.that.__zoom,g.mouse[0]=pointer$1(event2,currentTarget),g.mouse[1]),g.extent,translateExtent))}function mouseupped(event2){v.on("mousemove.zoom mouseup.zoom",null);yesdrag$1(event2.view,g.moved);noevent$2(event2);g.event(event2).end()}}function dblclicked(event,...args){if(!filter2.apply(this,arguments))return;var t0=this.__zoom,p0=pointer$1(event.changedTouches?event.changedTouches[0]:event,this),p1=t0.invert(p0),k1=t0.k*(event.shiftKey?.5:2),t1=constrain(translate(scale(t0,k1),p0,p1),extent.apply(this,args),translateExtent);noevent$2(event);if(duration>0)select$1(this).transition().duration(duration).call(schedule2,t1,p0,event);else select$1(this).call(zoom2.transform,t1,p0,event)}function touchstarted(event,...args){if(!filter2.apply(this,arguments))return;var touches=event.touches,n=touches.length,g=gesture(this,args,event.changedTouches.length===n).event(event),started,i,t,p;nopropagation$2(event);for(i=0;i<n;++i){t=touches[i],p=pointer$1(t,this);p=[p,this.__zoom.invert(p),t.identifier];if(!g.touch0)g.touch0=p,started=true,g.taps=1+!!touchstarting;else if(!g.touch1&&g.touch0[2]!==p[2])g.touch1=p,g.taps=0}if(touchstarting)touchstarting=clearTimeout(touchstarting);if(started){if(g.taps<2)touchfirst=p[0],touchstarting=setTimeout(function(){touchstarting=null},touchDelay);interrupt$1(this);g.start()}}function touchmoved(event,...args){if(!this.__zooming)return;var g=gesture(this,args).event(event),touches=event.changedTouches,n=touches.length,i,t,p,l;noevent$2(event);for(i=0;i<n;++i){t=touches[i],p=pointer$1(t,this);if(g.touch0&&g.touch0[2]===t.identifier)g.touch0[0]=p;else if(g.touch1&&g.touch1[2]===t.identifier)g.touch1[0]=p}t=g.that.__zoom;if(g.touch1){var p0=g.touch0[0],l0=g.touch0[1],p1=g.touch1[0],l1=g.touch1[1],dp=(dp=p1[0]-p0[0])*dp+(dp=p1[1]-p0[1])*dp,dl=(dl=l1[0]-l0[0])*dl+(dl=l1[1]-l0[1])*dl;t=scale(t,Math.sqrt(dp/dl));p=[(p0[0]+p1[0])/2,(p0[1]+p1[1])/2];l=[(l0[0]+l1[0])/2,(l0[1]+l1[1])/2]}else if(g.touch0)p=g.touch0[0],l=g.touch0[1];else return;g.zoom("touch",constrain(translate(t,p,l),g.extent,translateExtent))}function touchended(event,...args){if(!this.__zooming)return;var g=gesture(this,args).event(event),touches=event.changedTouches,n=touches.length,i,t;nopropagation$2(event);if(touchending)clearTimeout(touchending);touchending=setTimeout(function(){touchending=null},touchDelay);for(i=0;i<n;++i){t=touches[i];if(g.touch0&&g.touch0[2]===t.identifier)delete g.touch0;else if(g.touch1&&g.touch1[2]===t.identifier)delete g.touch1}if(g.touch1&&!g.touch0)g.touch0=g.touch1,delete g.touch1;if(g.touch0)g.touch0[1]=this.__zoom.invert(g.touch0[0]);else{g.end();if(g.taps===2){t=pointer$1(t,this);if(Math.hypot(touchfirst[0]-t[0],touchfirst[1]-t[1])<tapDistance){var p=select$1(this).on("dblclick.zoom");if(p)p.apply(this,arguments)}}}}zoom2.wheelDelta=function(_){return arguments.length?(wheelDelta2=typeof _==="function"?_:constant$4(+_),zoom2):wheelDelta2};zoom2.filter=function(_){return arguments.length?(filter2=typeof _==="function"?_:constant$4(!!_),zoom2):filter2};zoom2.touchable=function(_){return arguments.length?(touchable=typeof _==="function"?_:constant$4(!!_),zoom2):touchable};zoom2.extent=function(_){return arguments.length?(extent=typeof _==="function"?_:constant$4([[+_[0][0],+_[0][1]],[+_[1][0],+_[1][1]]]),zoom2):extent};zoom2.scaleExtent=function(_){return arguments.length?(scaleExtent[0]=+_[0],scaleExtent[1]=+_[1],zoom2):[scaleExtent[0],scaleExtent[1]]};zoom2.translateExtent=function(_){return arguments.length?(translateExtent[0][0]=+_[0][0],translateExtent[1][0]=+_[1][0],translateExtent[0][1]=+_[0][1],translateExtent[1][1]=+_[1][1],zoom2):[[translateExtent[0][0],translateExtent[0][1]],[translateExtent[1][0],translateExtent[1][1]]]};zoom2.constrain=function(_){return arguments.length?(constrain=_,zoom2):constrain};zoom2.duration=function(_){return arguments.length?(duration=+_,zoom2):duration};zoom2.interpolate=function(_){return arguments.length?(interpolate2=_,zoom2):interpolate2};zoom2.on=function(){var value=listeners.on.apply(listeners,arguments);return value===listeners?zoom2:value};zoom2.clickDistance=function(_){return arguments.length?(clickDistance2=(_=+_)*_,zoom2):Math.sqrt(clickDistance2)};zoom2.tapDistance=function(_){return arguments.length?(tapDistance=+_,zoom2):tapDistance};return zoom2}var Position=(Position2=>{Position2["Left"]="left";Position2["Top"]="top";Position2["Right"]="right";Position2["Bottom"]="bottom";return Position2})(Position||{});var SelectionMode=(SelectionMode2=>{SelectionMode2["Partial"]="partial";SelectionMode2["Full"]="full";return SelectionMode2})(SelectionMode||{});var ConnectionLineType=(ConnectionLineType2=>{ConnectionLineType2["Bezier"]="default";ConnectionLineType2["SimpleBezier"]="simple-bezier";ConnectionLineType2["Straight"]="straight";ConnectionLineType2["Step"]="step";ConnectionLineType2["SmoothStep"]="smoothstep";return ConnectionLineType2})(ConnectionLineType||{});var ConnectionMode=(ConnectionMode2=>{ConnectionMode2["Strict"]="strict";ConnectionMode2["Loose"]="loose";return ConnectionMode2})(ConnectionMode||{});var MarkerType=(MarkerType2=>{MarkerType2["Arrow"]="arrow";MarkerType2["ArrowClosed"]="arrowclosed";return MarkerType2})(MarkerType||{});var PanOnScrollMode=(PanOnScrollMode2=>{PanOnScrollMode2["Free"]="free";PanOnScrollMode2["Vertical"]="vertical";PanOnScrollMode2["Horizontal"]="horizontal";return PanOnScrollMode2})(PanOnScrollMode||{});const inputTags=["INPUT","SELECT","TEXTAREA"];const defaultDoc=typeof document!=="undefined"?document:null;function isInputDOMNode(event){var _a,_b;const target=((_b=(_a=event.composedPath)==null?void 0:_a.call(event))==null?void 0:_b[0])||event.target;const hasAttribute=typeof(target==null?void 0:target.hasAttribute)==="function"?target.hasAttribute("contenteditable"):false;const closest=typeof(target==null?void 0:target.closest)==="function"?target.closest(".nokey"):null;return inputTags.includes(target==null?void 0:target.nodeName)||hasAttribute||!!closest}function wasModifierPressed(event){return event.ctrlKey||event.metaKey||event.shiftKey||event.altKey}function isKeyMatch(pressedKey,keyToMatch,pressedKeys,isKeyUp){const keyCombination=keyToMatch.replace("+","\n").replace("\n\n","\n+").split("\n").map(k=>k.trim().toLowerCase());if(keyCombination.length===1){return pressedKey.toLowerCase()===keyToMatch.toLowerCase()}if(!isKeyUp){pressedKeys.add(pressedKey.toLowerCase())}const isMatch=keyCombination.every((key,index)=>pressedKeys.has(key)&&Array.from(pressedKeys.values())[index]===keyCombination[index]);if(isKeyUp){pressedKeys.delete(pressedKey.toLowerCase())}return isMatch}function createKeyPredicate(keyFilter,pressedKeys){return event=>{if(!event.code&&!event.key){return false}const keyOrCode=useKeyOrCode(event.code,keyFilter);if(Array.isArray(keyFilter)){return keyFilter.some(key=>isKeyMatch(event[keyOrCode],key,pressedKeys,event.type==="keyup"))}return isKeyMatch(event[keyOrCode],keyFilter,pressedKeys,event.type==="keyup")}}function useKeyOrCode(code,keysToWatch){return keysToWatch.includes(code)?"code":"key"}function useKeyPress(keyFilter,options){const target=computed(()=>toValue$1(options==null?void 0:options.target)??defaultDoc);const isPressed=shallowRef(toValue$1(keyFilter)===true);let modifierPressed=false;const pressedKeys=new Set;let currentFilter=createKeyFilterFn(toValue$1(keyFilter));watch(()=>toValue$1(keyFilter),(nextKeyFilter,previousKeyFilter)=>{if(typeof previousKeyFilter==="boolean"&&typeof nextKeyFilter!=="boolean"){reset()}currentFilter=createKeyFilterFn(nextKeyFilter)},{immediate:true});useEventListener(["blur","contextmenu"],reset);onKeyStroke((...args)=>currentFilter(...args),e=>{var _a,_b;const actInsideInputWithModifier=toValue$1(options==null?void 0:options.actInsideInputWithModifier)??true;const preventDefault=toValue$1(options==null?void 0:options.preventDefault)??false;modifierPressed=wasModifierPressed(e);const preventAction=(!modifierPressed||modifierPressed&&!actInsideInputWithModifier)&&isInputDOMNode(e);if(preventAction){return}const target2=((_b=(_a=e.composedPath)==null?void 0:_a.call(e))==null?void 0:_b[0])||e.target;const isInteractiveElement=(target2==null?void 0:target2.nodeName)==="BUTTON"||(target2==null?void 0:target2.nodeName)==="A";if(!preventDefault&&(modifierPressed||!isInteractiveElement)){e.preventDefault()}isPressed.value=true},{eventName:"keydown",target});onKeyStroke((...args)=>currentFilter(...args),e=>{const actInsideInputWithModifier=toValue$1(options==null?void 0:options.actInsideInputWithModifier)??true;if(isPressed.value){const preventAction=(!modifierPressed||modifierPressed&&!actInsideInputWithModifier)&&isInputDOMNode(e);if(preventAction){return}modifierPressed=false;isPressed.value=false}},{eventName:"keyup",target});function reset(){modifierPressed=false;pressedKeys.clear();isPressed.value=toValue$1(keyFilter)===true}function createKeyFilterFn(keyFilter2){if(keyFilter2===null){reset();return()=>false}if(typeof keyFilter2==="boolean"){reset();isPressed.value=keyFilter2;return()=>false}if(Array.isArray(keyFilter2)||typeof keyFilter2==="string"){return createKeyPredicate(keyFilter2,pressedKeys)}return keyFilter2}return isPressed}const ARIA_NODE_DESC_KEY="vue-flow__node-desc";const ARIA_EDGE_DESC_KEY="vue-flow__edge-desc";const ARIA_LIVE_MESSAGE="vue-flow__aria-live";const elementSelectionKeys=["Enter"," ","Escape"];const arrowKeyDiffs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function nodeToRect(node){return{...node.computedPosition||{x:0,y:0},width:node.dimensions.width||0,height:node.dimensions.height||0}}function getOverlappingArea(rectA,rectB){const xOverlap=Math.max(0,Math.min(rectA.x+rectA.width,rectB.x+rectB.width)-Math.max(rectA.x,rectB.x));const yOverlap=Math.max(0,Math.min(rectA.y+rectA.height,rectB.y+rectB.height)-Math.max(rectA.y,rectB.y));return Math.ceil(xOverlap*yOverlap)}function getDimensions(node){return{width:node.offsetWidth,height:node.offsetHeight}}function clamp(val,min=0,max=1){return Math.min(Math.max(val,min),max)}function clampPosition(position,extent){return{x:clamp(position.x,extent[0][0],extent[1][0]),y:clamp(position.y,extent[0][1],extent[1][1])}}function getHostForElement(element){const doc=element.getRootNode();if("elementFromPoint"in doc){return doc}return window.document}function isEdge(element){return element&&typeof element==="object"&&"id"in element&&"source"in element&&"target"in element}function isNode(element){return element&&typeof element==="object"&&"id"in element&&"position"in element&&!isEdge(element)}function isGraphNode(element){return isNode(element)&&"computedPosition"in element}function isNumeric(n){return!Number.isNaN(n)&&Number.isFinite(n)}function isRect(obj){return isNumeric(obj.width)&&isNumeric(obj.height)&&isNumeric(obj.x)&&isNumeric(obj.y)}function parseNode(node,existingNode,parentNode){const initialState={id:node.id.toString(),type:node.type??"default",dimensions:markRaw({width:0,height:0}),computedPosition:markRaw({z:0,...node.position}),handleBounds:{source:[],target:[]},draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:false,dragging:false,resizing:false,initialized:false,isParent:false,position:{x:0,y:0},data:isDef(node.data)?node.data:{},events:markRaw(isDef(node.events)?node.events:{})};return Object.assign(existingNode??initialState,node,{id:node.id.toString(),parentNode})}function parseEdge(edge,existingEdge,defaultEdgeOptions){var _a,_b;const initialState={id:edge.id.toString(),type:edge.type??(existingEdge==null?void 0:existingEdge.type)??"default",source:edge.source.toString(),target:edge.target.toString(),sourceHandle:(_a=edge.sourceHandle)==null?void 0:_a.toString(),targetHandle:(_b=edge.targetHandle)==null?void 0:_b.toString(),updatable:edge.updatable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.updatable),selectable:edge.selectable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.selectable),focusable:edge.focusable??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.focusable),data:isDef(edge.data)?edge.data:{},events:markRaw(isDef(edge.events)?edge.events:{}),label:edge.label??"",interactionWidth:edge.interactionWidth??(defaultEdgeOptions==null?void 0:defaultEdgeOptions.interactionWidth),...defaultEdgeOptions??{}};return Object.assign(existingEdge??initialState,edge,{id:edge.id.toString()})}function getConnectedElements(nodeOrId,nodes,edges,dir){const id2=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const connectedIds=new Set;const origin=dir==="source"?"target":"source";for(const edge of edges){if(edge[origin]===id2){connectedIds.add(edge[dir])}}return nodes.filter(n=>connectedIds.has(n.id))}function getOutgoers(...args){if(args.length===3){const[nodeOrId2,nodes,edges]=args;return getConnectedElements(nodeOrId2,nodes,edges,"target")}const[nodeOrId,elements]=args;const nodeId=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const outgoers=elements.filter(el=>isEdge(el)&&el.source===nodeId);return outgoers.map(edge=>elements.find(el=>isNode(el)&&el.id===edge.target))}function getIncomers(...args){if(args.length===3){const[nodeOrId2,nodes,edges]=args;return getConnectedElements(nodeOrId2,nodes,edges,"source")}const[nodeOrId,elements]=args;const nodeId=typeof nodeOrId==="string"?nodeOrId:nodeOrId.id;const incomers=elements.filter(el=>isEdge(el)&&el.target===nodeId);return incomers.map(edge=>elements.find(el=>isNode(el)&&el.id===edge.source))}function getEdgeId({source,sourceHandle,target,targetHandle}){return`vueflow__edge-${source}${sourceHandle??""}-${target}${targetHandle??""}`}function connectionExists(edge,elements){return elements.some(el=>isEdge(el)&&el.source===edge.source&&el.target===edge.target&&(el.sourceHandle===edge.sourceHandle||!el.sourceHandle&&!edge.sourceHandle)&&(el.targetHandle===edge.targetHandle||!el.targetHandle&&!edge.targetHandle))}function rendererPointToPoint({x,y},{x:tx,y:ty,zoom:tScale}){return{x:x*tScale+tx,y:y*tScale+ty}}function pointToRendererPoint({x,y},{x:tx,y:ty,zoom:tScale},snapToGrid=false,snapGrid=[1,1]){const position={x:(x-tx)/tScale,y:(y-ty)/tScale};return snapToGrid?snapPosition(position,snapGrid):position}function getBoundsOfBoxes(box1,box2){return{x:Math.min(box1.x,box2.x),y:Math.min(box1.y,box2.y),x2:Math.max(box1.x2,box2.x2),y2:Math.max(box1.y2,box2.y2)}}function rectToBox({x,y,width,height}){return{x,y,x2:x+width,y2:y+height}}function boxToRect({x,y,x2,y2}){return{x,y,width:x2-x,height:y2-y}}function getBoundsofRects(rect1,rect2){return boxToRect(getBoundsOfBoxes(rectToBox(rect1),rectToBox(rect2)))}function getRectOfNodes(nodes){let box={x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY};for(let i=0;i<nodes.length;i++){const node=nodes[i];box=getBoundsOfBoxes(box,rectToBox({...node.computedPosition,...node.dimensions}))}return boxToRect(box)}function getNodesInside(nodes,rect,viewport={x:0,y:0,zoom:1},partially=false,excludeNonSelectableNodes=false){const paneRect={...pointToRendererPoint(rect,viewport),width:rect.width/viewport.zoom,height:rect.height/viewport.zoom};const visibleNodes=[];for(const node of nodes){const{dimensions,selectable=true,hidden=false}=node;const width=dimensions.width??node.width??null;const height=dimensions.height??node.height??null;if(excludeNonSelectableNodes&&!selectable||hidden){continue}const overlappingArea=getOverlappingArea(paneRect,nodeToRect(node));const notInitialized=width===null||height===null;const partiallyVisible=partially&&overlappingArea>0;const area=(width??0)*(height??0);const isVisible=notInitialized||partiallyVisible||overlappingArea>=area;if(isVisible||node.dragging){visibleNodes.push(node)}}return visibleNodes}function getConnectedEdges(nodesOrId,edges){const nodeIds=new Set;if(typeof nodesOrId==="string"){nodeIds.add(nodesOrId)}else if(nodesOrId.length>=1){for(const n of nodesOrId){nodeIds.add(n.id)}}return edges.filter(edge=>nodeIds.has(edge.source)||nodeIds.has(edge.target))}function parsePadding(padding,viewport){if(typeof padding==="number"){return Math.floor((viewport-viewport/(1+padding))*.5)}if(typeof padding==="string"&&padding.endsWith("px")){const paddingValue=Number.parseFloat(padding);if(!Number.isNaN(paddingValue)){return Math.floor(paddingValue)}}if(typeof padding==="string"&&padding.endsWith("%")){const paddingValue=Number.parseFloat(padding);if(!Number.isNaN(paddingValue)){return Math.floor(viewport*paddingValue*.01)}}warn(`The padding value "${padding}" is invalid. Please provide a number or a string with a valid unit (px or %).`);return 0}function parsePaddings(padding,width,height){if(typeof padding==="string"||typeof padding==="number"){const paddingY=parsePadding(padding,height);const paddingX=parsePadding(padding,width);return{top:paddingY,right:paddingX,bottom:paddingY,left:paddingX,x:paddingX*2,y:paddingY*2}}if(typeof padding==="object"){const top=parsePadding(padding.top??padding.y??0,height);const bottom=parsePadding(padding.bottom??padding.y??0,height);const left=parsePadding(padding.left??padding.x??0,width);const right=parsePadding(padding.right??padding.x??0,width);return{top,right,bottom,left,x:left+right,y:top+bottom}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function calculateAppliedPaddings(bounds,x,y,zoom2,width,height){const{x:left,y:top}=rendererPointToPoint(bounds,{x,y,zoom:zoom2});const{x:boundRight,y:boundBottom}=rendererPointToPoint({x:bounds.x+bounds.width,y:bounds.y+bounds.height},{x,y,zoom:zoom2});const right=width-boundRight;const bottom=height-boundBottom;return{left:Math.floor(left),top:Math.floor(top),right:Math.floor(right),bottom:Math.floor(bottom)}}function getTransformForBounds(bounds,width,height,minZoom,maxZoom,padding=.1){const p=parsePaddings(padding,width,height);const xZoom=(width-p.x)/bounds.width;const yZoom=(height-p.y)/bounds.height;const zoom2=Math.min(xZoom,yZoom);const clampedZoom=clamp(zoom2,minZoom,maxZoom);const boundsCenterX=bounds.x+bounds.width/2;const boundsCenterY=bounds.y+bounds.height/2;const x=width/2-boundsCenterX*clampedZoom;const y=height/2-boundsCenterY*clampedZoom;const newPadding=calculateAppliedPaddings(bounds,x,y,clampedZoom,width,height);const offset={left:Math.min(newPadding.left-p.left,0),top:Math.min(newPadding.top-p.top,0),right:Math.min(newPadding.right-p.right,0),bottom:Math.min(newPadding.bottom-p.bottom,0)};return{x:x-offset.left+offset.right,y:y-offset.top+offset.bottom,zoom:clampedZoom}}function getXYZPos(parentPos,computedPosition){return{x:computedPosition.x+parentPos.x,y:computedPosition.y+parentPos.y,z:(parentPos.z>computedPosition.z?parentPos.z:computedPosition.z)+1}}function isParentSelected(node,nodeLookup){if(!node.parentNode){return false}const parent=nodeLookup.get(node.parentNode);if(!parent){return false}if(parent.selected){return true}return isParentSelected(parent,nodeLookup)}function getMarkerId(marker,vueFlowId){if(typeof marker==="undefined"){return""}if(typeof marker==="string"){return marker}const idPrefix=vueFlowId?`${vueFlowId}__`:"";return`${idPrefix}${Object.keys(marker).sort().map(key=>`${key}=${marker[key]}`).join("&")}`}function wheelDelta(event){const factor=event.ctrlKey&&isMacOs()?10:1;return-event.deltaY*(event.deltaMode===1?.05:event.deltaMode?1:.002)*factor}function calcAutoPanVelocity(value,min,max){if(value<min){return clamp(Math.abs(value-min),1,min)/min}if(value>max){return-clamp(Math.abs(value-max),1,min)/min}return 0}function calcAutoPan(pos,bounds,speed=15,distance2=40){const xMovement=calcAutoPanVelocity(pos.x,distance2,bounds.width-distance2)*speed;const yMovement=calcAutoPanVelocity(pos.y,distance2,bounds.height-distance2)*speed;return[xMovement,yMovement]}function handleParentExpand(updateItem,parent){if(parent){const extendWidth=updateItem.position.x+updateItem.dimensions.width-parent.dimensions.width;const extendHeight=updateItem.position.y+updateItem.dimensions.height-parent.dimensions.height;if(extendWidth>0||extendHeight>0||updateItem.position.x<0||updateItem.position.y<0){let parentStyles={};if(typeof parent.style==="function"){parentStyles={...parent.style(parent)}}else if(parent.style){parentStyles={...parent.style}}parentStyles.width=parentStyles.width??`${parent.dimensions.width}px`;parentStyles.height=parentStyles.height??`${parent.dimensions.height}px`;if(extendWidth>0){if(typeof parentStyles.width==="string"){const currWidth=Number(parentStyles.width.replace("px",""));parentStyles.width=`${currWidth+extendWidth}px`}else{parentStyles.width+=extendWidth}}if(extendHeight>0){if(typeof parentStyles.height==="string"){const currWidth=Number(parentStyles.height.replace("px",""));parentStyles.height=`${currWidth+extendHeight}px`}else{parentStyles.height+=extendHeight}}if(updateItem.position.x<0){const xDiff=Math.abs(updateItem.position.x);parent.position.x=parent.position.x-xDiff;if(typeof parentStyles.width==="string"){const currWidth=Number(parentStyles.width.replace("px",""));parentStyles.width=`${currWidth+xDiff}px`}else{parentStyles.width+=xDiff}updateItem.position.x=0}if(updateItem.position.y<0){const yDiff=Math.abs(updateItem.position.y);parent.position.y=parent.position.y-yDiff;if(typeof parentStyles.height==="string"){const currWidth=Number(parentStyles.height.replace("px",""));parentStyles.height=`${currWidth+yDiff}px`}else{parentStyles.height+=yDiff}updateItem.position.y=0}parent.dimensions.width=Number(parentStyles.width.toString().replace("px",""));parent.dimensions.height=Number(parentStyles.height.toString().replace("px",""));if(typeof parent.style==="function"){parent.style=p=>{const styleFunc=parent.style;return{...styleFunc(p),...parentStyles}}}else{parent.style={...parent.style,...parentStyles}}}}}function applyChanges(changes,elements){var _a,_b;const addRemoveChanges=changes.filter(c=>c.type==="add"||c.type==="remove");for(const change of addRemoveChanges){if(change.type==="add"){const index=elements.findIndex(el=>el.id===change.item.id);if(index===-1){elements.push(change.item)}}else if(change.type==="remove"){const index=elements.findIndex(el=>el.id===change.id);if(index!==-1){elements.splice(index,1)}}}const elementIds=elements.map(el=>el.id);for(const element of elements){for(const currentChange of changes){if(currentChange.id!==element.id){continue}switch(currentChange.type){case"select":element.selected=currentChange.selected;break;case"position":if(isGraphNode(element)){if(typeof currentChange.position!=="undefined"){element.position=currentChange.position}if(typeof currentChange.dragging!=="undefined"){element.dragging=currentChange.dragging}if(element.expandParent&&element.parentNode){const parent=elements[elementIds.indexOf(element.parentNode)];if(parent&&isGraphNode(parent)){handleParentExpand(element,parent)}}}break;case"dimensions":if(isGraphNode(element)){if(typeof currentChange.dimensions!=="undefined"){element.dimensions=currentChange.dimensions}if(typeof currentChange.updateStyle!=="undefined"&¤tChange.updateStyle){element.style={...element.style||{},width:`${(_a=currentChange.dimensions)==null?void 0:_a.width}px`,height:`${(_b=currentChange.dimensions)==null?void 0:_b.height}px`}}if(typeof currentChange.resizing!=="undefined"){element.resizing=currentChange.resizing}if(element.expandParent&&element.parentNode){const parent=elements[elementIds.indexOf(element.parentNode)];if(parent&&isGraphNode(parent)){const parentInit=!!parent.dimensions.width&&!!parent.dimensions.height;if(!parentInit){nextTick(()=>{handleParentExpand(element,parent)})}else{handleParentExpand(element,parent)}}}}break}}}return elements}function createSelectionChange(id2,selected){return{id:id2,type:"select",selected}}function createAdditionChange(item){return{item,type:"add"}}function createNodeRemoveChange(id2){return{id:id2,type:"remove"}}function createEdgeRemoveChange(id2,source,target,sourceHandle,targetHandle){return{id:id2,source,target,sourceHandle:sourceHandle||null,targetHandle:targetHandle||null,type:"remove"}}function getSelectionChanges(items,selectedIds=new Set,mutateItem=false){const changes=[];for(const[id2,item]of items){const willBeSelected=selectedIds.has(id2);if(!(item.selected===void 0&&!willBeSelected)&&item.selected!==willBeSelected){if(mutateItem){item.selected=willBeSelected}changes.push(createSelectionChange(item.id,willBeSelected))}}return changes}const noop$1=()=>{};function createExtendedEventHook(defaultHandler){const listeners=new Set;let emitter=noop$1;let hasEmitListeners=()=>false;const hasListeners=()=>listeners.size>0||hasEmitListeners();const setEmitter=fn=>{emitter=fn};const removeEmitter=()=>{emitter=noop$1};const setHasEmitListeners=fn=>{hasEmitListeners=fn};const removeHasEmitListeners=()=>{hasEmitListeners=()=>false};const off=fn=>{listeners.delete(fn)};const on=fn=>{listeners.add(fn);const offFn=()=>off(fn);tryOnScopeDispose(offFn);return{off:offFn}};const trigger=param=>{const queue=[emitter];if(hasListeners()){queue.push(...listeners)}else if(defaultHandler){queue.push(defaultHandler)}return Promise.allSettled(queue.map(fn=>fn(param)))};return{on,off,trigger,hasListeners,listeners,setEmitter,removeEmitter,setHasEmitListeners,removeHasEmitListeners}}function hasSelector(target,selector2,node){let current=target;do{if(current&¤t.matches(selector2)){return true}else if(current===node){return false}current=current.parentElement}while(current);return false}function getDragItems(nodeLookup,nodesDraggable,mousePos,nodeId){var _a,_b;const dragItems=new Map;for(const[id2,node]of nodeLookup){if((node.selected||node.id===nodeId)&&(!node.parentNode||!isParentSelected(node,nodeLookup))&&(node.draggable||nodesDraggable&&typeof node.draggable==="undefined")){const internalNode=nodeLookup.get(id2);if(internalNode){dragItems.set(id2,{id:node.id,position:node.position||{x:0,y:0},distance:{x:mousePos.x-((_a=node.computedPosition)==null?void 0:_a.x)||0,y:mousePos.y-((_b=node.computedPosition)==null?void 0:_b.y)||0},from:{x:node.computedPosition.x,y:node.computedPosition.y},extent:node.extent,parentNode:node.parentNode,dimensions:{...node.dimensions},expandParent:node.expandParent})}}}return Array.from(dragItems.values())}function getEventHandlerParams({id:id2,dragItems,findNode}){const extendedDragItems=[];for(const dragItem of dragItems){const node=findNode(dragItem.id);if(node){extendedDragItems.push(node)}}return[id2?extendedDragItems.find(n=>n.id===id2):extendedDragItems[0],extendedDragItems]}function getExtentPadding(padding){if(Array.isArray(padding)){switch(padding.length){case 1:return[padding[0],padding[0],padding[0],padding[0]];case 2:return[padding[0],padding[1],padding[0],padding[1]];case 3:return[padding[0],padding[1],padding[2],padding[1]];case 4:return padding;default:return[0,0,0,0]}}return[padding,padding,padding,padding]}function getParentExtent(currentExtent,node,parent){const[top,right,bottom,left]=typeof currentExtent!=="string"?getExtentPadding(currentExtent.padding):[0,0,0,0];if(parent&&typeof parent.computedPosition.x!=="undefined"&&typeof parent.computedPosition.y!=="undefined"&&typeof parent.dimensions.width!=="undefined"&&typeof parent.dimensions.height!=="undefined"){return[[parent.computedPosition.x+left,parent.computedPosition.y+top],[parent.computedPosition.x+parent.dimensions.width-right,parent.computedPosition.y+parent.dimensions.height-bottom]]}return false}function getExtent(item,triggerError,extent,parent){let currentExtent=item.extent||extent;if((currentExtent==="parent"||!Array.isArray(currentExtent)&&(currentExtent==null?void 0:currentExtent.range)==="parent")&&!item.expandParent){if(item.parentNode&&parent&&item.dimensions.width&&item.dimensions.height){const parentExtent=getParentExtent(currentExtent,item,parent);if(parentExtent){currentExtent=parentExtent}}else{triggerError(new VueFlowError(ErrorCode.NODE_EXTENT_INVALID,item.id));currentExtent=extent}}else if(Array.isArray(currentExtent)){const parentX=(parent==null?void 0:parent.computedPosition.x)||0;const parentY=(parent==null?void 0:parent.computedPosition.y)||0;currentExtent=[[currentExtent[0][0]+parentX,currentExtent[0][1]+parentY],[currentExtent[1][0]+parentX,currentExtent[1][1]+parentY]]}else if(currentExtent!=="parent"&&(currentExtent==null?void 0:currentExtent.range)&&Array.isArray(currentExtent.range)){const[top,right,bottom,left]=getExtentPadding(currentExtent.padding);const parentX=(parent==null?void 0:parent.computedPosition.x)||0;const parentY=(parent==null?void 0:parent.computedPosition.y)||0;currentExtent=[[currentExtent.range[0][0]+parentX+left,currentExtent.range[0][1]+parentY+top],[currentExtent.range[1][0]+parentX-right,currentExtent.range[1][1]+parentY-bottom]]}return currentExtent==="parent"?[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]]:currentExtent}function clampNodeExtent({width,height},extent){return[extent[0],[extent[1][0]-(width||0),extent[1][1]-(height||0)]]}function calcNextPosition(node,nextPosition,triggerError,nodeExtent,parentNode){const extent=clampNodeExtent(node.dimensions,getExtent(node,triggerError,nodeExtent,parentNode));const clampedPos=clampPosition(nextPosition,extent);return{position:{x:clampedPos.x-((parentNode==null?void 0:parentNode.computedPosition.x)||0),y:clampedPos.y-((parentNode==null?void 0:parentNode.computedPosition.y)||0)},computedPosition:clampedPos}}function getHandlePosition(node,handle,fallbackPosition=Position.Left,center=false){const x=((handle==null?void 0:handle.x)??0)+node.computedPosition.x;const y=((handle==null?void 0:handle.y)??0)+node.computedPosition.y;const{width,height}=handle??getNodeDimensions(node);if(center){return{x:x+width/2,y:y+height/2}}const position=(handle==null?void 0:handle.position)??fallbackPosition;switch(position){case Position.Top:return{x:x+width/2,y};case Position.Right:return{x:x+width,y:y+height/2};case Position.Bottom:return{x:x+width/2,y:y+height};case Position.Left:return{x,y:y+height/2}}}function getEdgeHandle(bounds,handleId){if(!bounds){return null}return(!handleId?bounds[0]:bounds.find(d=>d.id===handleId))||null}function isEdgeVisible({sourcePos,targetPos,sourceWidth,sourceHeight,targetWidth,targetHeight,width,height,viewport}){const edgeBox={x:Math.min(sourcePos.x,targetPos.x),y:Math.min(sourcePos.y,targetPos.y),x2:Math.max(sourcePos.x+sourceWidth,targetPos.x+targetWidth),y2:Math.max(sourcePos.y+sourceHeight,targetPos.y+targetHeight)};if(edgeBox.x===edgeBox.x2){edgeBox.x2+=1}if(edgeBox.y===edgeBox.y2){edgeBox.y2+=1}const viewBox=rectToBox({x:(0-viewport.x)/viewport.zoom,y:(0-viewport.y)/viewport.zoom,width:width/viewport.zoom,height:height/viewport.zoom});const xOverlap=Math.max(0,Math.min(viewBox.x2,edgeBox.x2)-Math.max(viewBox.x,edgeBox.x));const yOverlap=Math.max(0,Math.min(viewBox.y2,edgeBox.y2)-Math.max(viewBox.y,edgeBox.y));const overlappingArea=Math.ceil(xOverlap*yOverlap);return overlappingArea>0}function getEdgeZIndex(edge,findNode,elevateEdgesOnSelect=false){const hasZIndex=typeof edge.zIndex==="number";let z=hasZIndex?edge.zIndex:0;const source=findNode(edge.source);const target=findNode(edge.target);if(!source||!target){return 0}if(elevateEdgesOnSelect){z=hasZIndex?edge.zIndex:Math.max(source.computedPosition.z||0,target.computedPosition.z||0)}return z}var ErrorCode=(ErrorCode2=>{ErrorCode2["MISSING_STYLES"]="MISSING_STYLES";ErrorCode2["MISSING_VIEWPORT_DIMENSIONS"]="MISSING_VIEWPORT_DIMENSIONS";ErrorCode2["NODE_INVALID"]="NODE_INVALID";ErrorCode2["NODE_NOT_FOUND"]="NODE_NOT_FOUND";ErrorCode2["NODE_MISSING_PARENT"]="NODE_MISSING_PARENT";ErrorCode2["NODE_TYPE_MISSING"]="NODE_TYPE_MISSING";ErrorCode2["NODE_EXTENT_INVALID"]="NODE_EXTENT_INVALID";ErrorCode2["EDGE_INVALID"]="EDGE_INVALID";ErrorCode2["EDGE_NOT_FOUND"]="EDGE_NOT_FOUND";ErrorCode2["EDGE_SOURCE_MISSING"]="EDGE_SOURCE_MISSING";ErrorCode2["EDGE_TARGET_MISSING"]="EDGE_TARGET_MISSING";ErrorCode2["EDGE_TYPE_MISSING"]="EDGE_TYPE_MISSING";ErrorCode2["EDGE_SOURCE_TARGET_SAME"]="EDGE_SOURCE_TARGET_SAME";ErrorCode2["EDGE_SOURCE_TARGET_MISSING"]="EDGE_SOURCE_TARGET_MISSING";ErrorCode2["EDGE_ORPHANED"]="EDGE_ORPHANED";ErrorCode2["USEVUEFLOW_OPTIONS"]="USEVUEFLOW_OPTIONS";return ErrorCode2})(ErrorCode||{});const messages={["MISSING_STYLES"]:()=>`It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly`,["MISSING_VIEWPORT_DIMENSIONS"]:()=>"The Vue Flow parent container needs a width and a height to render the graph",["NODE_INVALID"]:id2=>`Node is invalid
|
|
2
2
|
Node: ${id2}`,["NODE_NOT_FOUND"]:id2=>`Node not found
|
|
3
3
|
Node: ${id2}`,["NODE_MISSING_PARENT"]:(id2,parentId)=>`Node is missing a parent
|
|
4
4
|
Node: ${id2}
|