From 74b06a346b9626fa21f8aa7af6e2ee8560235759 Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Fri, 5 Jun 2026 11:03:28 +0000 Subject: [PATCH] build(ui): keep main source-only; build & embed UI at release time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The built React UI was committed under internal/ui/dist. Switch to a source-only main: the dist is generated at release time and embedded into the tagged commit, not carried on the branch. - Untrack internal/ui/dist/** (built assets); track only a .gitkeep placeholder so `//go:embed all:dist` still compiles on a source-only checkout. .gitignore ignores everything in dist except .gitkeep. - internal/ui/ui.go: `//go:embed static/* dist` -> `static/* all:dist` (embeds the dotfile placeholder; a plain `go build` serves no SPA until the UI is built — release tags carry the real dist so `go install ...@` is UI-complete). - scripts/release.sh + `make release VERSION=...`: build the UI, create a detached release commit that includes dist, tag it, push only the tag. main stays artifact-free. ui-build/release re-touch .gitkeep (vite emptyOutDir wipes it). - README: document the source-only build + release flow. go build ./... compiles with only .gitkeep present; make build produces a UI-complete binary and leaves the tree clean (built assets ignored). Co-Authored-By: Claude Opus 4.8 --- .gitignore | 9 +- Makefile | 9 +- README.md | 13 +- internal/ui/dist/.gitkeep | 0 ...BricolageGrotesque-Variable-C5Lc8Qmc.woff2 | Bin 131548 -> 0 bytes .../assets/GeistMono-Variable-BNLlm6Cd.woff2 | Bin 71004 -> 0 bytes .../ui/dist/assets/MCPConsoleView-CH5VtsjS.js | 4 - .../PlusJakartaSans-Variable-eXO_dkmS.woff2 | Bin 27348 -> 0 bytes .../ui/dist/assets/ServicesView-Bb9CYmXY.js | 321 ------------------ internal/ui/dist/assets/index-DzLWOk_K.css | 1 - internal/ui/dist/assets/index-UdCF7Wgf.js | 10 - internal/ui/dist/assets/inputs-DxVBbFvb.js | 1 - .../ui/dist/assets/useMediaQuery-D3Mg-H7H.js | 1 - internal/ui/dist/index.html | 14 - internal/ui/ui.go | 8 +- scripts/release.sh | 86 +++++ 16 files changed, 119 insertions(+), 358 deletions(-) create mode 100644 internal/ui/dist/.gitkeep delete mode 100644 internal/ui/dist/assets/BricolageGrotesque-Variable-C5Lc8Qmc.woff2 delete mode 100644 internal/ui/dist/assets/GeistMono-Variable-BNLlm6Cd.woff2 delete mode 100644 internal/ui/dist/assets/MCPConsoleView-CH5VtsjS.js delete mode 100644 internal/ui/dist/assets/PlusJakartaSans-Variable-eXO_dkmS.woff2 delete mode 100644 internal/ui/dist/assets/ServicesView-Bb9CYmXY.js delete mode 100644 internal/ui/dist/assets/index-DzLWOk_K.css delete mode 100644 internal/ui/dist/assets/index-UdCF7Wgf.js delete mode 100644 internal/ui/dist/assets/inputs-DxVBbFvb.js delete mode 100644 internal/ui/dist/assets/useMediaQuery-D3Mg-H7H.js delete mode 100644 internal/ui/dist/index.html create mode 100755 scripts/release.sh diff --git a/.gitignore b/.gitignore index 3c690b7..c7fb6a5 100644 --- a/.gitignore +++ b/.gitignore @@ -86,8 +86,13 @@ web_modules/ out .nuxt dist -!internal/ui/dist -!internal/ui/dist/** +# Built UI is NOT committed — it is generated at release time by +# scripts/release.sh and embedded into the tagged commit. Only the .gitkeep +# placeholder is tracked so `//go:embed all:dist` still compiles on a +# source-only checkout. +!internal/ui/dist/ +internal/ui/dist/* +!internal/ui/dist/.gitkeep .cache/ .vuepress/dist .temp diff --git a/Makefile b/Makefile index 10aff7c..2ffa46b 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,11 @@ -.PHONY: build test vet check setup-hooks ui-install ui-build dev-ui loadtest loadtest-build +.PHONY: build test vet check setup-hooks ui-install ui-build dev-ui loadtest loadtest-build release ui-install: cd ui && npm install ui-build: cd ui && npm run build + touch internal/ui/dist/.gitkeep # vite emptyOutDir wipes it; keep the source-only placeholder build: ui-build CGO_ENABLED=0 go build ./... @@ -28,6 +29,12 @@ loadtest: loadtest-build @echo "Running 200-service load simulator (60s) against localhost:4317..." ./bin/loadsim +## release builds the UI and cuts a tag whose tree embeds it, so +## `go install ...@` is UI-complete while main stays source-only. +## Usage: make release VERSION=vX.Y.Z [RELEASE=--release] +release: + ./scripts/release.sh $(VERSION) $(RELEASE) + ## setup-hooks installs the pre-commit hook into .git/hooks setup-hooks: cp scripts/pre-commit .git/hooks/pre-commit diff --git a/README.md b/README.md index 0e8d9bb..54e9b74 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,23 @@ For teams who want traces, logs, and metrics in one place without standing up a ## Quick start ```bash -# 1. Build -go build -o otelcontext . +# 1. Build (Go binary + embedded React UI) +make build # builds the UI, then `go build` with it embedded + +# ...or install a released, UI-complete binary directly: +# go install github.com/RandomCodeSpace/otelcontext@latest # 2. Run with an API key (dev-friendly — SQLite, plaintext HTTP) export API_KEY="$(openssl rand -hex 32)" ./otelcontext ``` +> The built UI is **not** committed — the repo is source-only. A plain +> `go build .` produces a working API/binary but serves no web UI at `/`. +> Use `make build` (or a release tag, which embeds the built UI) for the +> full experience. Maintainers cut releases with `make release VERSION=vX.Y.Z` +> — see [`scripts/release.sh`](scripts/release.sh). + The server listens on: - OTLP gRPC: `:4317` - HTTP API + OTLP HTTP + UI + MCP: `:8080` diff --git a/internal/ui/dist/.gitkeep b/internal/ui/dist/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/internal/ui/dist/assets/BricolageGrotesque-Variable-C5Lc8Qmc.woff2 b/internal/ui/dist/assets/BricolageGrotesque-Variable-C5Lc8Qmc.woff2 deleted file mode 100644 index 42c558b61ba40e340cfccf50786dcda816f3d30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131548 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�}8`x;BvtDX&FP5@dzdI^3Yr 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ð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 Z9j0ttYr0kbmz00000000000000000000 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[@+FJuP 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⪙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 n=n=>{e.current&&!e.current.contains(n.target)&&t()};return document.addEventListener(`mousedown`,n),()=>document.removeEventListener(`mousedown`,n)},[e,t])}function I(e){let{options:t,value:n,defaultValue:r,placeholder:i=`Select…`,searchable:a=!1,clearable:o=!1,disabled:s=!1,status:c=`default`,size:l=`md`,onChange:u,className:d,style:f,id:p,"data-testid":m}=e,g=n!==void 0,[_,v]=P.useState(r),y=g?n:_,[b,x]=P.useState(!1),[S,C]=P.useState(``),w=P.useRef(null);F(w,()=>x(!1));let T=t.find(e=>e.value===y),E=a&&S?t.filter(e=>String(e.label).toLowerCase().includes(S.toLowerCase())):t,D=e=>{e.disabled||(g||v(e.value),u?.(e.value,e),x(!1),C(``))};return(0,N.jsxs)(`div`,{ref:w,id:p,"data-testid":m,className:h(`rcs-select`,d),style:f,"data-open":b||void 0,children:[(0,N.jsxs)(`button`,{type:`button`,className:h(`rcs-select-trigger`,`rcs-select-trigger--${l}`),"data-status":c,disabled:s,"aria-haspopup":`listbox`,"aria-expanded":b,onClick:()=>!s&&x(e=>!e),children:[(0,N.jsx)(`span`,{className:h(`rcs-select-value`,!T&&`rcs-select-placeholder`),children:T?T.label:i}),o&&T&&!s&&(0,N.jsx)(`button`,{type:`button`,className:`rcs-input-clear`,"aria-label":`Clear`,onClick:e=>{e.stopPropagation(),g||v(void 0),u?.(void 0,{value:void 0,label:``})},children:`×`}),(0,N.jsx)(`span`,{className:`rcs-select-caret`,"aria-hidden":!0,children:`▾`})]}),b&&(0,N.jsxs)(`div`,{className:`rcs-select-menu`,role:`listbox`,children:[a&&(0,N.jsx)(`input`,{autoFocus:!0,className:`rcs-select-search`,placeholder:`Search…`,value:S,onChange:e=>C(e.target.value)}),E.length===0?(0,N.jsx)(`div`,{className:`rcs-select-empty`,children:`No results`}):E.map(e=>(0,N.jsxs)(`div`,{role:`option`,"aria-selected":e.value===y,className:`rcs-select-option`,"data-selected":e.value===y||void 0,"data-disabled":e.disabled||void 0,onClick:()=>D(e),children:[e.icon&&(0,N.jsx)(`span`,{"aria-hidden":!0,children:e.icon}),(0,N.jsx)(`span`,{children:e.label}),e.description&&(0,N.jsx)(`span`,{className:`rcs-select-option-desc`,children:e.description})]},String(e.value)))]})]})}function L(e){let{checked:t,defaultChecked:n,size:r=`md`,disabled:i=!1,loading:a=!1,label:o,onChange:s,className:c,style:l,id:u}=e,d=t!==void 0,[f,p]=P.useState(n??!1),m=d?t:f;return(0,N.jsxs)(`label`,{id:u,className:h(`rcs-switch`,`rcs-switch--${r}`,c),style:l,"data-checked":m||void 0,"data-disabled":i||void 0,children:[(0,N.jsx)(`input`,{type:`checkbox`,role:`switch`,checked:m,disabled:i||a,onChange:e=>{d||p(e.target.checked),s?.(e.target.checked)}}),(0,N.jsx)(`span`,{className:`rcs-switch-track`,"aria-hidden":!0,children:(0,N.jsx)(`span`,{className:`rcs-switch-thumb`})}),o&&(0,N.jsx)(`span`,{className:`rcs-switch-label`,children:o})]})}function R(e,t=`YYYY-MM-DD`){if(!e)return``;let n=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,`0`),i=String(e.getDate()).padStart(2,`0`);return t.replace(`YYYY`,String(n)).replace(`MM`,r).replace(`DD`,i)}function z(e){if(!e)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t}function B(e){let{value:t,defaultValue:n,min:r,max:i,format:a=`YYYY-MM-DD`,placeholder:o,disabled:s,onChange:c,className:l,style:u,id:d}=e,f=t!==void 0,[p,m]=P.useState(n??null);return(0,N.jsx)(k,{id:d,className:l,style:u,type:`text`,placeholder:o??a,disabled:s,value:R(f?t??null:p,a),onChange:e=>{let t=z(e);f||m(t),c?.(t)},suffix:(0,N.jsx)(`span`,{style:{fontSize:12},children:`📅`})})}function V(t){let{label:n,hint:r,error:i,required:a,optional:o,htmlFor:s,children:c,className:l,style:u,id:d}=t,f=s??d??e(`field`);return(0,N.jsxs)(`div`,{id:d,className:h(`rcs-form-field`,l),style:u,children:[n&&(0,N.jsxs)(`label`,{htmlFor:f,className:`rcs-form-label`,children:[n,a&&(0,N.jsx)(`span`,{className:`rcs-form-required`,"aria-label":`required`,children:`*`}),o&&!a&&(0,N.jsx)(`span`,{className:`rcs-form-optional`,children:`(optional)`})]}),c,i?(0,N.jsx)(`span`,{className:`rcs-form-error`,role:`alert`,children:i}):r?(0,N.jsx)(`span`,{className:`rcs-form-hint`,children:r}):null]})}function H(e){let{code:t,language:n=`plain`,filename:r,showLineNumbers:i=!1,highlightLines:a,copyable:o=!0,wrap:s=!1,onCopy:c,className:l,style:u,id:d}=e,f=t.split(` -`),p=new Set(a??[]);return(0,N.jsxs)(`div`,{id:d,className:h(`rcs-codeblock`,l),style:u,children:[(r||n||o)&&(0,N.jsxs)(`div`,{className:`rcs-codeblock-header`,children:[(0,N.jsx)(`span`,{children:r??n}),o&&(0,N.jsx)(`button`,{className:`rcs-codeblock-copy`,onClick:async()=>{try{await navigator.clipboard.writeText(t),c?.()}catch{}},children:`Copy`})]}),(0,N.jsx)(`pre`,{className:`rcs-codeblock-pre`,"data-wrap":s||void 0,children:(0,N.jsx)(`code`,{"data-language":n,children:i||p.size>0?f.map((e,t)=>(0,N.jsxs)(`span`,{className:`rcs-codeblock-line`,"data-highlight":p.has(t+1)||void 0,children:[i&&(0,N.jsx)(`span`,{className:`rcs-codeblock-lineno`,children:t+1}),(0,N.jsxs)(`span`,{children:[e,` -`]})]},t)):t})})]})}function ee(e){let{title:t,lines:n,streaming:r=!1,height:i=320,searchable:a=!1,tabs:o,onInput:s,onTabChange:c,className:l,style:u,id:d}=e,[f,p]=P.useState(``),[m,g]=P.useState(``),_=P.useRef(null);P.useEffect(()=>{let e=_.current;e&&(e.scrollTop=e.scrollHeight)},[n.length,r]);let v=f?n.filter(e=>e.text.toLowerCase().includes(f.toLowerCase())):n;return(0,N.jsxs)(`div`,{id:d,className:h(`rcs-terminal`,l),style:{height:i,...u},children:[(o||t||a)&&(0,N.jsxs)(`div`,{className:`rcs-terminal-tabs`,children:[t&&(0,N.jsx)(`span`,{className:`rcs-terminal-tab`,"data-active":!0,children:t}),o?.map(e=>(0,N.jsx)(`button`,{className:`rcs-terminal-tab`,"data-active":e.active||void 0,onClick:()=>c?.(e.key),style:{background:`transparent`,border:0,cursor:`pointer`,color:`inherit`},children:e.label},e.key)),a&&(0,N.jsx)(`input`,{placeholder:`filter…`,value:f,onChange:e=>p(e.target.value),style:{marginLeft:`auto`,background:`#0F0F0F`,color:`#E5E5E5`,border:`1px solid #2B2B2B`,borderRadius:3,fontSize:11,fontFamily:`inherit`,padding:`2px 6px`,outline:0}})]}),(0,N.jsxs)(`div`,{ref:_,className:`rcs-terminal-body`,children:[v.map((e,t)=>(0,N.jsx)(`div`,{className:`rcs-terminal-line`,"data-type":e.type,children:e.text},t)),r&&(0,N.jsx)(`span`,{className:`rcs-terminal-cursor`})]}),s&&(0,N.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),m.trim()&&(s(m),g(``))},style:{display:`flex`,padding:`8px 12px`,borderTop:`1px solid #2B2B2B`,gap:8},children:[(0,N.jsx)(`span`,{style:{color:`#1F9E5C`},children:`$`}),(0,N.jsx)(`input`,{value:m,onChange:e=>g(e.target.value),style:{flex:1,background:`transparent`,border:0,outline:0,color:`#E5E5E5`,fontFamily:`inherit`,fontSize:13},placeholder:`Type a command…`})]})]})}var te=p(`Settings`,[[`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`,key:`1qme2f`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]);function ne(e){let[t,n]=(0,P.useState)([]),[r,i]=(0,P.useState)(!0),[a,o]=(0,P.useState)(null),s=e?.apiKey,c=e?.tenant,l=(0,P.useCallback)(()=>{let e=new AbortController;return i(!0),j({apiKey:s,tenant:c,signal:e.signal}).then(e=>{n(e),o(null)}).catch(t=>{e.signal.aborted||(t instanceof M?o(`MCP ${t.code}: ${t.message}`):o(t instanceof Error?t.message:`failed to reach /mcp`),n([]))}).finally(()=>{e.signal.aborted||i(!1)}),()=>e.abort()},[s,c]);return(0,P.useEffect)(()=>l(),[l]),{tools:t,loading:r,error:a,reload:l}}function re(e){let t=e.content?.[0];if(!t)return``;if(typeof t.text==`string`&&t.text.length>0)return t.text;let n=t.resource;return n&&typeof n.text==`string`?n.text:``}function U(e,t=0){if(t>6||typeof e!=`object`||!e)return null;if(Array.isArray(e)){for(let n of e){let e=U(n,t+1);if(e)return e}return null}let n=e,r=n.root_cause;if(r&&typeof r==`object`&&`service`in r)return r;for(let e of Object.keys(n)){let r=U(n[e],t+1);if(r)return r}return null}function W(e){let t=re(e),n;try{n=t?JSON.parse(t):void 0}catch{n=void 0}return{isError:e.isError===!0,payload:n,text:t,rootCause:n===void 0?null:U(n)}}function ie(e){if(typeof e==`string`)try{return JSON.parse(e)}catch{return null}return e&&typeof e==`object`?e:null}function ae(e){if(!e)return{type:`stdout`,text:`(empty event)`};let t;try{t=JSON.parse(e)}catch{return{type:`stdout`,text:e}}let n=t.method;if(n===`notifications/initialized`)return{type:`info`,text:`handshake · stream initialized`};if(n===`notifications/resources/updated`){let e=ie(t.params?.data),n=e?.Nodes?Object.values(e.Nodes):[],r=0,i=0,a=0;for(let e of n){let t=(e?.Status??``).toLowerCase();t===`healthy`?r++:t===`degraded`?i++:(t===`critical`||t===`failing`)&&a++}let o=Array.isArray(e?.Edges)?e.Edges.length:0,s=`graph · ${n.length} svc · ${o} edges · healthy ${r} / degraded ${i} / critical ${a}`;return{type:a>0?`warn`:`stdout`,text:s}}return n?{type:`stdout`,text:n}:{type:`stdout`,text:e}}var G=`otelcontext.mcp.history`,K=50;function oe(){try{let e=sessionStorage.getItem(G);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function q(e){try{sessionStorage.setItem(G,JSON.stringify(e.slice(0,K)))}catch{}}function se(e,t){return JSON.stringify({jsonrpc:`2.0`,id:1,method:`tools/call`,params:{name:e,arguments:t}},null,2)}var J=0;function Y(){return J+=1,`${Date.now().toString(36)}-${J}`}function ce(e){let[t,n]=(0,P.useState)({loading:!1}),[r,i]=(0,P.useState)(()=>oe()),a=(0,P.useRef)(null),o=e?.apiKey,s=e?.tenant;(0,P.useEffect)(()=>()=>a.current?.abort(),[]);let c=(0,P.useCallback)(e=>{i(t=>{let n=[e,...t].slice(0,K);return q(n),n})},[]);return{state:t,call:(0,P.useCallback)(async(e,t)=>{a.current?.abort();let r=new AbortController;a.current=r;let i=se(e,t),l=performance.now();n({loading:!0,requestBody:i});try{let a=await A(e,t,{apiKey:o,tenant:s,signal:r.signal});if(r.signal.aborted)return;let u=Math.round(performance.now()-l),d=W(a);n({loading:!1,result:a,parsed:d,requestBody:i,latencyMs:u}),c({id:Y(),tool:e,args:t,requestBody:i,status:d.isError?`tool_error`:`success`,latencyMs:u,timestamp:Date.now()})}catch(a){if(r.signal.aborted)return;let o=Math.round(performance.now()-l);n({loading:!1,error:a instanceof M?{kind:`rpc`,code:a.code,message:a.message}:{kind:`transport`,message:a instanceof Error?a.message:`request failed`},requestBody:i,latencyMs:o}),c({id:Y(),tool:e,args:t,requestBody:i,status:`rpc_error`,latencyMs:o,timestamp:Date.now()})}},[o,s,c]),reset:(0,P.useCallback)(()=>n({loading:!1}),[]),history:r,clearHistory:(0,P.useCallback)(()=>{i([]),q([])},[])}}var le=[`ERROR`,`WARN`,`INFO`,`DEBUG`];function ue(e,t){switch(e){case`service`:case`service_name`:return`service`;case`severity`:return`severity`;case`since`:case`start`:case`end`:return`datetime`;case`time_range`:return`duration`;case`depth`:case`limit`:case`page`:return`number`;default:return t===`number`?`number`:`text`}}function de(e){let t=e.inputSchema?.properties??{},n=new Set(e.inputSchema?.required??[]);return Object.keys(t).map(e=>{let r=ue(e,t[e]?.type),i={name:e,kind:r,required:n.has(e),description:t[e]?.description};return e===`limit`&&(i.max=200),r===`number`&&(i.min=0),i})}function fe(e,t){let n={};for(let r of e){let e=t[r.name];if(!(e===void 0||e===``))if(r.kind===`number`){let t=Number(e);Number.isNaN(t)||(n[r.name]=t)}else n[r.name]=e}return n}var X=[{label:`15m`,ms:15*6e4},{label:`1h`,ms:60*6e4},{label:`24h`,ms:1440*6e4}];function pe(e,t){let n=(()=>{try{return JSON.stringify(JSON.parse(e))}catch{return e}})(),r=[`curl -sS http://localhost:8080/mcp \\`,` -H 'Content-Type: application/json' \\`,` -H "Authorization: Bearer $API_KEY" \\`];return t&&r.push(` -H 'X-Tenant-ID: ${t}' \\`),r.push(` -d '${n.replace(/'/g,`'\\''`)}'`),r.join(` -`)}var me={display:`grid`,gap:12,gridTemplateColumns:`minmax(0, 1fr)`},he={display:`flex`,gap:8,marginTop:6};function ge(e){return e?e.toISOString():``}function _e(){let[e,t]=(0,P.useState)([]);return(0,P.useEffect)(()=>{let e=new AbortController;return fetch(`/api/metadata/services`,{signal:e.signal}).then(e=>e.ok?e.json():[]).then(e=>{Array.isArray(e)&&t(e.filter(e=>typeof e==`string`))}).catch(()=>{}),()=>e.abort()},[]),e}function ve({tool:e,running:n,onRun:i,initialValues:a}){let o=(0,P.useMemo)(()=>de(e),[e]),s=_e(),[c,l]=(0,P.useState)(a??{}),[u,d]=(0,P.useState)(!1),[f,p]=(0,P.useState)(``),[m,h]=(0,P.useState)(null),g=(0,P.useCallback)((e,t)=>{l(n=>({...n,[e]:t}))},[]),_=(0,P.useMemo)(()=>fe(o,c),[o,c]);(0,P.useEffect)(()=>{u&&p(JSON.stringify(_,null,2))},[u]);let v=(0,P.useCallback)(e=>{p(e);try{let t=e.trim()?JSON.parse(e):{};if(typeof t!=`object`||!t||Array.isArray(t)){h(`Arguments must be a JSON object.`);return}let n={};for(let[e,r]of Object.entries(t))n[e]=typeof r==`string`?r:String(r);l(n),h(null)}catch{h(`Invalid JSON.`)}},[]),y=o.filter(e=>e.required&&!c[e.name]).map(e=>e.name);return(0,N.jsxs)(t,{direction:`vertical`,size:`md`,style:{width:`100%`},children:[(0,N.jsxs)(`div`,{style:me,children:[o.length===0&&(0,N.jsx)(C,{severity:`info`,title:`No parameters`,children:`This tool takes no arguments — run it directly.`}),o.map(e=>(0,N.jsx)(ye,{field:e,value:c[e.name]??``,services:s,onChange:t=>g(e.name,t)},e.name))]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(r,{variant:`link`,size:`sm`,onClick:()=>d(e=>!e),children:u?`Hide raw arguments`:`Edit raw arguments`}),u&&(0,N.jsxs)(`div`,{style:{marginTop:8},children:[(0,N.jsx)(O,{value:f,rows:6,status:m?`error`:`default`,onChange:e=>v(e)}),m&&(0,N.jsx)(C,{severity:`danger`,style:{marginTop:8},children:m})]})]}),(0,N.jsxs)(t,{direction:`horizontal`,size:`sm`,align:`center`,children:[(0,N.jsx)(r,{variant:`primary`,loading:n,disabled:y.length>0,onClick:()=>{y.length>0||i(_)},children:`Run tool`}),y.length>0&&(0,N.jsxs)(`span`,{style:{fontSize:13,opacity:.7},children:[`Required: `,y.join(`, `)]})]})]})}function ye({field:e,value:t,services:i,onChange:a}){let o=e.required,s;switch(e.kind){case`service`:s=i.length>0?(0,N.jsx)(I,{options:i.map(e=>({label:e,value:e})),value:t||void 0,searchable:!0,clearable:!0,placeholder:`Select a service`,onChange:e=>a(String(e))}):(0,N.jsx)(k,{value:t,placeholder:`service name`,onChange:e=>a(e)});break;case`severity`:s=(0,N.jsx)(I,{options:le.map(e=>({label:e,value:e})),value:t||void 0,clearable:!0,placeholder:`Any severity`,onChange:e=>a(String(e))});break;case`datetime`:s=(0,N.jsxs)(`div`,{children:[(0,N.jsx)(B,{value:t?new Date(t):void 0,format:`yyyy-MM-dd HH:mm`,placeholder:`now`,onChange:e=>a(ge(e))}),(0,N.jsxs)(`div`,{style:he,children:[(0,N.jsx)(n,{size:`sm`,children:X.map(e=>(0,N.jsxs)(r,{variant:`secondary`,size:`sm`,onClick:()=>a(new Date(Date.now()-e.ms).toISOString()),children:[`-`,e.label]},e.label))}),t&&(0,N.jsx)(r,{variant:`ghost`,size:`sm`,onClick:()=>a(``),children:`Clear`})]})]});break;case`duration`:s=(0,N.jsxs)(`div`,{children:[(0,N.jsx)(k,{value:t,placeholder:`15m`,onChange:e=>a(e)}),(0,N.jsxs)(`div`,{style:he,children:[(0,N.jsx)(n,{size:`sm`,children:X.map(e=>(0,N.jsx)(r,{variant:`secondary`,size:`sm`,onClick:()=>a(e.label),children:e.label},e.label))}),t&&(0,N.jsx)(r,{variant:`ghost`,size:`sm`,onClick:()=>a(``),children:`Clear`})]})]});break;case`number`:s=(0,N.jsx)(D,{value:t===``?void 0:Number(t),min:e.min,max:e.max,onChange:t=>{let n=t;e.max!==void 0&&n>e.max&&(n=e.max),e.min!==void 0&&na(e),placeholder:e.name})}return(0,N.jsx)(V,{label:e.name,required:o,hint:e.description,children:s})}var Z=100,be={display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(160px, 1fr))`};function Q({shown:e,total:t}){return t<=e?null:(0,N.jsxs)(`div`,{style:{fontSize:12,opacity:.7,marginTop:8},children:[`Showing `,e,` of `,t,` — open Raw JSON for the full payload.`]})}function xe(e){let t=e.toUpperCase();return t===`ERROR`||t===`FATAL`||t===`CRITICAL`?`danger`:t===`WARN`||t===`WARNING`?`warning`:t===`INFO`?`info`:`neutral`}function Se(e){return e>=.85?`running`:e>=.5?`degraded`:`failed`}function Ce(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function we({data:e}){if(e.length===0)return(0,N.jsx)(C,{severity:`success`,title:`No anomalies in window`});let t=e.slice(0,Z);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(g,{items:t.map(e=>({key:e.id,title:`${e.service} — ${e.type}`,description:e.evidence,time:Ce(e.timestamp),tone:e.severity?.toLowerCase()===`critical`?`danger`:`warning`}))}),(0,N.jsx)(Q,{shown:t.length,total:e.length})]})}function Te({data:e}){let t=e.filter(e=>e.service).slice(0,Z).map(e=>{let t=e.service;return{name:t.name,health_score:t.health_score,error_rate:t.error_rate,call_count:t.call_count,avg_latency_ms:t.avg_latency_ms,deps:e.calls_to?.length??0}});return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(l,{columns:[{key:`name`,title:`Service`,render:(e,t)=>(0,N.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8,minWidth:0},children:[(0,N.jsx)(s,{status:Se(t.health_score)}),(0,N.jsx)(b,{text:t.name})]})},{key:`health`,title:`Health`,align:`right`,render:(e,t)=>t.health_score.toFixed(2)},{key:`err`,title:`Error rate`,align:`right`,render:(e,t)=>`${(t.error_rate*100).toFixed(1)}%`},{key:`calls`,title:`Calls`,align:`right`,dataKey:`call_count`},{key:`lat`,title:`Avg ms`,align:`right`,render:(e,t)=>t.avg_latency_ms.toFixed(1)},{key:`deps`,title:`Deps`,align:`right`,dataKey:`deps`}],data:t,rowKey:`name`,density:`compact`,striped:!0}),(0,N.jsx)(Q,{shown:t.length,total:e.filter(e=>e.service).length})]})}function Ee({data:e}){let t=e.service;return t?(0,N.jsxs)(`div`,{style:be,children:[(0,N.jsx)(x,{label:`Health score`,value:t.health_score.toFixed(2)}),(0,N.jsx)(x,{label:`Error rate`,value:`${(t.error_rate*100).toFixed(1)}`,unit:`%`}),(0,N.jsx)(x,{label:`Requests`,value:t.call_count}),(0,N.jsx)(x,{label:`Errors`,value:t.error_count}),(0,N.jsx)(x,{label:`Avg latency`,value:t.avg_latency_ms.toFixed(1),unit:`ms`}),(0,N.jsx)(x,{label:`Operations`,value:e.operations?.length??0})]}):(0,N.jsx)(C,{severity:`warning`,title:`Service not found in current window`})}function De({data:e}){let t=e.affected_services??[];if(t.length===0)return(0,N.jsx)(C,{severity:`success`,title:`No downstream impact from ${e.service}`});let n=t.slice(0,Z);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{style:{marginBottom:8},children:(0,N.jsxs)(T,{tone:`warning`,children:[e.total_downstream,` downstream affected`]})}),(0,N.jsx)(l,{columns:[{key:`service`,title:`Service`,render:(e,t)=>(0,N.jsx)(b,{text:t.service})},{key:`depth`,title:`Depth`,align:`right`,dataKey:`depth`},{key:`calls`,title:`Calls`,align:`right`,dataKey:`call_count`},{key:`impact`,title:`Impact`,align:`right`,render:(e,t)=>t.impact_score.toFixed(2)}],data:n,rowKey:`service`,density:`compact`,striped:!0}),(0,N.jsx)(Q,{shown:n.length,total:t.length})]})}function Oe({data:e}){if(e.length===0)return(0,N.jsx)(C,{severity:`info`,title:`No ranked causes found`});let t=e.slice(0,Z);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(g,{items:t.map((e,t)=>({key:`${e.service}|${e.operation}|${t}`,title:`${e.service}${e.operation?` · ${e.operation}`:``}`,description:(e.evidence??[]).join(` · `)||`score ${e.score.toFixed(2)}`,time:`score ${e.score.toFixed(2)}`,tone:t===0?`danger`:`warning`}))}),(0,N.jsx)(Q,{shown:t.length,total:e.length})]})}function ke(e){let t=new Map;for(let n of e)t.set(n.id,{span:n,children:[]});let n=[];for(let e of t.values()){let r=e.span.parent_span_id?t.get(e.span.parent_span_id):void 0;r?r.children.push(e):n.push(e)}return{roots:n,count:t.size}}var Ae={display:`flex`,alignItems:`center`,gap:8,padding:`3px 0`,minWidth:0,fontVariantNumeric:`tabular-nums`};function je({data:e}){if(!Array.isArray(e)||e.length===0)return(0,N.jsx)(C,{severity:`info`,title:`No spans for this trace`});let{roots:t,count:n}=ke(e),r=0,i=[],a=(e,t)=>{if(r>=Z)return;r+=1;let n=e.span;i.push((0,N.jsxs)(`div`,{style:{...Ae,paddingLeft:t*18},children:[(0,N.jsx)(s,{status:n.is_error?`failed`:`running`}),(0,N.jsx)(`span`,{style:{flex:`0 0 auto`,fontSize:13,fontWeight:500},children:n.service}),(0,N.jsx)(`span`,{style:{minWidth:0,flex:1,opacity:.8},children:(0,N.jsx)(b,{text:n.operation||`—`})}),(0,N.jsxs)(`span`,{style:{flex:`0 0 auto`,fontSize:12,opacity:.7},children:[n.duration_ms.toFixed(1),`ms`]})]},n.id));for(let n of e.children)a(n,t+1)};for(let e of t)a(e,0);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`div`,{children:i}),(0,N.jsx)(Q,{shown:r,total:n})]})}function Me({data:e}){let t=e.entries??[];if(t.length===0)return(0,N.jsx)(C,{severity:`info`,title:`No matching logs`});let n=t.slice(0,Z);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(l,{columns:[{key:`ts`,title:`Time`,width:180,render:(e,t)=>(0,N.jsx)(`span`,{style:{fontSize:12},children:Ce(t.timestamp)})},{key:`sev`,title:`Severity`,width:96,render:(e,t)=>(0,N.jsx)(T,{tone:xe(t.severity),children:t.severity||`—`})},{key:`svc`,title:`Service`,width:160,render:(e,t)=>(0,N.jsx)(b,{text:t.service_name})},{key:`body`,title:`Message`,render:(e,t)=>(0,N.jsx)(b,{text:t.body})}],data:n,rowKey:`id`,density:`compact`,striped:!0}),(0,N.jsx)(Q,{shown:n.length,total:e.total??t.length})]})}var $={fontSize:12,fontWeight:600,textTransform:`uppercase`,letterSpacing:.4,opacity:.6,marginBottom:6};function Ne({rc:e}){return(0,N.jsx)(C,{severity:`danger`,title:`Root cause`,children:(0,N.jsxs)(`div`,{style:{display:`grid`,gap:2,fontSize:13},children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`strong`,{children:e.service}),e.operation?` · ${e.operation}`:``]}),e.error_message&&(0,N.jsx)(`div`,{style:{opacity:.85},children:e.error_message}),(e.trace_id||e.span_id)&&(0,N.jsxs)(`div`,{style:{fontSize:12,opacity:.7,fontFamily:`monospace`},children:[e.trace_id&&`trace ${e.trace_id}`,e.trace_id&&e.span_id?` · `:``,e.span_id&&`span ${e.span_id}`]})]})})}function Pe({tool:e,payload:t}){if(t==null)return(0,N.jsx)(C,{severity:`info`,title:`No structured payload`});switch(e){case`get_anomaly_timeline`:return(0,N.jsx)(we,{data:t??[]});case`get_service_map`:return(0,N.jsx)(Te,{data:t??[]});case`get_service_health`:return(0,N.jsx)(Ee,{data:t});case`impact_analysis`:return(0,N.jsx)(De,{data:t});case`root_cause_analysis`:return(0,N.jsx)(Oe,{data:t??[]});case`trace_graph`:return(0,N.jsx)(je,{data:t});case`search_logs`:return(0,N.jsx)(Me,{data:t});default:return(0,N.jsx)(C,{severity:`info`,title:`No friendly renderer — see Raw JSON`})}}function Fe({state:e}){let t=e.error;return t?t.kind===`rpc`?t.code===-32e3?(0,N.jsx)(C,{severity:`warning`,title:`Server at capacity, retry shortly`,children:`JSON-RPC −32000 — the MCP concurrency cap was hit.`}):t.code===-32001?(0,N.jsx)(C,{severity:`warning`,title:`Tool exceeded 30s deadline`,children:`JSON-RPC −32001 — narrow the time range or arguments and retry.`}):(0,N.jsx)(C,{severity:`danger`,title:`MCP error ${t.code}`,children:t.message}):(0,N.jsx)(C,{severity:`danger`,title:`Request failed`,children:t.message}):null}function Ie({tool:e,state:n}){let[r,i]=(0,P.useState)(`friendly`);if(n.loading)return(0,N.jsx)(`div`,{style:{padding:24,display:`flex`,justifyContent:`center`},children:(0,N.jsx)(f,{label:`Calling tool…`})});if(!n.result&&!n.error)return(0,N.jsx)(C,{severity:`info`,title:`Run a tool to see results`,icon:!1,children:`Fill in the form and hit Run tool. The request and decoded response will appear here.`});let a=n.parsed;return(0,N.jsxs)(t,{direction:`vertical`,size:`md`,style:{width:`100%`},children:[(0,N.jsx)(Fe,{state:n}),a?.isError&&(0,N.jsx)(C,{severity:`warning`,title:`Tool returned an error`,children:a.text||`The tool reported isError without a message.`}),a?.rootCause&&(0,N.jsx)(Ne,{rc:a.rootCause}),n.requestBody&&(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{style:$,children:[`Request`,typeof n.latencyMs==`number`?` · ${n.latencyMs}ms`:``]}),(0,N.jsx)(H,{code:n.requestBody,language:`json`,copyable:!0,wrap:!0})]}),a&&!a.isError&&n.result&&(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{style:$,children:`Response`}),(0,N.jsx)(E,{variant:`segment`,value:r,items:[{key:`friendly`,label:`Friendly`},{key:`raw`,label:`Raw JSON`}],onChange:e=>i(e)}),(0,N.jsx)(`div`,{style:{marginTop:12},children:r===`friendly`?(0,N.jsx)(Pe,{tool:e,payload:a.payload}):(0,N.jsx)(H,{code:a.text||JSON.stringify(n.result,null,2),language:`json`,copyable:!0,wrap:!0})})]}),a?.isError&&n.result&&(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{style:$,children:`Raw response`}),(0,N.jsx)(H,{code:JSON.stringify(n.result,null,2),language:`json`,copyable:!0,wrap:!0})]})]})}var Le={display:`flex`,alignItems:`center`,gap:12,padding:`8px 0`,borderBottom:`1px solid var(--rcs-color-border, rgba(127,127,127,0.18))`};function Re(e){return e===`success`?(0,N.jsx)(T,{tone:`info`,children:`ok`}):e===`tool_error`?(0,N.jsx)(T,{tone:`warning`,children:`tool error`}):(0,N.jsx)(T,{tone:`danger`,children:`rpc error`})}function ze({history:e,tenant:n,onClear:i,onRerun:a}){let[o,s]=(0,P.useState)(null);return e.length===0?(0,N.jsx)(C,{severity:`info`,title:`No calls yet`,icon:!1,children:`History is session-scoped and clears when the tab closes.`}):(0,N.jsxs)(t,{direction:`vertical`,size:`sm`,style:{width:`100%`},children:[(0,N.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`},children:(0,N.jsx)(r,{variant:`ghost`,size:`sm`,onClick:i,children:`Clear history`})}),e.map(e=>(0,N.jsxs)(`div`,{style:Le,children:[(0,N.jsx)(`span`,{style:{flex:`0 0 auto`},children:Re(e.status)}),(0,N.jsx)(`span`,{style:{flex:`0 0 auto`,fontWeight:500,fontSize:13},children:e.tool}),(0,N.jsx)(`span`,{style:{minWidth:0,flex:1,opacity:.7,fontSize:12},children:(0,N.jsx)(b,{text:JSON.stringify(e.args)})}),(0,N.jsxs)(`span`,{style:{flex:`0 0 auto`,fontSize:12,opacity:.6},children:[e.latencyMs,`ms`]}),(0,N.jsxs)(`span`,{style:{flex:`0 0 auto`,display:`flex`,gap:6},children:[(0,N.jsx)(r,{variant:`secondary`,size:`sm`,onClick:()=>a(e),children:`Re-run`}),(0,N.jsx)(r,{variant:`ghost`,size:`sm`,onClick:()=>s({title:`JSON-RPC request`,code:e.requestBody,lang:`json`}),children:`JSON-RPC`}),(0,N.jsx)(r,{variant:`ghost`,size:`sm`,onClick:()=>s({title:`curl`,code:pe(e.requestBody,n),lang:`bash`}),children:`curl`})]})]},e.id)),(0,N.jsx)(d,{open:o!==null,title:o?.title,size:`lg`,onClose:()=>s(null),children:o&&(0,N.jsx)(H,{code:o.code,language:o.lang,copyable:!0,wrap:!0})})]})}var Be=200;function Ve({apiKey:e}){let[n,r]=(0,P.useState)(!1),[i,a]=(0,P.useState)([]),o=(0,P.useRef)(null),s=e.length>0;return(0,P.useEffect)(()=>{if(!n||s){o.current?.close(),o.current=null;return}let e=e=>a(t=>[...t,e].slice(-Be)),t=t=>{let{type:n,text:r}=ae(t);e({type:n,text:r,timestamp:new Date})},r=new EventSource(`/mcp`);return o.current=r,e({type:`info`,text:`opening /mcp SSE stream…`,timestamp:new Date}),r.onopen=()=>e({type:`info`,text:`stream open — waiting for events`,timestamp:new Date}),r.onmessage=e=>t(e.data),r.addEventListener(`endpoint`,e=>t(e.data)),r.onerror=()=>e({type:`warn`,text:`stream error / reconnecting (keep-alive every 25s)`,timestamp:new Date}),()=>{r.close(),o.current=null}},[n,s]),(0,N.jsxs)(t,{direction:`vertical`,size:`sm`,style:{width:`100%`},children:[(0,N.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12},children:s?(0,N.jsx)(c,{content:`EventSource can't send an Authorization header. Clear the API key to use the live stream.`,children:(0,N.jsx)(`span`,{style:{display:`inline-flex`},children:(0,N.jsx)(L,{checked:!1,disabled:!0,label:`Live stream`})})}):(0,N.jsx)(L,{checked:n,label:`Live stream`,onChange:r})}),n&&!s&&(0,N.jsx)(ee,{title:`/mcp SSE`,lines:i.length>0?i:[{type:`info`,text:`connecting…`}],streaming:!0,height:220})]})}var He=`otelcontext.mcp.settings`;function Ue(){try{let e=sessionStorage.getItem(He);if(!e)return{apiKey:``,tenant:``};let t=JSON.parse(e);return{apiKey:t.apiKey??``,tenant:t.tenant??``}}catch{return{apiKey:``,tenant:``}}}function We(){let[e,t]=(0,P.useState)(()=>Ue());return{settings:e,save:(0,P.useCallback)(e=>{t(e);try{sessionStorage.setItem(He,JSON.stringify(e))}catch{}},[])}}function Ge({open:e,settings:n,onClose:i,onSave:a}){let[o,s]=(0,P.useState)(n.apiKey),[c,l]=(0,P.useState)(n.tenant);return(0,P.useEffect)(()=>{e&&(s(n.apiKey),l(n.tenant))},[e,n.apiKey,n.tenant]),(0,N.jsx)(u,{open:e,title:`Connection settings`,placement:`right`,width:400,onClose:i,footer:(0,N.jsxs)(t,{direction:`horizontal`,size:`sm`,justify:`end`,children:[(0,N.jsx)(r,{variant:`ghost`,onClick:i,children:`Cancel`}),(0,N.jsx)(r,{variant:`primary`,onClick:()=>{a({apiKey:o.trim(),tenant:c.trim()}),i()},children:`Save`})]}),children:(0,N.jsxs)(t,{direction:`vertical`,size:`md`,style:{width:`100%`},children:[(0,N.jsx)(C,{severity:`info`,icon:!1,children:`Stored in sessionStorage only — cleared when this tab closes. Leave the API key empty for dev servers with auth disabled.`}),(0,N.jsx)(V,{label:`API key`,hint:`Sent as Authorization: Bearer .`,children:(0,N.jsx)(k,{type:`password`,value:o,placeholder:`(none)`,onChange:e=>s(e)})}),(0,N.jsx)(V,{label:`Tenant`,hint:`Sent as X-Tenant-ID. Defaults to the server's default tenant.`,children:(0,N.jsx)(k,{value:c,placeholder:`default`,onChange:e=>l(e)})})]})})}var Ke=[`get_anomaly_timeline`,`get_service_map`,`get_service_health`,`root_cause_analysis`,`impact_analysis`],qe=[`trace_graph`,`search_logs`],Je={display:`flex`,height:`100%`,minHeight:0},Ye={width:280,flex:`0 0 280px`,borderRight:`1px solid var(--rcs-color-border, rgba(127,127,127,0.18))`,overflowY:`auto`,padding:12},Xe={flex:1,minWidth:0,display:`flex`,flexDirection:`column`,overflow:`hidden`},Ze={flex:1,minHeight:0,overflowY:`auto`,padding:16};function Qe(e){let t=new Map(e.map(e=>[e.name,e])),n=Ke.filter(e=>t.has(e)).map(e=>t.get(e)),r=qe.filter(e=>t.has(e)).map(e=>t.get(e)),i=new Set([...Ke,...qe]);return{instant:n,db:r,other:e.filter(e=>!i.has(e.name))}}function $e(){let e=S(v.coarse),{settings:n,save:i}=We(),o=(0,P.useMemo)(()=>({apiKey:n.apiKey||void 0,tenant:n.tenant||void 0}),[n.apiKey,n.tenant]),{tools:s,loading:c,error:l,reload:u}=ne(o),{state:d,call:f,reset:p,history:m,clearHistory:h}=ce(o),[g,b]=(0,P.useState)(null),[x,D]=(0,P.useState)(`run`),[O,k]=(0,P.useState)(!1),[A,j]=(0,P.useState)(void 0),[M,F]=(0,P.useState)(0),L=(0,P.useMemo)(()=>Qe(s),[s]),R=g&&s.some(e=>e.name===g)?g:s[0]?.name??null,z=s.find(e=>e.name===R)??null,B=e=>{b(e),D(`run`),j(void 0),F(e=>e+1),p()},V=e=>{let t={};for(let[n,r]of Object.entries(e.args))t[n]=typeof r==`string`?r:String(r);b(e.tool),j(t),D(`run`),F(e=>e+1),p()},ee=(0,P.useMemo)(()=>{let e=[];if(L.instant.length>0){e.push({type:`label`,label:`In-memory (instant)`});for(let t of L.instant)e.push({key:t.name,label:t.name})}if(L.db.length>0){e.push({type:`label`,label:`DB / fallback`});for(let t of L.db)e.push({key:t.name,label:t.name})}if(L.other.length>0){e.push({type:`label`,label:`Other`});for(let t of L.other)e.push({key:t.name,label:t.name})}return e},[L]),re=(0,P.useMemo)(()=>s.map(e=>({label:e.name,value:e.name})),[s]),U=c?(0,N.jsx)(t,{direction:`vertical`,size:`sm`,style:{width:`100%`},children:(0,N.jsx)(_,{variant:`text`,lines:7})}):(0,N.jsx)(w,{items:ee,mode:`inline`,selectedKeys:R?[R]:[],onSelect:B}),W=(0,N.jsxs)(t,{direction:`horizontal`,size:`sm`,align:`center`,children:[n.apiKey&&(0,N.jsx)(T,{tone:`info`,children:`auth on`}),n.tenant&&(0,N.jsxs)(T,{tone:`subtle`,children:[`tenant: `,n.tenant]}),(0,N.jsx)(a,{"aria-label":`Connection settings`,variant:`ghost`,size:`sm`,icon:(0,N.jsx)(te,{size:15}),onClick:()=>k(!0)})]});return(0,N.jsxs)(`div`,{style:Je,children:[!e&&(0,N.jsx)(`div`,{style:Ye,children:U}),(0,N.jsxs)(`div`,{style:Xe,children:[(0,N.jsx)(y,{size:`sm`,title:z?z.name:`MCP console`,subtitle:z?.description,actions:W}),(0,N.jsxs)(`div`,{style:Ze,children:[l&&(0,N.jsxs)(C,{severity:`danger`,title:`Can't reach the MCP endpoint`,action:(0,N.jsx)(r,{size:`sm`,variant:`secondary`,onClick:u,children:`Retry`}),style:{marginBottom:16},children:[l,` — POST /mcp failed. Check the server is up and your API key under settings.`]}),e&&!c&&s.length>0&&(0,N.jsx)(`div`,{style:{marginBottom:16},children:(0,N.jsx)(I,{options:re,value:R??void 0,searchable:!0,placeholder:`Select a tool`,onChange:e=>B(String(e))})}),c&&(0,N.jsx)(_,{variant:`rect`,height:160}),!c&&s.length===0&&!l&&(0,N.jsx)(C,{severity:`warning`,title:`No tools advertised`,children:`tools/list returned an empty surface.`}),z&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(E,{variant:`line`,value:x,items:[{key:`run`,label:`Run`},{key:`definition`,label:`Definition`},{key:`history`,label:`History`}],onChange:e=>D(e)}),(0,N.jsxs)(`div`,{style:{marginTop:16},children:[x===`run`&&(0,N.jsxs)(t,{direction:`vertical`,size:`lg`,style:{width:`100%`},children:[(0,N.jsx)(ve,{tool:z,running:d.loading,initialValues:A,onRun:e=>f(z.name,e)},`${z.name}#${M}`),(0,N.jsx)(Ie,{tool:z.name,state:d}),(0,N.jsx)(Ve,{apiKey:n.apiKey})]}),x===`definition`&&(0,N.jsx)(H,{code:JSON.stringify(z,null,2),language:`json`,copyable:!0,wrap:!0}),x===`history`&&(0,N.jsx)(ze,{history:m,tenant:n.tenant||void 0,onClear:h,onRerun:V})]})]})]})]}),(0,N.jsx)(Ge,{open:O,settings:n,onClose:()=>k(!1),onSave:i})]})}export{$e as default}; \ No newline at end of file diff --git a/internal/ui/dist/assets/PlusJakartaSans-Variable-eXO_dkmS.woff2 b/internal/ui/dist/assets/PlusJakartaSans-Variable-eXO_dkmS.woff2 deleted file mode 100644 index a180dc40f205fc48979a75ccbe8a10221a71a4ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27348 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.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function B(e,t,n){return(t=te(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function H(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function U(){throw TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function W(){throw TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function G(e,t){return P(e)||H(e,t)||ne(e,t)||U()}function K(e){return F(e)||V(e)||ne(e)||W()}function ee(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}function te(e){var t=ee(e,`string`);return typeof t==`symbol`?t:t+``}function q(e){"@babel/helpers - typeof";return q=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},q(e)}function ne(e,t){if(e){if(typeof e==`string`)return N(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?N(e,t):void 0}}var re=typeof window>`u`?null:window,ie=re?re.navigator:null;re&&re.document;var ae=q(``),oe=q({}),se=q(function(){}),ce=typeof HTMLElement>`u`?`undefined`:q(HTMLElement),le=function(e){return e&&e.instanceString&&ue(e.instanceString)?e.instanceString():null},J=function(e){return e!=null&&q(e)==ae},ue=function(e){return e!=null&&q(e)===se},de=function(e){return!he(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Y=function(e){return e!=null&&q(e)===oe&&!de(e)&&e.constructor===Object},fe=function(e){return e!=null&&q(e)===oe},X=function(e){return e!=null&&q(e)===q(1)&&!isNaN(e)},pe=function(e){return X(e)&&Math.floor(e)===e},me=function(e){if(ce!==`undefined`)return e!=null&&e instanceof HTMLElement},he=function(e){return ge(e)||_e(e)},ge=function(e){return le(e)===`collection`&&e._private.single},_e=function(e){return le(e)===`collection`&&!e._private.single},ve=function(e){return le(e)===`core`},ye=function(e){return le(e)===`stylesheet`},be=function(e){return le(e)===`event`},xe=function(e){return e==null?!0:!!(e===``||e.match(/^\s+$/))},Se=function(e){return typeof HTMLElement>`u`?!1:e instanceof HTMLElement},Ce=function(e){return Y(e)&&X(e.x1)&&X(e.x2)&&X(e.y1)&&X(e.y2)},we=function(e){return fe(e)&&ue(e.then)},Te=function(){return ie&&ie.userAgent.match(/msie|trident|edge/i)},Ee=function(e,t){t||=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return`undefined`;for(var e=[],t=0;tt)},Be=function(e,t){return-1*ze(e,t)},Z=Object.assign==null?function(e){for(var t=arguments,n=1;n1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var u=RegExp(`^`+Fe+`$`).exec(e);if(u){if(n=parseInt(u[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,r=parseFloat(u[2]),r<0||r>100||(r/=100,i=parseFloat(u[3]),i<0||i>100)||(i/=100,a=u[4],a!==void 0&&(a=parseFloat(a),a<0||a>1)))return;if(r===0)o=s=c=Math.round(i*255);else{var d=i<.5?i*(1+r):i+r-i*r,f=2*i-d;o=Math.round(255*l(f,d,n+1/3)),s=Math.round(255*l(f,d,n)),c=Math.round(255*l(f,d,n-1/3))}t=[o,s,c,a]}return t},Ue=function(e){var t,n=RegExp(`^`+Ne+`$`).exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if(a[a.length-1]===`%`&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var c=n[4];if(c!==void 0){if(c=parseFloat(c),c<0||c>1)return;t.push(c)}}return t},We=function(e){return Ke[e.toLowerCase()]},Ge=function(e){return(de(e)?e:null)||We(e)||Ve(e)||Ue(e)||He(e)},Ke={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qe=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i=s||t<0||_&&n>=d}function C(){var e=t();if(S(e))return w(e);p=setTimeout(C,x(e))}function w(e){return p=void 0,v&&l?y(e):(l=u=void 0,f)}function T(){p!==void 0&&clearTimeout(p),h=0,l=m=u=p=void 0}function E(){return p===void 0?f:w(t())}function D(){var e=t(),n=S(e);if(l=arguments,u=this,m=e,n){if(p===void 0)return b(m);if(_)return clearTimeout(p),p=setTimeout(C,s),y(m)}return p===void 0&&(p=setTimeout(C,s)),f}return D.cancel=T,D.flush=E,D}return It=o,It}var zt=Xe(Rt()),Bt=re?re.performance:null,Vt=Bt&&Bt.now?function(){return Bt.now()}:function(){return Date.now()},Ht=function(){if(re){if(re.requestAnimationFrame)return function(e){re.requestAnimationFrame(e)};if(re.mozRequestAnimationFrame)return function(e){re.mozRequestAnimationFrame(e)};if(re.webkitRequestAnimationFrame)return function(e){re.webkitRequestAnimationFrame(e)};if(re.msRequestAnimationFrame)return function(e){re.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(Vt())},1e3/60)}}(),Ut=function(e){return Ht(e)},Wt=Vt,Gt=9261,Kt=65599,qt=5381,Jt=function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Gt,n;n=e.next(),!n.done;)t=t*Kt+n.value|0;return t},Yt=function(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Gt)*Kt+e|0},Xt=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:qt;return(t<<5)+t+e|0},Zt=function(e,t){return e*2097152+t},Qt=function(e){return e[0]*2097152+e[1]},$t=function(e,t){return[Yt(e[0],t[0]),Xt(e[1],t[1])]},en=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return Jt({next:function(){return r=0;r--)e[r]===t&&e.splice(r,1)},Dn=function(e){e.splice(0,e.length)},On=function(e,t){for(var n=0;n`u`?`undefined`:q(Set))===Mn?Nn:Set,Fn=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!ve(e)){gn(`An element must have a core reference and parameters set`);return}var r=t.group;if(r??=t.data&&t.data.source!=null&&t.data.target!=null?`edges`:`nodes`,r!==`nodes`&&r!==`edges`){gn("An element must be of type `nodes` or `edges`; you specified `"+r+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:t.selectable===void 0?!0:!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:t.grabbable===void 0?!0:!!t.grabbable,pannable:t.pannable===void 0?r===`edges`:!!t.pannable,active:!1,classes:new Pn,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x??(i.position.x=0),i.position.y??(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var c=[];de(t.classes)?c=t.classes:J(t.classes)&&(c=t.classes.split(/\s+/));for(var l=0,u=c.length;lt)},l=function(e,t,i,a,o){var s;if(i??=0,o??=n,i<0)throw Error(`lo must be non-negative`);for(a??=e.length;in;0<=n?t++:t--)l.push(t);return l}).apply(this).reverse(),c=[],a=0,o=s.length;ah;0<=h?++f:--f)g.push(a(e,r));return g},m=function(e,t,r,i){var a,o,s;for(i??=n,a=e[r];r>t;){if(s=r-1>>1,o=e[s],i(a,o)<0){e[r]=o,r=s;continue}break}return e[r]=a},h=function(e,t,r){var i,a,o,s,c;for(r??=n,a=e.length,c=t,o=e[t],i=2*t+1;i0;){var x=_.pop(),S=h(x),C=x.id();if(d[C]=S,S!==1/0)for(var w=x.neighborhood().intersect(p),T=0;T0)for(n.unshift(t);u[i];){var a=u[i];n.unshift(a.edge),n.unshift(a.node),r=a.node,i=r.id()}return o.spawn(n)}}}},Jn={kruskal:function(e){e||=function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=Array(i),o=n,s=function(e){for(var t=0;t0;){if(b(),S++,y===l){for(var C=[],w=i,T=l,E=g[T];C.unshift(w),E!=null&&C.unshift(E),w=h[T],w!=null;)T=w.id(),E=g[T];return{found:!0,distance:u[y],path:this.spawn(C),steps:S}}f[y]=!0;for(var D=v._private.edges,O=0;OT&&(p[w]=T,g[w]=C,_[w]=y),!i){var E=C*l+S;!i&&p[E]>T&&(p[E]=T,g[E]=S,_[E]=y)}}}for(var D=0;D1&&arguments[1]!==void 0?arguments[1]:a,r=v(e),i=[],o=r;;){if(o==null)return t.spawn();var c=_(o),l=c.edge,u=c.pred;if(i.unshift(o[0]),o.same(n)&&i.length>0)break;l!=null&&i.unshift(l),o=u}return s.spawn(i)},x=0;x=0;l--){var u=c[l],d=u[1],f=u[2];(t[d]===o&&t[f]===s||t[d]===s&&t[f]===o)&&c.splice(l,1)}for(var p=0;pr;)t=nr(Math.floor(Math.random()*t.length),e,t),n--;return t},ir={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(e){return e.isLoop()});var i=n.length,a=r.length,o=Math.ceil((Math.log(i)/Math.LN2)**2),s=Math.floor(i/tr);if(i<2){gn(`At least 2 nodes are required for Karger-Stein algorithm`);return}for(var c=[],l=0;l1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=-1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=0,i=0,a=t;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;r?e=e.slice(t,n):(n0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var c=e[s];a?isFinite(c)||(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort(function(e,t){return e-t});var l=e.length,u=Math.floor(l/2);return l%2==0?(e[u-1+o]+e[u+o])/2:e[u+1+o]},pr=function(e){return Math.PI*e/180},mr=function(e,t){return Math.atan2(t,e)-Math.PI/2},hr=Math.log2||function(e){return Math.log(e)/Math.log(2)},gr=function(e){return e>0?1:e<0?-1:0},_r=function(e,t){return Math.sqrt(vr(e,t))},vr=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},yr=function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Tr=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Er=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},Dr=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},Or=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},kr=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ar=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,r,i,a;if(t.length===1)n=r=i=a=t[0];else if(t.length===2)n=i=t[0],a=r=t[1];else if(t.length===4){var o=G(t,4);n=o[0],r=o[1],i=o[2],a=o[3]}return e.x1-=a,e.x2+=r,e.y1-=n,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},jr=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},Mr=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},Nr=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},Pr=function(e,t){return Nr(e,t.x,t.y)},Fr=function(e,t){return Nr(e,t.x1,t.y1)&&Nr(e,t.x2,t.y2)},Ir=Math.hypot??function(e,t){return Math.sqrt(e*e+t*t)};function Lr(e,t){if(e.length<3)throw Error(`Need at least 3 vertices`);var n=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},r=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},i=function(e,t){return{x:e.x*t,y:e.y*t}},a=function(e,t){return e.x*t.y-e.y*t.x},o=function(e){var t=Ir(e.x,e.y);return t===0?{x:0,y:0}:{x:e.x/t,y:e.y/t}},s=function(e){for(var t=0,n=0;n7&&arguments[7]!==void 0?arguments[7]:`auto`,c=s===`auto`?li(i,a):s,l=i/2,u=a/2;c=Math.min(c,l,u);var d=c!==l,f=c!==u,p;if(d){var m=n-l+c-o,h=r-u-o;if(p=ti(e,t,n,r,m,h,n+l-c+o,h,!1),p.length>0)return p}if(f){var g=n+l+o;if(p=ti(e,t,n,r,g,r-u+c-o,g,r+u-c+o,!1),p.length>0)return p}if(d){var _=n-l+c-o,v=r+u+o;if(p=ti(e,t,n,r,_,v,n+l-c+o,v,!1),p.length>0)return p}if(f){var y=n-l-o;if(p=ti(e,t,n,r,y,r-u+c-o,y,r+u-c+o,!1),p.length>0)return p}var b,x=n-l+c,S=r-u+c;if(b=$r(e,t,n,r,x,S,c+o),b.length>0&&b[0]<=x&&b[1]<=S)return[b[0],b[1]];var C=n+l-c,w=r-u+c;if(b=$r(e,t,n,r,C,w,c+o),b.length>0&&b[0]>=C&&b[1]<=w)return[b[0],b[1]];var T=n+l-c,E=r+u-c;if(b=$r(e,t,n,r,T,E,c+o),b.length>0&&b[0]>=T&&b[1]>=E)return[b[0],b[1]];var D=n-l+c,O=r+u-c;return b=$r(e,t,n,r,D,O,c+o),b.length>0&&b[0]<=D&&b[1]>=O?[b[0],b[1]]:[]},Br=function(e,t,n,r,i,a,o){var s=o,c=Math.min(n,i),l=Math.max(n,i),u=Math.min(r,a),d=Math.max(r,a);return c-s<=e&&e<=l+s&&u-s<=t&&t<=d+s},Vr=function(e,t,n,r,i,a,o,s,c){var l={x1:Math.min(n,o,i)-c,x2:Math.max(n,o,i)+c,y1:Math.min(r,s,a)-c,y2:Math.max(r,s,a)+c};return!(el.x2||tl.y2)},Hr=function(e,t,n,r){n-=r;var i=t*t-4*e*n;if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},Ur=function(e,t,n,r,i){e===0&&(e=1e-5),t/=e,n/=e,r/=e;var a,o=(3*n-t*t)/9,s=-(27*r)+t*(9*n-t*t*2),c,l,u,d,f;if(s/=54,a=o*o*o+s*s,i[1]=0,d=t/3,a>0){l=s+Math.sqrt(a),l=l<0?-((-l)**(1/3)):l**(1/3),u=s-Math.sqrt(a),u=u<0?-((-u)**(1/3)):u**(1/3),i[0]=-d+l+u,d+=(l+u)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-u+l)/2,i[3]=d,i[5]=-d;return}if(i[5]=i[3]=0,a===0){f=s<0?-((-s)**(1/3)):s**(1/3),i[0]=-d+2*f,i[4]=i[2]=-(f+d);return}o=-o,c=o*o*o,c=Math.acos(s/Math.sqrt(c)),f=2*Math.sqrt(o),i[0]=-d+f*Math.cos(c/3),i[2]=-d+f*Math.cos((c+2*Math.PI)/3),i[4]=-d+f*Math.cos((c+4*Math.PI)/3)},Wr=function(e,t,n,r,i,a,o,s){var c=1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,l=9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,u=3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,d=1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,f=[];Ur(c,l,u,d,f);for(var p=1e-7,m=[],h=0;h<6;h+=2)Math.abs(f[h+1])=0&&f[h]<=1&&m.push(f[h]);m.push(1),m.push(0);for(var g=-1,_,v,y,b=0;b=0?yc?(e-i)*(e-i)+(t-a)*(t-a):l-d},Kr=function(e,t,n){for(var r,i,a,o,s,c=0,l=0;l=e&&e>=a||r<=e&&e<=a)s=(e-r)/(a-r)*(o-i)+i,s>t&&c++;else continue;return c%2!=0},qr=function(e,t,n,r,i,a,o,s,c){var l=Array(n.length),u;s[0]==null?u=s:(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2);for(var d=Math.cos(-u),f=Math.sin(-u),p=0;p0?Yr(Xr(l,-c)):l)},Jr=function(e,t,n,r,i,a,o,s){for(var c=Array(n.length*2),l=0;l=0&&h<=1&&_.push(h),g>=0&&g<=1&&_.push(g),_.length===0)return[];var v=_[0]*s[0]+e,y=_[0]*s[1]+t;return _.length>1?_[0]==_[1]?[v,y]:[v,y,_[1]*s[0]+e,_[1]*s[1]+t]:[v,y]},ei=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},ti=function(e,t,n,r,i,a,o,s,c){var l=e-i,u=n-e,d=o-i,f=t-a,p=r-t,m=s-a,h=d*f-m*l,g=u*f-p*l,_=m*u-d*p;if(_!==0){var v=h/_,y=g/_,b=.001,x=0-b,S=1+b;return x<=v&&v<=S&&x<=y&&y<=S||c?[e+v*u,t+v*p]:[]}else if(h===0||g===0)return ei(e,n,o)===o?[o,s]:ei(e,n,i)===i?[i,a]:ei(i,o,n)===n?[n,r]:[];else return[]},ni=function(e,t,n,r,i){var a=[],o=r/2,s=i/2,c=t,l=n;a.push({x:c+o*e[0],y:l+s*e[1]});for(var u=1;u0?Yr(Xr(u,-s)):u}else f=n;for(var m,h,g,_,v=0;v2){for(var p=[l[0],l[1]],m=(p[0]-e)**2+(p[1]-t)**2,h=1;hl&&(l=t)},get:function(e){return c[e]}},d=0;d0?v.edgesTo(_)[0]:_.edgesTo(v)[0];var b=r(y);_=_.id(),l[_]>l[m]+b&&(l[_]=l[m]+b,d.nodes.indexOf(_)<0?d.push(_):d.updateItem(_),c[_]=0,n[_]=[]),l[_]==l[m]+b&&(c[_]=c[_]+c[m],n[_].push(m))}else for(var x=0;x0;){for(var T=t.pop(),E=0;E0&&o.push(n[s]);o.length!==0&&i.push(r.collection(o))}return i},Ni=function(e,t){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:Li,o=r,s,c,l=0;l=2?Ui(e,t,n,0,Bi,Vi):Ui(e,t,n,0,zi)},squaredEuclidean:function(e,t,n){return Ui(e,t,n,0,Bi)},manhattan:function(e,t,n){return Ui(e,t,n,0,zi)},max:function(e,t,n){return Ui(e,t,n,-1/0,Hi)}};Wi[`squared-euclidean`]=Wi.squaredEuclidean,Wi.squaredeuclidean=Wi.squaredEuclidean;function Gi(e,t,n,r,i,a){var o=ue(e)?e:Wi[e]||Wi.euclidean;return t===0&&ue(e)?o(i,a):o(t,n,r,i,a)}var Ki=Tn({k:2,m:2,sensitivityThreshold:1e-4,distance:`euclidean`,maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),qi=function(e){return Ki(e)},Ji=function(e,t,n,r,i){var a=i===`kMedoids`?function(e){return r[e](n)}:function(e){return n[e]},o=function(e){return r[e](t)},s=n,c=t;return Gi(e,r.length,a,o,s,c)},Yi=function(e,t,n){for(var r=n.length,i=Array(r),a=Array(r),o=Array(t),s=null,c=0;cn)return!1;return!0},ea=function(e,t,n){for(var r=0;ro&&(o=t[c][l],s=l);i[s].push(e[c])}for(var u=0;u=i.threshold||i.mode===`dendrogram`&&e.length===1)return!1;var p=t[a],m=t[r[a]],h=i.mode===`dendrogram`?{left:p,right:m,key:p.key}:{value:p.value.concat(m.value),key:p.key};e[p.index]=h,e.splice(m.index,1),t[p.key]=h;for(var g=0;gn[m.key][_.key]&&(s=n[m.key][_.key])):i.linkage===`max`?(s=n[p.key][_.key],n[p.key][_.key]0&&r.push(i);return r},wa=function(e,t,n){for(var r=[],i=0;io&&(a=c,o=t[i*e+c])}a>0&&r.push(a)}for(var l=0;lc&&(s=l,c=u)}n[i]=a[s]}return r=wa(e,t,n),r},Ea=function(e){for(var t=this.cy(),n=this.nodes(),r=ba(e),i={},a=0;a=E?(D=E,E=k,O=A):k>D&&(D=k);for(var j=0;j0);S[w%r.minIterations*o+L]=R,I+=R}if(I>0&&(w>=r.minIterations-1||w==r.maxIterations-1)){for(var z=0,B=0;B1||i>1)&&(o=!0),u[t]=[],e.outgoers().forEach(function(e){e.isEdge()&&u[t].push(e.id())})}else d[t]=[void 0,e.target().id()]}):a.forEach(function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(s?c?o=!0:c=t:s=t),u[t]=[],e.connectedEdges().forEach(function(e){return u[t].push(e.id())})):d[t]=[e.source().id(),e.target().id()]});var f={found:!1,trail:void 0};if(o)return f;if(c&&s)if(i){if(l&&c!=l)return f;l=c}else if(l&&c!=l&&s!=l)return f;else l||=c;else l||=a[0].id();var p=function(e){for(var t=e,n=[e],r,a,o;u[t].length;)r=u[t].shift(),a=d[r][0],o=d[r][1],t==o?!i&&t!=a&&(u[a]=u[a].filter(function(e){return e!=r}),t=a):(u[o]=u[o].filter(function(e){return e!=r}),t=o),n.unshift(r),n.unshift(t);return n},m=[],h=[];for(h=p(l);h.length!=1;)u[h[0]].length==0?(m.unshift(a.getElementById(h.shift())),m.unshift(a.getElementById(h.shift()))):h=p(h.shift()).concat(h);for(var g in m.unshift(a.getElementById(h.shift())),u)if(u[g].length)return f;return f.found=!0,f.trail=this.spawn(m,!0),f}},Aa=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],c=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach(function(n){var r=n.connectedNodes().intersection(e);c.merge(n),r.forEach(function(n){var r=n.id(),i=n.connectedEdges().intersection(e);c.merge(n),t[r].cutVertex?c.merge(i.filter(function(e){return e.isLoop()})):c.merge(i)})}),i.push(c)},c=function(l,u,d){l===d&&(r+=1),t[u]={id:n,low:n++,cutVertex:!1};var f=e.getElementById(u).connectedEdges().intersection(e);if(f.size()===0)i.push(e.spawn(e.getElementById(u)));else{var p,m,h,g;f.forEach(function(e){p=e.source().id(),m=e.target().id(),h=p===u?m:p,h!==d&&(g=e.id(),o[g]||(o[g]=!0,a.push({x:u,y:h,edge:e})),h in t?t[u].low=Math.min(t[u].low,t[h].id):(c(l,h,u),t[u].low=Math.min(t[u].low,t[h].low),t[u].id<=t[h].low&&(t[u].cutVertex=!0,s(u,h))))})}};e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||(r=0,c(n,n),t[n].cutVertex=r>1)}});var l=Object.keys(t).filter(function(e){return t[e].cutVertex}).map(function(t){return e.getElementById(t)});return{cut:e.spawn(l),components:i}},ja={hopcroftTarjanBiconnected:Aa,htbc:Aa,htb:Aa,hopcroftTarjanBiconnectedComponents:Aa},Ma=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach(function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))}),t[s].index===t[s].low){for(var c=e.spawn();;){var l=i.pop();if(c.merge(e.getElementById(l)),t[l].low=t[s].index,t[l].explored=!0,l===s)break}var u=c.edgesWith(c),d=c.merge(u);r.push(d),a=a.difference(d)}};return e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||o(n)}}),{cut:a,components:r}},Na={tarjanStronglyConnected:Ma,tsc:Ma,tscc:Ma,tarjanStronglyConnectedComponents:Ma},Pa={};[Ln,qn,Jn,Xn,Qn,er,ir,gi,vi,bi,Si,Ii,la,va,Da,ka,ja,Na].forEach(function(e){Z(Pa,e)});var Fa=0,Ia=1,La=2,Ra=function(e){if(!(this instanceof Ra))return new Ra(e);this.id=`Thenable/1.0.7`,this.state=Fa,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e==`function`&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Ra.prototype={fulfill:function(e){return za(this,Ia,`fulfillValue`,e)},reject:function(e){return za(this,La,`rejectReason`,e)},then:function(e,t){var n=this,r=new Ra;return n.onFulfilled.push(Ha(e,r,`fulfill`)),n.onRejected.push(Ha(t,r,`reject`)),Ba(n),r.proxy}};var za=function(e,t,n,r){return e.state===Fa&&(e.state=t,e[n]=r,Ba(e)),e},Ba=function(e){e.state===Ia?Va(e,`onFulfilled`,e.fulfillValue):e.state===La&&Va(e,`onRejected`,e.rejectReason)},Va=function(e,t,n){if(e[t].length!==0){var r=e[t];e[t]=[];var i=function(){for(var e=0;e0}},clearQueue:function(){return function(){var e=this,t=e.length===void 0?[e]:e;if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n-1}return is=t,is}var ss,cs;function ls(){if(cs)return ss;cs=1;var e=Zo();function t(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}return ss=t,ss}var us,ds;function fs(){if(ds)return us;ds=1;var e=Go(),t=es(),n=rs(),r=os(),i=ls();function a(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&n%1==0&&n0&&this.spawn(r).updateStyle().emit(`class`),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},toggleClass:function(e,t){de(e)||(e=e.match(/\S+/g)||[]);for(var n=this,r=t===void 0,i=[],a=0,o=n.length;a0&&this.spawn(i).updateStyle().emit(`class`),n},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(t==null)t=250;else if(t===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n}};qc.className=qc.classNames=qc.classes;var Jc={metaChar:`[\\!\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\\`\\{\\|\\}\\~]`,comparatorOp:`=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=`,boolOp:`\\?|\\!|\\^`,string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Me,meta:`degree|indegree|outdegree`,separator:`\\s*,\\s*`,descendant:`\\s+`,child:`\\s+>\\s+`,subject:`\\$`,group:`node|edge|\\*`,directedEdge:`\\s+->\\s+`,undirectedEdge:`\\s+<->\\s+`};Jc.variable=`(?:[\\w-.]|(?:\\\\`+Jc.metaChar+`))+`,Jc.className=`(?:[\\w-]|(?:\\\\`+Jc.metaChar+`))+`,Jc.value=Jc.string+`|`+Jc.number,Jc.id=Jc.variable,(function(){var e=Jc.comparatorOp.split(`|`),t,n;for(n=0;n=0)&&t!==`=`&&(Jc.comparatorOp+=`|\\!`+t)})();var Yc=function(){return{checks:[]}},Q={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},Xc=[{selector:`:selected`,matches:function(e){return e.selected()}},{selector:`:unselected`,matches:function(e){return!e.selected()}},{selector:`:selectable`,matches:function(e){return e.selectable()}},{selector:`:unselectable`,matches:function(e){return!e.selectable()}},{selector:`:locked`,matches:function(e){return e.locked()}},{selector:`:unlocked`,matches:function(e){return!e.locked()}},{selector:`:visible`,matches:function(e){return e.visible()}},{selector:`:hidden`,matches:function(e){return!e.visible()}},{selector:`:transparent`,matches:function(e){return e.transparent()}},{selector:`:grabbed`,matches:function(e){return e.grabbed()}},{selector:`:free`,matches:function(e){return!e.grabbed()}},{selector:`:removed`,matches:function(e){return e.removed()}},{selector:`:inside`,matches:function(e){return!e.removed()}},{selector:`:grabbable`,matches:function(e){return e.grabbable()}},{selector:`:ungrabbable`,matches:function(e){return!e.grabbable()}},{selector:`:animated`,matches:function(e){return e.animated()}},{selector:`:unanimated`,matches:function(e){return!e.animated()}},{selector:`:parent`,matches:function(e){return e.isParent()}},{selector:`:childless`,matches:function(e){return e.isChildless()}},{selector:`:child`,matches:function(e){return e.isChild()}},{selector:`:orphan`,matches:function(e){return e.isOrphan()}},{selector:`:nonorphan`,matches:function(e){return e.isChild()}},{selector:`:compound`,matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:`:loop`,matches:function(e){return e.isLoop()}},{selector:`:simple`,matches:function(e){return e.isSimple()}},{selector:`:active`,matches:function(e){return e.active()}},{selector:`:inactive`,matches:function(e){return!e.active()}},{selector:`:backgrounding`,matches:function(e){return e.backgrounding()}},{selector:`:nonbackgrounding`,matches:function(e){return!e.backgrounding()}}].sort(function(e,t){return Be(e.selector,t.selector)}),Zc=function(){for(var e={},t,n=0;n0&&l.edgeCount>0)return vn("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return vn("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;l.edgeCount===1&&vn("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(e){return e??``},t=function(t){return J(t)?`"`+t+`"`:e(t)},n=function(e){return` `+e+` `},r=function(r,a){var o=r.type,s=r.value;switch(o){case Q.GROUP:var c=e(s);return c.substring(0,c.length-1);case Q.DATA_COMPARE:var l=r.field,u=r.operator;return`[`+l+n(e(u))+t(s)+`]`;case Q.DATA_BOOL:var d=r.operator,f=r.field;return`[`+e(d)+f+`]`;case Q.DATA_EXIST:return`[`+r.field+`]`;case Q.META_COMPARE:var p=r.operator;return`[[`+r.field+n(e(p))+t(s)+`]]`;case Q.STATE:return s;case Q.ID:return`#`+s;case Q.CLASS:return`.`+s;case Q.PARENT:case Q.CHILD:return i(r.parent,a)+n(`>`)+i(r.child,a);case Q.ANCESTOR:case Q.DESCENDANT:return i(r.ancestor,a)+` `+i(r.descendant,a);case Q.COMPOUND_SPLIT:var m=i(r.left,a),h=i(r.subject,a),g=i(r.right,a);return m+(m.length>0?` `:``)+h+g;case Q.TRUE:return``}},i=function(e,t){return e.checks.reduce(function(n,i,a){return n+(t===e&&a===0?`$`:``)+r(i,t)},``)},a=``,o=0;o1&&o=0&&(t=t.replace(`!`,``),u=!0),t.indexOf(`@`)>=0&&(t=t.replace(`@`,``),l=!0),(i||o||l)&&(s=!i&&!a?``:``+e,c=``+n),l&&(e=s=s.toLowerCase(),n=c=c.toLowerCase()),t){case`*=`:r=s.indexOf(c)>=0;break;case`$=`:r=s.indexOf(c,s.length-c.length)>=0;break;case`^=`:r=s.indexOf(c)===0;break;case`=`:r=e===n;break;case`>`:d=!0,r=e>n;break;case`>=`:d=!0,r=e>=n;break;case`<`:d=!0,r=e0;){var l=i.shift();t(l),a.add(l.id()),o&&r(i,a,l)}return e}function bl(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i1&&arguments[1]!==void 0?arguments[1]:!0;return yl(this,e,t,bl)};function xl(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}vl.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return yl(this,e,t,xl)};function Sl(e,t,n){xl(e,t,n),bl(e,t,n)}vl.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return yl(this,e,t,Sl)},vl.ancestors=vl.parents;var Cl=wl={data:Gc.data({field:`data`,bindingEvent:`data`,allowBinding:!0,allowSetting:!0,settingEvent:`data`,settingTriggersEvent:!0,triggerFnName:`trigger`,allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Gc.removeData({field:`data`,event:`data`,triggerFnName:`trigger`,triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Gc.data({field:`scratch`,bindingEvent:`scratch`,allowBinding:!0,allowSetting:!0,settingEvent:`scratch`,settingTriggersEvent:!0,triggerFnName:`trigger`,allowGetting:!0,updateStyle:!0}),removeScratch:Gc.removeData({field:`scratch`,event:`scratch`,triggerFnName:`trigger`,triggerEvent:!0,updateStyle:!0}),rscratch:Gc.data({field:`rscratch`,allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Gc.removeData({field:`rscratch`,triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}},wl;Cl.attr=Cl.data,Cl.removeAttr=Cl.removeData;var Tl=wl,El={};function Dl(e){return function(t){var n=this;if(t===void 0&&(t=!0),n.length!==0)if(n.isNode()&&!n.removed()){for(var r=0,i=n[0],a=i._private.edges,o=0;ot}),minIndegree:Ol(`indegree`,function(e,t){return et}),minOutdegree:Ol(`outdegree`,function(e,t){return et})}),Z(El,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,d=u;u&&(l=l[0]);var f=d?l.position():{x:0,y:0};t===void 0?i!==void 0&&c.position({x:i.x+f.x,y:i.y+f.y}):c.position(e,t+f[e])}else{var p=n.position(),m=o?n.parent():null,h=m&&m.length>0,g=h;h&&(m=m[0]);var _=g?m.position():{x:0,y:0};return i={x:p.x-_.x,y:p.y-_.y},e===void 0?i:i[e]}else if(!a)return;return this}},kl.modelPosition=kl.point=kl.position,kl.modelPositions=kl.points=kl.positions,kl.renderedPoint=kl.renderedPosition,kl.relativePoint=kl.relativePosition;var Nl=Al,Pl=Fl={},Fl;Fl.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,c=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:c,w:o-a,h:c-s}},Fl.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();return!t.styleEnabled()||!t.hasCompoundNodes()||this.forEachUp(function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify(`bounds`)}}),this},Fl.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()||!e&&t.batching())return this;function n(e){if(!e.isParent())return;var t=e._private,n=e.children(),r=e.pstyle(`compound-sizing-wrt-labels`).value===`include`,i={width:{val:e.pstyle(`min-width`).pfValue,left:e.pstyle(`min-width-bias-left`),right:e.pstyle(`min-width-bias-right`)},height:{val:e.pstyle(`min-height`).pfValue,top:e.pstyle(`min-height-bias-top`),bottom:e.pstyle(`min-height-bias-bottom`)}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;(a.w===0||a.h===0)&&(a={w:e.pstyle(`width`).pfValue,h:e.pstyle(`height`).pfValue},a.x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);function s(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}function c(e,t,n,r){if(n.units===`%`)switch(r){case`width`:return e>0?n.pfValue*e:0;case`height`:return t>0?n.pfValue*t:0;case`average`:return e>0&&t>0?n.pfValue*(e+t)/2:0;case`min`:return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case`max`:return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}else if(n.units===`px`)return n.pfValue;else return 0}var l=i.width.left.value;i.width.left.units===`px`&&i.width.val>0&&(l=l*100/i.width.val);var u=i.width.right.value;i.width.right.units===`px`&&i.width.val>0&&(u=u*100/i.width.val);var d=i.height.top.value;i.height.top.units===`px`&&i.height.val>0&&(d=d*100/i.height.val);var f=i.height.bottom.value;i.height.bottom.units===`px`&&i.height.val>0&&(f=f*100/i.height.val);var p=s(i.width.val-a.w,l,u),m=p.biasDiff,h=p.biasComplementDiff,g=s(i.height.val-a.h,d,f),_=g.biasDiff,v=g.biasComplementDiff;t.autoPadding=c(a.w,a.h,e.pstyle(`padding`),e.pstyle(`padding-relative-to`).value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-m+a.x1+a.x2+h)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-_+a.y1+a.y2+v)/2}for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},Rl=function(e,t){return t==null?e:Ll(e,t.x1,t.y1,t.x2,t.y2)},zl=function(e,t,n){return kn(e,t,n)},Bl=function(e,t,n){if(!t.cy().headless()){var r=t._private,i=r.rstyle,a=i.arrowWidth/2,o=t.pstyle(n+`-arrow-shape`).value,s,c;if(o!==`none`){n===`source`?(s=i.srcX,c=i.srcY):n===`target`?(s=i.tgtX,c=i.tgtY):(s=i.midX,c=i.midY);var l=r.arrowBounds=r.arrowBounds||{},u=l[n]=l[n]||{};u.x1=s-a,u.y1=c-a,u.x2=s+a,u.y2=c+a,u.w=u.x2-u.x1,u.h=u.y2-u.y1,kr(u,1),Ll(e,u.x1,u.y1,u.x2,u.y2)}}},Vl=function(e,t,n){if(!t.cy().headless()){var r=n?n+`-`:``,i=t._private,a=i.rstyle;if(t.pstyle(r+`label`).strValue){var o=t.pstyle(`text-halign`),s=t.pstyle(`text-valign`),c=zl(a,`labelWidth`,n),l=zl(a,`labelHeight`,n),u=zl(a,`labelX`,n),d=zl(a,`labelY`,n),f=t.pstyle(r+`text-margin-x`).pfValue,p=t.pstyle(r+`text-margin-y`).pfValue,m=t.isEdge(),h=t.pstyle(r+`text-rotation`),g=t.pstyle(`text-outline-width`).pfValue,_=t.pstyle(`text-border-width`).pfValue/2,v=t.pstyle(`text-background-padding`).pfValue,y=2,b=l,x=c,S=x/2,C=b/2,w,T,E,D;if(m)w=u-S,T=u+S,E=d-C,D=d+C;else{switch(o.value){case`left`:w=u-x,T=u;break;case`center`:w=u-S,T=u+S;break;case`right`:w=u,T=u+x;break}switch(s.value){case`top`:E=d-b,D=d;break;case`center`:E=d-C,D=d+C;break;case`bottom`:E=d,D=d+b;break}}var O=f-Math.max(g,_)-v-y,k=f+Math.max(g,_)+v+y,A=p-Math.max(g,_)-v-y,j=p+Math.max(g,_)+v+y;w+=O,T+=k,E+=A,D+=j;var M=n||`main`,N=i.labelBounds,P=N[M]=N[M]||{};P.x1=w,P.y1=E,P.x2=T,P.y2=D,P.w=T-w,P.h=D-E,P.leftPad=O,P.rightPad=k,P.topPad=A,P.botPad=j;var F=m&&h.strValue===`autorotate`,I=h.pfValue!=null&&h.pfValue!==0;if(F||I){var L=F?zl(i.rstyle,`labelAngle`,n):h.pfValue,R=Math.cos(L),z=Math.sin(L),B=(w+T)/2,V=(E+D)/2;if(!m){switch(o.value){case`left`:B=T;break;case`right`:B=w;break}switch(s.value){case`top`:V=D;break;case`bottom`:V=E;break}}var H=function(e,t){return e-=B,t-=V,{x:e*R-t*z+B,y:e*z+t*R+V}},U=H(w,E),W=H(w,D),G=H(T,E),K=H(T,D);w=Math.min(U.x,W.x,G.x,K.x),T=Math.max(U.x,W.x,G.x,K.x),E=Math.min(U.y,W.y,G.y,K.y),D=Math.max(U.y,W.y,G.y,K.y)}var ee=M+`Rot`,te=N[ee]=N[ee]||{};te.x1=w,te.y1=E,te.x2=T,te.y2=D,te.w=T-w,te.h=D-E,Ll(e,w,E,T,D),Ll(i.labelBounds.all,w,E,T,D)}return e}},Hl=function(e,t){if(!t.cy().headless()){var n=t.pstyle(`outline-opacity`).value,r=t.pstyle(`outline-width`).value+t.pstyle(`outline-offset`).value;Ul(e,t,n,r,`outside`,r/2)}},Ul=function(e,t,n,r,i,a){if(!(n===0||r<=0||i===`inside`)){var o=t.cy().renderer(),s=o.nodeShapes[o.getNodeShape(t)];if(s){var c=t.position(),l=c.x,u=c.y,d=t.width(),f=t.height();s.hasMiterBounds?(i===`center`&&(r/=2),Rl(e,s.miterBounds(l,u,d,f,r))):a!=null&&a>0&&Ar(e,[a,a,a,a])}}},Wl=function(e,t){if(!t.cy().headless()){var n=t.pstyle(`border-opacity`).value,r=t.pstyle(`border-width`).pfValue,i=t.pstyle(`border-position`).value;Ul(e,t,n,r,i)}},Gl=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a=wr(),o=e._private,s=e.isNode(),c=e.isEdge(),l,u,d,f,p,m,h=o.rstyle,g=s&&r?e.pstyle(`bounds-expansion`).pfValue:[0],_=function(e){return e.pstyle(`display`).value!==`none`},v=!r||_(e)&&(!c||_(e.source())&&_(e.target()));if(v){var y=0,b=0;r&&t.includeOverlays&&(y=e.pstyle(`overlay-opacity`).value,y!==0&&(b=e.pstyle(`overlay-padding`).value));var x=0,S=0;r&&t.includeUnderlays&&(x=e.pstyle(`underlay-opacity`).value,x!==0&&(S=e.pstyle(`underlay-padding`).value));var C=Math.max(b,S),w=0,T=0;if(r&&(w=e.pstyle(`width`).pfValue,T=w/2),s&&t.includeNodes){var E=e.position();p=E.x,m=E.y;var D=e.outerWidth()/2,O=e.outerHeight()/2;l=p-D,u=p+D,d=m-O,f=m+O,Ll(a,l,d,u,f),r&&Hl(a,e),r&&t.includeOutlines&&!i&&Hl(a,e),r&&Wl(a,e)}else if(c&&t.includeEdges)if(r&&!i){var k=e.pstyle(`curve-style`).strValue;if(l=Math.min(h.srcX,h.midX,h.tgtX),u=Math.max(h.srcX,h.midX,h.tgtX),d=Math.min(h.srcY,h.midY,h.tgtY),f=Math.max(h.srcY,h.midY,h.tgtY),l-=T,u+=T,d-=T,f+=T,Ll(a,l,d,u,f),k===`haystack`){var A=h.haystackPts;if(A&&A.length===2){if(l=A[0].x,d=A[0].y,u=A[1].x,f=A[1].y,l>u){var j=l;l=u,u=j}if(d>f){var M=d;d=f,f=M}Ll(a,l-T,d-T,u+T,f+T)}}else if(k===`bezier`||k===`unbundled-bezier`||je(k,`segments`)||je(k,`taxi`)){var N;switch(k){case`bezier`:case`unbundled-bezier`:N=h.bezierPts;break;case`segments`:case`taxi`:case`round-segments`:case`round-taxi`:N=h.linePts;break}if(N!=null)for(var P=0;Pu){var R=l;l=u,u=R}if(d>f){var z=d;d=f,f=z}l-=T,u+=T,d-=T,f+=T,Ll(a,l,d,u,f)}if(r&&t.includeEdges&&c&&(Bl(a,e,`mid-source`),Bl(a,e,`mid-target`),Bl(a,e,`source`),Bl(a,e,`target`)),r&&e.pstyle(`ghost`).value===`yes`){var B=e.pstyle(`ghost-offset-x`).pfValue,V=e.pstyle(`ghost-offset-y`).pfValue;Ll(a,a.x1+B,a.y1+V,a.x2+B,a.y2+V)}var H=o.bodyBounds=o.bodyBounds||{};jr(H,a),Ar(H,g),kr(H,1),r&&(l=a.x1,u=a.x2,d=a.y1,f=a.y2,Ll(a,l-C,d-C,u+C,f+C));var U=o.overlayBounds=o.overlayBounds||{};jr(U,a),Ar(U,g),kr(U,1);var W=o.labelBounds=o.labelBounds||{};W.all==null?W.all=wr():Er(W.all),r&&t.includeLabels&&(t.includeMainLabels&&Vl(a,e,null),c&&(t.includeSourceLabels&&Vl(a,e,`source`),t.includeTargetLabels&&Vl(a,e,`target`)))}return a.x1=Il(a.x1),a.y1=Il(a.y1),a.x2=Il(a.x2),a.y2=Il(a.y2),a.w=Il(a.x2-a.x1),a.h=Il(a.y2-a.y1),a.w>0&&a.h>0&&v&&(Ar(a,g),kr(a,1)),a},Kl=function(e){var t=0,n=function(e){return+!!e<0&&arguments[0]!==void 0?arguments[0]:gu,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},vu.removeAllListeners=function(){return this.removeListener(`*`)},vu.emit=vu.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,de(t)||(t=[t]),xu(this,function(e,a){n!=null&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(){var n=r[s];if(n.type===a.type&&(!n.namespace||n.namespace===a.namespace||n.namespace===pu)&&e.eventMatches(e.context,n,a)){var i=[a];t!=null&&On(i,t),e.beforeEmit(e.context,n,a),n.conf&&n.conf.one&&(e.listeners=e.listeners.filter(function(e){return e!==n}));var o=e.callbackContext(e.context,n,a),c=n.callback.apply(o,i);e.afterEmit(e.context,n,a),c===!1&&(a.stopPropagation(),a.preventDefault())}},s=0;s1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&J(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){var n=this[t];e(n)&&this.unmergeAt(t)}return this},map:function(e,t){for(var n=[],r=this,i=0;in&&(n=s,r=o)}return{value:n,ele:r}},min:function(e,t){for(var n=1/0,r,i=this,a=0;a=0&&i`u`?`undefined`:q(Symbol))!=e&&q(Symbol.iterator)!=e&&(ku[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return B({next:function(){return n1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],r=n.cy();if(r.styleEnabled()&&n)return n._private.styleDirty&&(n._private.styleDirty=!1,r.style().apply(n)),n._private.style[e]??(t?r.style().getDefaultProperty(e):null)},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return n.pfValue===void 0?n.value:n.pfValue}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,i=n.style();if(Y(e)){var a=e;i.applyBypass(this,a,r),this.emitAndNotify(`style`)}else if(J(e))if(t===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,t,r),this.emitAndNotify(`style`);else if(e===void 0){var s=this[0];return s?i.getRawStyle(s):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=!1,r=t.style(),i=this;if(e===void 0)for(var a=0;a0&&t.push(u[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)},`neighborhood`),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),Hu.neighbourhood=Hu.neighborhood,Hu.closedNeighbourhood=Hu.closedNeighborhood,Hu.openNeighbourhood=Hu.openNeighborhood,Z(Hu,{source:_l(function(e){var t=this[0],n;return t&&(n=t._private.source||t.cy().collection()),n&&e?n.filter(e):n},`source`),target:_l(function(e){var t=this[0],n;return t&&(n=t._private.target||t.cy().collection()),n&&e?n.filter(e):n},`target`),sources:Ku({attr:`source`}),targets:Ku({attr:`target`})});function Ku(e){return function(t){for(var n=[],r=0;r0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),Hu.componentsOf=Hu.components;var Yu=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){gn(`A collection must have a reference to the core`);return}var i=new jn,a=!1;if(!t)t=[];else if(t.length>0&&Y(t[0])&&!ge(t[0])){a=!0;for(var o=[],s=new Pn,c=0,l=t.length;c0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=n.cy(),i=r._private,a=[],o=[],s,c=0,l=n.length;c0){for(var P=s.length===n.length?n:new Yu(r,s),F=0;F0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n0&&(e?E.emitAndNotify(`remove`):t&&E.emit(`remove`));for(var D=0;D0?i=c:r=c;while(Math.abs(a)>o&&++l=a?v(t,u):d===0?u:b(t,r,r+l)}var S=!1;function C(){S=!0,(e!==t||n!==r)&&y()}var w=function(i){return S||C(),e===t&&n===r?i:i===0?0:i===1?1:g(x(i),t,r)};w.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var T=`generateBezier(`+[e,t,n,r]+`)`;return w.toString=function(){return T},w}var $u=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}function n(n,r){var i={dx:n.v,dv:e(n)},a=t(n,r*.5,i),o=t(n,r*.5,a),s=t(n,r,o),c=1/6*(i.dx+2*(a.dx+o.dx)+s.dx),l=1/6*(i.dv+2*(a.dv+o.dv)+s.dv);return n.x+=c*r,n.v+=l*r,n}return function e(t,r,i){var a={x:-1,v:0,tension:null,friction:null},o=[0],s=0,c=1/1e4,l=16/1e3,u,d,f;for(t=parseFloat(t)||500,r=parseFloat(r)||20,i||=null,a.tension=t,a.friction=r,u=i!==null,u?(s=e(t,r),d=s/i*l):d=l;f=n(f||a,d),o.push(1+f.x),s+=16,Math.abs(f.x)>c&&Math.abs(f.v)>c;);return u?function(e){return o[e*(o.length-1)|0]}:s}}(),ed=function(e,t,n,r){var i=Qu(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},td={linear:function(e,t,n){return e+(t-e)*n},ease:ed(.25,.1,.25,1),"ease-in":ed(.42,0,1,1),"ease-out":ed(0,0,.58,1),"ease-in-out":ed(.42,0,.58,1),"ease-in-sine":ed(.47,0,.745,.715),"ease-out-sine":ed(.39,.575,.565,1),"ease-in-out-sine":ed(.445,.05,.55,.95),"ease-in-quad":ed(.55,.085,.68,.53),"ease-out-quad":ed(.25,.46,.45,.94),"ease-in-out-quad":ed(.455,.03,.515,.955),"ease-in-cubic":ed(.55,.055,.675,.19),"ease-out-cubic":ed(.215,.61,.355,1),"ease-in-out-cubic":ed(.645,.045,.355,1),"ease-in-quart":ed(.895,.03,.685,.22),"ease-out-quart":ed(.165,.84,.44,1),"ease-in-out-quart":ed(.77,0,.175,1),"ease-in-quint":ed(.755,.05,.855,.06),"ease-out-quint":ed(.23,1,.32,1),"ease-in-out-quint":ed(.86,0,.07,1),"ease-in-expo":ed(.95,.05,.795,.035),"ease-out-expo":ed(.19,1,.22,1),"ease-in-out-expo":ed(1,0,0,1),"ease-in-circ":ed(.6,.04,.98,.335),"ease-out-circ":ed(.075,.82,.165,1),"ease-in-out-circ":ed(.785,.135,.15,.86),spring:function(e,t,n){if(n===0)return td.linear;var r=$u(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":ed};function nd(e,t,n,r,i){if(r===1||t===n)return n;var a=i(t,n,r);return e==null?a:((e.roundValue||e.color)&&(a=Math.round(a)),e.min!==void 0&&(a=Math.max(a,e.min)),e.max!==void 0&&(a=Math.min(a,e.max)),a)}function rd(e,t){return e.pfValue!=null||e.value!=null?e.pfValue!=null&&(t==null||t.type.units!==`%`)?e.pfValue:e.value:e}function id(e,t,n,r,i){var a=i==null?null:i.type;n<0?n=0:n>1&&(n=1);var o=rd(e,i),s=rd(t,i);if(X(o)&&X(s))return nd(a,o,s,n,r);if(de(o)&&de(s)){for(var c=[],l=0;l0?(d===`spring`&&f.push(o.duration),o.easingImpl=td[d].apply(null,f)):o.easingImpl=td[d]}var p=o.easingImpl,m=o.duration===0?1:(n-c)/o.duration;if(o.applying&&(m=o.progress),m<0?m=0:m>1&&(m=1),o.delay==null){var h=o.startPosition,g=o.position;if(g&&i&&!e.locked()){var _={};od(h.x,g.x)&&(_.x=id(h.x,g.x,m,p)),od(h.y,g.y)&&(_.y=id(h.y,g.y,m,p)),e.position(_)}var v=o.startPan,y=o.pan,b=a.pan,x=y!=null&&r;x&&(od(v.x,y.x)&&(b.x=id(v.x,y.x,m,p)),od(v.y,y.y)&&(b.y=id(v.y,y.y,m,p)),e.emit(`pan`));var S=o.startZoom,C=o.zoom,w=C!=null&&r;w&&(od(S,C)&&(a.zoom=Cr(a.minZoom,id(S,C,m,p),a.maxZoom)),e.emit(`zoom`)),(x||w)&&e.emit(`viewport`);var T=o.style;if(T&&T.length>0&&i){for(var E=0;E=0;t--){var n=e[t];n()}e.splice(0,e.length)},u=a.length-1;u>=0;u--){var d=a[u],f=d._private;if(f.stopped){a.splice(u,1),f.hooked=!1,f.playing=!1,f.started=!1,l(f.frames);continue}!f.playing&&!f.applying||(f.playing&&f.applying&&(f.applying=!1),f.started||sd(t,d,e),ad(t,d,e,n),f.applying&&=!1,l(f.frames),f.step!=null&&f.step(e),d.completed()&&(a.splice(u,1),f.hooked=!1,f.playing=!1,f.started=!1,l(f.completes)),s=!0)}return!n&&a.length===0&&o.length===0&&r.push(t),s}for(var a=!1,o=0;o0?t.notify(`draw`,n):t.notify(`draw`)),n.unmerge(r),t.emit(`step`)}var ld={animate:Gc.animate(),animation:Gc.animation(),animated:Gc.animated(),clearQueue:Gc.clearQueue(),delay:Gc.delay(),delayAnimation:Gc.delayAnimation(),stop:Gc.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&Ut(function(n){cd(n,e),t()})}var n=e.renderer();n&&n.beforeRender?n.beforeRender(function(t,n){cd(n,e)},n.beforeRenderPriorities.animations):t()}},ud={qualifierCompare:function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return r==null?!0:e!==n.target&&ge(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return t.qualifier==null?e:n.target}},dd=function(e){return J(e)?new ml(e):e},fd={createEmitter:function(){var e=this._private;return e.emitter||=new _u(ud,this),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,dd(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,dd(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,dd(t),n),this},once:function(e,t,n){return this.emitter().one(e,dd(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Gc.eventAliasesOn(fd);var pd={png:function(e){var t=this._private.renderer;return e||={},t.png(e)},jpg:function(e){var t=this._private.renderer;return e||={},e.bg=e.bg||`#fff`,t.jpg(e)}};pd.jpeg=pd.jpg;var md={layout:function(e){var t=this;if(e==null){gn(`Layout options must be specified to make a layout`);return}if(e.name==null){gn("A `name` must be specified to make a layout");return}var n=e.name,r=t.extension(`layout`,n);if(r==null){gn("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}return new r(Z({},e,{cy:t,eles:J(e.eles)?t.$(e.eles):e.eles==null?t.$():e.eles}))}};md.createLayout=md.makeLayout=md.layout;var hd={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();t!=null&&r.merge(t);return}if(n.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,t)}},notifications:function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount??=0,e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]})},onRender:function(e){return this.on(`render`,e)},offRender:function(e){return this.off(`render`,e)}};_d.invalidateDimensions=_d.resize;var vd={collection:function(e,t){return J(e)?this.$(e):he(e)?e.collection():de(e)?(t||={},new Yu(this,e,t.unique,t.removed)):new Yu(this)},nodes:function(e){var t=this.$(function(e){return e.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(e){return e.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};vd.elements=vd.filter=vd.$;var yd={},bd=`t`,xd=`f`;yd.apply=function(e){for(var t=this,n=t._private.cy.collection(),r=0;r0;if(f||d&&p){var m=void 0;f&&p||f?m=l.properties:p&&(m=l.mappedProperties);for(var h=0;h1&&(b=1),s.color){var S=r.valueMin[0],C=r.valueMax[0],w=r.valueMin[1],T=r.valueMax[1],E=r.valueMin[2],D=r.valueMax[2],O=r.valueMin[3]==null?1:r.valueMin[3],k=r.valueMax[3]==null?1:r.valueMax[3],A=[Math.round(S+(C-S)*b),Math.round(w+(T-w)*b),Math.round(E+(D-E)*b),Math.round(O+(k-O)*b)];a={bypass:r.bypass,name:r.name,value:A,strValue:`rgb(`+A[0]+`, `+A[1]+`, `+A[2]+`)`}}else if(s.number){var j=r.valueMin+(r.valueMax-r.valueMin)*b;a=this.parse(r.name,j,r.bypass,f)}else return!1;if(!a)return h(),!1;a.mapping=r,r=a;break;case o.data:for(var M=r.field.split(`.`),N=d.data,P=0;P0&&a>0){for(var s={},c=!1,l=0;l0?e.delayAnimation(o).play().promise().then(t):t()}).then(function(){return e.animation({style:s,duration:a,easing:e.pstyle(`transition-timing-function`).value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,i),e.emitAndNotify(`style`),r.transitioning=!1})}else r.transitioning&&=(this.removeBypasses(e,i),e.emitAndNotify(`style`),!1)},yd.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);e.removed()||s!=null&&s(n,r,e)&&a(o)},yd.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,function(e){return e.triggersZOrder},function(){i._private.cy.notify(`zorder`,e)})},yd.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBounds},function(t){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache()})},yd.checkConnectedEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBoundsOfConnectedEdges},function(t){e.connectedEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},yd.checkParallelEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBoundsOfParallelEdges},function(t){e.parallelEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},yd.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r),this.checkConnectedEdgesBoundsTrigger(e,t,n,r),this.checkParallelEdgesBoundsTrigger(e,t,n,r)};var Sd={};Sd.applyBypass=function(e,t,n,r){var i=this,a=[],o=!0;if(t===`*`||t===`**`){if(n!==void 0)for(var s=0;si.length?r.substr(i.length):``}function c(){a=a.length>o.length?a.substr(o.length):``}for(;!r.match(/^\s*$/);){var l=r.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!l){vn(`Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: `+r);break}i=l[0];var u=l[1];if(u!==`core`&&new ml(u).invalid){vn(`Skipping parsing of block: Invalid selector found in string stylesheet: `+u),s();continue}var d=l[2],f=!1;a=d;for(var p=[];!a.match(/^\s*$/);){var m=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!m){vn(`Skipping parsing of block: Invalid formatting of style property and value definitions found in:`+d),f=!0;break}o=m[0];var h=m[1],g=m[2];if(!t.properties[h]){vn(`Skipping property: Invalid property name in: `+o),c();continue}if(!n.parse(h,g)){vn(`Skipping property: Invalid property definition in: `+o),c();continue}p.push({name:h,val:g}),c()}if(f){s();break}n.selector(u);for(var _=0;_=7&&t[0]===`d`&&(u=new RegExp(s.data.regex).exec(t))){if(n)return!1;var f=s.data;return{name:e,value:u,strValue:``+t,mapped:f,field:u[1],bypass:n}}else if(t.length>=10&&t[0]===`m`&&(d=new RegExp(s.mapData.regex).exec(t))){if(n||l.multiple)return!1;var p=s.mapData;if(!(l.color||l.number))return!1;var m=this.parse(e,d[4]);if(!m||m.mapped)return!1;var h=this.parse(e,d[5]);if(!h||h.mapped)return!1;if(m.pfValue===h.pfValue||m.strValue===h.strValue)return vn("`"+e+`: `+t+"` is not a valid mapper because the output range is zero; converting to `"+e+`: `+m.strValue+"`"),this.parse(e,m.strValue);if(l.color){var g=m.value,_=h.value;if(g[0]===_[0]&&g[1]===_[1]&&g[2]===_[2]&&(g[3]===_[3]||(g[3]==null||g[3]===1)&&(_[3]==null||_[3]===1)))return!1}return{name:e,value:d,strValue:``+t,mapped:p,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:m.value,valueMax:h.value,bypass:n}}}if(l.multiple&&r!==`multiple`){var v=c?t.split(/\s+/):de(t)?t:[t];if(l.evenMultiple&&v.length%2!=0)return null;for(var y=[],b=[],x=[],S=``,C=!1,w=0;w0?` `:``)+T.strValue}return l.validate&&!l.validate(y,b)?null:l.singleEnum&&C?y.length===1&&J(y[0])?{name:e,value:y[0],strValue:y[0],bypass:n}:null:{name:e,value:y,pfValue:x,strValue:S,bypass:n,units:b}}var E=function(){for(var r=0;rl.max||l.strictMax&&t===l.max))return null;var j={name:e,value:t,strValue:``+t+(D||``),units:D,bypass:n};return l.unitless||D!==`px`&&D!==`em`?j.pfValue=t:j.pfValue=D===`px`||!D?t:this.getEmSizeInPixels()*t,(D===`ms`||D===`s`)&&(j.pfValue=D===`ms`?t:1e3*t),(D===`deg`||D===`rad`)&&(j.pfValue=D===`rad`?t:pr(t)),D===`%`&&(j.pfValue=t/100),j}else if(l.propList){var M=[],N=``+t;if(N!==`none`){for(var P=N.split(/\s*,\s*|\s+/),F=0;F0&&o>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){s=Math.min((a-2*t)/n.w,(o-2*t)/n.h),s=s>this._private.maxZoom?this._private.maxZoom:s,s=s=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t=this._private,n=t.pan,r=t.zoom,i,a,o=!1;if(t.zoomingEnabled||(o=!0),X(e)?a=e:Y(e)&&(a=e.level,e.position==null?e.renderedPosition!=null&&(i=e.renderedPosition):i=or(e.position,r,n),i!=null&&!t.panningEnabled&&(o=!0)),a=a>t.maxZoom?t.maxZoom:a,a=at.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push(`zoom`))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var c=e.pan;X(c.x)&&(t.pan.x=c.x,o=!1),X(c.y)&&(t.pan.y=c.y,o=!1),o||i.push(`pan`)}return i.length>0&&(i.push(`viewport`),this.emit(i.join(` `)),this.notify(`viewport`)),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit(`pan viewport`),this.notify(`viewport`)),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(J(e)){var n=e;e=this.mutableElements().filter(n)}else he(e)||(e=this.mutableElements());if(e.length!==0){var r=e.boundingBox(),i=this.width(),a=this.height();return t=t===void 0?this._private.zoom:t,{x:(i-t*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled||this.viewport({pan:{x:0,y:0},zoom:1}),this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,t=e.container,n=this;return e.sizeCache=e.sizeCache||(t?function(){var e=n.window().getComputedStyle(t),r=function(t){return parseFloat(e.getPropertyValue(t))};return{width:t.clientWidth-r(`padding-left`)-r(`padding-right`),height:t.clientHeight-r(`padding-top`)-r(`padding-bottom`)}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};Nd.centre=Nd.center,Nd.autolockNodes=Nd.autolock,Nd.autoungrabifyNodes=Nd.autoungrabify;var Pd={data:Gc.data({field:`data`,bindingEvent:`data`,allowBinding:!0,allowSetting:!0,settingEvent:`data`,settingTriggersEvent:!0,triggerFnName:`trigger`,allowGetting:!0,updateStyle:!0}),removeData:Gc.removeData({field:`data`,event:`data`,triggerFnName:`trigger`,triggerEvent:!0,updateStyle:!0}),scratch:Gc.data({field:`scratch`,bindingEvent:`scratch`,allowBinding:!0,allowSetting:!0,settingEvent:`scratch`,settingTriggersEvent:!0,triggerFnName:`trigger`,allowGetting:!0,updateStyle:!0}),removeScratch:Gc.removeData({field:`scratch`,event:`scratch`,triggerFnName:`trigger`,triggerEvent:!0,updateStyle:!0})};Pd.attr=Pd.data,Pd.removeAttr=Pd.removeData;var Fd=function(e){var t=this;e=Z({},e);var n=e.container;n&&!me(n)&&me(n[0])&&(n=n[0]);var r=n?n._cyreg:null;r||={},r&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=re!==void 0&&n!==void 0&&!e.headless,o=e;o.layout=Z({name:a?`grid`:`null`},o.layout),o.renderer=Z({name:a?`canvas`:`null`},o.renderer);var s=function(e,t,n){return t===void 0?n===void 0?e:n:t},c=this._private={container:n,ready:!1,options:o,elements:new Yu(this),listeners:[],aniEles:new Yu(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?a:o.styleEnabled,zoom:X(o.zoom)?o.zoom:1,pan:{x:Y(o.pan)&&X(o.pan.x)?o.pan.x:0,y:Y(o.pan)&&X(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var l=function(e,t){if(e.some(we))return Wa.all(e).then(t);t(e)};c.styleEnabled&&t.setStyle([]);var u=Z({},o,o.renderer);t.initRenderer(u);var d=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),e!=null&&(Y(e)||de(e))&&t.add(e),t.one(`layoutready`,function(e){t.notifications(!0),t.emit(e),t.one(`load`,n),t.emitAndNotify(`load`)}).one(`layoutstop`,function(){t.one(`done`,r),t.emit(`done`)});var a=Z({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};l([o.style,o.elements],function(e){var n=e[0],a=e[1];c.styleEnabled&&t.style().append(n),d(a,function(){t.startAnimationLoop(),c.ready=!0,ue(o.ready)&&t.on(`ready`,o.ready);for(var e=0;e0,s=!!e.boundingBox,c=wr(s?e.boundingBox:structuredClone(t.extent())),l;if(he(e.roots))l=e.roots;else if(de(e.roots)){for(var u=[],d=0;d0;){var A=k(),j=T(A,D);if(j)A.outgoers().filter(function(e){return e.isNode()&&n.has(e)}).forEach(O);else if(j===null){vn("Detected double maximal shift for node `"+A.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var M=0;if(e.avoidOverlap)for(var N=0;N0&&_[0].length<=3?a/2:0),l=2*Math.PI/_[r].length*i;return r===0&&_[0].length===1&&(o=1),{x:K.x+o*Math.cos(l),y:K.y+o*Math.sin(l)}}else{var u=_[r].length,d=Math.max(u===1?0:s?(c.w-e.padding*2-ee.w)/((e.grid?q:u)-1):(c.w-e.padding*2-ee.w)/((e.grid?q:u)+1),M);return{x:K.x+(i+1-(u+1)/2)*d,y:K.y+(r+1-(B+1)/2)*te}}},re={downward:0,leftward:90,upward:180,rightward:-90};return Object.keys(re).indexOf(e.direction)===-1&&gn(`Invalid direction '${e.direction}' specified for breadthfirst layout. Valid values are: ${Object.keys(re).join(`, `)}`),n.nodes().layoutPositions(this,e,function(t){return sn(ne(t),c,re[e.direction])}),this};var Hd={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ud(e){this.options=Z({},Hd,e)}Ud.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=t.counterclockwise===void 0?t.clockwise:!t.counterclockwise,a=r.nodes().not(`:parent`);t.sort&&(a=a.sort(t.sort));for(var o=wr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},c=(t.sweep===void 0?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),l,u=0,d=0;d1&&t.avoidOverlap){u*=1.75;var h=Math.cos(c)-Math.cos(0),g=Math.sin(c)-Math.sin(0),_=Math.sqrt(u*u/(h*h+g*g));l=Math.max(_,l)}return r.nodes().layoutPositions(this,t,function(e,n){var r=t.startAngle+n*c*(i?1:-1),a=l*Math.cos(r),o=l*Math.sin(r);return{x:s.x+a,y:s.y+o}}),this};var Wd={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Gd(e){this.options=Z({},Wd,e)}Gd.prototype.run=function(){for(var e=this.options,t=e,n=t.counterclockwise===void 0?t.clockwise:!t.counterclockwise,r=e.cy,i=t.eles,a=i.nodes().not(`:parent`),o=wr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},c=[],l=0,u=0;u0&&Math.abs(_[0].value-y.value)>=h&&(_=[],g.push(_)),_.push(y)}var b=l+t.minNodeSpacing;if(!t.avoidOverlap){var x=g.length>0&&g[0].length>1,S=(Math.min(o.w,o.h)/2-b)/(g.length+x?1:0);b=Math.min(b,S)}for(var C=0,w=0;w1&&t.avoidOverlap){var D=Math.cos(E)-Math.cos(0),O=Math.sin(E)-Math.sin(0),k=Math.sqrt(b*b/(D*D+O*O));C=Math.max(k,C)}T.r=C,C+=b}if(t.equidistant){for(var A=0,j=0,M=0;M=e.numIter||(nf(r,e),r.temperature*=e.coolingFactor,r.temperature=e.animationThreshold&&a(),Ut(u)):(hf(r,e),s())};u()}else{for(;l;)l=o(c),c++;hf(r,e),s()}return this},Jd.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit(`layoutstop`),this},Jd.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Yd=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=wr(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),c={},l=0;l0){o.graphSet.push(C);for(var l=0;lr.count?0:r.graph},Zd=function(e,t,n,r){var i=r.graphSet[n];if(-10)var c=r.nodeOverlap*s,l=Math.sqrt(i*i+a*a),u=c*i/l,d=c*a/l;else var f=cf(e,i,a),p=cf(t,-1*i,-1*a),m=p.x-f.x,h=p.y-f.y,g=m*m+h*h,l=Math.sqrt(g),c=(e.nodeRepulsion+t.nodeRepulsion)/g,u=c*m/l,d=c*h/l;e.isLocked||(e.offsetX-=u,e.offsetY-=d),t.isLocked||(t.offsetX+=u,t.offsetY+=d)}},sf=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},cf=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,c=a/o,l={};return t===0&&0n?(l.x=r,l.y=i+a/2,l):0t&&-1*c<=s&&s<=c?(l.x=r-o/2,l.y=i-o*n/2/t,l):0=c)?(l.x=r+a*t/2/n,l.y=i+a/2,l):0>n&&(s<=-1*c||s>=c)?(l.x=r-a*t/2/n,l.y=i-a/2,l):l},lf=function(e,t){for(var n=0;nn){var h=t.gravity*f/m,g=t.gravity*p/m;d.offsetX+=h,d.offsetY+=g}}}}},df=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],c=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else var i={x:e,y:t};return i},mf=function(e,t){var n=e.parentId;if(n!=null){var r=t.layoutNodes[t.idToIndex[n]],i=!1;if((r.maxX==null||e.maxX+r.padRight>r.maxX)&&(r.maxX=e.maxX+r.padRight,i=!0),(r.minX==null||e.minX-r.padLeftr.maxY)&&(r.maxY=e.maxY+r.padBottom,i=!0),(r.minY==null||e.minY-r.padToph&&(f+=m+t.componentSpacing,d=0,p=0,m=0)}}},gf={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function _f(e){this.options=Z({},gf,e)}_f.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(`:parent`);t.sort&&(i=i.sort(t.sort));var a=wr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(a.h===0||a.w===0)r.nodes().layoutPositions(this,t,function(e){return{x:a.x1,y:a.y1}});else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),c=Math.round(s),l=Math.round(a.w/a.h*s),u=function(e){if(e==null)return Math.min(c,l);Math.min(c,l)==c?c=e:l=e},d=function(e){if(e==null)return Math.max(c,l);Math.max(c,l)==c?c=e:l=e},f=t.rows,p=t.cols==null?t.columns:t.cols;if(f!=null&&p!=null)c=f,l=p;else if(f!=null&&p==null)c=f,l=Math.ceil(o/c);else if(f==null&&p!=null)l=p,c=Math.ceil(o/l);else if(l*c>o){var m=u(),h=d();(m-1)*h>=o?u(m-1):(h-1)*m>=o&&d(h-1)}else for(;l*c=o?d(_+1):u(g+1)}var v=a.w/l,y=a.h/c;if(t.condense&&(v=0,y=0),t.avoidOverlap)for(var b=0;b=l&&(j=0,A++)},N={},P=0;P(y=Gr(e,t,b[x],b[x+1],b[x+2],b[x+3])))return g(n,y),!0}else if(o.edgeType===`bezier`||o.edgeType===`multibezier`||o.edgeType===`self`||o.edgeType===`compound`){for(var b=o.allpts,x=0;x+5(y=Wr(e,t,b[x],b[x+1],b[x+2],b[x+3],b[x+4],b[x+5])))return g(n,y),!0}for(var h=h||r.source,v=v||r.target,S=i.getArrowWidth(c,d),C=[{name:`source`,x:o.arrowStartX,y:o.arrowStartY,angle:o.srcArrowAngle},{name:`target`,x:o.arrowEndX,y:o.arrowEndY,angle:o.tgtArrowAngle},{name:`mid-source`,x:o.midX,y:o.midY,angle:o.midsrcArrowAngle},{name:`mid-target`,x:o.midX,y:o.midY,angle:o.midtgtArrowAngle}],x=0;x0&&(_(h),_(v))}function y(e,t,n){return kn(e,t,n)}function b(n,r){var i=n._private,a=f,o=r?r+`-`:``;n.boundingBox();var s=i.labelBounds[r||`main`],c=n.pstyle(o+`label`).value;if(!(n.pstyle(`text-events`).strValue!==`yes`||!c)){var l=y(i.rscratch,`labelX`,r),u=y(i.rscratch,`labelY`,r),d=y(i.rscratch,`labelAngle`,r),p=n.pstyle(o+`text-margin-x`).pfValue,m=n.pstyle(o+`text-margin-y`).pfValue,h=s.x1-a-p,_=s.x2+a-p,v=s.y1-a-m,b=s.y2+a-m;if(d){var x=Math.cos(d),S=Math.sin(d),C=function(e,t){return e-=l,t-=u,{x:e*x-t*S+l,y:e*S+t*x+u}},w=C(h,v),T=C(h,b),E=C(_,v),D=C(_,b);if(Kr(e,t,[w.x+p,w.y+m,E.x+p,E.y+m,D.x+p,D.y+m,T.x+p,T.y+m]))return g(n),!0}else if(Nr(s,e,t))return g(n),!0}}for(var x=o.length-1;x>=0;x--){var S=o[x];S.isNode()?_(S)||b(S):v(S)||b(S)||b(S,`source`)||b(S,`target`)}return s},kf.getAllInBox=function(e,t,n,r){var i=this.getCachedZSortedEles().interactive,a=2/this.cy.zoom(),o=[],s=Math.min(e,n),c=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r);e=s,n=c,t=l,r=u;var d=wr({x1:e,y1:t,x2:n,y2:r}),f=[{x:d.x1,y:d.y1},{x:d.x2,y:d.y1},{x:d.x2,y:d.y2},{x:d.x1,y:d.y2}],p=[[f[0],f[1]],[f[1],f[2]],[f[2],f[3]],[f[3],f[0]]];function m(e,t,n){return kn(e,t,n)}function h(e,t){var n=e._private,r=a,i=``;e.boundingBox();var o=n.labelBounds.main;if(!o)return null;var s=m(n.rscratch,`labelX`,t),c=m(n.rscratch,`labelY`,t),l=m(n.rscratch,`labelAngle`,t),u=e.pstyle(i+`text-margin-x`).pfValue,d=e.pstyle(i+`text-margin-y`).pfValue,f=o.x1-r-u,p=o.x2+r-u,h=o.y1-r-d,g=o.y2+r-d;if(l){var _=Math.cos(l),v=Math.sin(l),y=function(e,t){return e-=s,t-=c,{x:e*_-t*v+s,y:e*v+t*_+c}};return[y(f,h),y(p,h),y(p,g),y(f,g)]}else return[{x:f,y:h},{x:p,y:h},{x:p,y:g},{x:f,y:g}]}function g(e,t,n,r){function i(e,t,n){return(n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}return i(e,n,r)!==i(t,n,r)&&i(e,t,n)!==i(e,t,r)}for(var _=0;_0?-(Math.PI-e.ang):Math.PI+e.ang},Qf=function(e,t,n,r,i){if(e===Yf?Zf(Pf,Nf):Xf(t,e,Nf),Xf(t,n,Pf),Ff=Nf.nx*Pf.ny-Nf.ny*Pf.nx,If=Nf.nx*Pf.nx-Nf.ny*-Pf.ny,zf=Math.asin(Math.max(-1,Math.min(1,Ff))),Math.abs(zf)<1e-6){jf=t.x,Mf=t.y,Vf=Uf=0;return}Lf=1,Rf=!1,If<0?zf<0?zf=Math.PI+zf:(zf=Math.PI-zf,Lf=-1,Rf=!0):zf>0&&(Lf=-1,Rf=!0),Uf=t.radius===void 0?r:t.radius,Bf=zf/2,Wf=Math.min(Nf.len/2,Pf.len/2),i?(Hf=Math.abs(Math.cos(Bf)*Uf/Math.sin(Bf)),Hf>Wf?(Hf=Wf,Vf=Math.abs(Hf*Math.sin(Bf)/Math.cos(Bf))):Vf=Uf):(Hf=Math.min(Wf,Uf),Vf=Math.abs(Hf*Math.sin(Bf)/Math.cos(Bf))),qf=t.x+Pf.nx*Hf,Jf=t.y+Pf.ny*Hf,jf=qf-Pf.ny*Vf*Lf,Mf=Jf+Pf.nx*Vf*Lf,Gf=t.x+Nf.nx*Hf,Kf=t.y+Nf.ny*Hf,Yf=t};function $f(e,t){t.radius===0?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function ep(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return r===0||t.radius===0?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Qf(e,t,n,r,i),{cx:jf,cy:Mf,radius:Vf,startX:Gf,startY:Kf,stopX:qf,stopY:Jf,startAngle:Nf.ang+Math.PI/2*Lf,endAngle:Pf.ang-Math.PI/2*Lf,counterClockwise:Rf})}var tp=.01,np=Math.sqrt(2*tp),rp={};rp.findMidptPtsEtc=function(e,t){var n=t.posPts,r=t.intersectionPts,i=t.vectorNormInverse,a,o=e.pstyle(`source-endpoint`),s=e.pstyle(`target-endpoint`),c=o.units!=null&&s.units!=null,l=function(e,t,n,r){var i=r-t,a=n-e,o=Math.sqrt(a*a+i*i);return{x:-i/o,y:a/o}};switch(e.pstyle(`edge-distances`).value){case`node-position`:a=n;break;case`intersection`:a=r;break;case`endpoints`:if(c){var u=G(this.manualEndptToPx(e.source()[0],o),2),d=u[0],f=u[1],p=G(this.manualEndptToPx(e.target()[0],s),2),m=p[0],h=p[1],g={x1:d,y1:f,x2:m,y2:h};i=l(d,f,m,h),a=g}else vn(`Edge ${e.id()} has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).`),a=r;break}return{midptPts:a,vectorNormInverse:i}},rp.findHaystackPoints=function(e){for(var t=0;t0?Math.max(e-t,0):Math.min(e+t,0)},O=D(T,C),k=D(E,w),A=!1;_===l?g=Math.abs(O)>Math.abs(k)?i:r:_===c||_===s?(g=r,A=!0):(_===a||_===o)&&(g=i,A=!0);var j=g===r,M=j?k:O,N=j?E:T,P=gr(N),F=!1;!(A&&(y||x))&&(_===s&&N<0||_===c&&N>0||_===a&&N>0||_===o&&N<0)&&(P*=-1,M=P*Math.abs(M),F=!0);var I=y?(b<0?1+b:b)*M:(b<0?M:0)+b*P,L=function(e){return Math.abs(e)=Math.abs(M)},R=L(I),z=L(Math.abs(M)-Math.abs(I));if((R||z)&&!F)if(j){var B=Math.abs(N)<=f/2,V=Math.abs(T)<=p/2;if(B){var H=(u.x1+u.x2)/2;n.segpts=[H,u.y1,H,u.y2]}else if(V){var U=(u.y1+u.y2)/2;n.segpts=[u.x1,U,u.x2,U]}else n.segpts=[u.x1,u.y2]}else{var W=Math.abs(N)<=d/2,G=Math.abs(E)<=m/2;if(W){var K=(u.y1+u.y2)/2;n.segpts=[u.x1,K,u.x2,K]}else if(G){var ee=(u.x1+u.x2)/2;n.segpts=[ee,u.y1,ee,u.y2]}else n.segpts=[u.x2,u.y1]}else if(j){var te=u.y1+I+(h?f/2*P:0);n.segpts=[u.x1,te,u.x2,te]}else{var q=u.x1+I+(h?d/2*P:0);n.segpts=[q,u.y1,q,u.y2]}if(n.isRound){var ne=e.pstyle(`taxi-radius`).value,re=e.pstyle(`radius-type`).value[0]===`arc-radius`;n.radii=Array(n.segpts.length/2).fill(ne),n.isArcRadius=Array(n.segpts.length/2).fill(re)}},rp.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if(n.edgeType===`bezier`){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,c=t.tgtH,l=t.srcShape,u=t.tgtShape,d=t.srcCornerRadius,f=t.tgtCornerRadius,p=t.srcRs,m=t.tgtRs,h=!X(n.startX)||!X(n.startY),g=!X(n.arrowStartX)||!X(n.arrowStartY),_=!X(n.endX)||!X(n.endY),v=!X(n.arrowEndX)||!X(n.arrowEndY),y=3*(this.getArrowWidth(e.pstyle(`width`).pfValue,e.pstyle(`arrow-scale`).value)*this.arrowShapeWidth),b=_r({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),x=bh.poolIndex()){var g=m;m=h,h=g}var _=u.srcPos=m.position(),v=u.tgtPos=h.position(),y=u.srcW=m.outerWidth(),x=u.srcH=m.outerHeight(),S=u.tgtW=h.outerWidth(),C=u.tgtH=h.outerHeight(),w=u.srcShape=n.nodeShapes[t.getNodeShape(m)],T=u.tgtShape=n.nodeShapes[t.getNodeShape(h)],E=u.srcCornerRadius=m.pstyle(`corner-radius`).value===`auto`?`auto`:m.pstyle(`corner-radius`).pfValue,D=u.tgtCornerRadius=h.pstyle(`corner-radius`).value===`auto`?`auto`:h.pstyle(`corner-radius`).pfValue,O=u.tgtRs=h._private.rscratch,k=u.srcRs=m._private.rscratch;u.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var A=0;A=np||(W=Math.sqrt(Math.max(U*U,tp)+Math.max(H*H,tp)));var G=u.vector={x:U,y:H},K=u.vectorNorm={x:G.x/W,y:G.y/W},ee={x:-K.y,y:K.x};u.nodesOverlap=!X(W)||T.checkPoint(I[0],I[1],0,S,C,v.x,v.y,D,O)||w.checkPoint(R[0],R[1],0,y,x,_.x,_.y,E,k),u.vectorNormInverse=ee,d={nodesOverlap:u.nodesOverlap,dirCounts:u.dirCounts,calculatedIntersection:!0,hasBezier:u.hasBezier,hasUnbundled:u.hasUnbundled,eles:u.eles,srcPos:v,srcRs:O,tgtPos:_,tgtRs:k,srcW:S,srcH:C,tgtW:y,tgtH:x,srcIntn:z,tgtIntn:L,srcShape:T,tgtShape:w,posPts:{x1:V.x2,y1:V.y2,x2:V.x1,y2:V.y1},intersectionPts:{x1:B.x2,y1:B.y2,x2:B.x1,y2:B.y1},vector:{x:-G.x,y:-G.y},vectorNorm:{x:-K.x,y:-K.y},vectorNormInverse:{x:-ee.x,y:-ee.y}}}var te=F?d:u;M.nodesOverlap=te.nodesOverlap,M.srcIntn=te.srcIntn,M.tgtIntn=te.tgtIntn,M.isRound=N.startsWith(`round`),r&&(m.isParent()||m.isChild()||h.isParent()||h.isChild())&&(m.parents().anySame(h)||h.parents().anySame(m)||m.same(h)&&m.isParent())?t.findCompoundLoopPoints(j,te,A,P):m===h?t.findLoopPoints(j,te,A,P):N.endsWith(`segments`)?t.findSegmentsPoints(j,te):N.endsWith(`taxi`)?t.findTaxiPoints(j,te):N===`straight`||!P&&u.eles.length%2==1&&A===Math.floor(u.eles.length/2)?t.findStraightEdgePoints(j):t.findBezierPoints(j,te,A,P,F),t.findEndpoints(j),t.tryToCorrectInvalidPoints(j,te),t.checkForInvalidEdgeWarning(j),t.storeAllpts(j),t.storeEdgeProjections(j),t.calculateArrowAngles(j),t.recalculateEdgeLabelProjections(j),t.calculateLabelAngles(j)}},b=0;b0){var ne=s,re=vr(ne,cr(i)),ie=vr(ne,cr(q)),ae=re;ie2&&vr(ne,{x:q[2],y:q[3]})0){var ge=c,_e=vr(ge,cr(i)),ve=vr(ge,cr(he)),ye=_e;ve<_e&&(i=[he[0],he[1]],ye=ve),he.length>2&&vr(ge,{x:he[2],y:he[3]})=l||v){d={cp:h,segment:_};break}}if(d)break}var y=d.cp,b=d.segment,x=(l-f)/b.length,S=b.t1-b.t0,C=c?b.t0+S*x:b.t1-S*x;C=Cr(0,C,1),t=xr(y.p0,y.p1,y.p2,C),i=dp(y.p0,y.p1,y.p2,C);break;case`straight`:case`segments`:case`haystack`:for(var w=0,T,E,D,O,k=r.allpts.length,A=0;A+3=l));A+=2);var j=(l-E)/T;j=Cr(0,j,1),t=Sr(D,O,j),i=up(D,O);break}o(`labelX`,n,t.x),o(`labelY`,n,t.y),o(`labelAutoAngle`,n,i)}};c(`source`),c(`target`),this.applyLabelDimensions(e)}},cp.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,`source`),this.applyPrefixedLabelDimensions(e,`target`))},cp.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=tn(r,e._private.labelDimsKey);if(kn(n.rscratch,`prefixedLabelDimsKey`,t)!==i){An(n.rscratch,`prefixedLabelDimsKey`,t,i);var a=this.calculateLabelDimensions(e,r),o=e.pstyle(`line-height`).pfValue,s=e.pstyle(`text-wrap`).strValue,c=kn(n.rscratch,`labelWrapCachedLines`,t)||[],l=s===`wrap`?Math.max(c.length,1):1,u=a.height/l,d=u*o,f=a.width,p=a.height+(l-1)*(o-1)*u;An(n.rstyle,`labelWidth`,t,f),An(n.rscratch,`labelWidth`,t,f),An(n.rstyle,`labelHeight`,t,p),An(n.rscratch,`labelHeight`,t,p),An(n.rscratch,`labelLineHeight`,t,d)}},cp.getLabelText=function(e,t){var n=e._private,r=t?t+`-`:``,i=e.pstyle(r+`label`).strValue,a=e.pstyle(`text-transform`).value,o=function(e,r){return r?(An(n.rscratch,e,t,r),r):kn(n.rscratch,e,t)};if(!i)return``;a==`none`||(a==`uppercase`?i=i.toUpperCase():a==`lowercase`&&(i=i.toLowerCase()));var s=e.pstyle(`text-wrap`).value;if(s===`wrap`){var c=o(`labelKey`);if(c!=null&&o(`labelWrapKey`)===c)return o(`labelWrapCachedText`);for(var l=`​`,u=i.split(` -`),d=e.pstyle(`text-max-width`).pfValue,f=e.pstyle(`text-overflow-wrap`).value===`anywhere`,p=[],m=/[\s\u200b]+|$/g,h=0;hd){var v=g.matchAll(m),y=``,b=0,x=z(v),S;try{for(x.s();!(S=x.n()).done;){var C=S.value,w=C[0],T=g.substring(b,C.index);b=C.index+w.length;var E=y.length===0?T:y+T+w;this.calculateLabelDimensions(e,E).width<=d?y+=T+w:(y&&p.push(y),y=T+w)}}catch(e){x.e(e)}finally{x.f()}y.match(/^[\s\u200b]+$/)||p.push(y)}else p.push(g)}o(`labelWrapCachedLines`,p),i=o(`labelWrapCachedText`,p.join(` -`)),o(`labelWrapKey`,c)}else if(s===`ellipsis`){var D=e.pstyle(`text-max-width`).pfValue,O=``,k=`…`,A=!1;if(this.calculateLabelDimensions(e,i).widthD);j++)O+=i[j],j===i.length-1&&(A=!0);return A||(O+=k),O}return i},cp.getLabelJustification=function(e){var t=e.pstyle(`text-justification`).strValue,n=e.pstyle(`text-halign`).strValue;if(t===`auto`)if(e.isNode())switch(n){case`left`:return`right`;case`right`:return`left`;default:return`center`}else return`center`;else return t},cp.calculateLabelDimensions=function(e,t){var n=this.cy.window().document,r=0,i=e.pstyle(`font-style`).strValue,a=e.pstyle(`font-size`).pfValue,o=e.pstyle(`font-family`).strValue,s=e.pstyle(`font-weight`).strValue,c=this.labelCalcCanvas,l=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=n.createElement(`canvas`),l=this.labelCalcCanvasContext=c.getContext(`2d`);var u=c.style;u.position=`absolute`,u.left=`-9999px`,u.top=`-9999px`,u.zIndex=`-1`,u.visibility=`hidden`,u.pointerEvents=`none`}l.font=`${i} ${s} ${a}px ${o}`;for(var d=0,f=0,p=t.split(` -`),m=0;m1&&arguments[1]!==void 0?arguments[1]:!0;if(t.merge(e),n)for(var r=0;r=e.desktopTapThreshold2}var T=a(t);b&&(e.hoverData.tapholdCancelled=!0);var D=function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];t.length===0?(t.push(v[0]),t.push(v[1])):(t[0]+=v[0],t[1]+=v[1])};n=!0,i(p,[`mousemove`,`vmousemove`,`tapdrag`],t,{x:l[0],y:l[1]});var O=function(e){return{originalEvent:t,type:e,position:{x:l[0],y:l[1]}}},k=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||r.emit(O(`boxstart`)),f[4]=1,e.hoverData.selecting=!0,e.redrawHint(`select`,!0),e.redraw()};if(e.hoverData.which===3){if(b){var A=O(`cxtdrag`);g?g.emit(A):r.emit(A),e.hoverData.cxtDragged=!0,(!e.hoverData.cxtOver||p!==e.hoverData.cxtOver)&&(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit(O(`cxtdragout`)),e.hoverData.cxtOver=p,p&&p.emit(O(`cxtdragover`)))}}else if(e.hoverData.dragging){if(n=!0,r.panningEnabled()&&r.userPanningEnabled()){var j;if(e.hoverData.justStartedPan){var M=e.hoverData.mdownPos;j={x:(l[0]-M[0])*s,y:(l[1]-M[1])*s},e.hoverData.justStartedPan=!1}else j={x:v[0]*s,y:v[1]*s};r.panBy(j),r.emit(O(`dragpan`)),e.hoverData.dragged=!0}l=e.projectIntoViewport(t.clientX,t.clientY)}else if(f[4]==1&&(g==null||g.pannable()))b&&(!e.hoverData.dragging&&r.boxSelectionEnabled()&&(T||!r.panningEnabled()||!r.userPanningEnabled())?k():!e.hoverData.selecting&&r.panningEnabled()&&r.userPanningEnabled()&&o(g,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,f[4]=0,e.data.bgActivePosistion=cr(u),e.redrawHint(`select`,!0),e.redraw()),g&&g.pannable()&&g.active()&&g.unactivate());else{if(g&&g.pannable()&&g.active()&&g.unactivate(),(!g||!g.grabbed())&&p!=m&&(m&&i(m,[`mouseout`,`tapdragout`],t,{x:l[0],y:l[1]}),p&&i(p,[`mouseover`,`tapdragover`],t,{x:l[0],y:l[1]}),e.hoverData.last=p),g)if(b){if(r.boxSelectionEnabled()&&T)g&&g.grabbed()&&(_(y),g.emit(O(`freeon`)),y.emit(O(`free`)),e.dragData.didDrag&&(g.emit(O(`dragfreeon`)),y.emit(O(`dragfree`)))),k();else if(g&&g.grabbed()&&e.nodeIsDraggable(g)){var N=!e.dragData.didDrag;N&&e.redrawHint(`eles`,!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||h(y,{inDragLayer:!0});var P={x:0,y:0};if(X(v[0])&&X(v[1])&&(P.x+=v[0],P.y+=v[1],N)){var F=e.hoverData.dragDelta;F&&X(F[0])&&X(F[1])&&(P.x+=F[0],P.y+=F[1])}e.hoverData.draggingEles=!0,y.silentShift(P).emit(O(`position`)).emit(O(`drag`)),e.redrawHint(`drag`,!0),e.redraw()}}else D();n=!0}if(f[2]=l[0],f[3]=l[1],n)return t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1}},!1);var O,k,A;e.registerBinding(t,`mouseup`,function(t){if(!(e.hoverData.which===1&&t.which!==1&&e.hoverData.capture)&&e.hoverData.capture){e.hoverData.capture=!1;var r=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,c=e.findNearestElement(o[0],o[1],!0,!1),l=e.dragData.possibleDragElements,u=e.hoverData.down,d=a(t);e.data.bgActivePosistion&&(e.redrawHint(`select`,!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,u&&u.unactivate();var f=function(e){return{originalEvent:t,type:e,position:{x:o[0],y:o[1]}}};if(e.hoverData.which===3){var p=f(`cxttapend`);if(u?u.emit(p):r.emit(p),!e.hoverData.cxtDragged){var m=f(`cxttap`);u?u.emit(m):r.emit(m)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(e.hoverData.which===1){if(i(c,[`mouseup`,`tapend`,`vmouseup`],t,{x:o[0],y:o[1]}),!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag&&(i(u,[`click`,`tap`,`vclick`],t,{x:o[0],y:o[1]}),k=!1,t.timeStamp-A<=r.multiClickDebounceTime()?(O&&clearTimeout(O),k=!0,A=null,i(u,[`dblclick`,`dbltap`,`vdblclick`],t,{x:o[0],y:o[1]})):(O=setTimeout(function(){k||i(u,[`oneclick`,`onetap`,`voneclick`],t,{x:o[0],y:o[1]})},r.multiClickDebounceTime()),A=t.timeStamp)),u==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!a(t)&&(r.$(n).unselect([`tapunselect`]),l.length>0&&e.redrawHint(`eles`,!0),e.dragData.possibleDragElements=l=r.collection()),c==u&&!e.dragData.didDrag&&!e.hoverData.selecting&&c!=null&&c._private.selectable&&(e.hoverData.dragging||(r.selectionType()===`additive`||d?c.selected()?c.unselect([`tapunselect`]):c.select([`tapselect`]):d||(r.$(n).unmerge(c).unselect([`tapunselect`]),c.select([`tapselect`]))),e.redrawHint(`eles`,!0)),e.hoverData.selecting){var h=r.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint(`select`,!0),h.length>0&&e.redrawHint(`eles`,!0),r.emit(f(`boxend`)),r.selectionType()===`additive`||d||r.$(n).unmerge(h).unselect(),h.emit(f(`box`)).stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit(f(`boxselect`)),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint(`select`,!0),e.redrawHint(`eles`,!0),e.redraw()),!s[4]){e.redrawHint(`drag`,!0),e.redrawHint(`eles`,!0);var g=u&&u.grabbed();_(l),g&&(u.emit(f(`freeon`)),l.emit(f(`free`)),e.dragData.didDrag&&(u.emit(f(`dragfreeon`)),l.emit(f(`dragfree`))))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null,e.hoverData.which=null}},!1);var j=[],M=4,N,P=1e5,F=function(e,t){for(var n=0;n=M){var i=j;if(N=F(i,5),!N){var a=Math.abs(i[0]);N=I(i)&&a>5}if(N)for(var o=0;o5&&(r=gr(r)*5),f=r/-250,N&&(f/=P,f*=3),f*=e.wheelSensitivity,t.deltaMode===1&&(f*=33);var p=s.zoom()*10**f;t.type===`gesturechange`&&(p=e.gestureStartZoom*t.scale),s.zoom({level:p,renderedPosition:{x:d[0],y:d[1]}}),s.emit({type:t.type===`gesturechange`?`pinchzoom`:`scrollzoom`,originalEvent:t,position:{x:u[0],y:u[1]}})}}}};e.registerBinding(e.container,`wheel`,L,!0),e.registerBinding(t,`scroll`,function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout(function(){e.scrollingPage=!1},250)},!0),e.registerBinding(e.container,`gesturestart`,function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()},!0),e.registerBinding(e.container,`gesturechange`,function(t){e.hasTouchStarted||L(t)},!0),e.registerBinding(e.container,`mouseout`,function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:`mouseout`,position:{x:n[0],y:n[1]}})},!1),e.registerBinding(e.container,`mouseover`,function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:`mouseover`,position:{x:n[0],y:n[1]}})},!1);var R,z,B,V,H,U,W,G,K,ee,te,q,ne,re=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},ie=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)},ae;e.registerBinding(e.container,`touchstart`,ae=function(t){if(e.hasTouchStarted=!0,E(t)){y(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,r=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);r[0]=o[0],r[1]=o[1]}if(t.touches[1]){var o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);r[2]=o[0],r[3]=o[1]}if(t.touches[2]){var o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);r[4]=o[0],r[5]=o[1]}var s=function(e){return{originalEvent:t,type:e,position:{x:r[0],y:r[1]}}};if(t.touches[1]){e.touchData.singleTouchMoved=!0,_(e.dragData.touchDragEles);var c=e.findContainerClientCoords();K=c[0],ee=c[1],te=c[2],q=c[3],R=t.touches[0].clientX-K,z=t.touches[0].clientY-ee,B=t.touches[1].clientX-K,V=t.touches[1].clientY-ee,ne=0<=R&&R<=te&&0<=B&&B<=te&&0<=z&&z<=q&&0<=V&&V<=q;var l=n.pan(),u=n.zoom();H=re(R,z,B,V),U=ie(R,z,B,V),W=[(R+B)/2,(z+V)/2],G=[(W[0]-l.x)/u,(W[1]-l.y)/u];var f=200,p=f*f;if(U=1){for(var w=e.touchData.startPosition=[null,null,null,null,null,null],T=0;T=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var x=t.touches[0].clientX-K,S=t.touches[0].clientY-ee,C=t.touches[1].clientX-K,w=t.touches[1].clientY-ee,T=ie(x,S,C,w),D=T/U,O=150,k=O*O,A=1.5;if(D>=A*A||T>=k){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0);var j=d(`cxttapend`);e.touchData.start?(e.touchData.start.unactivate().emit(j),e.touchData.start=null):a.emit(j)}}if(n&&e.touchData.cxt){var j=d(`cxtdrag`);e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0),e.touchData.start?e.touchData.start.emit(j):a.emit(j),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var M=e.findNearestElement(s[0],s[1],!0,!0);(!e.touchData.cxtOver||M!==e.touchData.cxtOver)&&(e.touchData.cxtOver&&e.touchData.cxtOver.emit(d(`cxtdragout`)),e.touchData.cxtOver=M,M&&M.emit(d(`cxtdragover`)))}else if(n&&t.touches[2]&&a.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||a.emit(d(`boxstart`)),e.touchData.selecting=!0,e.touchData.didSelect=!0,r[4]=1,!r||r.length===0||r[0]===void 0?(r[0]=(s[0]+s[2]+s[4])/3,r[1]=(s[1]+s[3]+s[5])/3,r[2]=(s[0]+s[2]+s[4])/3+1,r[3]=(s[1]+s[3]+s[5])/3+1):(r[2]=(s[0]+s[2]+s[4])/3,r[3]=(s[1]+s[3]+s[5])/3),e.redrawHint(`select`,!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&a.zoomingEnabled()&&a.panningEnabled()&&a.userZoomingEnabled()&&a.userPanningEnabled()){t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0);var N=e.dragData.touchDragEles;if(N){e.redrawHint(`drag`,!0);for(var P=0;P0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null&&(e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0),e.redraw())}},!1);var se;e.registerBinding(t,`touchcancel`,se=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()});var ce,le,J,ue;if(e.registerBinding(t,`touchend`,ce=function(t){var r=e.touchData.start;if(e.touchData.capture)t.touches.length===0&&(e.touchData.capture=!1),t.preventDefault();else return;var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o=e.cy,s=o.zoom(),c=e.touchData.now,l=e.touchData.earlier;if(t.touches[0]){var u=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);c[0]=u[0],c[1]=u[1]}if(t.touches[1]){var u=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY);c[2]=u[0],c[3]=u[1]}if(t.touches[2]){var u=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY);c[4]=u[0],c[5]=u[1]}var d=function(e){return{originalEvent:t,type:e,position:{x:c[0],y:c[1]}}};r&&r.unactivate();var f;if(e.touchData.cxt){if(f=d(`cxttapend`),r?r.emit(f):o.emit(f),!e.touchData.cxtDragged){var p=d(`cxttap`);r?r.emit(p):o.emit(p)}e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,e.redraw();return}if(!t.touches[2]&&o.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var m=o.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint(`select`,!0),o.emit(d(`boxend`)),m.emit(d(`box`)).stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit(d(`boxselect`)),m.nonempty()&&e.redrawHint(`eles`,!0),e.redraw()}if(r?.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0);else if(!t.touches[1]&&!t.touches[0]&&!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint(`select`,!0);var h=e.dragData.touchDragEles;if(r!=null){var g=r._private.grabbed;_(h),e.redrawHint(`drag`,!0),e.redrawHint(`eles`,!0),g&&(r.emit(d(`freeon`)),h.emit(d(`free`)),e.dragData.didDrag&&(r.emit(d(`dragfreeon`)),h.emit(d(`dragfree`)))),i(r,[`touchend`,`tapend`,`vmouseup`,`tapdragout`],t,{x:c[0],y:c[1]}),r.unactivate(),e.touchData.start=null}else i(e.findNearestElement(c[0],c[1],!0,!0),[`touchend`,`tapend`,`vmouseup`,`tapdragout`],t,{x:c[0],y:c[1]});var v=e.touchData.startPosition[0]-c[0],y=v*v,b=e.touchData.startPosition[1]-c[1],x=(y+b*b)*s*s;e.touchData.singleTouchMoved||(r||o.$(`:selected`).unselect([`tapunselect`]),i(r,[`tap`,`vclick`],t,{x:c[0],y:c[1]}),le=!1,t.timeStamp-ue<=o.multiClickDebounceTime()?(J&&clearTimeout(J),le=!0,ue=null,i(r,[`dbltap`,`vdblclick`],t,{x:c[0],y:c[1]})):(J=setTimeout(function(){le||i(r,[`onetap`,`voneclick`],t,{x:c[0],y:c[1]})},o.multiClickDebounceTime()),ue=t.timeStamp)),r!=null&&!e.dragData.didDrag&&r._private.selectable&&x`u`){var de=[],Y=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},fe=function(e){return{event:e,touch:Y(e)}},pe=function(e){de.push(fe(e))},me=function(e){for(var t=0;t0)return l[0]}return null},p=Object.keys(d),m=0;m0?d:zr(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){s=s===`auto`?li(r,i):s;var c=2*s;if(qr(e,t,this.points,a,o,r,i-c,[0,-1],n)||qr(e,t,this.points,a,o,r-c,i,[0,-1],n))return!0;var l=r/2+2*n,u=i/2+2*n;return!!(Kr(e,t,[a-l,o-u,a-l,o,a+l,o,a+l,o-u])||Qr(e,t,c,c,a+r/2-s,o+i/2-s,n)||Qr(e,t,c,c,a-r/2+s,o+i/2-s,n))}}},bp.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon(`triangle`,oi(3,0)),this.generateRoundPolygon(`round-triangle`,oi(3,0)),this.generatePolygon(`rectangle`,oi(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon(`diamond`,n),this.generateRoundPolygon(`round-diamond`,n),this.generatePolygon(`pentagon`,oi(5,0)),this.generateRoundPolygon(`round-pentagon`,oi(5,0)),this.generatePolygon(`hexagon`,oi(6,0)),this.generateRoundPolygon(`round-hexagon`,oi(6,0)),this.generatePolygon(`heptagon`,oi(7,0)),this.generateRoundPolygon(`round-heptagon`,oi(7,0)),this.generatePolygon(`octagon`,oi(8,0)),this.generateRoundPolygon(`round-octagon`,oi(8,0));var r=Array(20),i=ci(5,0),a=ci(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=e.deqFastCost*h)break}else if(i){if(p>=e.deqCost*c||p>=e.deqAvgCost*s)break}else if(m>=e.deqNoDrawCost*Tp)break;var g=e.deq(t,d,u);if(g.length>0)for(var _=0;_0&&(e.onDeqd(t,l),!i&&e.shouldRedraw(t,l,d,u)&&r())},a=e.priority||hn;n.beforeRender(i,a(t))}}}},Dp=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:pn;I(this,e),this.idsByKey=new jn,this.keyForId=new jn,this.cachesByLvl=new jn,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n}return R(e,[{key:`getIdsFor`,value:function(e){e??gn(`Can not get id list for null key`);var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Pn,t.set(e,n)),n}},{key:`addIdForKey`,value:function(e,t){e!=null&&this.getIdsFor(e).add(t)}},{key:`deleteIdForKey`,value:function(e,t){e!=null&&this.getIdsFor(e).delete(t)}},{key:`getNumberOfIdsForKey`,value:function(e){return e==null?0:this.getIdsFor(e).size}},{key:`updateKeyMappingFor`,value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:`deleteKeyMappingFor`,value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:`keyHasChangedFor`,value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:`isInvalid`,value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:`getCachesAt`,value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new jn,t.set(e,r),n.push(e)),r}},{key:`getCache`,value:function(e,t){return this.getCachesAt(t).get(e)}},{key:`get`,value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return r!=null&&this.updateKeyMappingFor(e),r}},{key:`getForCachedKey`,value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:`hasCache`,value:function(e,t){return this.getCachesAt(t).has(e)}},{key:`has`,value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:`setCache`,value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:`set`,value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:`deleteCache`,value:function(e,t){this.getCachesAt(t).delete(e)}},{key:`delete`,value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:`invalidateKey`,value:function(e){var t=this;this.lvls.forEach(function(n){return t.deleteCache(e,n)})}},{key:`invalidate`,value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||this.getNumberOfIdsForKey(n)===0}}])}(),Op=25,kp=50,Ap=-4,jp=3,Mp=7.99,Np=8,Pp=1024,Fp=1024,Ip=1024,Lp=.2,Rp=.8,zp=10,Bp=.15,Vp=.1,Hp=.9,Up=.9,Wp=100,Gp=1,Kp={dequeue:`dequeue`,downscale:`downscale`,highQuality:`highQuality`},qp=Tn({getKey:null,doesEleInvalidateKey:pn,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:fn,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Jp=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=qp(t);Z(n,r),n.lookup=new Dp(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Yp=Jp.prototype;Yp.reasons=Kp,Yp.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Yp.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{};return n[e]=n[e]||[]},Yp.getElementQueue=function(){var e=this;return e.eleCacheQueue=e.eleCacheQueue||new Gn(function(e,t){return t.reqs-e.reqs})},Yp.getElementKeyToQueue=function(){var e=this;return e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{}},Yp.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),c=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(r??=Math.ceil(hr(s*n)),r=Mp||r>jp)return null;var l=2**r,u=t.h*l,d=t.w*l,f=o.eleTextBiggerThanMin(e,l);if(!this.isVisible(e,f))return null;var p=c.get(e,r);if(p&&p.invalidated&&(p.invalidated=!1,p.texture.invalidatedWidth-=p.width),p)return p;var m=u<=Op?Op:u<=kp?kp:Math.ceil(u/kp)*kp;if(u>Ip||d>Fp)return null;var h=a.getTextureQueue(m),g=h[h.length-2],_=function(){return a.recycleTexture(m,d)||a.addTexture(m,d)};g||=h[h.length-1],g||=_(),g.width-g.usedWidthr;D--)T=a.getElement(e,t,n,D,Kp.downscale);E()}else return a.queueElement(e,S.level-1),S;else{var O;if(!y&&!b&&!x)for(var k=r-1;k>=Ap;k--){var A=c.get(e,k);if(A){O=A;break}}if(v(O))return a.queueElement(e,r),O;g.context.translate(g.usedWidth,0),g.context.scale(l,l),this.drawElement(g.context,e,t,f,!1),g.context.scale(1/l,1/l),g.context.translate(-g.usedWidth,0)}return p={x:g.usedWidth,texture:g,level:r,scale:l,width:d,height:u,scaledLabelShown:f},g.usedWidth+=Math.ceil(d+Np),g.eleCaches.push(p),c.set(e,r,p),a.checkTextureFullness(g),p},Yp.invalidateElements=function(e){for(var t=0;t=Lp*e.width&&this.retireTexture(e)},Yp.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>Rp&&e.fullnessChecks>=zp?En(t,e):e.fullnessChecks++},Yp.retireTexture=function(e){var t=this,n=e.height,r=t.getTextureQueue(n),i=this.lookup;En(r,e),e.retired=!0;for(var a=e.eleCaches,o=0;o=t)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Dn(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),En(i,o),r.push(o),o}},Yp.queueElement=function(e,t){var n=this,r=n.getElementQueue(),i=n.getElementKeyToQueue(),a=this.getKey(e),o=i[a];if(o)o.level=Math.max(o.level,t),o.eles.merge(e),o.reqs++,r.updateItem(o);else{var s={eles:e.spawn().merge(e),level:t,reqs:1,key:a};r.push(s),i[a]=s}},Yp.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=[],a=t.lookup,o=0;o0;o++){var s=n.pop(),c=s.key,l=s.eles[0],u=a.hasCache(l,s.level);if(r[c]=null,!u){i.push(s);var d=t.getBoundingBox(l);t.getElement(l,d,e,s.level,Kp.dequeue)}}return i},Yp.removeFromQueue=function(e){var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=this.getKey(e),a=r[i];a!=null&&(a.eles.length===1?(a.reqs=dn,n.updateItem(a),n.pop(),r[i]=null):a.eles.unmerge(e))},Yp.onDequeue=function(e){this.onDequeues.push(e)},Yp.offDequeue=function(e){En(this.onDequeues,e)},Yp.setupDequeueing=Ep.setupDequeueing({deqRedrawThreshold:Wp,deqCost:Bp,deqAvgCost:Vp,deqNoDrawCost:Hp,deqFastCost:Up,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=$p||n>Qp)return null}r.validateLayersElesOrdering(n,e);var o=r.layersByLevel,s=2**n,c=o[n]=o[n]||[],l,u=r.levelIsComplete(n,e),d,f=function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return d=o[t],!0},i=function(e){if(!d)for(var r=n+e;Zp<=r&&r<=Qp&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var s=c[a];s.invalid&&En(c,s)}};if(!u)f();else return c;var p=function(){if(!l){l=wr();for(var t=0;tlm||a>lm||i*a>cm)return null;var o=r.makeLayer(l,n);if(t!=null){var u=c.indexOf(t)+1;c.splice(u,0,o)}else (e.insert===void 0||e.insert)&&c.unshift(o);return o};if(r.skipping&&!a)return null;for(var h=null,g=e.length/Xp,_=!a,v=0;v=g||!Fr(h.bb,y.boundingBox()))&&(h=m({insert:!0,after:h}),!h))return null;d||_?r.queueLayer(h,y):r.drawEleInLayer(h,y,n,t),h.eles.push(y),x[n]=h}return d||(_?null:c)},fm.getEleLevelForLayerLevel=function(e,t){return e},fm.drawEleInLayer=function(e,t,n,r){var i=this,a=this.renderer,o=e.context,s=t.boundingBox();s.w===0||s.h===0||!t.visible()||(n=i.getEleLevelForLayerLevel(n,r),a.setImgSmoothing(o,!1),a.drawCachedElement(o,t,null,null,n,um),a.setImgSmoothing(o,!0))},fm.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||n.length===0)return!1;for(var r=0,i=0;i0||a.invalid)return!1;r+=a.eles.length}return r===t.length},fm.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){t=!0;break}}return t},fm.invalidateElements=function(e){var t=this;e.length!==0&&(t.lastInvalidationTime=Wt(),!(e.length===0||!t.haveLayers())&&t.updateElementsInLayers(e,function(e,n,r){t.invalidateLayer(e)}))},fm.invalidateLayer=function(e){if(this.lastInvalidationTime=Wt(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];En(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,o=this,s=t._private.rscratch;if(!(a&&!t.visible())&&!(s.badLine||s.allpts==null||isNaN(s.allpts[0]))){var c;n&&(c=n,e.translate(-c.x1,-c.y1));var l=a?t.pstyle(`opacity`).value:1,u=a?t.pstyle(`line-opacity`).value:1,d=t.pstyle(`curve-style`).value,f=t.pstyle(`line-style`).value,p=t.pstyle(`width`).pfValue,m=t.pstyle(`line-cap`).value,h=t.pstyle(`line-outline-width`).value,g=t.pstyle(`line-outline-color`).value,_=l*u,v=l*u,y=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_;d===`straight-triangle`?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=m,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,f),e.lineCap=`butt`)},b=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_;if(e.lineWidth=p+h,e.lineCap=m,h>0)o.colorStrokeStyle(e,g[0],g[1],g[2],n);else{e.lineCap=`butt`;return}d===`straight-triangle`?o.drawEdgeTrianglePath(t,e,s.allpts):(o.drawEdgePath(t,e,s.allpts,f),e.lineCap=`butt`)},x=function(){i&&o.drawEdgeOverlay(e,t)},S=function(){i&&o.drawEdgeUnderlay(e,t)},C=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:v;o.drawArrowheads(e,t,n)},w=function(){o.drawElementText(e,t,null,r)};if(e.lineJoin=`round`,t.pstyle(`ghost`).value===`yes`){var T=t.pstyle(`ghost-offset-x`).pfValue,E=t.pstyle(`ghost-offset-y`).pfValue,D=_*t.pstyle(`ghost-opacity`).value;e.translate(T,E),y(D),C(D),e.translate(-T,-E)}else b();S(),y(),C(),x(),w(),n&&e.translate(c.x1,c.y1)}};var Am=function(e){if(![`overlay`,`underlay`].includes(e))throw Error(`Invalid state`);return function(t,n){if(n.visible()){var r=n.pstyle(`${e}-opacity`).value;if(r!==0){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle(`${e}-padding`).pfValue,c=n.pstyle(`${e}-color`).value;t.lineWidth=s,o.edgeType===`self`&&!a?t.lineCap=`butt`:t.lineCap=`round`,i.colorStrokeStyle(t,c[0],c[1],c[2],r),i.drawEdgePath(n,t,o.allpts,`solid`)}}}};km.drawEdgeOverlay=Am(`overlay`),km.drawEdgeUnderlay=Am(`underlay`),km.drawEdgePath=function(e,t,n,r){var i=e._private.rscratch,a=t,o,s=!1,c=this.usePaths(),l=e.pstyle(`line-dash-pattern`).pfValue,u=e.pstyle(`line-dash-offset`).pfValue;if(c){var d=n.join(`$`);i.pathCacheKey&&i.pathCacheKey===d?(o=t=i.pathCache,s=!0):(o=t=new Path2D,i.pathCacheKey=d,i.pathCache=o)}if(a.setLineDash)switch(r){case`dotted`:a.setLineDash([1,1]);break;case`dashed`:a.setLineDash(l),a.lineDashOffset=u;break;case`solid`:a.setLineDash([]);break}if(!s&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case`bezier`:case`self`:case`compound`:case`multibezier`:for(var f=2;f+35&&arguments[5]!==void 0?arguments[5]:!0,o=this;if(r==null){if(a&&!o.eleTextBiggerThanMin(t))return}else if(r===!1)return;if(t.isNode()){var s=t.pstyle(`label`);if(!s||!s.value)return;e.textAlign=o.getLabelJustification(t),e.textBaseline=`bottom`}else{var c=t.element()._private.rscratch.badLine,l=t.pstyle(`label`),u=t.pstyle(`source-label`),d=t.pstyle(`target-label`);if(c||(!l||!l.value)&&(!u||!u.value)&&(!d||!d.value))return;e.textAlign=`center`,e.textBaseline=`bottom`}var f=!n,p;n&&(p=n,e.translate(-p.x1,-p.y1)),i==null?(o.drawText(e,t,null,f,a),t.isEdge()&&(o.drawText(e,t,`source`,f,a),o.drawText(e,t,`target`,f,a))):o.drawText(e,t,i,f,a),n&&e.translate(p.x1,p.y1)},Mm.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:!0,r=t.pstyle(`font-style`).strValue,i=t.pstyle(`font-size`).pfValue+`px`,a=t.pstyle(`font-family`).strValue,o=t.pstyle(`font-weight`).strValue,s=n?t.effectiveOpacity()*t.pstyle(`text-opacity`).value:1,c=t.pstyle(`text-outline-opacity`).value*s,l=t.pstyle(`color`).value,u=t.pstyle(`text-outline-color`).value;e.font=r+` `+o+` `+i+` `+a,e.lineJoin=`round`,this.colorFillStyle(e,l[0],l[1],l[2],s),this.colorStrokeStyle(e,u[0],u[1],u[2],c)};function Nm(e,t,n,r,i){var a=Math.min(r,i)/2,o=t+r/2,s=n+i/2;e.beginPath(),e.arc(o,s,a,0,Math.PI*2),e.closePath()}function Pm(e,t,n,r,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.quadraticCurveTo(t+r,n,t+r,n+o),e.lineTo(t+r,n+i-o),e.quadraticCurveTo(t+r,n+i,t+r-o,n+i),e.lineTo(t+o,n+i),e.quadraticCurveTo(t,n+i,t,n+i-o),e.lineTo(t,n+o),e.quadraticCurveTo(t,n,t+o,n),e.closePath()}Mm.getTextAngle=function(e,t){var n,r=e._private.rscratch,i=t?t+`-`:``,a=e.pstyle(i+`text-rotation`);if(a.strValue===`autorotate`){var o=kn(r,`labelAngle`,t);n=e.isEdge()?o:0}else n=a.strValue===`none`?0:a.pfValue;return n},Mm.drawText=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!(i&&(o===0||t.pstyle(`text-opacity`).value===0))){n===`main`&&(n=null);var s=kn(a,`labelX`,n),c=kn(a,`labelY`,n),l,u,d=this.getLabelText(t,n);if(d!=null&&d!==``&&!isNaN(s)&&!isNaN(c)){this.setupTextStyle(e,t,i);var f=n?n+`-`:``,p=kn(a,`labelWidth`,n),m=kn(a,`labelHeight`,n),h=t.pstyle(f+`text-margin-x`).pfValue,g=t.pstyle(f+`text-margin-y`).pfValue,_=t.isEdge(),v=t.pstyle(`text-halign`).value,y=t.pstyle(`text-valign`).value;_&&(v=`center`,y=`center`),s+=h,c+=g;var b=r?this.getTextAngle(t,n):0;switch(b!==0&&(l=s,u=c,e.translate(l,u),e.rotate(b),s=0,c=0),y){case`top`:break;case`center`:c+=m/2;break;case`bottom`:c+=m;break}var x=t.pstyle(`text-background-opacity`).value,S=t.pstyle(`text-border-opacity`).value,C=t.pstyle(`text-border-width`).pfValue,w=t.pstyle(`text-background-padding`).pfValue,T=t.pstyle(`text-background-shape`).strValue,E=T===`round-rectangle`||T===`roundrectangle`,D=T===`circle`,O=2;if(x>0||C>0&&S>0){var k=e.fillStyle,A=e.strokeStyle,j=e.lineWidth,M=t.pstyle(`text-background-color`).value,N=t.pstyle(`text-border-color`).value,P=t.pstyle(`text-border-style`).value,F=x>0,I=C>0&&S>0,L=s-w;switch(v){case`left`:L-=p;break;case`center`:L-=p/2;break}var R=c-m-w,z=p+2*w,B=m+2*w;if(F&&(e.fillStyle=`rgba(${M[0]},${M[1]},${M[2]},${x*o})`),I&&(e.strokeStyle=`rgba(${N[0]},${N[1]},${N[2]},${S*o})`,e.lineWidth=C,e.setLineDash))switch(P){case`dotted`:e.setLineDash([1,1]);break;case`dashed`:e.setLineDash([4,2]);break;case`double`:e.lineWidth=C/4,e.setLineDash([]);break;default:e.setLineDash([]);break}if(E?(e.beginPath(),Pm(e,L,R,z,B,O)):D?(e.beginPath(),Nm(e,L,R,z,B)):(e.beginPath(),e.rect(L,R,z,B)),F&&e.fill(),I&&e.stroke(),I&&P===`double`){var V=C/2;e.beginPath(),E?Pm(e,L+V,R+V,z-2*V,B-2*V,O):e.rect(L+V,R+V,z-2*V,B-2*V),e.stroke()}e.fillStyle=k,e.strokeStyle=A,e.lineWidth=j,e.setLineDash&&e.setLineDash([])}var H=2*t.pstyle(`text-outline-width`).pfValue;if(H>0&&(e.lineWidth=H),t.pstyle(`text-wrap`).value===`wrap`){var U=kn(a,`labelWrapCachedLines`,n),W=kn(a,`labelLineHeight`,n),G=p/2,K=this.getLabelJustification(t);switch(K===`auto`||(v===`left`?K===`left`?s+=-p:K===`center`&&(s+=-G):v===`center`?K===`left`?s+=-G:K===`right`&&(s+=G):v===`right`&&(K===`center`?s+=G:K===`right`&&(s+=p))),y){case`top`:c-=(U.length-1)*W;break;case`center`:case`bottom`:c-=(U.length-1)*W;break}for(var ee=0;ee0&&e.strokeText(U[ee],s,c),e.fillText(U[ee],s,c),c+=W}else H>0&&e.strokeText(d,s,c),e.fillText(d,s,c);b!==0&&(e.rotate(-b),e.translate(-l,-u))}}};var Fm={};Fm.drawNode=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,o=this,s,c,l=t._private,u=l.rscratch,d=t.position();if(!(!X(d.x)||!X(d.y))&&!(a&&!t.visible())){var f=a?t.effectiveOpacity():1,p=o.usePaths(),m,h=!1,g=t.padding();s=t.width()+2*g,c=t.height()+2*g;var _;n&&(_=n,e.translate(-_.x1,-_.y1));for(var v=t.pstyle(`background-image`).value,y=Array(v.length),b=Array(v.length),x=0,S=0;S0&&arguments[0]!==void 0?arguments[0]:D;o.eleFillStyle(e,t,n)},U=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:F;o.colorStrokeStyle(e,O[0],O[1],O[2],t)},W=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;o.colorStrokeStyle(e,L[0],L[1],L[2],t)},G=function(e,t,n,r){var i=o.nodePathCache=o.nodePathCache||[],a=nn(n===`polygon`?n+`,`+r.join(`,`):n,``+t,``+e,``+V),s=i[a],c,l=!1;return s==null?(c=new Path2D,i[a]=u.pathCache=c):(c=s,l=!0,u.pathCache=c),{path:c,cacheHit:l}},K=t.pstyle(`shape`).strValue,ee=t.pstyle(`shape-polygon-points`).pfValue;if(p){e.translate(d.x,d.y);var te=G(s,c,K,ee);m=te.path,h=te.cacheHit}var q=function(){if(!h){var n=d;p&&(n={x:0,y:0}),o.nodeShapes[o.getNodeShape(t)].draw(m||e,n.x,n.y,s,c,V,u)}p?e.fill(m):e.fill()},ne=function(){for(var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=l.backgrounding,a=0,s=0;s0&&arguments[0]!==void 0?arguments[0]:!1,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f;o.hasPie(t)&&(o.drawPie(e,t,r),n&&(p||o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,s,c,V,u)))},ie=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f;o.hasStripe(t)&&(e.save(),p?e.clip(u.pathCache):(o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,s,c,V,u),e.clip()),o.drawStripe(e,t,r),e.restore(),n&&(p||o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,s,c,V,u)))},ae=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f,n=(T>0?T:-T)*t,r=T>0?0:255;T!==0&&(o.colorFillStyle(e,r,r,r,n),p?e.fill(m):e.fill())},oe=function(){if(E>0){if(e.lineWidth=E,e.lineCap=j,e.lineJoin=A,e.setLineDash)switch(k){case`dotted`:e.setLineDash([1,1]);break;case`dashed`:e.setLineDash(N),e.lineDashOffset=P;break;case`solid`:case`double`:e.setLineDash([]);break}if(M!==`center`){if(e.save(),e.lineWidth*=2,M===`inside`)p?e.clip(m):e.clip();else{var t=new Path2D;t.rect(-s/2-E,-c/2-E,s+2*E,c+2*E),t.addPath(m),e.clip(t,`evenodd`)}p?e.stroke(m):e.stroke(),e.restore()}else p?e.stroke(m):e.stroke();if(k===`double`){e.lineWidth=E/3;var n=e.globalCompositeOperation;e.globalCompositeOperation=`destination-out`,p?e.stroke(m):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},se=function(){if(I>0){if(e.lineWidth=I,e.lineCap=`butt`,e.setLineDash)switch(R){case`dotted`:e.setLineDash([1,1]);break;case`dashed`:e.setLineDash([4,2]);break;case`solid`:case`double`:e.setLineDash([]);break}var n=d;p&&(n={x:0,y:0});var r=o.getNodeShape(t),i=E;M===`inside`&&(i=0),M===`outside`&&(i*=2);var a=(s+i+(I+B))/s,l=(c+i+(I+B))/c,u=s*a,f=c*l,m=o.nodeShapes[r].points,h;if(p&&(h=G(u,f,r,m).path),r===`ellipse`)o.drawEllipsePath(h||e,n.x,n.y,u,f);else if([`round-diamond`,`round-heptagon`,`round-hexagon`,`round-octagon`,`round-pentagon`,`round-polygon`,`round-triangle`,`round-tag`].includes(r)){var g=0,_=0,v=0;r===`round-diamond`?g=(i+B+I)*1.4:r===`round-heptagon`?(g=(i+B+I)*1.075,v=-(i/2+B+I)/35):r===`round-hexagon`?g=(i+B+I)*1.12:r===`round-pentagon`?(g=(i+B+I)*1.13,v=-(i/2+B+I)/15):r===`round-tag`?(g=(i+B+I)*1.12,_=(i/2+I+B)*.07):r===`round-triangle`&&(g=(i+B+I)*(Math.PI/2),v=-(i+B/2+I)/Math.PI),g!==0&&(a=(s+g)/s,u=s*a,[`round-hexagon`,`round-tag`].includes(r)||(l=(c+g)/c,f=c*l)),V=V===`auto`?ui(u,f):V;for(var y=u/2,b=f/2,x=V+(i+I+B)/2,S=Array(m.length/2),C=Array(m.length/2),w=0;w0){if(r||=n.position(),i==null||a==null){var f=n.padding();i=n.width()+2*f,a=n.height()+2*f}o.colorFillStyle(t,l[0],l[1],l[2],c),o.nodeShapes[u].draw(t,r.x,r.y,i+s*2,a+s*2,d),t.fill()}}}};Fm.drawNodeOverlay=Im(`overlay`),Fm.drawNodeUnderlay=Im(`underlay`),Fm.hasPie=function(e){return e=e[0],e._private.hasPie},Fm.hasStripe=function(e){return e=e[0],e._private.hasStripe},Fm.drawPie=function(e,t,n,r){t=t[0],r||=t.position();var i=t.cy().style(),a=t.pstyle(`pie-size`),o=t.pstyle(`pie-hole`),s=t.pstyle(`pie-start-angle`).pfValue,c=r.x,l=r.y,u=t.width(),d=t.height(),f=Math.min(u,d)/2,p,m=0;if(this.usePaths()&&(c=0,l=0),a.units===`%`?f*=a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2),o.units===`%`?p=f*o.pfValue:o.pfValue!==void 0&&(p=o.pfValue/2),!(p>=f))for(var h=1;h<=i.pieBackgroundN;h++){var g=t.pstyle(`pie-`+h+`-background-size`).value,_=t.pstyle(`pie-`+h+`-background-color`).value,v=t.pstyle(`pie-`+h+`-background-opacity`).value*n,y=g/100;y+m>1&&(y=1-m);var b=1.5*Math.PI+2*Math.PI*m;b+=s;var x=2*Math.PI*y,S=b+x;g===0||m>=1||m+y>1||(p===0?(e.beginPath(),e.moveTo(c,l),e.arc(c,l,f,b,S),e.closePath()):(e.beginPath(),e.arc(c,l,f,b,S),e.arc(c,l,p,S,b,!0),e.closePath()),this.colorFillStyle(e,_[0],_[1],_[2],v),e.fill(),m+=y)}},Fm.drawStripe=function(e,t,n,r){t=t[0],r||=t.position();var i=t.cy().style(),a=r.x,o=r.y,s=t.width(),c=t.height(),l=0,u=this.usePaths();e.save();var d=t.pstyle(`stripe-direction`).value,f=t.pstyle(`stripe-size`);switch(d){case`vertical`:break;case`righward`:e.rotate(-Math.PI/2);break}var p=s,m=c;f.units===`%`?(p*=f.pfValue,m*=f.pfValue):f.pfValue!==void 0&&(p=f.pfValue,m=f.pfValue),u&&(a=0,o=0),o-=p/2,a-=m/2;for(var h=1;h<=i.stripeBackgroundN;h++){var g=t.pstyle(`stripe-`+h+`-background-size`).value,_=t.pstyle(`stripe-`+h+`-background-color`).value,v=t.pstyle(`stripe-`+h+`-background-opacity`).value*n,y=g/100;y+l>1&&(y=1-l),!(g===0||l>=1||l+y>1)&&(e.beginPath(),e.rect(a,o+m*l,p,m*y),e.closePath(),this.colorFillStyle(e,_[0],_[1],_[2],v),e.fill(),l+=y)}e.restore()};var Lm={},Rm=100;Lm.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n},Lm.paintCache=function(e){for(var t=this.paintCaches=this.paintCaches||[],n=!0,r,i=0;it.minMbLowQualFrames&&(t.motionBlurPxRatio=t.mbPxRBlurry)),t.clearingMotionBlur&&(t.motionBlurPxRatio=1),t.textureDrawLastFrame&&!d&&(u[t.NODE]=!0,u[t.SELECT_BOX]=!0);var v=n.style(),y=n.zoom(),b=o===void 0?y:o,x=n.pan(),S={x:x.x,y:x.y},C={zoom:y,pan:{x:x.x,y:x.y}},w=t.prevViewport;!(w===void 0||C.zoom!==w.zoom||C.pan.x!==w.pan.x||C.pan.y!==w.pan.y)&&!(h&&!m)&&(t.motionBlurPxRatio=1),s&&(S=s),b*=c,S.x*=c,S.y*=c;var T=t.getCachedZSortedEles();function E(e,n,r,i,a){var o=e.globalCompositeOperation;e.globalCompositeOperation=`destination-out`,t.colorFillStyle(e,255,255,255,t.motionBlurTransparency),e.fillRect(n,r,i,a),e.globalCompositeOperation=o}function D(e,n){var a,c,u,d;!t.clearingMotionBlur&&(e===l.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||e===l.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])?(a={x:x.x*p,y:x.y*p},c=y*p,u=t.canvasWidth*p,d=t.canvasHeight*p):(a=S,c=b,u=t.canvasWidth,d=t.canvasHeight),e.setTransform(1,0,0,1,0,0),n===`motionBlur`?E(e,0,0,u,d):!r&&(n===void 0||n)&&e.clearRect(0,0,u,d),i||(e.translate(a.x,a.y),e.scale(c,c)),s&&e.translate(s.x,s.y),o&&e.scale(o,o)}if(d||(t.textureDrawLastFrame=!1),d){if(t.textureDrawLastFrame=!0,!t.textureCache){t.textureCache={},t.textureCache.bb=n.mutableElements().boundingBox(),t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var O=t.data.bufferContexts[t.TEXTURE_BUFFER];O.setTransform(1,0,0,1,0,0),O.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult),t.render({forcedContext:O,drawOnlyNodeLayer:!0,forcedPxRatio:c*t.textureMult});var C=t.textureCache.viewport={zoom:n.zoom(),pan:n.pan(),width:t.canvasWidth,height:t.canvasHeight};C.mpan={x:(0-C.pan.x)/C.zoom,y:(0-C.pan.y)/C.zoom}}u[t.DRAG]=!1,u[t.NODE]=!1;var k=l.contexts[t.NODE],A=t.textureCache.texture,C=t.textureCache.viewport;k.setTransform(1,0,0,1,0,0),f?E(k,0,0,C.width,C.height):k.clearRect(0,0,C.width,C.height);var j=v.core(`outside-texture-bg-color`).value,M=v.core(`outside-texture-bg-opacity`).value;t.colorFillStyle(k,j[0],j[1],j[2],M),k.fillRect(0,0,C.width,C.height);var y=n.zoom();D(k,!1),k.clearRect(C.mpan.x,C.mpan.y,C.width/C.zoom/c,C.height/C.zoom/c),k.drawImage(A,C.mpan.x,C.mpan.y,C.width/C.zoom/c,C.height/C.zoom/c)}else t.textureOnViewport&&!r&&(t.textureCache=null);var N=n.extent(),P=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated(),F=t.hideEdgesOnViewport&&P,I=[];if(I[t.NODE]=!u[t.NODE]&&f&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur,I[t.NODE]&&(t.clearedForMotionBlur[t.NODE]=!0),I[t.DRAG]=!u[t.DRAG]&&f&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur,I[t.DRAG]&&(t.clearedForMotionBlur[t.DRAG]=!0),u[t.NODE]||i||a||I[t.NODE]){var L=f&&!I[t.NODE]&&p!==1,k=r||(L?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:l.contexts[t.NODE]);D(k,f&&!L?`motionBlur`:void 0),F?t.drawCachedNodes(k,T.nondrag,c,N):t.drawLayeredElements(k,T.nondrag,c,N),t.debug&&t.drawDebugPoints(k,T.nondrag),!i&&!f&&(u[t.NODE]=!1)}if(!a&&(u[t.DRAG]||i||I[t.DRAG])){var L=f&&!I[t.DRAG]&&p!==1,k=r||(L?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:l.contexts[t.DRAG]);D(k,f&&!L?`motionBlur`:void 0),F?t.drawCachedNodes(k,T.drag,c,N):t.drawCachedElements(k,T.drag,c,N),t.debug&&t.drawDebugPoints(k,T.drag),!i&&!f&&(u[t.DRAG]=!1)}if(this.drawSelectionRectangle(e,D),f&&p!==1){var R=l.contexts[t.NODE],z=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE],B=l.contexts[t.DRAG],V=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG],H=function(e,n,r){e.setTransform(1,0,0,1,0,0),r||!_?e.clearRect(0,0,t.canvasWidth,t.canvasHeight):E(e,0,0,t.canvasWidth,t.canvasHeight);var i=p;e.drawImage(n,0,0,t.canvasWidth*i,t.canvasHeight*i,0,0,t.canvasWidth,t.canvasHeight)};(u[t.NODE]||I[t.NODE])&&(H(R,z,I[t.NODE]),u[t.NODE]=!1),(u[t.DRAG]||I[t.DRAG])&&(H(B,V,I[t.DRAG]),u[t.DRAG]=!1)}t.prevViewport=C,t.clearingMotionBlur&&(t.clearingMotionBlur=!1,t.motionBlurCleared=!0,t.motionBlur=!0),f&&(t.motionBlurTimeout=setTimeout(function(){t.motionBlurTimeout=null,t.clearedForMotionBlur[t.NODE]=!1,t.clearedForMotionBlur[t.DRAG]=!1,t.motionBlur=!1,t.clearingMotionBlur=!d,t.mbFrames=0,u[t.NODE]=!0,u[t.DRAG]=!0,t.redraw()},Rm)),r||n.emit(`render`)};var zm;Lm.drawSelectionRectangle=function(e,t){var n=this,r=n.cy,i=n.data,a=r.style(),o=e.drawOnlyNodeLayer,s=e.drawAllLayers,c=i.canvasNeedsRedraw,l=e.forcedContext;if(n.showFps||!o&&c[n.SELECT_BOX]&&!s){var u=l||i.contexts[n.SELECT_BOX];if(t(u),n.selection[4]==1&&(n.hoverData.selecting||n.touchData.selecting)){var d=n.cy.zoom(),f=a.core(`selection-box-border-width`).value/d;u.lineWidth=f,u.fillStyle=`rgba(`+a.core(`selection-box-color`).value[0]+`,`+a.core(`selection-box-color`).value[1]+`,`+a.core(`selection-box-color`).value[2]+`,`+a.core(`selection-box-opacity`).value+`)`,u.fillRect(n.selection[0],n.selection[1],n.selection[2]-n.selection[0],n.selection[3]-n.selection[1]),f>0&&(u.strokeStyle=`rgba(`+a.core(`selection-box-border-color`).value[0]+`,`+a.core(`selection-box-border-color`).value[1]+`,`+a.core(`selection-box-border-color`).value[2]+`,`+a.core(`selection-box-opacity`).value+`)`,u.strokeRect(n.selection[0],n.selection[1],n.selection[2]-n.selection[0],n.selection[3]-n.selection[1]))}if(i.bgActivePosistion&&!n.hoverData.selecting){var d=n.cy.zoom(),p=i.bgActivePosistion;u.fillStyle=`rgba(`+a.core(`active-bg-color`).value[0]+`,`+a.core(`active-bg-color`).value[1]+`,`+a.core(`active-bg-color`).value[2]+`,`+a.core(`active-bg-opacity`).value+`)`,u.beginPath(),u.arc(p.x,p.y,a.core(`active-bg-size`).pfValue/d,0,2*Math.PI),u.fill()}var m=n.lastRedrawTime;if(n.showFps&&m){m=Math.round(m);var h=Math.round(1e3/m),g=`1 frame = `+m+` ms = `+h+` fps`;u.setTransform(1,0,0,1,0,0),u.fillStyle=`rgba(255, 0, 0, 0.75)`,u.strokeStyle=`rgba(255, 0, 0, 0.75)`,u.font=`30px Arial`,zm||=u.measureText(g).actualBoundingBoxAscent,u.fillText(g,0,zm),u.strokeRect(0,zm+10,250,20),u.fillRect(0,zm+10,250*Math.min(h/60,1),20)}s||(c[n.SELECT_BOX]=!1)}};function Bm(e,t,n){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw Error(e.getShaderInfoLog(r));return r}function Vm(e,t,n){var r=Bm(e,e.VERTEX_SHADER,t),i=Bm(e,e.FRAGMENT_SHADER,n),a=e.createProgram();if(e.attachShader(a,r),e.attachShader(a,i),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS))throw Error(`Could not initialize shaders`);return a}function Hm(e,t,n){n===void 0&&(n=t);var r=e.makeOffscreenCanvas(t,n),i=r.context=r.getContext(`2d`);return r.clear=function(){return i.clearRect(0,0,r.width,r.height)},r.clear(),r}function Um(e){var t=e.pixelRatio,n=e.cy.zoom(),r=e.cy.pan();return{zoom:n*t,pan:{x:r.x*t,y:r.y*t}}}function Wm(e){var t=e.pixelRatio;return e.cy.zoom()*t}function Gm(e,t,n,r,i){var a=r*n+t.x,o=i*n+t.y;return o=Math.round(e.canvasHeight-o),[a,o]}function Km(e,t){return t.picking?!0:e.pstyle(`background-fill`).value!==`solid`||e.pstyle(`background-image`).strValue!==`none`?!1:e.pstyle(`border-width`).value===0||e.pstyle(`border-opacity`).value===0?!0:e.pstyle(`border-style`).value===`solid`}function qm(e,t){if(e.length!==t.length)return!1;for(var n=0;n>0&255)/255,n[1]=(e>>8&255)/255,n[2]=(e>>16&255)/255,n[3]=(e>>24&255)/255,n}function Xm(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}function Zm(e,t){var n=e.createTexture();return n.buffer=function(t){e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.generateMipmap(e.TEXTURE_2D),e.bindTexture(e.TEXTURE_2D,null)},n.deleteTexture=function(){e.deleteTexture(n)},n}function Qm(e,t){switch(t){case`float`:return[1,e.FLOAT,4];case`vec2`:return[2,e.FLOAT,4];case`vec3`:return[3,e.FLOAT,4];case`vec4`:return[4,e.FLOAT,4];case`int`:return[1,e.INT,4];case`ivec2`:return[2,e.INT,4]}}function $m(e,t,n){switch(t){case e.FLOAT:return new Float32Array(n);case e.INT:return new Int32Array(n)}}function eh(e,t,n,r,i,a){switch(t){case e.FLOAT:return new Float32Array(n.buffer,a*r,i);case e.INT:return new Int32Array(n.buffer,a*r,i)}}function th(e,t,n,r){var i=G(Qm(e,t),2),a=i[0],o=i[1],s=$m(e,o,r),c=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,c),e.bufferData(e.ARRAY_BUFFER,s,e.STATIC_DRAW),o===e.FLOAT?e.vertexAttribPointer(n,a,o,!1,0,0):o===e.INT&&e.vertexAttribIPointer(n,a,o,0,0),e.enableVertexAttribArray(n),e.bindBuffer(e.ARRAY_BUFFER,null),c}function nh(e,t,n,r){var i=G(Qm(e,n),3),a=i[0],o=i[1],s=i[2],c=$m(e,o,t*a),l=a*s,u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u),e.bufferData(e.ARRAY_BUFFER,t*l,e.DYNAMIC_DRAW),e.enableVertexAttribArray(r),o===e.FLOAT?e.vertexAttribPointer(r,a,o,!1,l,0):o===e.INT&&e.vertexAttribIPointer(r,a,o,l,0),e.vertexAttribDivisor(r,1),e.bindBuffer(e.ARRAY_BUFFER,null);for(var d=Array(t),f=0;fi&&(a=i/t,o=t*a,s=n*a),{scale:a,texW:o,texH:s}}},{key:`draw`,value:function(e,t,n){var r=this;if(this.locked)throw Error(`can't draw, atlas is locked`);var i=this.texSize,a=this.texRows,o=this.texHeight,s=this.getScale(t),c=s.scale,l=s.texW,u=s.texH,d=function(e,r){if(n&&r){var i=r.context,a=e.x,s=e.row,l=a,u=o*s;i.save(),i.translate(l,u),i.scale(c,c),n(i,t),i.restore()}},f=[null,null],p=function(){d(r.freePointer,r.canvas),f[0]={x:r.freePointer.x,y:r.freePointer.row*o,w:l,h:u},f[1]={x:r.freePointer.x+l,y:r.freePointer.row*o,w:0,h:u},r.freePointer.x+=l,r.freePointer.x==i&&(r.freePointer.x=0,r.freePointer.row++)},m=function(){var e=r.scratch,t=r.canvas;e.clear(),d({x:0,row:0},e);var n=i-r.freePointer.x,a=l-n,s=o,c=r.freePointer.x,p=r.freePointer.row*o,m=n;t.context.drawImage(e,0,0,m,s,c,p,m,s),f[0]={x:c,y:p,w:m,h:u};var h=n,g=(r.freePointer.row+1)*o,_=a;t&&t.context.drawImage(e,h,0,_,s,0,g,_,s),f[1]={x:0,y:g,w:_,h:u},r.freePointer.x=a,r.freePointer.row++},h=function(){r.freePointer.x=0,r.freePointer.row++};if(this.freePointer.x+l<=i)p();else if(this.freePointer.row>=a-1)return!1;else this.freePointer.x===i?(h(),p()):this.enableWrapping?m():(h(),p());return this.keyToLocation.set(e,f),this.needsBuffer=!0,f}},{key:`getOffsets`,value:function(e){return this.keyToLocation.get(e)}},{key:`isEmpty`,value:function(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:`canFit`,value:function(e){if(this.locked)return!1;var t=this.texSize,n=this.texRows,r=this.getScale(e).texW;return this.freePointer.x+r>t?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},r=n.forceRedraw,i=r===void 0?!1:r,a=n.filterEle,o=a===void 0?function(){return!0}:a,s=n.filterType,c=s===void 0?function(){return!0}:s,l=!1,u=!1,d=z(e),f;try{for(d.s();!(f=d.n()).done;){var p=f.value;if(o(p)){var m=z(this.renderTypes.values()),h;try{var g=function(){var e=h.value,n=e.type;if(c(n)){var r=t.collections.get(e.collection),a=e.getKey(p),o=Array.isArray(a)?a:[a];if(i)o.forEach(function(e){return r.markKeyForGC(e)}),u=!0;else{var s=e.getID?e.getID(p):p.id(),d=t._key(n,s),f=t.typeAndIdToKey.get(d);f!==void 0&&!qm(o,f)&&(l=!0,t.typeAndIdToKey.delete(d),f.forEach(function(e){return r.markKeyForGC(e)}))}}};for(m.s();!(h=m.n()).done;)g()}catch(e){m.e(e)}finally{m.f()}}}}catch(e){d.e(e)}finally{d.f()}return u&&(this.gc(),l=!1),l}},{key:`gc`,value:function(){var e=z(this.collections.values()),t;try{for(e.s();!(t=e.n()).done;)t.value.gc()}catch(t){e.e(t)}finally{e.f()}}},{key:`getOrCreateAtlas`,value:function(e,t,n,r){var i=this.renderTypes.get(t),a=this.collections.get(i.collection),o=!1,s=a.draw(r,n,function(t){i.drawClipped?(t.save(),t.beginPath(),t.rect(0,0,n.w,n.h),t.clip(),i.drawElement(t,e,n,!0,!0),t.restore()):i.drawElement(t,e,n,!0,!0),o=!0});if(o){var c=i.getID?i.getID(e):e.id(),l=this._key(t,c);this.typeAndIdToKey.has(l)?this.typeAndIdToKey.get(l).push(r):this.typeAndIdToKey.set(l,[r])}return s}},{key:`getAtlasInfo`,value:function(e,t){var n=this,r=this.renderTypes.get(t),i=r.getKey(e);return(Array.isArray(i)?i:[i]).map(function(i){var a=r.getBoundingBox(e,i),o=n.getOrCreateAtlas(e,t,a,i),s=G(o.getOffsets(i),2),c=s[0];return{atlas:o,tex:c,tex1:c,tex2:s[1],bb:a}})}},{key:`getDebugInfo`,value:function(){var e=[],t=z(this.collections),n;try{for(t.s();!(n=t.n()).done;){var r=G(n.value,2),i=r[0],a=r[1].getCounts(),o=a.keyCount,s=a.atlasCount;e.push({type:i,keyCount:o,atlasCount:s})}}catch(e){t.e(e)}finally{t.f()}return e}}])}(),_h=function(){function e(t){I(this,e),this.globalOptions=t,this.atlasSize=t.webglTexSize,this.maxAtlasesPerBatch=t.webglTexPerBatch,this.batchAtlases=[]}return R(e,[{key:`getMaxAtlasesPerBatch`,value:function(){return this.maxAtlasesPerBatch}},{key:`getAtlasSize`,value:function(){return this.atlasSize}},{key:`getIndexArray`,value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(e,t){return t})}},{key:`startBatch`,value:function(){this.batchAtlases=[]}},{key:`getAtlasCount`,value:function(){return this.batchAtlases.length}},{key:`getAtlases`,value:function(){return this.batchAtlases}},{key:`canAddToCurrentBatch`,value:function(e){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(e):!0}},{key:`getAtlasIndexForBatch`,value:function(e){var t=this.batchAtlases.indexOf(e);if(t<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw Error(`cannot add more atlases to batch`);this.batchAtlases.push(e),t=this.batchAtlases.length-1}return t}}])}(),vh=` - float circleSD(vec2 p, float r) { - return distance(vec2(0), p) - r; // signed distance - } -`,yh=` - float rectangleSD(vec2 p, vec2 b) { - vec2 d = abs(p)-b; - return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); - } -`,bh=` - float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { - cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; - cr.x = (p.y > 0.0) ? cr.x : cr.y; - vec2 q = abs(p) - b + cr.x; - return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; - } -`,xh=` - float ellipseSD(vec2 p, vec2 ab) { - p = abs( p ); // symmetry - - // find root with Newton solver - vec2 q = ab*(p-ab); - float w = (q.x1.0) ? d : -d; - } -`,Sh={SCREEN:{name:`screen`,screen:!0},PICKING:{name:`picking`,picking:!0}},Ch={IGNORE:1,USE_BB:2},wh=0,Th=1,Eh=2,Dh=3,Oh=4,kh=5,Ah=6,jh=7,Mh=function(){function e(t,n,r){I(this,e),this.r=t,this.gl=n,this.maxInstances=r.webglBatchSize,this.atlasSize=r.webglTexSize,this.bgColor=r.bgColor,this.debug=r.webglDebug,this.batchDebugInfo=[],r.enableWrapping=!0,r.createTextureCanvas=Hm,this.atlasManager=new gh(t,r),this.batchManager=new _h(r),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Sh.SCREEN),this.pickingProgram=this._createShaderProgram(Sh.PICKING),this.vao=this._createVAO()}return R(e,[{key:`addAtlasCollection`,value:function(e,t){this.atlasManager.addAtlasCollection(e,t)}},{key:`addTextureAtlasRenderType`,value:function(e,t){this.atlasManager.addRenderType(e,t)}},{key:`addSimpleShapeRenderType`,value:function(e,t){this.simpleShapeOptions.set(e,t)}},{key:`invalidate`,value:function(e){var t=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}).type,n=this.atlasManager;return t?n.invalidate(e,{filterType:function(e){return e===t},forceRedraw:!0}):n.invalidate(e)}},{key:`gc`,value:function(){this.atlasManager.gc()}},{key:`_createShaderProgram`,value:function(e){var t=this.gl,n=`#version 300 es - precision highp float; - - uniform mat3 uPanZoomMatrix; - uniform int uAtlasSize; - - // instanced - in vec2 aPosition; // a vertex from the unit square - - in mat3 aTransform; // used to transform verticies, eg into a bounding box - in int aVertType; // the type of thing we are rendering - - // the z-index that is output when using picking mode - in vec4 aIndex; - - // For textures - in int aAtlasId; // which shader unit/atlas to use - in vec4 aTex; // x/y/w/h of texture in atlas - - // for edges - in vec4 aPointAPointB; - in vec4 aPointCPointD; - in vec2 aLineWidth; // also used for node border width - - // simple shapes - in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] - in vec4 aColor; // also used for edges - in vec4 aBorderColor; // aLineWidth is used for border width - - // output values passed to the fragment shader - out vec2 vTexCoord; - out vec4 vColor; - out vec2 vPosition; - // flat values are not interpolated - flat out int vAtlasId; - flat out int vVertType; - flat out vec2 vTopRight; - flat out vec2 vBotLeft; - flat out vec4 vCornerRadius; - flat out vec4 vBorderColor; - flat out vec2 vBorderWidth; - flat out vec4 vIndex; - - void main(void) { - int vid = gl_VertexID; - vec2 position = aPosition; // TODO make this a vec3, simplifies some code below - - if(aVertType == ${wh}) { - float texX = aTex.x; // texture coordinates - float texY = aTex.y; - float texW = aTex.z; - float texH = aTex.w; - - if(vid == 1 || vid == 2 || vid == 4) { - texX += texW; - } - if(vid == 2 || vid == 4 || vid == 5) { - texY += texH; - } - - float d = float(uAtlasSize); - vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 - - gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); - } - else if(aVertType == ${Oh} || aVertType == ${jh} - || aVertType == ${kh} || aVertType == ${Ah}) { // simple shapes - - // the bounding box is needed by the fragment shader - vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat - vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat - vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated - - // calculations are done in the fragment shader, just pass these along - vColor = aColor; - vCornerRadius = aCornerRadius; - vBorderColor = aBorderColor; - vBorderWidth = aLineWidth; - - gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); - } - else if(aVertType == ${Th}) { - vec2 source = aPointAPointB.xy; - vec2 target = aPointAPointB.zw; - - // adjust the geometry so that the line is centered on the edge - position.y = position.y - 0.5; - - // stretch the unit square into a long skinny rectangle - vec2 xBasis = target - source; - vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); - vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; - - gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); - vColor = aColor; - } - else if(aVertType == ${Eh}) { - vec2 pointA = aPointAPointB.xy; - vec2 pointB = aPointAPointB.zw; - vec2 pointC = aPointCPointD.xy; - vec2 pointD = aPointCPointD.zw; - - // adjust the geometry so that the line is centered on the edge - position.y = position.y - 0.5; - - vec2 p0, p1, p2, pos; - if(position.x == 0.0) { // The left side of the unit square - p0 = pointA; - p1 = pointB; - p2 = pointC; - pos = position; - } else { // The right side of the unit square, use same approach but flip the geometry upside down - p0 = pointD; - p1 = pointC; - p2 = pointB; - pos = vec2(0.0, -position.y); - } - - vec2 p01 = p1 - p0; - vec2 p12 = p2 - p1; - vec2 p21 = p1 - p2; - - // Find the normal vector. - vec2 tangent = normalize(normalize(p12) + normalize(p01)); - vec2 normal = vec2(-tangent.y, tangent.x); - - // Find the vector perpendicular to p0 -> p1. - vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); - - // Determine the bend direction. - float sigma = sign(dot(p01 + p21, normal)); - float width = aLineWidth[0]; - - if(sign(pos.y) == -sigma) { - // This is an intersecting vertex. Adjust the position so that there's no overlap. - vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); - gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); - } else { - // This is a non-intersecting vertex. Treat it like a mitre join. - vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); - gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); - } - - vColor = aColor; - } - else if(aVertType == ${Dh} && vid < 3) { - // massage the first triangle into an edge arrow - if(vid == 0) - position = vec2(-0.15, -0.3); - if(vid == 1) - position = vec2( 0.0, 0.0); - if(vid == 2) - position = vec2( 0.15, -0.3); - - gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); - vColor = aColor; - } - else { - gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space - } - - vAtlasId = aAtlasId; - vVertType = aVertType; - vIndex = aIndex; - } - `,r=this.batchManager.getIndexArray(),i=Vm(t,n,`#version 300 es - precision highp float; - - // declare texture unit for each texture atlas in the batch - ${r.map(function(e){return`uniform sampler2D uTexture${e};`}).join(` - `)} - - uniform vec4 uBGColor; - uniform float uZoom; - - in vec2 vTexCoord; - in vec4 vColor; - in vec2 vPosition; // model coordinates - - flat in int vAtlasId; - flat in vec4 vIndex; - flat in int vVertType; - flat in vec2 vTopRight; - flat in vec2 vBotLeft; - flat in vec4 vCornerRadius; - flat in vec4 vBorderColor; - flat in vec2 vBorderWidth; - - out vec4 outColor; - - ${vh} - ${yh} - ${bh} - ${xh} - - vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha - return vec4( - top.rgb + (bot.rgb * (1.0 - top.a)), - top.a + (bot.a * (1.0 - top.a)) - ); - } - - vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance - // scale to the zoom level so that borders don't look blurry when zoomed in - // note 1.5 is an aribitrary value chosen because it looks good - return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); - } - - void main(void) { - if(vVertType == ${wh}) { - // look up the texel from the texture unit - ${r.map(function(e){return`if(vAtlasId == ${e}) outColor = texture(uTexture${e}, vTexCoord);`}).join(` - else `)} - } - else if(vVertType == ${Dh}) { - // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; - outColor = blend(vColor, uBGColor); - outColor.a = 1.0; // make opaque, masks out line under arrow - } - else if(vVertType == ${Oh} && vBorderWidth == vec2(0.0)) { // simple rectangle with no border - outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done - } - else if(vVertType == ${Oh} || vVertType == ${jh} - || vVertType == ${kh} || vVertType == ${Ah}) { // use SDF - - float outerBorder = vBorderWidth[0]; - float innerBorder = vBorderWidth[1]; - float borderPadding = outerBorder * 2.0; - float w = vTopRight.x - vBotLeft.x - borderPadding; - float h = vTopRight.y - vBotLeft.y - borderPadding; - vec2 b = vec2(w/2.0, h/2.0); // half width, half height - vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center - - float d; // signed distance - if(vVertType == ${Oh}) { - d = rectangleSD(p, b); - } else if(vVertType == ${jh} && w == h) { - d = circleSD(p, b.x); // faster than ellipse - } else if(vVertType == ${jh}) { - d = ellipseSD(p, b); - } else { - d = roundRectangleSD(p, b, vCornerRadius.wzyx); - } - - // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling - // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box - if(d > 0.0) { - if(d > outerBorder) { - discard; - } else { - outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); - } - } else { - if(d > innerBorder) { - vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; - vec4 innerBorderColor = blend(vBorderColor, vColor); - outColor = distInterp(innerBorderColor, outerColor, d); - } - else { - vec4 outerColor; - if(innerBorder == 0.0 && outerBorder == 0.0) { - outerColor = vec4(0); - } else if(innerBorder == 0.0) { - outerColor = vBorderColor; - } else { - outerColor = blend(vBorderColor, vColor); - } - outColor = distInterp(vColor, outerColor, d - innerBorder); - } - } - } - else { - outColor = vColor; - } - - ${e.picking?`if(outColor.a == 0.0) discard; - else outColor = vIndex;`:``} - } - `);i.aPosition=t.getAttribLocation(i,`aPosition`),i.aIndex=t.getAttribLocation(i,`aIndex`),i.aVertType=t.getAttribLocation(i,`aVertType`),i.aTransform=t.getAttribLocation(i,`aTransform`),i.aAtlasId=t.getAttribLocation(i,`aAtlasId`),i.aTex=t.getAttribLocation(i,`aTex`),i.aPointAPointB=t.getAttribLocation(i,`aPointAPointB`),i.aPointCPointD=t.getAttribLocation(i,`aPointCPointD`),i.aLineWidth=t.getAttribLocation(i,`aLineWidth`),i.aColor=t.getAttribLocation(i,`aColor`),i.aCornerRadius=t.getAttribLocation(i,`aCornerRadius`),i.aBorderColor=t.getAttribLocation(i,`aBorderColor`),i.uPanZoomMatrix=t.getUniformLocation(i,`uPanZoomMatrix`),i.uAtlasSize=t.getUniformLocation(i,`uAtlasSize`),i.uBGColor=t.getUniformLocation(i,`uBGColor`),i.uZoom=t.getUniformLocation(i,`uZoom`),i.uTextures=[];for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:Sh.SCREEN;this.panZoomMatrix=e,this.renderTarget=t,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:`startBatch`,value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:`endFrame`,value:function(){this.endBatch()}},{key:`_isVisible`,value:function(e,t){return e.visible()?t&&t.isVisible?t.isVisible(e):!0:!1}},{key:`drawTexture`,value:function(e,t,n){var r=this.atlasManager,i=this.batchManager,a=r.getRenderTypeOpts(n);if(this._isVisible(e,a)&&!(e.isEdge()&&!this._isValidEdge(e))){if(this.renderTarget.picking&&a.getTexPickingMode){var o=a.getTexPickingMode(e);if(o===Ch.IGNORE)return;if(o==Ch.USE_BB){this.drawPickingRectangle(e,t,n);return}}var s=z(r.getAtlasInfo(e,n)),c;try{for(s.s();!(c=s.n()).done;){var l=c.value,u=l.atlas,d=l.tex1,f=l.tex2;i.canAddToCurrentBatch(u)||this.endBatch();for(var p=i.getAtlasIndexForBatch(u),m=0,h=[[d,!0],[f,!1]];m=this.maxInstances&&this.endBatch()}}}}catch(e){s.e(e)}finally{s.f()}}}},{key:`setTransformMatrix`,value:function(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=0;if(n.shapeProps&&n.shapeProps.padding&&(a=e.pstyle(n.shapeProps.padding).pfValue),r){var o=r.bb,s=r.tex1,c=r.tex2,l=s.w/(s.w+c.w);i||(l=1-l);var u=this._getAdjustedBB(o,a,i,l);this._applyTransformMatrix(t,u,n,e)}else{var d=n.getBoundingBox(e),f=this._getAdjustedBB(d,a,!0,1);this._applyTransformMatrix(t,f,n,e)}}},{key:`_applyTransformMatrix`,value:function(e,t,n,r){var i,a;sh(e);var o=n.getRotation?n.getRotation(r):0;if(o!==0){var s=n.getRotationPoint(r),c=s.x,l=s.y;lh(e,e,[c,l]),uh(e,e,o);var u=n.getRotationOffset(r);i=u.x+(t.xOffset||0),a=u.y+(t.yOffset||0)}else i=t.x1,a=t.y1;lh(e,e,[i,a]),dh(e,e,[t.w,t.h])}},{key:`_getAdjustedBB`,value:function(e,t,n,r){var i=e.x1,a=e.y1,o=e.w,s=e.h,c=e.yOffset;t&&(i-=t,a-=t,o+=2*t,s+=2*t);var l=0,u=o*r;return n&&r<1?o=u:!n&&r<1&&(l=o-u,i+=l,o=u),{x1:i,y1:a,w:o,h:s,xOffset:l,yOffset:c}}},{key:`drawPickingRectangle`,value:function(e,t,n){var r=this.atlasManager.getRenderTypeOpts(n),i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Oh,Ym(t,this.indexBuffer.getView(i)),Jm([0,0,0],1,this.colorBuffer.getView(i));var a=this.transformBuffer.getMatrixView(i);this.setTransformMatrix(e,a,r),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},{key:`drawNode`,value:function(e,t,n){var r=this.simpleShapeOptions.get(n);if(this._isVisible(e,r)){var i=r.shapeProps,a=this._getVertTypeForShape(e,i.shape);if(a===void 0||r.isSimple&&!r.isSimple(e,this.renderTarget)){this.drawTexture(e,t,n);return}var o=this.instanceCount;if(this.vertTypeBuffer.getView(o)[0]=a,a===kh||a===Ah){var s=r.getBoundingBox(e),c=this._getCornerRadius(e,i.radius,s),l=this.cornerRadiusBuffer.getView(o);l[0]=c,l[1]=c,l[2]=c,l[3]=c,a===Ah&&(l[0]=0,l[2]=0)}Ym(t,this.indexBuffer.getView(o));var u=this.renderTarget.picking?1:e.pstyle(i.opacity).value,d=e.pstyle(i.color).value;Jm(d,u,this.colorBuffer.getView(o));var f=this.lineWidthBuffer.getView(o);if(f[0]=0,f[1]=0,i.border){var p=e.pstyle(`border-width`).value;if(p>0){var m=e.pstyle(`border-color`).value,h=e.pstyle(`border-opacity`).value;Jm(m,h,this.borderColorBuffer.getView(o));var g=e.pstyle(`border-position`).value;if(g===`inside`)f[0]=0,f[1]=-p;else if(g===`outside`)f[0]=p,f[1]=0;else{var _=p/2;f[0]=_,f[1]=-_}}}var v=this.transformBuffer.getMatrixView(o);this.setTransformMatrix(e,v,r),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:`_getVertTypeForShape`,value:function(e,t){switch(e.pstyle(t).value){case`rectangle`:return Oh;case`ellipse`:return jh;case`roundrectangle`:case`round-rectangle`:return kh;case`bottom-round-rectangle`:return Ah;default:return}}},{key:`_getCornerRadius`,value:function(e,t,n){var r=n.w,i=n.h;if(e.pstyle(t).value===`auto`)return li(r,i);var a=e.pstyle(t).pfValue,o=r/2,s=i/2;return Math.min(a,s,o)}},{key:`drawEdgeArrow`,value:function(e,t,n){if(e.visible()){var r=e._private.rscratch,i,a,o;if(n===`source`?(i=r.arrowStartX,a=r.arrowStartY,o=r.srcArrowAngle):(i=r.arrowEndX,a=r.arrowEndY,o=r.tgtArrowAngle),!(isNaN(i)||i==null||isNaN(a)||a==null||isNaN(o)||o==null)&&e.pstyle(n+`-arrow-shape`).value!==`none`){var s=e.pstyle(n+`-arrow-color`).value,c=e.pstyle(`opacity`).value*e.pstyle(`line-opacity`).value,l=e.pstyle(`width`).pfValue,u=e.pstyle(`arrow-scale`).value,d=this.r.getArrowWidth(l,u),f=this.instanceCount,p=this.transformBuffer.getMatrixView(f);sh(p),lh(p,p,[i,a]),dh(p,p,[d,d]),uh(p,p,o),this.vertTypeBuffer.getView(f)[0]=Dh,Ym(t,this.indexBuffer.getView(f)),Jm(s,c,this.colorBuffer.getView(f)),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:`drawEdgeLine`,value:function(e,t){if(e.visible()){var n=this._getEdgePoints(e);if(n){var r=e.pstyle(`opacity`).value,i=e.pstyle(`line-opacity`).value,a=e.pstyle(`width`).pfValue,o=e.pstyle(`line-color`).value,s=r*i;if(n.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),n.length==4){var c=this.instanceCount;this.vertTypeBuffer.getView(c)[0]=Th,Ym(t,this.indexBuffer.getView(c)),Jm(o,s,this.colorBuffer.getView(c));var l=this.lineWidthBuffer.getView(c);l[0]=a;var u=this.pointAPointBBuffer.getView(c);u[0]=n[0],u[1]=n[1],u[2]=n[2],u[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var d=0;d=this.maxInstances&&this.endBatch()}}}}},{key:`_isValidEdge`,value:function(e){var t=e._private.rscratch;return!(t.badLine||t.allpts==null||isNaN(t.allpts[0]))}},{key:`_getEdgePoints`,value:function(e){var t=e._private.rscratch;if(this._isValidEdge(e)){var n=t.allpts;if(n.length==4)return n;var r=this._getNumSegments(e);return this._getCurveSegmentPoints(n,r)}}},{key:`_getNumSegments`,value:function(e){return Math.min(15,this.maxInstances)}},{key:`_getCurveSegmentPoints`,value:function(e,t){if(e.length==4)return e;for(var n=Array((t+1)*2),r=0;r<=t;r++)if(r==0)n[0]=e[0],n[1]=e[1];else if(r==t)n[r*2]=e[e.length-2],n[r*2+1]=e[e.length-1];else{var i=r/t;this._setCurvePoint(e,i,n,r*2)}return n}},{key:`_setCurvePoint`,value:function(e,t,n,r){if(e.length<=2)n[r]=e[0],n[r+1]=e[1];else{for(var i=Array(e.length-2),a=0;a0}},s=function(e){return e.pstyle(`text-events`).strValue===`yes`?Ch.USE_BB:Ch.IGNORE},c=function(e){var t=e.position(),n=t.x,r=t.y,i=e.outerWidth(),a=e.outerHeight();return{w:i,h:a,x1:n-i/2,y1:r-a/2}};n.drawing.addAtlasCollection(`node`,{texRows:e.webglTexRowsNodes}),n.drawing.addAtlasCollection(`label`,{texRows:e.webglTexRows}),n.drawing.addTextureAtlasRenderType(`node-body`,{collection:`node`,getKey:t.getStyleKey,getBoundingBox:t.getElementBox,drawElement:t.drawElement}),n.drawing.addSimpleShapeRenderType(`node-body`,{getBoundingBox:c,isSimple:Km,shapeProps:{shape:`shape`,color:`background-color`,opacity:`background-opacity`,radius:`corner-radius`,border:!0}}),n.drawing.addSimpleShapeRenderType(`node-overlay`,{getBoundingBox:c,isVisible:o(`overlay`),shapeProps:{shape:`overlay-shape`,color:`overlay-color`,opacity:`overlay-opacity`,padding:`overlay-padding`,radius:`overlay-corner-radius`}}),n.drawing.addSimpleShapeRenderType(`node-underlay`,{getBoundingBox:c,isVisible:o(`underlay`),shapeProps:{shape:`underlay-shape`,color:`underlay-color`,opacity:`underlay-opacity`,padding:`underlay-padding`,radius:`underlay-corner-radius`}}),n.drawing.addTextureAtlasRenderType(`label`,{collection:`label`,getTexPickingMode:s,getKey:Ih(t.getLabelKey,null),getBoundingBox:Lh(t.getLabelBox,null),drawClipped:!0,drawElement:t.drawLabel,getRotation:i(null),getRotationPoint:t.getLabelRotationPoint,getRotationOffset:t.getLabelRotationOffset,isVisible:a(`label`)}),n.drawing.addTextureAtlasRenderType(`edge-source-label`,{collection:`label`,getTexPickingMode:s,getKey:Ih(t.getSourceLabelKey,`source`),getBoundingBox:Lh(t.getSourceLabelBox,`source`),drawClipped:!0,drawElement:t.drawSourceLabel,getRotation:i(`source`),getRotationPoint:t.getSourceLabelRotationPoint,getRotationOffset:t.getSourceLabelRotationOffset,isVisible:a(`source-label`)}),n.drawing.addTextureAtlasRenderType(`edge-target-label`,{collection:`label`,getTexPickingMode:s,getKey:Ih(t.getTargetLabelKey,`target`),getBoundingBox:Lh(t.getTargetLabelBox,`target`),drawClipped:!0,drawElement:t.drawTargetLabel,getRotation:i(`target`),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:a(`target-label`)});var l=zt(function(){console.log(`garbage collect flag set`),n.data.gc=!0},1e4);n.onUpdateEleCalcs(function(e,t){var r=!1;t&&t.length>0&&(r|=n.drawing.invalidate(t)),r&&l()}),Rh(n)};function Ph(e){var t=e.cy.container();return Ge(t&&t.style&&t.style.backgroundColor||`white`)}function Fh(e,t){var n=e._private.rscratch;return kn(n,`labelWrapCachedLines`,t)||[]}var Ih=function(e,t){return function(n){var r=e(n),i=Fh(n,t);return i.length>1?i.map(function(e,t){return`${r}_${t}`}):r}},Lh=function(e,t){return function(n,r){var i=e(n);if(typeof r==`string`){var a=r.indexOf(`_`);if(a>0){var o=Number(r.substring(a+1)),s=Fh(n,t),c=i.h/s.length,l=c*o,u=i.y1+l;return{x1:i.x1,w:i.w,y1:u,h:c,yOffset:l}}}return i}};function Rh(e){var t=e.render;e.render=function(n){n||={};var r=e.cy;e.webgl&&(r.zoom()>Mp?(zh(e),t.call(e,n)):(Bh(e),Yh(e,n,Sh.SCREEN)))};var n=e.matchCanvasSize;e.matchCanvasSize=function(t){n.call(e,t),e.pickingFrameBuffer.setFramebufferAttachmentSizes(e.canvasWidth,e.canvasHeight),e.pickingFrameBuffer.needsDraw=!0},e.findNearestElements=function(t,n,r,i){return qh(e,t,n)};var r=e.invalidateCachedZSortedEles;e.invalidateCachedZSortedEles=function(){r.call(e),e.pickingFrameBuffer.needsDraw=!0};var i=e.notify;e.notify=function(t,n){i.call(e,t,n),t===`viewport`||t===`bounds`?e.pickingFrameBuffer.needsDraw=!0:t===`background`&&e.drawing.invalidate(n,{type:`node-body`})}}function zh(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}function Bh(e){var t=function(t){t.save(),t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.canvasWidth,e.canvasHeight),t.restore()};t(e.data.contexts[e.NODE]),t(e.data.contexts[e.DRAG])}function Vh(e){var t=e.canvasWidth,n=e.canvasHeight,r=Um(e),i=r.pan,a=r.zoom,o=oh();lh(o,o,[i.x,i.y]),dh(o,o,[a,a]);var s=oh();fh(s,t,n);var c=oh();return ch(c,s,o),c}function Hh(e,t){var n=e.canvasWidth,r=e.canvasHeight,i=Um(e),a=i.pan,o=i.zoom;t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,n,r),t.translate(a.x,a.y),t.scale(o,o)}function Uh(e,t){e.drawSelectionRectangle(t,function(t){return Hh(e,t)})}function Wh(e){var t=e.data.contexts[e.NODE];t.save(),Hh(e,t),t.strokeStyle=`rgba(0, 0, 0, 0.3)`,t.beginPath(),t.moveTo(-1e3,0),t.lineTo(1e3,0),t.stroke(),t.beginPath(),t.moveTo(0,-1e3),t.lineTo(0,1e3),t.stroke(),t.restore()}function Gh(e){var t=function(t,n,r){for(var i=t.atlasManager.getAtlasCollection(n),a=e.data.contexts[e.NODE],o=i.atlases,s=0;s=0&&y.add(x)}return y}function qh(e,t,n){var r=Kh(e,t,n),i=e.getCachedZSortedEles(),a,o,s=z(r),c;try{for(s.s();!(c=s.n()).done;){var l=i[c.value];if(!a&&l.isNode()&&(a=l),!o&&l.isEdge()&&(o=l),a&&o)break}}catch(e){s.e(e)}finally{s.f()}return[a,o].filter(Boolean)}function Jh(e,t,n){var r=e.drawing;t+=1,n.isNode()?(r.drawNode(n,t,`node-underlay`),r.drawNode(n,t,`node-body`),r.drawTexture(n,t,`label`),r.drawNode(n,t,`node-overlay`)):(r.drawEdgeLine(n,t),r.drawEdgeArrow(n,t,`source`),r.drawEdgeArrow(n,t,`target`),r.drawTexture(n,t,`label`),r.drawTexture(n,t,`edge-source-label`),r.drawTexture(n,t,`edge-target-label`))}function Yh(e,t,n){var r;e.webglDebug&&(r=performance.now());var i=e.drawing,a=0;if(n.screen&&e.data.canvasNeedsRedraw[e.SELECT_BOX]&&Uh(e,t),e.data.canvasNeedsRedraw[e.NODE]||n.picking){var o=e.data.contexts[e.WEBGL];n.screen?(o.clearColor(0,0,0,0),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.viewport(0,0,o.canvas.width,o.canvas.height);var s=Vh(e),c=e.getCachedZSortedEles();if(a=c.length,i.startFrame(s,n),n.screen){for(var l=0;l0&&a>0){f.clearRect(0,0,i,a),f.globalCompositeOperation=`source-over`;var p=this.getCachedZSortedEles();if(e.full)f.translate(-n.x1*c,-n.y1*c),f.scale(c,c),this.drawElements(f,p),f.scale(1/c,1/c),f.translate(n.x1*c,n.y1*c);else{var m=t.pan(),h={x:m.x*c,y:m.y*c};c*=t.zoom(),f.translate(h.x,h.y),f.scale(c,c),this.drawElements(f,p),f.scale(1/c,1/c),f.translate(-h.x,-h.y)}e.bg&&(f.globalCompositeOperation=`destination-over`,f.fillStyle=e.bg,f.rect(0,0,i,a),f.fill())}return d};function ig(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a`u`?`undefined`:q(OffscreenCanvas))===`undefined`?(n=this.cy.window().document.createElement(`canvas`),n.width=e,n.height=t):n=new OffscreenCanvas(e,t),n},[hm,Sm,km,jm,Mm,Fm,Lm,Nh,Xh,rg,sg].forEach(function(e){Z(lg,e)});var fg=[{type:`layout`,extensions:wf},{type:`renderer`,extensions:[{name:`null`,impl:Tf},{name:`base`,impl:Cp},{name:`canvas`,impl:cg}]}],pg={},mg={};function hg(e,t,n){var r=n,i=function(n){vn("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if(e===`core`){if(Fd.prototype[t])return i(t);Fd.prototype[t]=n}else if(e===`collection`){if(Yu.prototype[t])return i(t);Yu.prototype[t]=n}else if(e===`layout`){for(var a=function(e){this.options=e,n.call(this,e),Y(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],c=0;c{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r():typeof define==`function`&&define.amd?define([],r):typeof e==`object`?e.layoutBase=r():n.layoutBase=r()})(e,function(){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=26)})([(function(e,t,n){function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,e.exports=r}),(function(e,t,n){var r=n(2),i=n(8),a=n(9);function o(e,t,n){r.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=e,this.target=t}for(var s in o.prototype=Object.create(r.prototype),r)o[s]=r[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(e){if(this.source===e)return this.target;if(this.target===e)return this.source;throw`Node is not incident with this edge`},o.prototype.getOtherEndInGraph=function(e,t){for(var n=this.getOtherEnd(e),r=t.getGraphManager().getRoot();;){if(n.getOwner()==t)return n;if(n.getOwner()==r)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var e=[,,,,];this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),e),this.isOverlapingSourceAndTarget||(this.lengthX=e[0]-e[2],this.lengthY=e[1]-e[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=o}),(function(e,t,n){function r(e){this.vGraphObject=e}e.exports=r}),(function(e,t,n){var r=n(2),i=n(10),a=n(13),o=n(0),s=n(16),c=n(4);function l(e,t,n,o){n==null&&o==null&&(o=t),r.call(this,o),e.graphManager!=null&&(e=e.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=e,n!=null&&t!=null?this.rect=new a(t.x,t.y,n.width,n.height):this.rect=new a}for(var u in l.prototype=Object.create(r.prototype),r)l[u]=r[u];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(e){this.rect.width=e},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(e){this.rect.height=e},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(e,t){this.rect.x=e.x,this.rect.y=e.y,this.rect.width=t.width,this.rect.height=t.height},l.prototype.setCenter=function(e,t){this.rect.x=e-this.rect.width/2,this.rect.y=t-this.rect.height/2},l.prototype.setLocation=function(e,t){this.rect.x=e,this.rect.y=t},l.prototype.moveBy=function(e,t){this.rect.x+=e,this.rect.y+=t},l.prototype.getEdgeListToNode=function(e){var t=[],n=this;return n.edges.forEach(function(r){if(r.target==e){if(r.source!=n)throw`Incorrect edge source!`;t.push(r)}}),t},l.prototype.getEdgesBetween=function(e){var t=[],n=this;return n.edges.forEach(function(r){if(!(r.source==n||r.target==n))throw`Incorrect edge source and/or target`;(r.target==e||r.source==e)&&t.push(r)}),t},l.prototype.getNeighborsList=function(){var e=new Set,t=this;return t.edges.forEach(function(n){if(n.source==t)e.add(n.target);else{if(n.target!=t)throw`Incorrect incidency!`;e.add(n.source)}}),e},l.prototype.withChildren=function(){var e=new Set,t,n;if(e.add(this),this.child!=null)for(var r=this.child.getNodes(),i=0;it&&(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&(this.labelPos==`center`?this.rect.y-=(this.labelHeight-n)/2:this.labelPos==`top`&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw`assert failed`;return this.inclusionTreeDepth},l.prototype.transform=function(e){var t=this.rect.x;t>o.WORLD_BOUNDARY?t=o.WORLD_BOUNDARY:t<-o.WORLD_BOUNDARY&&(t=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var r=new c(t,n),i=e.inverseTransformPoint(r);this.setLocation(i.x,i.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},e.exports=l}),(function(e,t,n){function r(e,t){e==null&&t==null?(this.x=0,this.y=0):(this.x=e,this.y=t)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(e){this.x=e},r.prototype.setY=function(e){this.y=e},r.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},e.exports=r}),(function(e,t,n){var r=n(2),i=n(10),a=n(0),o=n(6),s=n(3),c=n(1),l=n(13),u=n(12),d=n(11);function f(e,t,n){r.call(this,n),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=e,t!=null&&t instanceof o?this.graphManager=t:t!=null&&t instanceof Layout&&(this.graphManager=t.graphManager)}for(var p in f.prototype=Object.create(r.prototype),r)f[p]=r[p];f.prototype.getNodes=function(){return this.nodes},f.prototype.getEdges=function(){return this.edges},f.prototype.getGraphManager=function(){return this.graphManager},f.prototype.getParent=function(){return this.parent},f.prototype.getLeft=function(){return this.left},f.prototype.getRight=function(){return this.right},f.prototype.getTop=function(){return this.top},f.prototype.getBottom=function(){return this.bottom},f.prototype.isConnected=function(){return this.isConnected},f.prototype.add=function(e,t,n){if(t==null&&n==null){var r=e;if(this.graphManager==null)throw`Graph has no graph mgr!`;if(this.getNodes().indexOf(r)>-1)throw`Node already in graph!`;return r.owner=this,this.getNodes().push(r),r}else{var i=e;if(!(this.getNodes().indexOf(t)>-1&&this.getNodes().indexOf(n)>-1))throw`Source or target not in graph!`;if(!(t.owner==n.owner&&t.owner==this))throw`Both owners must be this graph!`;return t.owner==n.owner?(i.source=t,i.target=n,i.isInterGraph=!1,this.getEdges().push(i),t.edges.push(i),n!=t&&n.edges.push(i),i):null}},f.prototype.remove=function(e){var t=e;if(e instanceof s){if(t==null)throw`Node is null!`;if(!(t.owner!=null&&t.owner==this))throw`Owner graph is invalid!`;if(this.graphManager==null)throw`Owner graph manager is invalid!`;for(var n=t.edges.slice(),r,i=n.length,a=0;a-1&&u>-1))throw`Source and/or target doesn't know this edge!`;r.source.edges.splice(l,1),r.target!=r.source&&r.target.edges.splice(u,1);var o=r.source.owner.getEdges().indexOf(r);if(o==-1)throw`Not in owner's edge list!`;r.source.owner.getEdges().splice(o,1)}},f.prototype.updateLeftTop=function(){for(var e=i.MAX_VALUE,t=i.MAX_VALUE,n,r,a,o=this.getNodes(),s=o.length,c=0;cn&&(e=n),t>r&&(t=r)}return e==i.MAX_VALUE?null:(a=o[0].getParent().paddingLeft==null?this.margin:o[0].getParent().paddingLeft,this.left=t-a,this.top=e-a,new u(this.left,this.top))},f.prototype.updateBounds=function(e){for(var t=i.MAX_VALUE,n=-i.MAX_VALUE,r=i.MAX_VALUE,a=-i.MAX_VALUE,o,s,c,u,d,f=this.nodes,p=f.length,m=0;mo&&(t=o),nc&&(r=c),ao&&(t=o),nc&&(r=c),a=this.nodes.length){var c=0;n.forEach(function(t){t.owner==e&&c++}),c==this.nodes.length&&(this.isConnected=!0)}},e.exports=f}),(function(e,t,n){var r,i=n(1);function a(e){r=n(5),this.layout=e,this.graphs=[],this.edges=[]}a.prototype.addRoot=function(){var e=this.layout.newGraph(),t=this.layout.newNode(null),n=this.add(e,t);return this.setRootGraph(n),this.rootGraph},a.prototype.add=function(e,t,n,r,i){if(n==null&&r==null&&i==null){if(e==null)throw`Graph is null!`;if(t==null)throw`Parent node is null!`;if(this.graphs.indexOf(e)>-1)throw`Graph already in this graph mgr!`;if(this.graphs.push(e),e.parent!=null)throw`Already has a parent!`;if(t.child!=null)throw`Already has a child!`;return e.parent=t,t.child=e,e}else{i=n,r=t,n=e;var a=r.getOwner(),o=i.getOwner();if(!(a!=null&&a.getGraphManager()==this))throw`Source not in this graph mgr!`;if(!(o!=null&&o.getGraphManager()==this))throw`Target not in this graph mgr!`;if(a==o)return n.isInterGraph=!1,a.add(n,r,i);if(n.isInterGraph=!0,n.source=r,n.target=i,this.edges.indexOf(n)>-1)throw`Edge already in inter-graph edge list!`;if(this.edges.push(n),!(n.source!=null&&n.target!=null))throw`Edge source and/or target is null!`;if(!(n.source.edges.indexOf(n)==-1&&n.target.edges.indexOf(n)==-1))throw`Edge already in source and/or target incidency list!`;return n.source.edges.push(n),n.target.edges.push(n),n}},a.prototype.remove=function(e){if(e instanceof r){var t=e;if(t.getGraphManager()!=this)throw`Graph not in this graph mgr`;if(!(t==this.rootGraph||t.parent!=null&&t.parent.graphManager==this))throw`Invalid parent node!`;var n=[];n=n.concat(t.getEdges());for(var a,o=n.length,s=0;s=t.getRight()?n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight()):t.getX()<=e.getX()&&t.getRight()>=e.getRight()&&(n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())),e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()?n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()):t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()&&(n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()));var a=Math.abs((t.getCenterY()-e.getCenterY())/(t.getCenterX()-e.getCenterX()));t.getCenterY()===e.getCenterY()&&t.getCenterX()===e.getCenterX()&&(a=1);var o=a*n[0],s=n[1]/a;n[0]o)return n[0]=r,n[1]=c,n[2]=a,n[3]=y,!1;if(ia)return n[0]=s,n[1]=i,n[2]=_,n[3]=o,!1;if(ra?(n[0]=u,n[1]=d,C=!0):(n[0]=l,n[1]=c,C=!0):T===D&&(r>a?(n[0]=s,n[1]=c,C=!0):(n[0]=f,n[1]=d,C=!0)),-E===D?a>r?(n[2]=v,n[3]=y,w=!0):(n[2]=_,n[3]=g,w=!0):E===D&&(a>r?(n[2]=h,n[3]=g,w=!0):(n[2]=b,n[3]=y,w=!0)),C&&w)return!1;if(r>a?i>o?(O=this.getCardinalDirection(T,D,4),k=this.getCardinalDirection(E,D,2)):(O=this.getCardinalDirection(-T,D,3),k=this.getCardinalDirection(-E,D,1)):i>o?(O=this.getCardinalDirection(-T,D,1),k=this.getCardinalDirection(-E,D,3)):(O=this.getCardinalDirection(T,D,2),k=this.getCardinalDirection(E,D,4)),!C)switch(O){case 1:j=c,A=r+-m/D,n[0]=A,n[1]=j;break;case 2:A=f,j=i+p*D,n[0]=A,n[1]=j;break;case 3:j=d,A=r+m/D,n[0]=A,n[1]=j;break;case 4:A=u,j=i+-p*D,n[0]=A,n[1]=j;break}if(!w)switch(k){case 1:N=g,M=a+-S/D,n[2]=M,n[3]=N;break;case 2:M=b,N=o+x*D,n[2]=M,n[3]=N;break;case 3:N=y,M=a+S/D,n[2]=M,n[3]=N;break;case 4:M=v,N=o+-x*D,n[2]=M,n[3]=N;break}}return!1},i.getCardinalDirection=function(e,t,n){return e>t?n:1+n%4},i.getIntersection=function(e,t,n,i){if(i==null)return this.getIntersection2(e,t,n);var a=e.x,o=e.y,s=t.x,c=t.y,l=n.x,u=n.y,d=i.x,f=i.y,p=void 0,m=void 0,h=void 0,g=void 0,_=void 0,v=void 0,y=void 0,b=void 0,x=void 0;return h=c-o,_=a-s,y=s*o-a*c,g=f-u,v=l-d,b=d*u-l*f,x=h*v-g*_,x===0?null:(p=(_*b-v*y)/x,m=(g*y-h*b)/x,new r(p,m))},i.angleOfVector=function(e,t,n,r){var i=void 0;return e===n?i=r0?1:e<0?-1:0},r.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},r.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},e.exports=r}),(function(e,t,n){function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,e.exports=r}),(function(e,t,n){var r=function(){function e(e,t){for(var n=0;n0&&t;){for(s.push(l[0]);s.length>0&&t;){var u=s[0];s.splice(0,1),o.add(u);for(var d=u.getEdges(),a=0;a-1&&l.splice(h,1)}o=new Set,c=new Map}}return e},f.prototype.createDummyNodesForBendpoints=function(e){for(var t=[],n=e.source,r=this.graphManager.calcLowestCommonAncestor(e.source,e.target),i=0;i0){for(var i=this.edgeToDummyNodes.get(n),a=0;a=0&&t.splice(d,1),s.getNeighborsList().forEach(function(e){if(n.indexOf(e)<0){var t=r.get(e)-1;t==1&&l.push(e),r.set(e,t)}})}n=n.concat(l),(t.length==1||t.length==2)&&(i=!0,a=t[0])}return a},f.prototype.setGraphManager=function(e){this.graphManager=e},e.exports=f}),(function(e,t,n){function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=Math.sin(r.seed++)*1e4,r.x-Math.floor(r.x)},e.exports=r}),(function(e,t,n){var r=n(4);function i(e,t){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(e){this.lworldExtX=e},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(e){this.lworldExtY=e},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},i.prototype.transformX=function(e){var t=0,n=this.lworldExtX;return n!=0&&(t=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/n),t},i.prototype.transformY=function(e){var t=0,n=this.lworldExtY;return n!=0&&(t=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/n),t},i.prototype.inverseTransformX=function(e){var t=0,n=this.ldeviceExtX;return n!=0&&(t=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/n),t},i.prototype.inverseTransformY=function(e){var t=0,n=this.ldeviceExtY;return n!=0&&(t=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/n),t},i.prototype.inverseTransformPoint=function(e){return new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y))},e.exports=i}),(function(e,t,n){function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);ta.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(e-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(e>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(e-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var e=this.getAllEdges(),t,n=0;n0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n,r,i,o,s=this.getAllNodes(),c;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&e&&this.updateGrid(),c=new Set,n=0;nc||s>c)&&(e.gravitationForceX=-this.gravityConstant*i,e.gravitationForceY=-this.gravityConstant*a)):(c=t.getEstimatedSize()*this.compoundGravityRangeFactor,(o>c||s>c)&&(e.gravitationForceX=-this.gravityConstant*i*this.compoundGravityConstant,e.gravitationForceY=-this.gravityConstant*a*this.compoundGravityConstant))},l.prototype.isConverged=function(){var e,t=!1;return this.totalIterations>this.maxIterations/3&&(t=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),e=this.totalDisplacement=c.length||u>=c[0].length)){for(var d=0;de}}]),e}()}),(function(e,t,n){var r=function(){function e(e,t){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=a,this.gap_penalty=o,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=Array(this.iMax);for(var s=0;s=0;n--){var r=this.listeners[n];r.event===e&&r.callback===t&&this.listeners.splice(n,1)}},i.emit=function(e,t){for(var n=0;n{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r(wg()):typeof define==`function`&&define.amd?define([`layout-base`],r):typeof e==`object`?e.coseBase=r(wg()):n.coseBase=r(n.layoutBase)})(e,function(e){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=7)})([(function(t,n){t.exports=e}),(function(e,t,n){var r=n(0).FDLayoutConstants;function i(){}for(var a in r)i[a]=r[a];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=i}),(function(e,t,n){var r=n(0).FDLayoutEdge;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i}),(function(e,t,n){var r=n(0).LGraph;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i}),(function(e,t,n){var r=n(0).LGraphManager;function i(e){r.call(this,e)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i}),(function(e,t,n){var r=n(0).FDLayoutNode,i=n(0).IMath;function a(e,t,n,i){r.call(this,e,t,n,i)}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];a.prototype.move=function(){var e=this.graphManager.getLayout();this.displacementX=e.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=e.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementX=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementY=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementY)),this.child==null||this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),e.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},a.prototype.propogateDisplacementToChildren=function(e,t){for(var n=this.getChild().getNodes(),r,i=0;i0)this.positionNodesRadially(e);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(n),this.positionNodesRandomly()}}else if(c.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter(function(e){return t.has(e)});this.graphManager.setAllNodesToApplyGravitation(n)}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},v.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-this.coolingCycle**+(Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),t=this.nodesWithGravity.filter(function(t){return e.has(t)});this.graphManager.setAllNodesToApplyGravitation(t),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},v.prototype.getPositionsData=function(){for(var e=this.graphManager.getAllNodes(),t={},n=0;n1){var s;for(s=0;sr&&(r=Math.floor(o.y)),a=Math.floor(o.x+c.DEFAULT_COMPONENT_SEPERATION)}this.transform(new f(u.WORLD_CENTER_X-o.x/2,u.WORLD_CENTER_Y-o.y/2))},v.radialLayout=function(e,t,n){var r=Math.max(this.maxDiagonalInTree(e),c.DEFAULT_RADIAL_SEPARATION);v.branchRadialLayout(t,null,0,359,0,r);var i=g.calculateBounds(e),a=new _;a.setDeviceOrgX(i.getMinX()),a.setDeviceOrgY(i.getMinY()),a.setWorldOrgX(n.x),a.setWorldOrgY(n.y);for(var o=0;o1;){var _=g[0];g.splice(0,1);var y=u.indexOf(_);y>=0&&u.splice(y,1),p--,d--}m=t==null?0:(u.indexOf(g[0])+1)%p;for(var b=Math.abs(r-n)/d,x=m;f!=d;x=++x%p){var S=u[x].getOtherEnd(e);if(S!=t){var C=(n+f*b)%360,w=(C+b)%360;v.branchRadialLayout(S,e,C,w,i+a,a),f++}}},v.maxDiagonalInTree=function(e){for(var t=m.MIN_VALUE,n=0;nt&&(t=r)}return t},v.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},v.prototype.groupZeroDegreeMembers=function(){var e=this,t={};this.memberGroups={},this.idToDummyNode={};for(var n=[],r=this.graphManager.getAllNodes(),i=0;i1){var r=`DummyCompound_`+n;e.memberGroups[r]=t[n];var i=t[n][0].getParent(),a=new o(e.graphManager);a.id=r,a.paddingLeft=i.paddingLeft||0,a.paddingRight=i.paddingRight||0,a.paddingBottom=i.paddingBottom||0,a.paddingTop=i.paddingTop||0,e.idToDummyNode[r]=a;var s=e.getGraphManager().add(e.newGraph(),a),c=i.getChild();c.add(a);for(var l=0;l=0;e--){var t=this.compoundOrder[e],n=t.id,r=t.paddingLeft,i=t.paddingTop;this.adjustLocations(this.tiledMemberPack[n],t.rect.x,t.rect.y,r,i)}},v.prototype.repopulateZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack;Object.keys(t).forEach(function(n){var r=e.idToDummyNode[n],i=r.paddingLeft,a=r.paddingTop;e.adjustLocations(t[n],r.rect.x,r.rect.y,i,a)})},v.prototype.getToBeTiled=function(e){var t=e.id;if(this.toBeTiled[t]!=null)return this.toBeTiled[t];var n=e.getChild();if(n==null)return this.toBeTiled[t]=!1,!1;for(var r=n.getNodes(),i=0;i0)return this.toBeTiled[t]=!1,!1;if(a.getChild()==null){this.toBeTiled[a.id]=!1;continue}if(!this.getToBeTiled(a))return this.toBeTiled[t]=!1,!1}return this.toBeTiled[t]=!0,!0},v.prototype.getNodeDegree=function(e){e.id;for(var t=e.getEdges(),n=0,r=0;rc&&(c=u.rect.height)}n+=c+e.verticalPadding}},v.prototype.tileCompoundMembers=function(e,t){var n=this;this.tiledMemberPack=[],Object.keys(e).forEach(function(r){var i=t[r];n.tiledMemberPack[r]=n.tileNodes(e[r],i.paddingLeft+i.paddingRight),i.rect.width=n.tiledMemberPack[r].width,i.rect.height=n.tiledMemberPack[r].height})},v.prototype.tileNodes=function(e,t){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:t,verticalPadding:c.TILING_PADDING_VERTICAL,horizontalPadding:c.TILING_PADDING_HORIZONTAL};e.sort(function(e,t){return e.rect.width*e.rect.height>t.rect.width*t.rect.height?-1:+(e.rect.width*e.rect.height0&&(a+=e.horizontalPadding),e.rowWidth[n]=a,e.width0&&(o+=e.verticalPadding);var s=0;o>e.rowHeight[n]&&(s=e.rowHeight[n],e.rowHeight[n]=o,s=e.rowHeight[n]-s),e.height+=s,e.rows[n].push(t)},v.prototype.getShortestRowIndex=function(e){for(var t=-1,n=Number.MAX_VALUE,r=0;rn&&(t=r,n=e.rowWidth[r]);return t},v.prototype.canAddHorizontal=function(e,t,n){var r=this.getShortestRowIndex(e);if(r<0)return!0;var i=e.rowWidth[r];if(i+e.horizontalPadding+t<=e.width)return!0;var a=0;e.rowHeight[r]0&&(a=n+e.verticalPadding-e.rowHeight[r]);var o=e.width-i>=t+e.horizontalPadding?(e.height+a)/(i+t+e.horizontalPadding):(e.height+a)/e.width;a=n+e.verticalPadding;var s=e.widtha&&t!=n){r.splice(-1,1),e.rows[n].push(i),e.rowWidth[t]=e.rowWidth[t]-a,e.rowWidth[n]=e.rowWidth[n]+a,e.width=e.rowWidth[instance.getLongestRowIndex(e)];for(var o=Number.MIN_VALUE,s=0;so&&(o=r[s].height);t>0&&(o+=e.verticalPadding);var c=e.rowHeight[t]+e.rowHeight[n];e.rowHeight[t]=o,e.rowHeight[n]0)for(var u=i;u<=a;u++)c[0]+=this.grid[u][o-1].length+this.grid[u][o].length-1;if(a0)for(var u=o;u<=s;u++)c[3]+=this.grid[i-1][u].length+this.grid[i][u].length-1;for(var d=m.MAX_VALUE,f,p,h=0;h{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r(Tg()):typeof define==`function`&&define.amd?define([`cose-base`],r):typeof e==`object`?e.cytoscapeCoseBilkent=r(Tg()):n.cytoscapeCoseBilkent=r(n.coseBase)})(e,function(e){return(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=1)})([(function(t,n){t.exports=e}),(function(e,t,n){var r=n(0).layoutBase.LayoutConstants,i=n(0).layoutBase.FDLayoutConstants,a=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,c=n(0).layoutBase.PointD,l=n(0).layoutBase.DimensionD,u={ready:function(){},stop:function(){},quality:`default`,nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:`end`,animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function d(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}function f(e){this.options=d(u,e),p(this.options)}var p=function(e){e.nodeRepulsion!=null&&(a.DEFAULT_REPULSION_STRENGTH=i.DEFAULT_REPULSION_STRENGTH=e.nodeRepulsion),e.idealEdgeLength!=null&&(a.DEFAULT_EDGE_LENGTH=i.DEFAULT_EDGE_LENGTH=e.idealEdgeLength),e.edgeElasticity!=null&&(a.DEFAULT_SPRING_STRENGTH=i.DEFAULT_SPRING_STRENGTH=e.edgeElasticity),e.nestingFactor!=null&&(a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=e.nestingFactor),e.gravity!=null&&(a.DEFAULT_GRAVITY_STRENGTH=i.DEFAULT_GRAVITY_STRENGTH=e.gravity),e.numIter!=null&&(a.MAX_ITERATIONS=i.MAX_ITERATIONS=e.numIter),e.gravityRange!=null&&(a.DEFAULT_GRAVITY_RANGE_FACTOR=i.DEFAULT_GRAVITY_RANGE_FACTOR=e.gravityRange),e.gravityCompound!=null&&(a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=e.gravityCompound),e.gravityRangeCompound!=null&&(a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=e.gravityRangeCompound),e.initialEnergyOnIncremental!=null&&(a.DEFAULT_COOLING_FACTOR_INCREMENTAL=i.DEFAULT_COOLING_FACTOR_INCREMENTAL=e.initialEnergyOnIncremental),e.quality==`draft`?r.QUALITY=0:e.quality==`proof`?r.QUALITY=2:r.QUALITY=1,a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=r.NODE_DIMENSIONS_INCLUDE_LABELS=e.nodeDimensionsIncludeLabels,a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=r.DEFAULT_INCREMENTAL=!e.randomize,a.ANIMATE=i.ANIMATE=r.ANIMATE=e.animate,a.TILE=e.tile,a.TILING_PADDING_VERTICAL=typeof e.tilingPaddingVertical==`function`?e.tilingPaddingVertical.call():e.tilingPaddingVertical,a.TILING_PADDING_HORIZONTAL=typeof e.tilingPaddingHorizontal==`function`?e.tilingPaddingHorizontal.call():e.tilingPaddingHorizontal};f.prototype.run=function(){var e,t,n=this.options;this.idToLNode={};var r=this.layout=new o,i=this;i.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:`layoutstart`,layout:this});var a=r.newGraphManager();this.gm=a;var s=this.options.eles.nodes(),c=this.options.eles.edges();this.root=a.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),r);for(var l=0;l0){var h=n.getGraphManager().add(n.newGraph(),u);this.processChildrenList(h,o,n)}}},f.prototype.stop=function(){return this.stopped=!0,this};var m=function(e){e(`layout`,`cose-bilkent`,f)};typeof cytoscape<`u`&&m(cytoscape),e.exports=m})])})}))(),1),Dg={mapHoverPanel:10,canvasControls:15},$=p(),Og=!1;function kg(){if(!Og){try{Cg.use(Eg.default)}catch{}Og=!0}}var Ag=120,jg=11;function Mg(e){let t=16+7*Math.sqrt(e);return Math.max(16,Math.min(64,Math.round(t)))}var Ng=M.memo(({nodes:e,edges:t,toNodeStatus:n,isEdgeFailing:r,height:i,onSelect:a})=>{let o=(0,M.useRef)(null),s=(0,M.useRef)(null),[l,u]=(0,M.useState)(()=>E()),[d,f]=(0,M.useState)(null);(0,M.useEffect)(()=>k(()=>u(E())),[]);let p=(0,M.useMemo)(()=>{let t=new Map;for(let n of e)t.set(n.id,n);return t},[e]),m=(0,M.useMemo)(()=>{let n=new Map;for(let t of e)n.set(t.id,0);for(let e of t)n.has(e.source)&&n.set(e.source,(n.get(e.source)??0)+1),n.has(e.target)&&n.set(e.target,(n.get(e.target)??0)+1);return n},[e,t]),h=(0,M.useMemo)(()=>{let i=new Set(e.map(e=>e.id)),a=e.map(e=>({group:`nodes`,data:{id:e.id,label:e.id,status:n(e.status),diameter:Mg(m.get(e.id)??0)}})),o=t.filter(e=>i.has(e.source)&&i.has(e.target)).map((e,t)=>({group:`edges`,data:{id:`e${t}-${e.source}-${e.target}`,source:e.source,target:e.target,callCount:e.call_count,failing:r(e.status)}}));return[...a,...o]},[e,t,m,n,r]),g=e.length>Ag,_=(0,M.useMemo)(()=>{let e=e=>{switch(e){case`healthy`:return l.success;case`degraded`:return l.warning;case`failing`:return l.danger;default:return l.fg4}},t=+!g;return[{selector:`node`,style:{width:`data(diameter)`,height:`data(diameter)`,"background-color":t=>e(t.data(`status`)),"border-width":1,"border-color":l.bg1,label:`data(label)`,color:l.fg2,"font-size":11,"font-family":l.fontMono,"text-valign":`bottom`,"text-halign":`center`,"text-margin-y":3,"text-opacity":t,"min-zoomed-font-size":jg,"transition-property":`opacity, text-opacity, background-color`,"transition-duration":0}},{selector:`edge`,style:{"curve-style":`bezier`,"target-arrow-shape":`triangle`,width:`mapData(callCount, 0, 1000, 1, 6)`,"line-color":l.border2,"target-arrow-color":l.border2,"arrow-scale":.8,opacity:.55,"transition-property":`opacity, line-color`,"transition-duration":0}},{selector:`edge[?failing]`,style:{"line-color":l.danger,"target-arrow-color":l.danger,opacity:.85}},{selector:`node.faded`,style:{opacity:.18,"text-opacity":0}},{selector:`edge.faded`,style:{opacity:.06}},{selector:`node.focus`,style:{"border-width":3,"border-color":l.accent,"text-opacity":1,"z-index":10}},{selector:`node.neighbor`,style:{"text-opacity":1,"z-index":5}},{selector:`edge.highlight`,style:{"line-color":l.accent,"target-arrow-color":l.accent,opacity:1,"z-index":5}}]},[l,g]),y=(0,M.useCallback)(e=>{e.batch(()=>{e.elements().removeClass(`faded focus neighbor highlight`)}),f(null)},[]),b=(0,M.useCallback)((e,t,n)=>{let r=e.getElementById(t);if(r.empty())return;let i=r.closedNeighborhood(),a=r.openNeighborhood().nodes();if(e.batch(()=>{e.elements().addClass(`faded`),i.removeClass(`faded`),a.addClass(`neighbor`),r.removeClass(`neighbor`).addClass(`focus`),r.connectedEdges().addClass(`highlight`)}),n){let e=p.get(t),n=r.renderedPosition();e&&f({id:t,node:e,x:n.x,y:n.y})}},[p]);(0,M.useEffect)(()=>{let e=o.current;if(!e)return;kg();let t=Cg({container:e,elements:h,style:_,layout:h.filter(e=>e.group===`nodes`).length<=6?{name:`concentric`,animate:!1,padding:24}:{name:`cose-bilkent`,animate:!1,fit:!0,padding:24,nodeDimensionsIncludeLabels:!1,idealEdgeLength:90,nodeRepulsion:6500,randomize:!0},textureOnViewport:!0,hideEdgesOnViewport:!0,motionBlur:!1,pixelRatio:1,wheelSensitivity:.2,minZoom:.1,maxZoom:4,autoungrabify:!0});s.current=t,t.on(`layoutstop`,()=>t.fit(void 0,24)),t.on(`mouseover`,`node`,e=>{b(t,e.target.id(),!0)}),t.on(`mouseout`,`node`,()=>y(t)),t.on(`pan zoom`,()=>{f(e=>{if(!e)return e;let n=t.getElementById(e.id);if(n.empty())return e;let r=n.renderedPosition();return{...e,x:r.x,y:r.y}})}),t.on(`tap`,`node`,e=>{a(e.target.id())});let n=new ResizeObserver(()=>{t.resize(),t.fit(void 0,24)});return n.observe(e),()=>{n.disconnect(),t.destroy(),s.current=null}},[h,_,b,y,a]);let x=(0,M.useMemo)(()=>{if(!d)return null;let e=o.current?.clientWidth??0,t=o.current?.clientHeight??i,n=d.x+18,r=d.y-96-12;return n+200+12>e&&(n=d.x-200-18),n<12&&(n=12),r<12&&(r=d.y+18),r+96+12>t&&(r=Math.max(12,t-96-12)),{left:n,top:r,w:200}},[d,i]);return(0,$.jsxs)(`div`,{style:{position:`relative`,width:`100%`,height:i},children:[(0,$.jsx)(`div`,{ref:o,style:{position:`absolute`,inset:0},"aria-hidden":`true`}),d&&x&&(0,$.jsx)(`div`,{style:{position:`absolute`,left:x.left,top:x.top,width:x.w,zIndex:Dg.mapHoverPanel,pointerEvents:`none`},children:(0,$.jsxs)(c,{bordered:!0,padding:`sm`,radius:`md`,shadow:`md`,children:[(0,$.jsx)(v,{label:d.id,value:Math.round(d.node.metrics.request_rate_rps),unit:`req/s`}),(0,$.jsx)(v,{label:`Error rate`,value:(d.node.metrics.error_rate*100).toFixed(2),unit:`%`})]})})]})});function Pg(e){return e===`healthy`?`running`:e===`degraded`?`degraded`:e===`failing`?`failed`:`idle`}function Fg(e){return e===`healthy`?`info`:e===`degraded`?`warning`:e===`failing`?`danger`:`subtle`}var Ig=M.memo(({nodes:e,toNodeStatus:t,onSelect:n,selectedId:r})=>(0,$.jsx)(l,{columns:(0,M.useMemo)(()=>[{key:`id`,title:`Service`,render:(e,t)=>(0,$.jsx)(_,{text:t.id})},{key:`status`,title:`Status`,width:130,render:(e,n)=>{let r=t(n.status);return(0,$.jsx)(s,{status:Pg(r),label:(0,$.jsx)(x,{tone:Fg(r),size:`sm`,children:n.status})})}},{key:`rps`,title:`Req rate`,width:110,align:`right`,render:(e,t)=>`${Math.round(t.metrics.request_rate_rps)}/s`},{key:`err`,title:`Error rate`,width:110,align:`right`,render:(e,t)=>`${(t.metrics.error_rate*100).toFixed(2)}%`}],[t]),data:e,rowKey:`id`,density:`compact`,stickyHeader:!0,selection:`single`,selectedKeys:r?[r]:[],onRowClick:e=>n(e.id),empty:`No services match the filter.`}));function Lg(e){return e===`healthy`?`info`:e===`degraded`?`warning`:e===`critical`||e===`failing`?`danger`:`neutral`}var Rg=M.memo(({node:n,edges:r,onClose:a,onSelectService:s})=>{let l=r.filter(e=>e.target===n.id),u=r.filter(e=>e.source===n.id),d=n.metrics.error_rate*100;return(0,$.jsxs)(e,{direction:`vertical`,size:`md`,children:[(0,$.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:(0,$.jsxs)(e,{size:`xs`,align:`center`,children:[(0,$.jsx)(`code`,{children:n.id}),(0,$.jsx)(x,{tone:Lg(n.status),size:`sm`,children:n.status})]}),extra:(0,$.jsx)(i,{icon:(0,$.jsx)(j,{size:13}),"aria-label":`Close`,variant:`ghost`,size:`sm`,onClick:a}),children:(0,$.jsxs)(o,{columns:2,gap:`sm`,children:[(0,$.jsx)(o.Col,{span:1,children:(0,$.jsx)(v,{label:`Req rate (≈)`,value:Math.round(n.metrics.request_rate_rps)})}),(0,$.jsx)(o.Col,{span:1,children:(0,$.jsx)(v,{label:`Error Rate`,value:d.toFixed(2),unit:`%`})}),(0,$.jsx)(o.Col,{span:1,children:(0,$.jsx)(v,{label:`Avg Latency`,value:n.metrics.avg_latency_ms,unit:`ms`})}),(0,$.jsx)(o.Col,{span:1,children:(0,$.jsx)(v,{label:`P99 (est.)`,value:n.metrics.p99_latency_ms,unit:`ms`})})]})}),(0,$.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Health Score`,extra:(0,$.jsx)(x,{tone:`subtle`,size:`sm`,children:n.health_score.toFixed(2)}),children:(0,$.jsx)(g,{value:n.health_score*100,tone:n.health_score<.4?`danger`:n.health_score<.7?`warning`:`neutral`})}),l.length>0&&(0,$.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Upstream`,children:(0,$.jsx)(e,{direction:`vertical`,size:`xs`,children:l.map(n=>(0,$.jsx)(t,{variant:`ghost`,size:`sm`,block:!0,onClick:()=>s(n.source),children:(0,$.jsxs)(e,{justify:`between`,align:`center`,children:[(0,$.jsx)(`code`,{children:n.source}),(0,$.jsxs)(x,{tone:`subtle`,size:`sm`,children:[n.call_count,` calls`]})]})},n.source))})}),u.length>0&&(0,$.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Downstream`,children:(0,$.jsx)(e,{direction:`vertical`,size:`xs`,children:u.map(n=>(0,$.jsx)(t,{variant:`ghost`,size:`sm`,block:!0,onClick:()=>s(n.target),children:(0,$.jsxs)(e,{justify:`between`,align:`center`,children:[(0,$.jsx)(`code`,{children:n.target}),(0,$.jsxs)(x,{tone:`subtle`,size:`sm`,children:[n.call_count,` calls`]})]})},n.target))})}),n.alerts.length>0&&(0,$.jsx)(e,{direction:`vertical`,size:`xs`,children:n.alerts.map((e,t)=>(0,$.jsx)(b,{severity:`danger`,children:e},t))})]})}),zg=M.memo(({items:t})=>(0,$.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,children:(0,$.jsx)(e,{size:`lg`,wrap:!0,children:t.map((e,t)=>(0,$.jsxs)(M.Fragment,{children:[t>0&&(0,$.jsx)(S,{direction:`vertical`}),(0,$.jsx)(v,{...e})]},`${t}-${String(e.label)}`))})}));function Bg(e=800){let[t,n]=(0,M.useState)(()=>typeof window>`u`?e:window.innerHeight);return(0,M.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>n(window.innerHeight);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),t}function Vg(e){return e===`healthy`||e===`degraded`?e:e===`critical`||e===`failing`?`failing`:`unknown`}function Hg(e){return e===`critical`||e===`failing`}var Ug=M.memo(()=>{let{graph:t,loading:n,error:r}=T(),{dashboard:i,stats:a}=D(),[o,s]=(0,M.useState)(null),[l,f]=(0,M.useState)(``),p=y(m.coarse),[g,_]=(0,M.useState)(null),v=g?g===`list`:p,x=Bg(),S=p?460:Math.max(460,x-320),E=t?.nodes??[],k=t?.edges??[],j=(0,M.useMemo)(()=>{let e=l.trim().toLowerCase();return e?E.filter(t=>t.id.toLowerCase().includes(e)):E},[E,l]),N=i?.active_services??E.length,P=i?.error_rate??0,F=a,I=e=>{if(typeof e==`number`)return e;if(typeof e==`string`&&e.trim()!==``&&Number.isFinite(Number(e)))return Number(e)},L=I(F?.TraceCount)??I(F?.traceCount)??i?.total_traces??0,R=I(F?.LogCount)??I(F?.logCount)??i?.total_logs??0,z=I(F?.DBSizeMB)??I(F?.db_size_mb),B=(0,M.useCallback)(e=>{let t=E.find(t=>t.id===e);t&&s(t)},[E]),V=(0,M.useCallback)(()=>s(null),[]);return(0,$.jsxs)(e,{direction:`vertical`,size:`md`,style:{display:`flex`,width:`100%`},children:[(0,$.jsx)(h,{size:`sm`,title:`Service Topology`,subtitle:`Live dependency map · click a node for details`,inlineSubtitle:!0}),(0,$.jsx)(zg,{items:[{label:`Services`,value:N},{label:`Error rate`,value:P.toFixed(2),unit:`%`},{label:`Traces`,value:O(L)},{label:`Logs`,value:O(R)},...z!=null&&Number.isFinite(z)?[{label:`DB`,value:z.toFixed(0),unit:`MB`}]:[]]}),(0,$.jsxs)(c,{bordered:!0,padding:`sm`,radius:`md`,extra:(0,$.jsxs)(e,{size:`sm`,align:`center`,children:[(0,$.jsx)(C,{items:[{key:`graph`,label:`Graph`},{key:`list`,label:`List`}],value:v?`list`:`graph`,onChange:e=>_(e),variant:`segment`,size:`sm`}),(0,$.jsx)(w,{value:l,onChange:e=>f(e),placeholder:`Filter services`,size:`sm`,prefix:(0,$.jsx)(A,{size:12})})]}),children:[n&&(0,$.jsx)(d,{label:`Loading service map`}),r&&(0,$.jsx)(b,{severity:`danger`,title:`Service map failed to load`,children:r}),!n&&!r&&E.length===0&&(0,$.jsx)(b,{severity:`info`,children:`No services discovered yet.`}),!n&&!r&&j.length===0&&E.length>0&&(0,$.jsx)(b,{severity:`info`,children:`No services match the filter.`}),!n&&!r&&j.length>0&&(v?(0,$.jsx)(Ig,{nodes:j,toNodeStatus:Vg,onSelect:B,selectedId:o?.id}):(0,$.jsx)(Ng,{nodes:j,edges:k,toNodeStatus:Vg,isEdgeFailing:Hg,height:S,onSelect:B}))]}),(0,$.jsx)(u,{open:o!==null,onClose:V,placement:`right`,width:p?`92vw`:420,title:o?(0,$.jsx)(`code`,{children:o.id}):void 0,description:`Service detail · upstream, downstream, alerts`,children:o&&(0,$.jsx)(Rg,{node:o,edges:k,onClose:V,onSelectService:B})})]})});export{Ug as default}; \ No newline at end of file diff --git a/internal/ui/dist/assets/index-DzLWOk_K.css b/internal/ui/dist/assets/index-DzLWOk_K.css deleted file mode 100644 index 5a9dae9..0000000 --- a/internal/ui/dist/assets/index-DzLWOk_K.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:75% 100%;font-display:swap;src:url(/assets/BricolageGrotesque-Variable-C5Lc8Qmc.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/PlusJakartaSans-Variable-eXO_dkmS.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/GeistMono-Variable-BNLlm6Cd.woff2)format("woff2")}:root{--font-display:"Bricolage Grotesque", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--font-sans:"Plus Jakarta Sans", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-display:64px;--lh-display:1.02;--ls-display:-.035em;--fs-h1:44px;--lh-h1:1.06;--ls-h1:-.028em;--fs-h2:32px;--lh-h2:1.12;--ls-h2:-.022em;--fs-h3:22px;--lh-h3:1.25;--ls-h3:-.014em;--fs-h4:17px;--lh-h4:1.35;--ls-h4:-.008em;--fs-body:15px;--lh-body:1.55;--ls-body:0;--fs-small:13px;--lh-small:1.5;--ls-small:0;--fs-micro:11px;--lh-micro:1.4;--ls-micro:.04em;--fs-code:13.5px;--lh-code:1.55;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-0:0;--space-1:4px;--space-1\.5:6px;--space-2:8px;--space-2\.5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--container-narrow:640px;--container:960px;--container-wide:1280px;--container-full:1536px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--border-thin:1px;--border-medium:1.5px;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-instant:80ms;--dur-fast:.14s;--dur-base:.22s;--dur-slow:.38s;--elevation-card:var(--shadow-sm);--elevation-popover:var(--shadow-md);--elevation-modal:var(--shadow-lg);--elevation-toast:var(--shadow-lg);--inset-highlight:inset 0 1px 0 #ffffff0f;--inset-shade:inset 0 -1px 0 #0000001f;--brand-red-50:#fff0f0;--brand-red-100:#ffd6d6;--brand-red-200:#ffa8a8;--brand-red-300:#ff6b6b;--brand-red-400:#ff2e2e;--brand-red-500:#e60000;--brand-red-600:#c20000;--brand-red-700:#9e0000;--brand-red-800:#7a0000;--brand-red-900:#520000;--brand-gray-50:#f5f5f5;--brand-gray-100:#e5e5e5;--brand-gray-200:#ccc;--brand-gray-300:#a6a6a6;--brand-gray-400:gray;--brand-gray-500:#5a5a5a;--brand-gray-600:#3d3d3d;--brand-gray-700:#2b2b2b;--brand-gray-800:#1c1c1c;--brand-gray-900:#0f0f0f;--amber-500:#ffb948;--red-500:#ff5a5f;--blue-500:#3d8cff;--pink-500:#ff5ca8}:root,[data-theme=light]{--bg-0:#fff;--bg-1:#fff;--bg-2:#f5f5f5;--bg-3:#e5e5e5;--bg-inverse:#1c1c1c;--fg-1:#1c1c1c;--fg-2:#3d3d3d;--fg-3:#4f4f4f;--fg-4:#a6a6a6;--fg-inverse:#fff;--border-1:#1c1c1c14;--border-2:#1c1c1c24;--border-3:#1c1c1c3d;--accent:#e60000;--accent-hover:#c20000;--accent-press:#9e0000;--accent-soft:#e6000014;--accent-soft-2:#e6000029;--accent-fg:#fff;--success:#1c1c1c;--warning:#d98e2b;--danger:#e60000;--info:#2d73d9;--shadow-xs:0 1px 1px #1c1c1c0a;--shadow-sm:0 1px 2px #1c1c1c0f, 0 1px 1px #1c1c1c0a;--shadow-md:0 4px 12px #1c1c1c12, 0 1px 2px #1c1c1c0a;--shadow-lg:0 12px 32px #1c1c1c1a, 0 2px 6px #1c1c1c0d;--shadow-focus:0 0 0 2px var(--bg-0), 0 0 0 4px var(--accent);--grid-line:#1c1c1c0a}[data-theme=dark]{--bg-0:#1c1c1c;--bg-1:#2b2b2b;--bg-2:#3d3d3d;--bg-3:#4a4a4a;--bg-inverse:#fff;--fg-1:#fff;--fg-2:#ccc;--fg-3:#a6a6a6;--fg-4:#5a5a5a;--fg-inverse:#1c1c1c;--border-1:#ffffff14;--border-2:#ffffff24;--border-3:#ffffff3d;--accent:#e60000;--accent-hover:#ff2e2e;--accent-press:#c20000;--accent-soft:#e6000024;--accent-soft-2:#e600003d;--accent-fg:#fff;--success:#fff;--warning:#ffb948;--danger:#ff6366;--info:#62a3ff;--shadow-xs:0 1px 1px #0006;--shadow-sm:0 1px 2px #00000073, 0 1px 1px #0000004d;--shadow-md:0 4px 12px #00000080, 0 1px 2px #00000059;--shadow-lg:0 18px 40px #000000a6, 0 2px 8px #0006;--shadow-focus:0 0 0 2px var(--bg-0), 0 0 0 4px var(--accent);--grid-line:#ffffff0a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-0:#1c1c1c;--bg-1:#2b2b2b;--bg-2:#3d3d3d;--bg-3:#4a4a4a;--bg-inverse:#fff;--fg-1:#fff;--fg-2:#ccc;--fg-3:#a6a6a6;--fg-4:#5a5a5a;--fg-inverse:#1c1c1c;--border-1:#ffffff14;--border-2:#ffffff24;--border-3:#ffffff3d;--accent:#e60000;--accent-hover:#ff2e2e;--accent-press:#c20000;--accent-soft:#e6000024;--accent-soft-2:#e600003d;--accent-fg:#fff;--success:#fff;--warning:#ffb948;--danger:#ff6366;--info:#62a3ff;--shadow-xs:0 1px 1px #0006;--shadow-sm:0 1px 2px #00000073, 0 1px 1px #0000004d;--shadow-md:0 4px 12px #00000080, 0 1px 2px #00000059;--shadow-lg:0 18px 40px #000000a6, 0 2px 8px #0006;--shadow-focus:0 0 0 2px var(--bg-0), 0 0 0 4px var(--accent);--grid-line:#ffffff0a}}html{font-family:var(--font-sans);color:var(--fg-1);background:var(--bg-0)}body{font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"calt", "liga", "kern"}.rcs-display,h1.display{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-optical-sizing:auto;font-feature-settings:"ss01", "kern";color:var(--fg-1)}h1,.rcs-h1{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1);font-optical-sizing:auto;font-feature-settings:"ss01", "kern";color:var(--fg-1);margin:0}h2,.rcs-h2{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-optical-sizing:auto;font-feature-settings:"ss01", "kern";color:var(--fg-1);margin:0}h3,.rcs-h3{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-optical-sizing:auto;font-feature-settings:"ss01", "kern";color:var(--fg-1);margin:0}h4,.rcs-h4{font-weight:var(--fw-medium);font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4);color:var(--fg-1);margin:0}p,.rcs-body{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg-2);margin:0}.rcs-small,small{font-size:var(--fs-small);line-height:var(--lh-small);color:var(--fg-3)}.rcs-micro,.rcs-label{font-family:var(--font-mono);font-size:var(--fs-micro);line-height:var(--lh-micro);letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--fg-3);font-weight:var(--fw-medium)}code,kbd,samp,pre,.rcs-code{font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);font-feature-settings:"zero", "tnum";font-variant-numeric:tabular-nums slashed-zero}.rcs-stat-value,.rcs-stat-delta,.rcs-micro,.rcs-label{font-variant-numeric:tabular-nums}code:not(pre code){background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius-xs);color:var(--fg-1);padding:1px 5px;font-size:.92em}a{color:var(--accent);transition:opacity var(--dur-fast) var(--ease-out-quart);text-decoration:none}a:hover{opacity:.75}::selection{background:var(--accent-soft-2);color:var(--fg-1)}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.rcs-button,.rcs-input,.rcs-textarea,.rcs-select-trigger{font-family:var(--font-sans)}.rcs-button{justify-content:center;align-items:center;gap:var(--space-2);font-weight:var(--fw-medium);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart), transform var(--dur-fast) var(--ease-out-quart);border:1px solid #0000;display:inline-flex}.rcs-button:disabled,.rcs-button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.rcs-button:active:not(:disabled){transform:translateY(.5px)}.rcs-button--primary:focus-visible,.rcs-button--danger:focus-visible{box-shadow:var(--inset-highlight), var(--inset-shade), var(--shadow-focus)}.rcs-button--xs{border-radius:var(--radius-sm);height:24px;padding:0 8px;font-size:12px}.rcs-button--sm{border-radius:var(--radius-sm);height:28px;padding:0 10px;font-size:13px}.rcs-button--md{border-radius:var(--radius-sm);height:32px;padding:0 12px;font-size:14px}.rcs-button--lg{border-radius:var(--radius-md);height:40px;padding:0 16px;font-size:15px}.rcs-button--pill{border-radius:var(--radius-full)}.rcs-button--square{aspect-ratio:1;padding:0}.rcs-button--circle{aspect-ratio:1;border-radius:var(--radius-full);padding:0}.rcs-button--block{width:100%}.rcs-button--primary{background:var(--bg-inverse);color:var(--fg-inverse);border-color:var(--bg-inverse);box-shadow:var(--inset-highlight), var(--inset-shade), 0 1px 1px #0000000a}.rcs-button--primary:hover:not(:disabled){background:var(--brand-gray-700);border-color:var(--brand-gray-700)}.rcs-button--secondary{background:var(--bg-1);color:var(--fg-1);border-color:var(--border-2)}.rcs-button--secondary:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-3)}.rcs-button--ghost{color:var(--fg-1);background:0 0;border-color:#0000}.rcs-button--ghost:hover:not(:disabled){background:var(--bg-2)}.rcs-button--danger{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);box-shadow:var(--inset-highlight), var(--inset-shade), 0 1px 1px #0000000a}.rcs-button--danger:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.rcs-button--link{color:var(--accent);background:0 0;border-color:#0000;height:auto;padding:0}.rcs-button--link:hover:not(:disabled){opacity:.75}.rcs-button-spinner{border:1.5px solid;border-top-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite rcs-spin}@keyframes rcs-spin{to{transform:rotate(360deg)}}.rcs-button-group{display:inline-flex}.rcs-button-group--vertical{flex-direction:column}.rcs-button-group--attached .rcs-button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.rcs-button-group--attached .rcs-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rcs-button-group--attached.rcs-button-group--vertical .rcs-button:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px;margin-left:0}.rcs-button-group--attached.rcs-button-group--vertical .rcs-button:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.rcs-input-wrap{background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart);align-items:center;width:100%;display:flex}.rcs-input-wrap:focus-within{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rcs-input-wrap[data-status=error]{border-color:var(--danger)}.rcs-input-wrap[data-status=warning]{border-color:var(--warning)}.rcs-input-wrap[data-status=success]{border-color:var(--brand-gray-800)}.rcs-input-wrap[data-disabled=true]{opacity:.6;cursor:not-allowed;background:var(--bg-2)}.rcs-input-wrap--xs{height:24px;padding:0 8px;font-size:12px}.rcs-input-wrap--sm{height:28px;padding:0 10px;font-size:13px}.rcs-input-wrap--md{height:32px;padding:0 12px;font-size:14px}.rcs-input-wrap--lg{height:40px;padding:0 14px;font-size:15px}.rcs-input{min-width:0;color:var(--fg-1);font-family:inherit;font-size:inherit;background:0 0;border:0;outline:0;flex:1}.rcs-input::placeholder{color:var(--fg-4)}.rcs-input-wrap>.rcs-input:focus,.rcs-input-wrap>.rcs-input:focus-visible{box-shadow:none;border-radius:inherit}@media (width<=768px),(pointer:coarse){.rcs-input-wrap--xs,.rcs-input-wrap--sm,.rcs-input-wrap--md,.rcs-input-wrap--lg,.rcs-textarea{font-size:16px}}.rcs-input-affix{color:var(--fg-3);align-items:center;display:inline-flex}.rcs-input-affix--left{margin-right:var(--space-2)}.rcs-input-affix--right{margin-left:var(--space-2)}.rcs-input-clear{cursor:pointer;color:var(--fg-3);border-radius:var(--radius-xs);background:0 0;border:0;padding:2px;line-height:1}.rcs-input-clear:hover{color:var(--fg-1);background:var(--bg-2)}.rcs-textarea{background:var(--bg-1);width:100%;color:var(--fg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);transition:border-color var(--dur-fast) var(--ease-out-quart), box-shadow var(--dur-fast) var(--ease-out-quart);resize:vertical;outline:0;font-family:inherit;font-size:14px;line-height:1.55;display:block}.rcs-textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rcs-textarea-count{text-align:right;font-family:var(--font-mono);color:var(--fg-4);margin-top:4px;font-size:11px;display:block}.rcs-pin{gap:var(--space-2);display:inline-flex}.rcs-pin-cell{text-align:center;width:36px;height:40px;font-family:var(--font-mono);background:var(--bg-1);color:var(--fg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);outline:0;font-size:16px}.rcs-pin-cell:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rcs-form-field{margin-bottom:var(--space-4);display:block}.rcs-form-label{font-size:13px;font-weight:var(--fw-medium);color:var(--fg-1);margin-bottom:var(--space-2);display:block}.rcs-form-required{color:var(--danger);margin-left:2px}.rcs-form-optional{color:var(--fg-4);margin-left:4px;font-weight:400}.rcs-form-hint{color:var(--fg-3);margin-top:6px;font-size:12px;display:block}.rcs-form-error{color:var(--danger);font-size:12px;font-family:var(--font-mono);margin-top:6px;display:block}.rcs-checkbox,.rcs-radio{align-items:flex-start;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;display:inline-flex}.rcs-checkbox input,.rcs-radio input{appearance:none;border:1.5px solid var(--border-3);background:var(--bg-1);cursor:pointer;width:16px;height:16px;transition:background var(--dur-fast) var(--ease-out-quart), border-color var(--dur-fast) var(--ease-out-quart);flex-shrink:0;place-items:center;margin:1px 0 0;display:inline-grid}.rcs-checkbox input{border-radius:3px}.rcs-radio input{border-radius:50%}.rcs-checkbox input:checked,.rcs-radio input:checked{background:var(--bg-inverse);border-color:var(--bg-inverse)}.rcs-checkbox input:checked:after{content:"";border-left:1.75px solid var(--fg-inverse);border-bottom:1.75px solid var(--fg-inverse);width:9px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.rcs-checkbox input:indeterminate{background:var(--bg-inverse);border-color:var(--bg-inverse)}.rcs-checkbox input:indeterminate:after{content:"";background:var(--fg-inverse);width:8px;height:1.75px}.rcs-radio input:checked:after{content:"";background:var(--fg-inverse);border-radius:50%;width:6px;height:6px}.rcs-checkbox-label,.rcs-radio-label{line-height:1.4}.rcs-checkbox-desc,.rcs-radio-desc{color:var(--fg-3);margin-top:2px;font-size:12px;display:block}.rcs-radio-group{gap:var(--space-4);display:inline-flex}.rcs-radio-group--vertical{flex-direction:column}.rcs-switch{align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.rcs-switch-track{background:var(--bg-3);border-radius:var(--radius-full);width:32px;height:18px;transition:background var(--dur-fast) var(--ease-out-quart);position:relative}.rcs-switch-thumb{width:14px;height:14px;transition:transform var(--dur-fast) var(--ease-out-quart);box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.rcs-switch[data-checked=true] .rcs-switch-track{background:var(--accent)}.rcs-switch[data-checked=true] .rcs-switch-thumb{transform:translate(14px)}.rcs-switch--xs .rcs-switch-track{width:24px;height:14px}.rcs-switch--xs .rcs-switch-thumb{width:10px;height:10px}.rcs-switch--xs[data-checked=true] .rcs-switch-thumb{transform:translate(10px)}.rcs-switch--lg .rcs-switch-track{width:44px;height:24px}.rcs-switch--lg .rcs-switch-thumb{width:20px;height:20px}.rcs-switch--lg[data-checked=true] .rcs-switch-thumb{transform:translate(20px)}.rcs-switch input{opacity:0;pointer-events:none;position:absolute}.rcs-slider{-webkit-user-select:none;user-select:none;height:32px;padding:12px 0;position:relative}.rcs-slider-track{background:var(--bg-3);border-radius:var(--radius-full);height:4px;position:relative}.rcs-slider-fill{background:var(--accent);border-radius:inherit;height:100%;position:absolute}.rcs-slider-thumb{border:2px solid var(--accent);width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:grab;background:#fff;border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.rcs-slider-thumb:active{cursor:grabbing}.rcs-slider-marks{height:16px;color:var(--fg-3);margin-top:8px;font-size:11px;position:relative}.rcs-slider-mark{position:absolute;transform:translate(-50%)}.rcs-select{width:100%;display:inline-block;position:relative}.rcs-select-trigger{align-items:center;gap:var(--space-2);background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-sm);width:100%;min-width:120px;color:var(--fg-1);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out-quart);outline:0;display:inline-flex}.rcs-select-trigger:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rcs-select-trigger[data-status=error]{border-color:var(--danger)}.rcs-select-trigger[disabled]{opacity:.6;cursor:not-allowed}.rcs-select-trigger--xs{height:24px;padding:0 8px;font-size:12px}.rcs-select-trigger--sm{height:28px;padding:0 10px;font-size:13px}.rcs-select-trigger--md{height:32px;padding:0 12px;font-size:14px}.rcs-select-trigger--lg{height:40px;padding:0 14px;font-size:15px}.rcs-select-value{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rcs-select-placeholder{color:var(--fg-4)}.rcs-select-caret{color:var(--fg-3);transition:transform var(--dur-fast) var(--ease-out-quart);flex-shrink:0}.rcs-select[data-open=true] .rcs-select-caret{transform:rotate(180deg)}.rcs-select-menu{z-index:20;background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-md);box-shadow:var(--elevation-popover);max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.rcs-select-search{background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius-sm);width:100%;color:var(--fg-1);outline:0;margin-bottom:4px;padding:6px 8px;font-size:13px}.rcs-select-option{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;padding:6px 8px;font-size:13px;display:flex}.rcs-select-option:hover,.rcs-select-option[data-active=true]{background:var(--bg-2)}.rcs-select-option[data-selected=true]{background:var(--accent-soft);color:var(--fg-1);font-weight:var(--fw-medium)}.rcs-select-option[data-disabled=true]{opacity:.4;cursor:not-allowed}.rcs-select-option-desc{color:var(--fg-3);margin-left:auto;font-size:11px}.rcs-select-empty{text-align:center;color:var(--fg-4);padding:12px;font-size:13px}.rcs-combo-tag{background:var(--bg-2);border-radius:var(--radius-xs);align-items:center;gap:4px;margin-right:4px;padding:1px 4px 1px 6px;font-size:12px;display:inline-flex}.rcs-combo-tag-x{cursor:pointer;color:var(--fg-3);background:0 0;border:0;padding:0 2px}.rcs-upload-drop{padding:var(--space-8);border:1.5px dashed var(--border-2);border-radius:var(--radius-md);background:var(--bg-1);text-align:center;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out-quart), background var(--dur-fast) var(--ease-out-quart);flex-direction:column;justify-content:center;align-items:center;display:flex}.rcs-upload-drop:hover,.rcs-upload-drop[data-drag=true]{border-color:var(--accent);background:var(--accent-soft)}.rcs-upload-hint{color:var(--fg-3);margin-top:4px;font-size:12px}.rcs-badge{font-family:var(--font-mono);font-size:11px;font-weight:var(--fw-medium);border-radius:var(--radius-xs);letter-spacing:.02em;text-transform:uppercase;border:1px solid #0000;align-items:center;gap:4px;padding:2px 6px;line-height:1.4;display:inline-flex}.rcs-badge--sm{padding:1px 4px;font-size:10px}.rcs-badge--lg{padding:3px 8px;font-size:12px}.rcs-badge--neutral{background:var(--bg-2);color:var(--fg-2);border-color:var(--border-1)}.rcs-badge--info{color:var(--info);background:#2d73d91a}.rcs-badge--warning{color:var(--warning);background:#d98e2b1f}.rcs-badge--danger{background:var(--accent-soft);color:var(--accent)}.rcs-badge--subtle{background:var(--bg-2);color:var(--fg-3);border-color:var(--border-1)}.rcs-badge--solid{background:var(--bg-inverse);color:var(--fg-inverse)}.rcs-badge-x{cursor:pointer;color:currentColor;opacity:.6;background:0 0;border:0;padding:0 0 0 2px}.rcs-badge-x:hover{opacity:1}.rcs-status-dot{align-items:center;gap:var(--space-2);color:var(--fg-2);font-size:13px;display:inline-flex}.rcs-status-dot-glyph{background:var(--fg-3);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.rcs-status-dot[data-status=running] .rcs-status-dot-glyph,.rcs-status-dot[data-status=live] .rcs-status-dot-glyph{background:#1f9e5c}.rcs-status-dot[data-status=degraded] .rcs-status-dot-glyph{background:var(--warning)}.rcs-status-dot[data-status=failed] .rcs-status-dot-glyph{background:var(--danger)}.rcs-status-dot[data-status=idle] .rcs-status-dot-glyph,.rcs-status-dot[data-status=stopped] .rcs-status-dot-glyph{background:var(--fg-4)}.rcs-status-dot[data-pulse=true] .rcs-status-dot-glyph{animation:rcs-pulse 1.6s var(--ease-out-quart) infinite;box-shadow:0 0}@keyframes rcs-pulse{0%{box-shadow:0 0 #1f9e5c80}70%{box-shadow:0 0 0 6px #1f9e5c00}to{box-shadow:0 0 #1f9e5c00}}.rcs-card{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--elevation-card);transition:border-color var(--dur-base) var(--ease-out-quart), box-shadow var(--dur-base) var(--ease-out-quart), transform var(--dur-base) var(--ease-out-quart)}.rcs-card[data-hoverable=true]:hover{border-color:var(--border-2);box-shadow:var(--elevation-popover);transform:translateY(-1px)}.rcs-card[data-hoverable=true]:active{box-shadow:var(--elevation-card);transform:translateY(0)}.rcs-card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-1);justify-content:space-between;align-items:flex-start;display:flex}.rcs-card-title{font-size:15px;font-weight:var(--fw-semibold);color:var(--fg-1)}.rcs-card-subtitle{color:var(--fg-3);margin-top:2px;font-size:13px}.rcs-card-extra{flex-shrink:0}.rcs-card-body{padding:var(--space-5)}.rcs-card-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-1);background:var(--bg-2);border-radius:0 0 var(--radius-md) var(--radius-md)}.rcs-space{display:inline-flex}.rcs-space--vertical{flex-direction:column}.rcs-space--wrap{flex-wrap:wrap}.rcs-space-split{color:var(--border-2);align-self:stretch;align-items:stretch;display:inline-flex}.rcs-divider{background:var(--border-1);border:0}.rcs-divider--horizontal{width:100%;height:1px;margin:var(--space-4) 0}.rcs-divider--vertical{width:1px;height:1em;margin:0 var(--space-3);vertical-align:middle;display:inline-block}.rcs-divider--text{align-items:center;gap:var(--space-3);height:auto;margin:var(--space-4) 0;font-family:var(--font-mono);text-transform:uppercase;color:var(--fg-3);letter-spacing:.04em;background:0 0;font-size:11px;display:flex}.rcs-divider--text:before,.rcs-divider--text:after{content:"";background:var(--border-1);flex:1;height:1px}.rcs-divider--dashed{background-image:linear-gradient(to right, var(--border-2) 50%, transparent 50%);background-color:#0000;background-size:8px 1px}.rcs-grid{display:grid}.rcs-scroll{position:relative}.rcs-scroll[data-thin=true]{scrollbar-width:thin}.rcs-tabs{flex-direction:column;display:flex}.rcs-tabs-nav{flex-shrink:0;align-items:center;gap:0;display:flex}.rcs-tabs-tab{align-items:center;gap:var(--space-2);cursor:pointer;font-size:14px;font-weight:var(--fw-medium);color:var(--fg-3);transition:color var(--dur-fast) var(--ease-out-quart);background:0 0;border:0;padding:10px 14px;display:inline-flex}.rcs-tabs-tab:hover,.rcs-tabs-tab[data-active=true]{color:var(--fg-1)}.rcs-tabs-tab:active:not([disabled]):not([data-active=true]){transform:translateY(.5px)}.rcs-tabs-tab[disabled]{opacity:.4;cursor:not-allowed}.rcs-tabs--line .rcs-tabs-nav{border-bottom:1px solid var(--border-1)}.rcs-tabs--line .rcs-tabs-tab[data-active=true]{box-shadow:inset 0 -2px 0 0 var(--fg-1)}.rcs-tabs--card .rcs-tabs-tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid #0000;margin-bottom:-1px}.rcs-tabs--card .rcs-tabs-nav{border-bottom:1px solid var(--border-1)}.rcs-tabs--card .rcs-tabs-tab[data-active=true]{background:var(--bg-1);border-color:var(--border-1) var(--border-1) var(--bg-1)}.rcs-tabs--segment{background:var(--bg-2);border-radius:var(--radius-sm);padding:3px;display:inline-flex}.rcs-tabs--segment .rcs-tabs-nav{gap:0}.rcs-tabs--segment .rcs-tabs-tab{border-radius:var(--radius-xs);padding:6px 12px}.rcs-tabs--segment .rcs-tabs-tab[data-active=true]{background:var(--bg-1);box-shadow:var(--shadow-xs)}.rcs-tabs--pill .rcs-tabs-tab{border-radius:var(--radius-full);padding:6px 14px}.rcs-tabs--pill .rcs-tabs-tab[data-active=true]{background:var(--bg-inverse);color:var(--fg-inverse)}.rcs-tabs[data-scrollable=true]{position:relative}.rcs-tabs-nav[data-scrollable=true]{scrollbar-width:none;-ms-overflow-style:none;overflow:auto hidden}.rcs-tabs-nav[data-scrollable=true]::-webkit-scrollbar{display:none}.rcs-tabs-nav[data-scrollable=true] .rcs-tabs-tab{flex-shrink:0}.rcs-tabs[data-scrollable=true]:after{content:"";width:32px;height:var(--rcs-tabs-nav-h,40px);background:linear-gradient(to right, transparent, var(--rcs-tabs-fade-color,var(--bg-0)));pointer-events:none;z-index:1;position:absolute;top:0;right:0}.rcs-tabs-content{flex-direction:column;flex:1;min-height:0;display:flex}.rcs-menu{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-md);flex-direction:column;min-width:200px;padding:4px;display:flex}.rcs-menu--horizontal{flex-direction:row}.rcs-menu-item{align-items:center;gap:var(--space-2);cursor:pointer;border-radius:var(--radius-sm);color:var(--fg-1);padding:6px 8px;font-size:13px;display:flex}.rcs-menu-item:hover{background:var(--bg-2)}.rcs-menu-item[data-selected=true]{background:var(--accent-soft)}.rcs-menu-item[data-destructive=true]{color:var(--danger)}.rcs-menu-item[data-disabled=true]{opacity:.4;cursor:not-allowed}.rcs-menu-item-shortcut{font-family:var(--font-mono);color:var(--fg-3);margin-left:auto;font-size:11px}.rcs-menu-separator{background:var(--border-1);height:1px;margin:4px 0}.rcs-menu-label{font-family:var(--font-mono);text-transform:uppercase;color:var(--fg-3);letter-spacing:.04em;padding:4px 8px;font-size:10px}.rcs-breadcrumb{align-items:center;gap:var(--space-2);color:var(--fg-3);font-size:13px;display:inline-flex}.rcs-breadcrumb a{color:var(--fg-2)}.rcs-breadcrumb a:hover{color:var(--fg-1)}.rcs-breadcrumb-item--last{color:var(--fg-1);font-weight:var(--fw-medium)}.rcs-breadcrumb-sep{color:var(--fg-4)}.rcs-pagination{align-items:center;gap:4px;font-size:13px;display:inline-flex}.rcs-pagination-btn{min-width:28px;height:28px;color:var(--fg-2);border:1px solid var(--border-1);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:0 8px;font-size:13px}.rcs-pagination-btn:hover:not(:disabled){border-color:var(--border-3);color:var(--fg-1)}.rcs-pagination-btn[data-active=true]{background:var(--bg-inverse);color:var(--fg-inverse);border-color:var(--bg-inverse)}.rcs-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.rcs-pagination-ellipsis{color:var(--fg-4);padding:0 6px}.rcs-steps{gap:0;display:flex}.rcs-steps--vertical{flex-direction:column}.rcs-step{align-items:flex-start;gap:var(--space-2);padding:0 var(--space-3);flex:1;display:flex;position:relative}.rcs-step:not(:last-child):after{content:"";top:12px;left:calc(24px + var(--space-3));background:var(--border-2);height:1px;position:absolute;right:0}.rcs-step[data-status=finish]:after{background:var(--bg-inverse)}.rcs-step-marker{width:24px;height:24px;font-size:11px;font-family:var(--font-mono);font-weight:var(--fw-medium);border:1px solid var(--border-2);background:var(--bg-1);color:var(--fg-3);z-index:1;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.rcs-step[data-status=process] .rcs-step-marker,.rcs-step[data-status=finish] .rcs-step-marker{background:var(--bg-inverse);color:var(--fg-inverse);border-color:var(--bg-inverse)}.rcs-step[data-status=error] .rcs-step-marker{background:var(--danger);color:#fff;border-color:var(--danger)}.rcs-step-title{font-size:13px;font-weight:var(--fw-medium);color:var(--fg-1)}.rcs-step[data-status=wait] .rcs-step-title{color:var(--fg-3)}.rcs-step-desc{color:var(--fg-3);margin-top:2px;font-size:12px}.rcs-alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-1);display:flex}.rcs-alert--info{background:#2d73d90f;border-color:#2d73d933}.rcs-alert--success{background:var(--bg-2);border-color:var(--border-1)}.rcs-alert--warning{background:#d98e2b14;border-color:#d98e2b40}.rcs-alert--danger{background:var(--accent-soft);border-color:var(--accent-soft-2)}.rcs-alert-body{flex:1}.rcs-alert-title{font-weight:var(--fw-semibold);color:var(--fg-1);margin-bottom:2px;font-size:14px}.rcs-alert-content{color:var(--fg-2);font-size:13px;line-height:1.5}.rcs-alert-action{margin-top:8px}.rcs-alert-icon{flex-shrink:0;padding-top:1px;font-size:16px;line-height:1}.rcs-alert-close{cursor:pointer;color:var(--fg-3);background:0 0;border:0;flex-shrink:0;padding:2px;line-height:1}.rcs-alert-close:hover{color:var(--fg-1)}.rcs-modal-backdrop{z-index:100;padding:var(--space-4);animation:rcs-fade-in var(--dur-base) var(--ease-out-quart);background:#0006;place-items:center;display:grid;position:fixed;inset:0}.rcs-modal{background:var(--bg-1);color:var(--fg-1);border-radius:var(--radius-lg);box-shadow:var(--elevation-modal);width:100%;max-width:520px;max-height:90vh;animation:rcs-pop-in var(--dur-base) var(--ease-out-quart);flex-direction:column;display:flex}.rcs-modal--xs{max-width:360px}.rcs-modal--sm{max-width:440px}.rcs-modal--md{max-width:520px}.rcs-modal--lg{max-width:720px}.rcs-modal--fullscreen{border-radius:0;max-width:100vw;height:100vh;max-height:100vh}.rcs-modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-1);flex-shrink:0}.rcs-modal-title{font-size:17px;font-weight:var(--fw-semibold);margin:0}.rcs-modal-desc{color:var(--fg-3);margin-top:4px;font-size:13px}.rcs-modal-body{padding:var(--space-5);flex:1;min-height:0;overflow:auto}.rcs-modal-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-1);justify-content:flex-end;gap:var(--space-2);flex-shrink:0;display:flex}@keyframes rcs-fade-in{0%{opacity:0}}@keyframes rcs-pop-in{0%{opacity:0;transform:scale(.96)translateY(8px)}}.rcs-drawer{background:var(--bg-1);color:var(--fg-1);z-index:101;box-shadow:var(--elevation-modal);flex-direction:column;display:flex;position:fixed}.rcs-drawer--right{height:100dvh;top:0;right:0}.rcs-drawer--left{height:100dvh;top:0;left:0}.rcs-drawer--top{width:100dvw;top:0;left:0}.rcs-drawer--bottom{width:100dvw;bottom:0;left:0}.rcs-progress{display:block}.rcs-progress-track{background:var(--bg-3);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.rcs-progress-fill{background:var(--bg-inverse);border-radius:inherit;height:100%;transition:width var(--dur-base) var(--ease-out-quart)}.rcs-progress[data-tone=danger] .rcs-progress-fill{background:var(--danger)}.rcs-progress[data-tone=warning] .rcs-progress-fill{background:var(--warning)}.rcs-progress--lg .rcs-progress-track{height:8px}.rcs-progress--sm .rcs-progress-track{height:4px}.rcs-progress--xs .rcs-progress-track{height:3px}.rcs-progress[data-indeterminate=true] .rcs-progress-fill{animation:rcs-indeterminate 1.4s var(--ease-in-out) infinite;width:30%!important}@keyframes rcs-indeterminate{0%{transform:translate(-100%)}to{transform:translate(380%)}}.rcs-progress-value{font-family:var(--font-mono);color:var(--fg-3);margin-top:4px;font-size:11px}.rcs-skeleton{background:var(--bg-2);border-radius:var(--radius-sm);display:inline-block;position:relative;overflow:hidden}.rcs-skeleton[data-animated=true]:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:1.4s linear infinite rcs-shimmer;position:absolute;inset:0}[data-theme=dark] .rcs-skeleton[data-animated=true]:after,.rcs-skeleton[data-animated=true][data-theme=dark]:after{background:linear-gradient(90deg,#0000,#ffffff0f,#0000)}@keyframes rcs-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.rcs-skeleton--text{border-radius:var(--radius-xs);width:100%;height:1em}.rcs-skeleton--circle{border-radius:50%}.rcs-spin{align-items:center;gap:var(--space-2);color:var(--fg-3);font-size:13px;display:inline-flex}.rcs-spin-glyph{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite rcs-spin}.rcs-spin--xs .rcs-spin-glyph{border-width:1.5px;width:12px;height:12px}.rcs-spin--lg .rcs-spin-glyph{border-width:2.5px;width:24px;height:24px}.rcs-spin[data-tone=danger] .rcs-spin-glyph{color:var(--danger)}.rcs-tooltip{display:inline-block;position:relative}.rcs-tooltip-bubble{z-index:50;background:var(--bg-inverse);color:var(--fg-inverse);border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--elevation-popover);pointer-events:none;padding:4px 8px;font-size:12px;position:absolute}.rcs-tooltip-bubble[data-placement=top]{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.rcs-tooltip-bubble[data-placement=bottom]{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.rcs-tooltip-bubble[data-placement=left]{top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.rcs-tooltip-bubble[data-placement=right]{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.rcs-toast-region{bottom:var(--space-5);right:var(--space-5);z-index:200;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.rcs-toast{pointer-events:auto;background:var(--bg-1);min-width:260px;max-width:380px;color:var(--fg-1);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--elevation-toast);padding:var(--space-3) var(--space-4);gap:var(--space-3);animation:rcs-toast-in var(--dur-base) var(--ease-out-quart);align-items:flex-start;display:flex}@keyframes rcs-toast-in{0%{opacity:0;transform:translateY(8px)}}.rcs-toast-title{font-weight:var(--fw-semibold);font-size:14px}.rcs-toast-desc{color:var(--fg-3);margin-top:2px;font-size:13px}.rcs-toast-action{color:var(--accent);cursor:pointer;font-weight:var(--fw-medium);background:0 0;border:0;padding:4px 8px}.rcs-toast-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px;line-height:20px}.rcs-toast--success .rcs-toast-icon{color:var(--brand-gray-800)}.rcs-toast--danger .rcs-toast-icon{color:var(--danger)}.rcs-toast--warning .rcs-toast-icon{color:var(--warning)}.rcs-toast--info .rcs-toast-icon{color:var(--info)}.rcs-table-wrap{border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-1);overflow:auto}.rcs-table{border-collapse:collapse;width:100%;font-size:13px}.rcs-table thead th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);font-size:11px;font-weight:var(--fw-medium);border-bottom:1px solid var(--border-1);background:var(--bg-2);white-space:nowrap;padding:10px 14px}.rcs-table[data-sticky-header=true] thead th{z-index:1;position:sticky;top:0}.rcs-table tbody td{border-bottom:1px solid var(--border-1);color:var(--fg-1);vertical-align:middle;padding:10px 14px}.rcs-table tbody tr:last-child td{border-bottom:0}.rcs-table[data-density=compact] tbody td{padding:6px 12px}.rcs-table[data-density=comfortable] tbody td{padding:14px 16px}.rcs-table[data-striped=true] tbody tr:nth-child(odd) td{background:var(--bg-2)}.rcs-table[data-bordered=true] th,.rcs-table[data-bordered=true] td{border-right:1px solid var(--border-1)}.rcs-table tbody tr:hover td{background:var(--bg-2);cursor:pointer}.rcs-table-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.rcs-table-sortable:after{content:" ↕";color:var(--fg-4)}.rcs-table-sortable[data-sort=asc]:after{content:" ↑";color:var(--fg-1)}.rcs-table-sortable[data-sort=desc]:after{content:" ↓";color:var(--fg-1)}.rcs-table-empty{text-align:center;padding:var(--space-12);color:var(--fg-3);font-size:13px}.rcs-table-align-right{text-align:right}.rcs-table-align-center{text-align:center}.rcs-stat{flex-direction:column;gap:4px;display:flex}.rcs-stat-label{font-family:var(--font-mono);text-transform:uppercase;color:var(--fg-3);letter-spacing:.04em;font-size:11px}.rcs-stat-value{font-size:28px;font-weight:var(--fw-semibold);color:var(--fg-1);align-items:baseline;gap:4px;display:flex}.rcs-stat-unit{color:var(--fg-3);font-size:14px;font-weight:var(--fw-regular)}.rcs-stat-delta{font-size:12px;font-family:var(--font-mono);color:var(--fg-3);align-items:center;gap:4px;display:inline-flex}.rcs-stat-delta[data-tone=good]{color:#1f9e5c}.rcs-stat-delta[data-tone=bad]{color:var(--danger)}.rcs-stat-spark{width:80px;height:24px}.rcs-avatar{background:var(--bg-2);color:var(--fg-2);font-weight:var(--fw-medium);border:1px solid var(--border-1);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.rcs-avatar img{object-fit:cover;width:100%;height:100%}.rcs-avatar--circle{border-radius:50%}.rcs-avatar--square{border-radius:var(--radius-sm)}.rcs-avatar-status{background:var(--brand-gray-800);border:2px solid var(--bg-1);border-radius:50%;width:25%;height:25%;position:absolute;bottom:0;right:0}.rcs-timeline{gap:var(--space-4);flex-direction:column;display:flex}.rcs-timeline-item{gap:var(--space-3);display:flex;position:relative}.rcs-timeline-item:not(:last-child):before{content:"";background:var(--border-1);width:1px;position:absolute;top:18px;bottom:-16px;left:7px}.rcs-timeline-marker{background:var(--bg-1);border:2px solid var(--fg-3);z-index:1;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:4px}.rcs-timeline-item[data-tone=success] .rcs-timeline-marker{border-color:var(--brand-gray-800);background:var(--brand-gray-800)}.rcs-timeline-item[data-tone=warning] .rcs-timeline-marker{border-color:var(--warning)}.rcs-timeline-item[data-tone=danger] .rcs-timeline-marker{border-color:var(--danger);background:var(--danger)}.rcs-timeline-content{flex:1;padding-bottom:4px}.rcs-timeline-title{font-size:14px;font-weight:var(--fw-medium)}.rcs-timeline-desc{color:var(--fg-3);margin-top:2px;font-size:13px}.rcs-timeline-time{font-family:var(--font-mono);color:var(--fg-4);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:11px;display:block}.rcs-chat{flex-direction:column;height:100%;min-height:0;display:flex}.rcs-chat-messages{padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow:auto}.rcs-chat-msg{gap:var(--space-3);display:flex}.rcs-chat-msg--user{flex-direction:row-reverse}.rcs-chat-bubble{max-width:75%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--bg-2);color:var(--fg-1);font-size:14px;line-height:1.5}.rcs-chat-msg--user .rcs-chat-bubble{background:var(--bg-inverse);color:var(--fg-inverse);border-bottom-right-radius:4px}.rcs-chat-msg--assistant .rcs-chat-bubble{border-bottom-left-radius:4px}.rcs-chat-msg--system .rcs-chat-bubble{border:1px dashed var(--border-2);font-family:var(--font-mono);color:var(--fg-3);background:0 0;align-self:center;max-width:100%;font-size:12px}.rcs-chat-msg-status{font-family:var(--font-mono);color:var(--fg-4);margin-top:2px;font-size:10px}.rcs-chat-suggestions{padding:0 var(--space-4) var(--space-2);gap:var(--space-2);flex-wrap:wrap;display:flex}.rcs-chat-suggestion{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-full);color:var(--fg-2);cursor:pointer;padding:6px 12px;font-size:13px}.rcs-chat-suggestion:hover{background:var(--bg-2);border-color:var(--border-3)}.rcs-chat-composer{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-1);background:var(--bg-1);align-items:flex-end;display:flex}.rcs-chat-input{resize:none;border:1px solid var(--border-2);border-radius:var(--radius-md);background:var(--bg-1);color:var(--fg-1);outline:0;flex:1;min-height:40px;max-height:200px;padding:8px 12px;font-family:inherit;font-size:14px;line-height:1.5}.rcs-chat-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.rcs-codeblock{background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--radius-md);overflow:hidden}.rcs-codeblock-header{border-bottom:1px solid var(--border-1);background:var(--bg-1);font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;padding:6px 12px;font-size:11px;display:flex}.rcs-codeblock-pre{padding:var(--space-3) var(--space-4);font-family:var(--font-mono);color:var(--fg-1);margin:0;font-size:13px;line-height:1.5;overflow:auto}.rcs-codeblock-pre[data-wrap=true]{white-space:pre-wrap;word-break:break-word}.rcs-codeblock-line{display:flex}.rcs-codeblock-lineno{text-align:right;width:32px;padding-right:var(--space-3);color:var(--fg-4);-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline-block}.rcs-codeblock-line[data-highlight=true]{background:var(--accent-soft);margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4)}.rcs-codeblock-copy{cursor:pointer;color:var(--fg-3);font-family:var(--font-mono);border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.04em;background:0 0;border:0;padding:2px 6px;font-size:11px}.rcs-codeblock-copy:hover{color:var(--fg-1);background:var(--bg-2)}.rcs-markdown{color:var(--fg-1);font-size:14px;line-height:1.65}.rcs-markdown h1{margin:1.2em 0 .5em;font-size:22px}.rcs-markdown h2{margin:1.2em 0 .5em;font-size:18px}.rcs-markdown h3{margin:1em 0 .4em;font-size:15px}.rcs-markdown p{color:var(--fg-2);margin:.6em 0}.rcs-markdown a{color:var(--accent)}.rcs-markdown ul,.rcs-markdown ol{color:var(--fg-2);margin:.6em 0;padding-left:1.4em}.rcs-markdown blockquote{border-left:2px solid var(--border-2);color:var(--fg-3);margin:1em 0;padding:.2em 1em;font-style:italic}.rcs-markdown pre{background:var(--bg-2);padding:var(--space-3);border-radius:var(--radius-sm);overflow:auto}.rcs-markdown code{background:var(--bg-2);border-radius:3px;padding:1px 5px;font-size:.9em}.rcs-markdown--compact{font-size:13px}.rcs-markdown--compact h1{font-size:18px}.rcs-terminal{color:#e5e5e5;border-radius:var(--radius-md);font-family:var(--font-mono);background:#0f0f0f;flex-direction:column;font-size:13px;display:flex;overflow:hidden}.rcs-terminal-tabs{background:#1c1c1c;border-bottom:1px solid #2b2b2b;gap:0;padding:0 8px;display:flex}.rcs-terminal-tab{color:#a6a6a6;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border-bottom:1px solid #0000;padding:6px 10px;font-size:11px}.rcs-terminal-tab[data-active=true]{color:#fff;border-bottom-color:var(--accent)}.rcs-terminal-body{padding:var(--space-3);flex:1;overflow:auto}.rcs-terminal-line{padding:1px 0;line-height:1.5}.rcs-terminal-line[data-type=stderr]{color:#ff8585}.rcs-terminal-line[data-type=error]{color:#ff5a5f}.rcs-terminal-line[data-type=warn]{color:#ffb948}.rcs-terminal-line[data-type=info]{color:#62a3ff}.rcs-terminal-line[data-type=debug]{color:#a6a6a6}.rcs-terminal-line[data-type=prompt]{color:#1f9e5c}.rcs-terminal-cursor{vertical-align:text-bottom;background:#e5e5e5;width:7px;height:14px;animation:1s steps(2,end) infinite rcs-blink;display:inline-block}@keyframes rcs-blink{50%{opacity:0}}.rcs-rte{border:1px solid var(--border-2);border-radius:var(--radius-md);background:var(--bg-1);overflow:hidden}.rcs-rte-toolbar{border-bottom:1px solid var(--border-1);background:var(--bg-2);gap:2px;padding:4px 6px;display:flex}.rcs-rte-toolbtn{cursor:pointer;border-radius:var(--radius-xs);color:var(--fg-2);background:0 0;border:0;padding:4px 8px;font-size:13px}.rcs-rte-toolbtn:hover{background:var(--bg-3);color:var(--fg-1)}.rcs-rte-content{padding:var(--space-3);color:var(--fg-1);outline:0;min-height:120px;font-size:14px;line-height:1.6}.rcs-rte-content[data-empty=true]:before{content:attr(data-placeholder);color:var(--fg-4)}.rcs-page-header{--rcs-page-header-py:var(--space-5);--rcs-page-header-px:var(--space-6);--rcs-page-header-title-fs:var(--fs-h3);--rcs-page-header-subtitle-fs:14px;border-bottom:1px solid var(--border-1);padding:var(--rcs-page-header-py) var(--rcs-page-header-px);background:var(--bg-1)}.rcs-page-header--xs{--rcs-page-header-py:var(--space-1\.5);--rcs-page-header-px:var(--space-3);--rcs-page-header-title-fs:15px;--rcs-page-header-subtitle-fs:12px}.rcs-page-header--sm{--rcs-page-header-py:var(--space-2);--rcs-page-header-px:var(--space-4);--rcs-page-header-title-fs:var(--fs-h4);--rcs-page-header-subtitle-fs:13px}.rcs-page-header--lg{--rcs-page-header-py:var(--space-6);--rcs-page-header-px:var(--space-8);--rcs-page-header-title-fs:var(--fs-h2);--rcs-page-header-subtitle-fs:15px}.rcs-page-header--xl{--rcs-page-header-py:var(--space-8);--rcs-page-header-px:var(--space-12);--rcs-page-header-title-fs:var(--fs-h1);--rcs-page-header-subtitle-fs:17px}.rcs-page-header-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.rcs-page-header-back{cursor:pointer;color:var(--fg-3);margin-bottom:var(--space-2);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;display:inline-flex}.rcs-page-header-back:hover{color:var(--fg-1)}.rcs-page-header-back-inline{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--fg-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-quart), color var(--dur-fast) var(--ease-out-quart);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.rcs-page-header-back-inline:hover{background:var(--bg-2);color:var(--fg-1)}.rcs-page-header-back-inline:active{transform:translateY(.5px)}.rcs-page-header--sm .rcs-page-header-back-inline{width:24px;height:24px;font-size:14px}.rcs-page-header--xs .rcs-page-header-back-inline{width:22px;height:22px;font-size:13px}.rcs-page-header--xs .rcs-page-header-title{gap:var(--space-2)}.rcs-page-header-title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.rcs-page-header-title h1{font-size:var(--rcs-page-header-title-fs);font-family:var(--font-display);font-weight:var(--fw-semibold);font-optical-sizing:auto;font-feature-settings:"ss01", "kern";margin:0}.rcs-page-header-subtitle{font-size:var(--rcs-page-header-subtitle-fs);color:var(--fg-3);margin-top:4px}.rcs-page-header[data-inline-subtitle=true] .rcs-page-header-title-text{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.rcs-page-header[data-inline-subtitle=true] .rcs-page-header-subtitle{margin-top:0}.rcs-page-header[data-inline-subtitle=true] .rcs-page-header-subtitle:before{content:"·";margin-right:var(--space-2);color:var(--fg-4)}.rcs-page-header-actions{gap:var(--space-2);flex-shrink:0;display:flex}.rcs-page-header-tabs{margin-top:var(--space-4);margin-bottom:calc(-1 * (var(--rcs-page-header-py) + var(--border-thin)))}.rcs-app-shell{background:var(--bg-0);grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.rcs-app-shell-body{min-height:0;display:grid}.rcs-app-shell-body[data-has-sidebar=true]{grid-template-columns:var(--rcs-sidebar-w,240px) 1fr}.rcs-app-shell-sidebar{border-right:1px solid var(--border-1);background:var(--bg-1);overflow:auto}.rcs-app-shell-main{min-width:0;overflow:auto}.rcs-app-shell-header{border-bottom:1px solid var(--border-1);background:var(--bg-1)}.rcs-app-shell-footer{border-top:1px solid var(--border-1);background:var(--bg-1)}*,:before,:after{box-sizing:border-box}body{margin:0}#root{min-height:100vh} diff --git a/internal/ui/dist/assets/index-UdCF7Wgf.js b/internal/ui/dist/assets/index-UdCF7Wgf.js deleted file mode 100644 index 0844167..0000000 --- a/internal/ui/dist/assets/index-UdCF7Wgf.js +++ /dev/null @@ -1,10 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ServicesView-Bb9CYmXY.js","assets/useMediaQuery-D3Mg-H7H.js","assets/inputs-DxVBbFvb.js","assets/MCPConsoleView-CH5VtsjS.js"])))=>i.map(i=>d[i]); -import{C as e,M as t,N as n,O as r,P as i,S as a,T as o,a as s,b as c,c as l,g as u,h as d,i as f,j as p,k as m,l as h,m as g,n as _,o as v,r as y,s as b,t as x,u as ee,w as te,x as ne,y as re}from"./useMediaQuery-D3Mg-H7H.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ie=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,ee||(ee=!0,oe());else{var t=n(l);t!==null&&le(x,t.startTime-e)}}var ee=!1,te=-1,ne=5,re=-1;function ie(){return g?!0:!(e.unstable_now()-ret&&ie());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&le(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?oe():ee=!1}}}var oe;if(typeof y==`function`)oe=function(){y(ae)};else if(typeof MessageChannel<`u`){var se=new MessageChannel,ce=se.port2;se.port1.onmessage=ae,oe=function(){ce.postMessage(null)}}else oe=function(){_(ae,0)};function le(t,n){te=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(te),te=-1):h=!0,le(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,oe()))),r},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),ae=n(((e,t)=>{t.exports=ie()})),oe=n((e=>{var n=t();function r(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=oe()})),ce=n((e=>{var n=ae(),r=t(),i=se();function a(e){var t=`https://react.dev/errors/`+e;if(1me||(e.current=pe[me],pe[me]=null,me--)}function D(e,t){me++,pe[me]=e.current,e.current=t}var ge=he(null),_e=he(null),ve=he(null),ye=he(null);function be(e,t){switch(D(ve,t),D(_e,e),D(ge,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}E(ge),D(ge,e)}function xe(){E(ge),E(_e),E(ve)}function Se(e){e.memoizedState!==null&&D(ye,e);var t=ge.current,n=Hd(t,e.type);t!==n&&(D(_e,e),D(ge,n))}function Ce(e){_e.current===e&&(E(ge),E(_e)),ye.current===e&&(E(ye),Qf._currentValue=fe)}var we,Te;function Ee(e){if(we===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);we=t&&t[1]||``,Te=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{De=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Ee(n):``}function ke(e,t){switch(e.tag){case 26:case 27:case 5:return Ee(e.type);case 16:return Ee(`Lazy`);case 13:return e.child!==t&&t!==null?Ee(`Suspense Fallback`):Ee(`Suspense`);case 19:return Ee(`SuspenseList`);case 0:case 15:return Oe(e.type,!1);case 11:return Oe(e.type.render,!1);case 1:return Oe(e.type,!0);case 31:return Ee(`Activity`);default:return``}}function Ae(e){try{var t=``,n=null;do t+=ke(e,n),n=e,e=e.return;while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var je=Object.prototype.hasOwnProperty,Me=n.unstable_scheduleCallback,Ne=n.unstable_cancelCallback,Pe=n.unstable_shouldYield,Fe=n.unstable_requestPaint,Ie=n.unstable_now,Le=n.unstable_getCurrentPriorityLevel,Re=n.unstable_ImmediatePriority,ze=n.unstable_UserBlockingPriority,Be=n.unstable_NormalPriority,Ve=n.unstable_LowPriority,He=n.unstable_IdlePriority,Ue=n.log,We=n.unstable_setDisableYieldValue,Ge=null,Ke=null;function qe(e){if(typeof Ue==`function`&&We(e),Ke&&typeof Ke.setStrictMode==`function`)try{Ke.setStrictMode(Ge,e)}catch{}}var Je=Math.clz32?Math.clz32:Ze,Ye=Math.log,Xe=Math.LN2;function Ze(e){return e>>>=0,e===0?32:31-(Ye(e)/Xe|0)|0}var Qe=256,$e=262144,et=4194304;function tt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function nt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=tt(n))):i=tt(o):i=tt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=tt(n))):i=tt(o)):i=tt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function rt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function it(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function at(){var e=et;return et<<=1,!(et&62914560)&&(et=4194304),e}function ot(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function st(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ct(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),bn=!1;if(yn)try{var xn={};Object.defineProperty(xn,`passive`,{get:function(){bn=!0}}),window.addEventListener(`test`,xn,xn),window.removeEventListener(`test`,xn,xn)}catch{bn=!1}var Sn=null,Cn=null,wn=null;function Tn(){if(wn)return wn;var e,t=Cn,n=t.length,r,i=`value`in Sn?Sn.value:Sn.textContent,a=i.length;for(e=0;e=rr),or=` `,sr=!1;function cr(e,t){switch(e){case`keyup`:return tr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function lr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var ur=!1;function dr(e,t){switch(e){case`compositionend`:return lr(t);case`keypress`:return t.which===32?(sr=!0,or):null;case`textInput`:return e=t.data,e===or&&sr?null:e;default:return null}}function fr(e,t){if(ur)return e===`compositionend`||!nr&&cr(e,t)?(e=Tn(),wn=Cn=Sn=null,ur=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Pr(n)}}function Ir(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ir(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Lr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Kt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Kt(e.document)}return t}function Rr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var zr=yn&&`documentMode`in document&&11>=document.documentMode,Br=null,Vr=null,Hr=null,Ur=!1;function Wr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ur||Br==null||Br!==Kt(r)||(r=Br,`selectionStart`in r&&Rr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Hr&&Nr(Hr,r)||(Hr=r,r=Ed(Vr,`onSelect`),0>=o,i-=o,Ii=1<<32-Je(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),A&&Ri(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),A&&Ri(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return A&&Ri(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),A&&Ri(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===_&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===_){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===ie&&Ia(l)===r.type){n(e,r.sibling),c=i(r,o.props),Ua(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===_?(c=Ci(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=Si(o.type,o.key,o.props,null,e.mode,c),Ua(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Ei(o,e.mode,c),c.return=e,e=c}return s(e);case ie:return o=Ia(o),b(e,r,o,c)}if(de(o))return v(e,r,o,c);if(S(o)){if(l=S(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ha(o),c);if(o.$$typeof===x)return b(e,r,da(e,o),c);Wa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=wi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Va=0;var i=b(e,t,n,r);return Ba=null,i}catch(t){if(t===Aa||t===Ma)throw t;var a=vi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ka=Ga(!0),qa=Ga(!1),Ja=!1;function Ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Qa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=hi(e),mi(e,null,n),t}return di(e,r,t,n),hi(e)}function $a(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ut(e,n)}}function eo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var to=!1;function no(){if(to){var e=xa;if(e!==null)throw e}}function ro(e,t,n,r){to=!1;var i=e.updateQueue;Ja=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(q&f)===f:(r&f)===f){f!==0&&f===ba&&(to=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:Ja=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Kl|=o,e.lanes=o,e.memoizedState=d}}function io(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function ao(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=w.T,s={};w.T=s,Bs(e,!1,t,n);try{var c=i(),l=w.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?zs(e,t,wa(c,r),pu(e)):zs(e,t,r,pu(e))}catch(n){zs(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{T.p=a,o!==null&&s.types!==null&&(o.types=s.types),w.T=o}}function ks(){}function As(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=js(e).queue;Os(e,i,t,fe,n===null?ks:function(){return Ms(e),n(r)})}function js(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:fe,baseState:fe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:fe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ms(e){var t=js(e);t.next===null&&(t=e.alternate.memoizedState),zs(e,t.next.queue,{},pu())}function Ns(){return ua(Qf)}function Ps(){return L().memoizedState}function Fs(){return L().memoizedState}function Is(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Za(n);var r=Qa(t,e,n);r!==null&&(hu(r,t,n),$a(r,t,n)),t={cache:ga()},e.payload=t;return}t=t.return}}function Ls(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Vs(e)?Hs(t,n):(n=fi(e,t,n,r),n!==null&&(hu(n,e,r),Us(n,t,r)))}function Rs(e,t,n){zs(e,t,n,pu())}function zs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Vs(e))Hs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Mr(s,o))return di(e,t,i,0),G===null&&ui(),!1}catch{}if(n=fi(e,t,i,r),n!==null)return hu(n,e,r),Us(n,t,r),!0}return!1}function Bs(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Vs(e)){if(t)throw Error(a(479))}else t=fi(e,n,r,2),t!==null&&hu(t,e,2)}function Vs(e){var t=e.alternate;return e===N||t!==null&&t===N}function Hs(e,t){So=xo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Us(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ut(e,n)}}var Ws={readContext:ua,use:zo,useCallback:I,useContext:I,useEffect:I,useImperativeHandle:I,useLayoutEffect:I,useInsertionEffect:I,useMemo:I,useReducer:I,useRef:I,useState:I,useDebugValue:I,useDeferredValue:I,useTransition:I,useSyncExternalStore:I,useId:I,useHostTransitionStatus:I,useFormState:I,useActionState:I,useOptimistic:I,useMemoCache:I,useCacheRefresh:I};Ws.useEffectEvent=I;var Gs={readContext:ua,use:zo,useCallback:function(e,t){return Io().memoizedState=[e,t===void 0?null:t],e},useContext:ua,useEffect:hs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ps(4194308,4,xs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ps(4194308,4,e,t)},useInsertionEffect:function(e,t){ps(4,2,e,t)},useMemo:function(e,t){var n=Io();t=t===void 0?null:t;var r=e();if(Co){qe(!0);try{e()}finally{qe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Io();if(n!==void 0){var i=n(t);if(Co){qe(!0);try{n(t)}finally{qe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ls.bind(null,N,e),[r.memoizedState,e]},useRef:function(e){var t=Io();return e={current:e},t.memoizedState=e},useState:function(e){e=Zo(e);var t=e.queue,n=Rs.bind(null,N,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Cs,useDeferredValue:function(e,t){return Es(Io(),e,t)},useTransition:function(){var e=Zo(!1);return e=Os.bind(null,N,e.queue,!0,!1),Io().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=N,i=Io();if(A){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),G===null)throw Error(a(349));q&127||Ko(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,hs(Jo.bind(null,r,o,e),[e]),r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,o,n,t),null),n},useId:function(){var e=Io(),t=G.identifierPrefix;if(A){var n=Li,r=Ii;n=(r&~(1<<32-Je(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=wo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[_t]=t,o[vt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Lc(t)}}return B(t),Rc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Lc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ve.current,Xi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Ui,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[_t]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||qi(t,!0)}else e=Bd(e).createTextNode(r),e[_t]=t,t.stateNode=e}return B(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Xi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[_t]=t}else Zi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;B(t),e=!1}else n=Qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(vo(t),t):(vo(t),null);if(t.flags&128)throw Error(a(558))}return B(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Xi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[_t]=t}else Zi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;B(t),i=!1}else i=Qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(vo(t),t):(vo(t),null)}return vo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Bc(t,t.updateQueue),B(t),null);case 4:return xe(),e===null&&Sd(t.stateNode.containerInfo),B(t),null;case 10:return ia(t.type),B(t),null;case 19:if(E(M),r=t.memoizedState,r===null)return B(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Vc(r,!1);else{if(Y!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=yo(e),o!==null){for(t.flags|=128,Vc(r,!1),e=o.updateQueue,t.updateQueue=e,Bc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)xi(n,e),n=n.sibling;return D(M,M.current&1|2),A&&Ri(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ie()>nu&&(t.flags|=128,i=!0,Vc(r,!1),t.lanes=4194304)}else{if(!i)if(e=yo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Bc(t,e),Vc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!A)return B(t),null}else 2*Ie()-r.renderingStartTime>nu&&n!==536870912&&(t.flags|=128,i=!0,Vc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(B(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ie(),e.sibling=null,n=M.current,D(M,i?n&1|2:n&1),A&&Ri(t,r.treeForkCount),e);case 22:case 23:return vo(t),uo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(B(t),t.subtreeFlags&6&&(t.flags|=8192)):B(t),n=t.updateQueue,n!==null&&Bc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&E(Ea),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ia(j),B(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Uc(e,t){switch(Vi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ia(j),xe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Ce(t),null;case 31:if(t.memoizedState!==null){if(vo(t),t.alternate===null)throw Error(a(340));Zi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Zi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return E(M),null;case 4:return xe(),null;case 10:return ia(t.type),null;case 22:case 23:return vo(t),uo(),e!==null&&E(Ea),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ia(j),null;case 25:return null;default:return null}}function Wc(e,t){switch(Vi(t),t.tag){case 3:ia(j),xe();break;case 26:case 27:case 5:Ce(t);break;case 4:xe();break;case 31:t.memoizedState!==null&&vo(t);break;case 13:vo(t);break;case 19:E(M);break;case 10:ia(t.type);break;case 22:case 23:vo(t),uo(),e!==null&&E(Ea);break;case 24:ia(j)}}function Gc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Kc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function qc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ao(t,n)}catch(t){Z(e,e.return,t)}}}function Jc(e,t,n){n.props=Qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Yc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Xc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function Zc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Qc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[vt]=t}catch(t){Z(e,e.return,t)}}function $c(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function el(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||$c(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function tl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=un));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(tl(e,t,n),e=e.sibling;e!==null;)tl(e,t,n),e=e.sibling}function nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(nl(e,t,n),e=e.sibling;e!==null;)nl(e,t,n),e=e.sibling}function rl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[_t]=e,t[vt]=n}catch(t){Z(e,e.return,t)}}var il=!1,V=!1,al=!1,ol=typeof WeakSet==`function`?WeakSet:Set,H=null;function sl(e,t){if(e=e.containerInfo,Rd=sp,e=Lr(e),Rr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,H=t;H!==null;)if(t=H,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,H=e;else for(;H!==null;){switch(t=H,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[_t]=e,O(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Fr(s,h),v=Fr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,w.T=null,n=lu,lu=null;var o=au,s=su;if(X=0,ou=au=null,su=0,W&6)throw Error(a(331));var c=W;if(W|=4,Il(o.current),Ol(o,o.current,s,n),W=c,id(0,!1),Ke&&typeof Ke.onPostCommitFiberRoot==`function`)try{Ke.onPostCommitFiberRoot(Ge,o)}catch{}return!0}finally{T.p=i,w.T=r,Vu(e,t)}}function Wu(e,t,n){t=Oi(n,t),t=ic(e.stateNode,t,2),e=Qa(e,t,2),e!==null&&(st(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(iu===null||!iu.has(r))){e=Oi(n,e),n=ac(2),r=Qa(t,n,2),r!==null&&(oc(n,r,t,e),st(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Wl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,G===e&&(q&n)===n&&(Y===4||Y===3&&(q&62914560)===q&&300>Ie()-eu?!(W&2)&&Su(e,0):Jl|=n,Xl===q&&(Xl=0)),rd(e)}function qu(e,t){t===0&&(t=at()),e=pi(e,t),e!==null&&(st(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return Me(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Je(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=q,a=nt(r,r===G?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||rt(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=Ie(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}X!==0&&X!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Jt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),O(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Jt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Jt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Jt(n.imageSizes)+`"]`)):i+=`[href="`+Jt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),O(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Jt(r)+`"][href="`+Jt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),O(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=kt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);O(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=kt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),O(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=kt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),O(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var i=(i=ve.current)?gf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=kt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=kt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=kt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Af(e){return`href="`+Jt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),O(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Jt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Jt(n.href)+`"]`);if(r)return t.instance=r,O(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),O(r),Pd(r,`style`,i),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Af(n.href);var o=e.querySelector(jf(i));if(o)return t.state.loading|=4,t.instance=o,O(o),o;r=Mf(n),(i=mf.get(i))&&Rf(r,i),o=(e.ownerDocument||e).createElement(`link`),O(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(i=e.querySelector(Ff(o)))?(t.instance=i,O(i),i):(r=n,(i=mf.get(o))&&(r=p({},n),zf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),O(i),Pd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,O(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),O(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ce()})),S=p(),C=i(t(),1),ue=C.createContext(null),de={"signal-red":`#E60000`,"signal-red-700":`#9E0000`,"signal-red-900":`#520000`,"cod-gray":`#1C1C1C`,"cod-gray-700":`#2B2B2B`,"cod-gray-500":`#5A5A5A`,"cod-gray-300":`#A6A6A6`,"cod-gray-100":`#F5F5F5`,"cod-gray-050":`#FAFAFA`,white:`#FFFFFF`};function w(e){let{mode:t,accent:n,fontFamily:r,children:i}=e,[a,o]=C.useState(t??`light`),s=t??a;C.useEffect(()=>{typeof document>`u`||document.documentElement.setAttribute(`data-theme`,s)},[s]),C.useEffect(()=>{typeof document>`u`||!n||document.documentElement.style.setProperty(`--accent`,de[n])},[n]),C.useEffect(()=>{typeof document>`u`||!r||(r.sans&&document.documentElement.style.setProperty(`--font-sans`,r.sans),r.mono&&document.documentElement.style.setProperty(`--font-mono`,r.mono))},[r]);let c=C.useMemo(()=>({mode:s,setMode:e=>o(e),toggle:()=>o(e=>e===`light`?`dark`:`light`)}),[s]);return(0,S.jsx)(ue.Provider,{value:c,children:i})}var T=le(),fe=f(`Moon`,[[`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`,key:`a7tn18`}]]),pe=f(`Sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),me=[{key:`dashboard`,label:`Dashboard`},{key:`services`,label:`Service Map`},{key:`mcp`,label:`MCP Trial`}];function he({view:t,onNavigate:n,wsConnected:i,theme:a,onToggleTheme:o}){return(0,S.jsxs)(e,{justify:`between`,align:`center`,style:{display:`flex`,width:`100%`},children:[(0,S.jsx)(`strong`,{style:{whiteSpace:`nowrap`},children:`OtelContext`}),(0,S.jsx)(`div`,{style:{flex:1,minWidth:0,display:`flex`,justifyContent:`center`},children:(0,S.jsx)(re,{items:me,value:t,onChange:n,variant:`segment`,size:`sm`,scrollable:!0})}),(0,S.jsxs)(e,{size:`sm`,align:`center`,children:[(0,S.jsx)(te,{tone:i?`info`:`danger`,size:`sm`,children:i?`live`:`offline`}),(0,S.jsx)(r,{icon:a===`dark`?(0,S.jsx)(pe,{size:15}):(0,S.jsx)(fe,{size:15}),"aria-label":`Toggle theme`,variant:`ghost`,size:`sm`,shape:`circle`,onClick:o})]})]})}var E={fg1:`#1C1C1C`,fg2:`#3D3D3D`,fg3:`#5A5A5A`,fg4:`#A6A6A6`,bg1:`#FFFFFF`,bg2:`#FAFAFA`,bg3:`#F5F5F5`,border1:`#E5E5E5`,border2:`#D4D4D4`,accent:`#E60000`,accentSoft:`rgba(230,0,0,0.08)`,success:`#1F9E5C`,warning:`#D98E2B`,danger:`#E60000`,info:`#2D73D9`,series:[`#E60000`,`#1C1C1C`,`#5A5A5A`,`#2D73D9`,`#1F9E5C`,`#D98E2B`,`#9E0000`,`#A6A6A6`],fontSans:`Inter, system-ui, sans-serif`,fontMono:`'JetBrains Mono', monospace`,mode:`light`};function D(e,t){return typeof window>`u`?t:getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function ge(){if(typeof window>`u`)return E;let e=document.documentElement.getAttribute(`data-theme`)??`light`,t=D(`--fg-1`,E.fg1),n=D(`--fg-2`,E.fg2),r=D(`--fg-3`,E.fg3),i=D(`--fg-4`,E.fg4),a=D(`--bg-1`,E.bg1),o=D(`--bg-2`,E.bg2),s=D(`--bg-3`,E.bg3),c=D(`--border-1`,E.border1),l=D(`--border-2`,E.border2),u=D(`--accent`,E.accent);return{fg1:t,fg2:n,fg3:r,fg4:i,bg1:a,bg2:o,bg3:s,border1:c,border2:l,accent:u,accentSoft:D(`--accent-soft`,E.accentSoft),success:D(`--success`,E.success),warning:D(`--warning`,E.warning),danger:D(`--danger`,E.danger),info:D(`--info`,E.info),series:e===`dark`?[u,`#F5F5F5`,`#A6A6A6`,`#5BA0F2`,`#3FBE83`,`#E5A65A`,`#FF6464`,`#7A7A7A`]:[u,`#1C1C1C`,`#5A5A5A`,`#2D73D9`,`#1F9E5C`,`#D98E2B`,`#9E0000`,`#A6A6A6`],fontSans:D(`--font-sans`,E.fontSans),fontMono:D(`--font-mono`,E.fontMono),mode:e}}function _e(e){if(typeof window>`u`)return()=>{};let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`]}),()=>t.disconnect()}var ve=`modulepreload`,ye=function(e){return`/`+e},be={},xe=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ye(t,n),t in be)return;be[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:ve,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Se(e,t,n,r,i,a){let o=e+n*Math.cos(i),s=t+n*Math.sin(i),c=e+n*Math.cos(a),l=t+n*Math.sin(a),u=e+r*Math.cos(a),d=t+r*Math.sin(a),f=e+r*Math.cos(i),p=t+r*Math.sin(i),m=+(a-i>Math.PI);return`M${o},${s} A${n},${n} 0 ${m} 1 ${c},${l} L${u},${d} A${r},${r} 0 ${m} 0 ${f},${p} Z`}function Ce(e){let{value:t,max:n=100,size:r=120,thickness:i=12,label:a,tone:o=`neutral`,className:s,style:c,id:l}=e,u=ge(),d=Math.max(0,Math.min(1,t/n)),f=r/2,p=f-i,h=-Math.PI*.75,g=h+Math.PI*1.5*d,_=h+Math.PI*1.5,v=o===`good`?u.success:o===`warning`?u.warning:o===`bad`?u.danger:u.accent;return(0,S.jsxs)(`div`,{id:l,className:m(`rcs-gauge`,s),style:{display:`inline-flex`,flexDirection:`column`,alignItems:`center`,...c},children:[(0,S.jsxs)(`svg`,{width:r,height:r,viewBox:`0 0 ${r} ${r}`,role:`img`,"aria-label":e[`aria-label`]??`${t} of ${n}`,children:[(0,S.jsx)(`path`,{d:Se(f,f,f,p,h,_),fill:u.bg3}),d>0&&(0,S.jsx)(`path`,{d:Se(f,f,f,p,h,g),fill:v}),(0,S.jsxs)(`text`,{x:f,y:f,textAnchor:`middle`,dominantBaseline:`middle`,style:{font:`600 ${r/5}px ${u.fontSans}`,fill:u.fg1,fontVariantNumeric:`tabular-nums`},children:[Math.round(d*100),`%`]})]}),a&&(0,S.jsx)(`div`,{style:{font:`400 12px ${u.fontSans}`,color:u.fg3,marginTop:4},children:a})]})}function we(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e*10)/10)}function Te(e=6e4){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(``),[a,o]=(0,C.useState)(!0),[s,c]=(0,C.useState)(null),l=(0,C.useRef)(void 0),u=(0,C.useCallback)(async()=>{try{let e=await fetch(`/api/system/graph`);if(!e.ok)throw Error(`HTTP ${e.status}`);i(e.headers.get(`X-Cache`)??``),n(await e.json()),c(null)}catch(e){c(e instanceof Error?e.message:`fetch failed`)}finally{o(!1)}},[]);return(0,C.useEffect)(()=>(u(),l.current=setInterval(u,e),()=>clearInterval(l.current)),[u,e]),{graph:t,cache:r,loading:a,error:s,reload:u}}function Ee(e=3e4){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(null),[a,o]=(0,C.useState)(!0),[s,c]=(0,C.useState)(null),l=(0,C.useRef)(void 0),u=(0,C.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch(`/api/metrics/dashboard`),fetch(`/api/stats`)]);if(!e.ok||!t.ok)throw Error(`fetch failed`);n(await e.json()),i(await t.json()),c(null)}catch(e){c(e instanceof Error?e.message:`fetch failed`)}finally{o(!1)}},[]);return(0,C.useEffect)(()=>(u(),l.current=setInterval(u,e),()=>clearInterval(l.current)),[u,e]),{dashboard:t,stats:r,loading:a,error:s,reload:u}}function De(e=3e4){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(!0),[a,o]=(0,C.useState)(null),s=(0,C.useRef)(void 0),c=(0,C.useCallback)(async()=>{try{let e=await fetch(`/api/metrics/traffic`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();n(Array.isArray(t)?t:[]),o(null)}catch(e){o(e instanceof Error?e.message:`fetch failed`)}finally{i(!1)}},[]);return(0,C.useEffect)(()=>(c(),s.current=setInterval(c,e),()=>clearInterval(s.current)),[c,e]),{points:t,loading:r,error:a,reload:c}}function Oe(e=3e4){let[t,n]=(0,C.useState)(null),[r,i]=(0,C.useState)(!0),[a,o]=(0,C.useState)(null),s=(0,C.useRef)(void 0),c=(0,C.useCallback)(async()=>{try{let e=await(await fetch(`/ready`)).json();n({ready:!!e?.ready,checks:e?.checks??{}}),o(null)}catch(e){o(e instanceof Error?e.message:`fetch failed`)}finally{i(!1)}},[]);return(0,C.useEffect)(()=>(c(),s.current=setInterval(c,e),()=>clearInterval(s.current)),[c,e]),{ready:t,loading:r,error:a,reload:c}}var ke=class extends Error{code;constructor(e,t){super(t),this.name=`McpError`,this.code=e}},Ae=0;function je(e){let t={"Content-Type":`application/json`};return e?.apiKey&&(t.Authorization=`Bearer ${e.apiKey}`),e?.tenant&&(t[`X-Tenant-ID`]=e.tenant),t}async function Me(e,t,n){let r=++Ae,i=await fetch(`/mcp`,{method:`POST`,headers:je(n),body:JSON.stringify({jsonrpc:`2.0`,id:r,method:e,params:t}),signal:n?.signal});if(!i.ok)throw new ke(i.status,`HTTP ${i.status}`);let a=await i.json();if(a.error)throw new ke(a.error.code??-1,a.error.message??`MCP error`);return a.result}async function Ne(e){return(await Me(`tools/list`,{},e)).tools??[]}async function Pe(e,t,n){return Me(`tools/call`,{name:e,arguments:t},n)}function Fe(e){if(!e)return[];let t=e.anomalies;if(Array.isArray(t))return t;let n=e.content?.find(e=>e.type===`text`)?.text;if(!n)return[];try{let e=JSON.parse(n);return Array.isArray(e)?e:[]}catch{return[]}}var Ie=15,Le=20;function Re(e){let t=new Map;for(let n of e){let e=`${n.service}|${n.type}`,r=t.get(e);(!r||n.timestamp>r.timestamp)&&t.set(e,n)}return Array.from(t.values()).sort((e,t)=>e.timestamp{try{let e=await Pe(`get_anomaly_timeline`,{since:new Date(Date.now()-Ie*6e4).toISOString()});if(e.isError){let t=e.content?.find(e=>e.type===`text`)?.text;throw Error(t??`anomaly tool error`)}n(Re(Fe(e))),o(null)}catch(e){o(e instanceof Error?e.message:`fetch failed`)}finally{i(!1)}},[]);return(0,C.useEffect)(()=>(c(),s.current=setInterval(c,e),()=>clearInterval(s.current)),[c,e]),{anomalies:t,loading:r,error:a,reload:c}}function Be(e){switch(e){case`critical`:return`danger`;case`warning`:return`warning`;default:return`neutral`}}function Ve(e){if(!e)return`idle`;let t=e.toLowerCase();return t===`ok`?`running`:t===`skipped`?`idle`:t.startsWith(`saturated`)?`degraded`:`failed`}function He(e){return e.count?e.error_count/e.count*100:0}function Ue(e){if(typeof e!=`number`||Number.isNaN(e))return 0;let t=e<=1?e*100:e;return Math.max(0,Math.min(100,t))}function We(e){if(typeof e!=`number`||!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e);if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m`;if(t<86400){let e=Math.floor(t/3600),n=Math.floor(t%3600/60);return`${e}h ${String(n).padStart(2,`0`)}m`}let n=Math.floor(t/86400),r=Math.floor(t%86400/3600);return`${n}d ${String(r).padStart(2,`0`)}h`}function Ge(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isFinite(t)?t:null}return null}var Ke={database:`Database`,graphrag:`GraphRAG`,dlq_disk:`DLQ disk`,pipeline:`Ingest pipeline`};function qe(e){return e>=90?`good`:e>=70?`warning`:`bad`}function Je({onNavigate:t}){let{graph:n,loading:r,error:i}=Te(),{dashboard:s,stats:u,loading:d,error:f}=Ee(),{points:p,error:m}=De(),{ready:re,error:ie}=Oe(),{anomalies:ae,error:oe}=ze(),se=n?.system??null,ce=x(_.coarse),le=x(_.tablet),ue=x(_.wide),de=(0,C.useMemo)(()=>ce?{hero:12,traffic:12,failing:12,anomalies:12,platform:12}:le?{hero:12,traffic:12,failing:12,anomalies:6,platform:6}:{hero:12,traffic:12,failing:8,anomalies:4,platform:12},[ce,le]),w=r&&!n||d&&!s||!se||se.total_services===0,T=i||f||m||ie,fe=Ue(se?.overall_health_score),pe=(0,C.useMemo)(()=>(p??[]).map(e=>e.count),[p]),me=(0,C.useMemo)(()=>(p??[]).map(He),[p]),he=(0,C.useMemo)(()=>pe.reduce((e,t)=>e+t,0),[pe]),E=(0,C.useMemo)(()=>{let e=(p??[]).reduce((e,t)=>e+t.error_count,0);return he>0?e/he*100:0},[p,he]),D=Ge(u?.db_size_mb),ge=ue?{maxWidth:1280,margin:`0 auto`,width:`100%`}:{width:`100%`},_e=[{key:`service_name`,title:`Service`,dataKey:`service_name`,render:(e,t)=>(0,S.jsx)(y,{text:t.service_name})},{key:`error_count`,title:`Errors`,dataKey:`error_count`,width:90,align:`right`,render:(e,t)=>we(t.error_count)},{key:`total_count`,title:`Total`,dataKey:`total_count`,width:90,align:`right`,render:(e,t)=>we(t.total_count)},{key:`error_rate`,title:`Error rate`,dataKey:`error_rate`,width:110,align:`right`,render:(e,t)=>{let n=t.error_rate<=1?t.error_rate*100:t.error_rate;return(0,S.jsxs)(te,{tone:n>=5?`danger`:`neutral`,size:`sm`,children:[n.toFixed(1),`%`]})}}],ve=s?.top_failing_services??[],ye=(ae??[]).map(e=>({key:e.id,title:e.service||e.type,description:e.evidence,time:new Date(e.timestamp).toLocaleTimeString(),tone:Be(e.severity)}));return w?(0,S.jsxs)(e,{direction:`vertical`,size:`md`,style:{display:`flex`,...ge,padding:`0.75rem`},children:[(0,S.jsx)(v,{title:`Dashboard`,subtitle:`Warming up — building service graph…`}),(0,S.jsxs)(a,{columns:12,gap:`md`,children:[(0,S.jsx)(a.Col,{span:12,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,children:(0,S.jsx)(g,{variant:`rect`,height:96})})}),(0,S.jsx)(a.Col,{span:ce?12:8,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,children:(0,S.jsx)(g,{variant:`text`,lines:6})})}),(0,S.jsx)(a.Col,{span:ce?12:4,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,children:(0,S.jsx)(g,{variant:`text`,lines:6})})})]})]}):(0,S.jsxs)(e,{direction:`vertical`,size:`md`,style:{display:`flex`,...ge,padding:`0.75rem`},children:[(0,S.jsx)(v,{title:`Dashboard`,subtitle:`System health at a glance`}),T&&(0,S.jsx)(ee,{severity:`warning`,title:`Some panels failed to load`,children:T}),(0,S.jsxs)(a,{columns:12,gap:`md`,children:[(0,S.jsx)(a.Col,{span:de.hero,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`System health`,children:(0,S.jsxs)(e,{size:`lg`,align:`center`,wrap:!0,style:{display:`flex`},children:[(0,S.jsx)(Ce,{value:fe,max:100,size:120,label:`${Math.round(fe)}%`,tone:qe(fe)}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Healthy`,value:se?.healthy??0}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Degraded`,value:se?.degraded??0}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Critical`,value:se?.critical??0}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Avg latency`,value:Math.round(s?.avg_latency_ms??0),unit:`ms`}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`p99 latency`,value:Math.round(s?.p99_latency_ms??0),unit:`ms`})]})})}),(0,S.jsx)(a.Col,{span:de.traffic,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Traffic`,children:(0,S.jsxs)(e,{size:`lg`,align:`center`,wrap:!0,style:{display:`flex`},children:[(0,S.jsx)(b,{label:`Requests (30m)`,value:we(he),sparkline:pe.length?pe:void 0}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Error rate (30m)`,value:`${E.toFixed(1)}%`,sparkline:me.length?me:void 0}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Total traces`,value:we(s?.total_traces??0)}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Total logs`,value:we(s?.total_logs??0)}),(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(`div`,{style:{alignSelf:`center`},children:(0,S.jsx)(te,{tone:E>=5?`danger`:`neutral`,size:`sm`,children:E>=5?`elevated errors`:`nominal`})})]})})}),(0,S.jsx)(a.Col,{span:de.failing,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Top failing services`,children:(0,S.jsx)(l,{columns:_e,data:ve,rowKey:`service_name`,density:`compact`,onRowClick:()=>t(`services`),empty:(0,S.jsxs)(e,{size:`xs`,align:`center`,style:{display:`flex`},children:[(0,S.jsx)(o,{status:`running`}),(0,S.jsx)(`span`,{children:`No failing services — all clear.`})]})})})}),(0,S.jsx)(a.Col,{span:de.anomalies,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Recent anomalies`,children:oe?(0,S.jsx)(ee,{severity:`warning`,title:`Anomaly feed unavailable`,children:oe}):ye.length?(0,S.jsx)(h,{items:ye}):(0,S.jsxs)(e,{size:`xs`,align:`center`,style:{display:`flex`},children:[(0,S.jsx)(o,{status:`running`}),(0,S.jsx)(`span`,{children:`No anomalies in the last hour.`})]})})}),(0,S.jsx)(a.Col,{span:de.platform,children:(0,S.jsx)(c,{bordered:!0,padding:`md`,radius:`md`,title:`Platform health`,children:(0,S.jsxs)(e,{size:`lg`,align:`center`,wrap:!0,style:{display:`flex`},children:[(0,S.jsx)(b,{label:`Uptime`,value:We(se?.uptime_seconds)}),(0,S.jsx)(ne,{direction:`vertical`}),re?Object.entries(re.checks).map(([e,t])=>(0,S.jsx)(o,{status:Ve(t),label:`${Ke[e]??e}: ${t}`},e)):ie&&(0,S.jsx)(`span`,{style:{minWidth:0},children:`Readiness probe unavailable.`}),D!==null&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(ne,{direction:`vertical`}),(0,S.jsx)(b,{label:`Database size`,value:D.toFixed(1),unit:`MB`})]})]})})})]})]})}var Ye=100,Xe=1e4,Ze=3e4,Qe=35e3;function $e(e){let t=(0,C.useRef)(null),n=(0,C.useRef)(e),[r,i]=(0,C.useState)(`connecting`);t.status=r;let a=(0,C.useRef)(0),o=(0,C.useRef)(null),s=(0,C.useRef)(null),c=(0,C.useRef)(null),l=(0,C.useRef)(!1),u=(0,C.useRef)(()=>{});(0,C.useEffect)(()=>{n.current=e},[e]);let d=(0,C.useCallback)(()=>{o.current!==null&&(window.clearTimeout(o.current),o.current=null)},[]),f=(0,C.useCallback)(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null),c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),p=(0,C.useCallback)(()=>{if(l.current)return;d();let e=a.current,t=Math.min(Ye*2**e,Xe);a.current=e+1,i(`reconnecting`),o.current=window.setTimeout(()=>{o.current=null,u.current()},t)},[d]),m=(0,C.useCallback)(()=>{f(),s.current=window.setInterval(()=>{let e=t.current;if(!(!e||e.readyState!==WebSocket.OPEN)){try{e.send(JSON.stringify({type:`ping`}))}catch{return}c.current!==null&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{c.current=null;let e=t.current;if(e)try{e.close()}catch{}},Qe)}},Ze)},[f]),h=(0,C.useCallback)(()=>{if(l.current)return;d(),f();let e=t.current;if(e){e.onopen=null,e.onmessage=null,e.onerror=null,e.onclose=null;try{e.close()}catch{}t.current=null}i(a.current===0?`connecting`:`reconnecting`);let r=window.location.protocol===`https:`?`wss:`:`ws:`,o;try{o=new WebSocket(`${r}//${window.location.host}/ws`)}catch{p();return}t.current=o,o.onopen=()=>{l.current||(a.current=0,i(`connected`),m())},o.onmessage=e=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null);try{let t=JSON.parse(e.data);t.type===`logs`&&Array.isArray(t.data)&&n.current(t.data)}catch{}},o.onerror=()=>{},o.onclose=()=>{l.current||(t.current===o&&(t.current=null),f(),i(`disconnected`),p())}},[f,d,p,m]);return(0,C.useEffect)(()=>{u.current=h},[h]),(0,C.useEffect)(()=>{l.current=!1,u.current=h,h();let e=()=>{if(document.visibilityState!==`visible`)return;let e=t.current;(!e||e.readyState===WebSocket.CLOSED||e.readyState===WebSocket.CLOSING)&&(a.current=0,d(),u.current())},n=()=>{a.current=0,d(),u.current()};return document.addEventListener(`visibilitychange`,e),window.addEventListener(`online`,n),()=>{l.current=!0,document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`online`,n),d(),f();let r=t.current;if(r){r.onopen=null,r.onmessage=null,r.onerror=null,r.onclose=null;try{r.close()}catch{}t.current=null}}},[]),t}var et=(0,C.lazy)(()=>xe(()=>import(`./ServicesView-Bb9CYmXY.js`),__vite__mapDeps([0,1,2]))),tt=(0,C.lazy)(()=>xe(()=>import(`./MCPConsoleView-CH5VtsjS.js`),__vite__mapDeps([3,1,2])));function nt({theme:e,onToggleTheme:t}){let[n,r]=(0,C.useState)(`dashboard`);return(0,S.jsx)(s,{header:(0,S.jsx)(he,{view:n,onNavigate:r,wsConnected:$e(()=>void 0).status===`connected`,theme:e,onToggleTheme:t}),children:(0,S.jsxs)(C.Suspense,{fallback:(0,S.jsx)(d,{label:`Loading…`}),children:[n===`dashboard`&&(0,S.jsx)(Je,{onNavigate:r}),n===`services`&&(0,S.jsx)(et,{}),n===`mcp`&&(0,S.jsx)(tt,{})]})})}var rt=class extends C.Component{state={error:null,info:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.setState({info:t}),console.error(`[ErrorBoundary] Uncaught error in React tree`,{message:e.message,name:e.name,stack:e.stack,componentStack:t.componentStack,url:typeof window>`u`?void 0:window.location.href,userAgent:typeof navigator>`u`?void 0:navigator.userAgent,timestamp:new Date().toISOString()})}reset=()=>{this.setState({error:null,info:null})};reload=()=>{typeof window<`u`&&window.location.reload()};render(){let{error:e,info:t}=this.state;if(!e)return this.props.children;let n=`var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)`;return(0,S.jsx)(`div`,{role:`alert`,"aria-live":`assertive`,style:{position:`fixed`,inset:0,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`24px`,background:`var(--bg-0, #0a0a0a)`,color:`var(--fg-1, #fff)`,fontFamily:`var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif)`,zIndex:9999,overflow:`auto`},children:(0,S.jsxs)(`div`,{style:{width:`100%`,maxWidth:`640px`,background:`var(--bg-1, #111)`,border:`1px solid var(--border-1, #27272a)`,borderRadius:`var(--radius-lg, 12px)`,padding:`32px`,boxShadow:`var(--shadow-lg, 0 10px 40px rgba(0, 0, 0, 0.5))`},children:[(0,S.jsx)(`div`,{style:{fontSize:`12px`,fontWeight:700,letterSpacing:`0.14em`,textTransform:`uppercase`,color:`var(--brand-red-500, #ef4444)`,marginBottom:`12px`},children:`Application error`}),(0,S.jsx)(`h1`,{style:{fontSize:`24px`,fontWeight:700,margin:`0 0 12px 0`,color:`var(--fg-1, #fff)`},children:`Something went wrong`}),(0,S.jsx)(`p`,{style:{fontSize:`14px`,lineHeight:1.6,color:`var(--fg-2, #d4d4d8)`,margin:`0 0 20px 0`},children:`The UI encountered an unexpected error and could not continue rendering. You can try recovering without a full reload, or refresh the page if that fails.`}),(0,S.jsxs)(`div`,{style:{background:`var(--bg-3, #050505)`,border:`1px solid var(--border-1, #27272a)`,borderRadius:`var(--radius-md, 8px)`,padding:`12px 14px`,marginBottom:`20px`,fontFamily:n,fontSize:`13px`,color:`var(--fg-2, #d4d4d8)`,wordBreak:`break-word`},children:[(0,S.jsx)(`span`,{style:{color:`var(--brand-red-500, #ef4444)`},children:e.name||`Error`}),`: `,e.message||`(no message)`]}),t?.componentStack&&(0,S.jsxs)(`details`,{style:{marginBottom:`24px`,fontSize:`12px`,color:`var(--fg-3, #71717a)`},children:[(0,S.jsx)(`summary`,{style:{cursor:`pointer`,userSelect:`none`,padding:`4px 0`,color:`var(--fg-2, #d4d4d8)`},children:`Component stack`}),(0,S.jsx)(`pre`,{style:{marginTop:`8px`,padding:`12px`,background:`var(--bg-3, #050505)`,border:`1px solid var(--border-1, #27272a)`,borderRadius:`var(--radius-md, 8px)`,fontFamily:n,fontSize:`11px`,lineHeight:1.5,color:`var(--fg-2, #d4d4d8)`,whiteSpace:`pre-wrap`,wordBreak:`break-word`,maxHeight:`240px`,overflow:`auto`},children:t.componentStack})]}),(0,S.jsxs)(`div`,{style:{display:`flex`,gap:`12px`,flexWrap:`wrap`},children:[(0,S.jsx)(`button`,{type:`button`,onClick:this.reset,style:{appearance:`none`,border:`1px solid var(--accent-fg, #ef4444)`,background:`var(--accent-fg, #ef4444)`,color:`var(--accent-on, #fff)`,padding:`10px 18px`,borderRadius:`var(--radius-md, 8px)`,fontSize:`14px`,fontWeight:600,cursor:`pointer`,transition:`background 120ms ease`},children:`Try again`}),(0,S.jsx)(`button`,{type:`button`,onClick:this.reload,style:{appearance:`none`,border:`1px solid var(--border-2, #3f3f46)`,background:`transparent`,color:`var(--fg-1, #fff)`,padding:`10px 18px`,borderRadius:`var(--radius-md, 8px)`,fontSize:`14px`,fontWeight:500,cursor:`pointer`,transition:`border-color 120ms ease`},children:`Reload page`})]})]})})}},it=`oc-theme`;function at(){if(typeof window>`u`)return`dark`;try{let e=window.localStorage.getItem(it);return e===`light`||e===`dark`?e:`dark`}catch{return`dark`}}function ot(){let[e,t]=(0,C.useState)(at);return(0,C.useEffect)(()=>{document.documentElement.setAttribute(`data-theme`,e);try{window.localStorage.setItem(it,e)}catch{}},[e]),{theme:e,toggle:()=>t(e=>e===`dark`?`light`:`dark`)}}function st(){let{theme:e,toggle:t}=ot();return(0,S.jsxs)(w,{mode:e,children:[(0,S.jsx)(rt,{children:(0,S.jsx)(nt,{theme:e,onToggleTheme:t})}),(0,S.jsx)(u,{})]})}(0,T.createRoot)(document.getElementById(`root`)).render((0,S.jsx)(C.StrictMode,{children:(0,S.jsx)(st,{})}));export{Te as a,ge as c,Ee as i,Pe as n,we as o,Ne as r,_e as s,ke as t}; \ No newline at end of file diff --git a/internal/ui/dist/assets/inputs-DxVBbFvb.js b/internal/ui/dist/assets/inputs-DxVBbFvb.js deleted file mode 100644 index 308bef7..0000000 --- a/internal/ui/dist/assets/inputs-DxVBbFvb.js +++ /dev/null @@ -1 +0,0 @@ -import{M as e,P as t,j as n,k as r}from"./useMediaQuery-D3Mg-H7H.js";var i=n(),a=t(e(),1),o=a.forwardRef(function(e,t){let{value:n,defaultValue:o,placeholder:s,size:c=`md`,status:l=`default`,disabled:u=!1,readOnly:d=!1,invalid:f=!1,prefix:p,suffix:m,clearable:h=!1,type:g=`text`,autoFocus:_=!1,onChange:v,onFocus:y,onBlur:b,onKeyDown:x,className:S,style:C,id:w,"data-testid":T,"aria-label":E,"aria-labelledby":D,"aria-describedby":O}=e,k=n!==void 0,[A,j]=a.useState(o??``),M=k?n:A,N=a.useRef(null);a.useImperativeHandle(t,()=>N.current);let P=f?`error`:l;return(0,i.jsxs)(`span`,{className:r(`rcs-input-wrap`,`rcs-input-wrap--${c}`,S),style:C,"data-status":P,"data-disabled":u||void 0,children:[p&&(0,i.jsx)(`span`,{className:`rcs-input-affix rcs-input-affix--left`,children:p}),(0,i.jsx)(`input`,{ref:N,id:w,"data-testid":T,className:`rcs-input`,type:g,value:M,placeholder:s,disabled:u,readOnly:d,autoFocus:_,"aria-invalid":P===`error`||void 0,"aria-label":E,"aria-labelledby":D,"aria-describedby":O,onChange:e=>{k||j(e.target.value),v?.(e.target.value,e)},onFocus:y,onBlur:b,onKeyDown:x}),h&&M&&!u&&!d&&(0,i.jsx)(`button`,{type:`button`,className:`rcs-input-clear`,"aria-label":`Clear`,onClick:e=>{let t=N.current;k||j(``),t&&((Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,`value`)?.set)?.call(t,``),t.dispatchEvent(new Event(`input`,{bubbles:!0}))),v?.(``,e)},children:`×`}),m&&(0,i.jsx)(`span`,{className:`rcs-input-affix rcs-input-affix--right`,children:m})]})});function s(e){let{value:t,defaultValue:n,min:r,max:s,step:c=1,precision:l,onChange:u,...d}=e,f=t!==void 0,[p,m]=a.useState(n??``),h=f?t:p,g=h===``?``:l===void 0?String(h):Number(h).toFixed(l),_=e=>{if(e===``){f||m(``);return}let t=e;r!==void 0&&(t=Math.max(r,t)),s!==void 0&&(t=Math.min(s,t)),f||m(t),u?.(t)};return(0,i.jsx)(o,{...d,type:`text`,value:g,onChange:e=>{if(e===``||e===`-`)return _(``);let t=Number(e);Number.isNaN(t)||_(t)},onKeyDown:e=>{e.key===`ArrowUp`?(e.preventDefault(),_((typeof h==`number`?h:0)+c)):e.key===`ArrowDown`&&(e.preventDefault(),_((typeof h==`number`?h:0)-c)),d.onKeyDown?.(e)}})}var c=a.forwardRef(function(e,t){let{value:n,defaultValue:o,placeholder:s,rows:c=4,autoResize:l=!1,maxLength:u,showCount:d=!1,size:f=`md`,status:p=`default`,disabled:m=!1,readOnly:h=!1,invalid:g=!1,onChange:_,onFocus:v,onBlur:y,onKeyDown:b,autoFocus:x,className:S,style:C,id:w,"data-testid":T,"aria-label":E,"aria-labelledby":D,"aria-describedby":O}=e,k=n!==void 0,[A,j]=a.useState(o??``),M=k?n:A,N=a.useRef(null);a.useImperativeHandle(t,()=>N.current),a.useLayoutEffect(()=>{if(!l)return;let e=N.current;e&&(e.style.height=`auto`,e.style.height=e.scrollHeight+`px`)},[M,l]);let P=g?`error`:p;return(0,i.jsxs)(`span`,{style:{display:`block`,width:`100%`,...C},children:[(0,i.jsx)(`textarea`,{ref:N,id:w,"data-testid":T,className:r(`rcs-textarea`,`rcs-textarea--${f}`,S),rows:c,value:M,placeholder:s,maxLength:u,disabled:m,readOnly:h,autoFocus:x,"aria-invalid":P===`error`||void 0,"aria-label":E,"aria-labelledby":D,"aria-describedby":O,"data-status":P,onChange:e=>{k||j(e.target.value),_?.(e.target.value,e)},onFocus:v,onBlur:y,onKeyDown:b}),d&&(0,i.jsxs)(`span`,{className:`rcs-textarea-count`,children:[M.length,u?` / ${u}`:``]})]})});export{s as n,c as r,o as t}; \ No newline at end of file diff --git a/internal/ui/dist/assets/useMediaQuery-D3Mg-H7H.js b/internal/ui/dist/assets/useMediaQuery-D3Mg-H7H.js deleted file mode 100644 index c33ce21..0000000 --- a/internal/ui/dist/assets/useMediaQuery-D3Mg-H7H.js +++ /dev/null @@ -1 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),f=o(((e,t)=>{t.exports=d()})),p=c(u(),1),m=f();function h(...e){let t=``;for(let n of e)n&&(t+=t?` `+n:n);return t}var g=0;function _(e=`rcs`){return g+=1,`${e}-${g}`}var v=p.forwardRef(function(e,t){let{variant:n=`secondary`,size:r=`md`,shape:i=`rect`,loading:a=!1,disabled:o=!1,block:s=!1,iconLeft:c,iconRight:l,type:u=`button`,children:d,onClick:f,className:p,style:g,id:_,"data-testid":v,"aria-label":y,"aria-labelledby":b,"aria-describedby":x}=e;return(0,m.jsxs)(`button`,{ref:t,id:_,"data-testid":v,type:u,className:h(`rcs-button`,`rcs-button--${n}`,`rcs-button--${r}`,i!==`rect`&&`rcs-button--${i}`,s&&`rcs-button--block`,p),style:g,disabled:o||a,"aria-disabled":o||a||void 0,"aria-busy":a||void 0,"aria-label":y,"aria-labelledby":b,"aria-describedby":x,onClick:f,children:[a?(0,m.jsx)(`span`,{className:`rcs-button-spinner`,"aria-hidden":!0}):c,d,l]})}),y=p.forwardRef(function(e,t){let{icon:n,round:r=!1,"aria-label":i,...a}=e;return(0,m.jsx)(v,{ref:t,...a,shape:r?`circle`:`square`,"aria-label":i,children:n})});function b(e){let{children:t,size:n,direction:r=`horizontal`,attached:i=!0,className:a,style:o,id:s}=e;return(0,m.jsx)(`div`,{id:s,style:o,role:`group`,className:h(`rcs-button-group`,r===`vertical`&&`rcs-button-group--vertical`,i&&`rcs-button-group--attached`,a),children:p.Children.map(t,e=>p.isValidElement(e)&&n&&(e.type===v||e.props?.className?.includes?.(`rcs-button`))?p.cloneElement(e,{size:n}):e)})}function x(e){let{tone:t=`neutral`,size:n=`md`,icon:r,closable:i=!1,onClose:a,children:o,className:s,style:c,id:l}=e;return(0,m.jsxs)(`span`,{id:l,className:h(`rcs-badge`,`rcs-badge--${t}`,n!==`md`&&`rcs-badge--${n}`,s),style:c,children:[r&&(0,m.jsx)(`span`,{"aria-hidden":!0,children:r}),o,i&&(0,m.jsx)(`button`,{type:`button`,className:`rcs-badge-x`,"aria-label":`Remove`,onClick:a,children:`×`})]})}function S(e){let{status:t,label:n,pulse:r=!1,className:i,style:a,id:o}=e;return(0,m.jsxs)(`span`,{id:o,className:h(`rcs-status-dot`,i),style:a,"data-status":t,"data-pulse":r||void 0,children:[(0,m.jsx)(`span`,{className:`rcs-status-dot-glyph`,"aria-hidden":!0}),n&&(0,m.jsx)(`span`,{children:n})]})}var C={xs:4,sm:8,md:12,lg:16,xl:24};function w(e){return e===void 0?12:typeof e==`number`?e:C[e]}var T={none:`0`,sm:`4px`,md:`6px`,lg:`8px`,pill:`9999px`,circle:`50%`};function E(e){return e===void 0?`var(--radius-md)`:typeof e==`number`?`${e}px`:T[e]}var D={none:`none`,sm:`var(--shadow-sm)`,md:`var(--shadow-md)`,lg:`var(--shadow-lg)`,overlay:`var(--shadow-lg)`};function O(e){let{title:t,subtitle:n,extra:r,footer:i,bordered:a=!0,hoverable:o=!1,padding:s,radius:c,shadow:l=`none`,children:u,className:d,style:f,id:p}=e,g={borderRadius:E(c),boxShadow:D[l],border:a?void 0:`0`,...f};return(0,m.jsxs)(`div`,{id:p,className:h(`rcs-card`,d),style:g,"data-hoverable":o||void 0,children:[(t||r)&&(0,m.jsxs)(`div`,{className:`rcs-card-header`,children:[(0,m.jsxs)(`div`,{children:[t&&(0,m.jsx)(`div`,{className:`rcs-card-title`,children:t}),n&&(0,m.jsx)(`div`,{className:`rcs-card-subtitle`,children:n})]}),r&&(0,m.jsx)(`div`,{className:`rcs-card-extra`,children:r})]}),(0,m.jsx)(`div`,{className:`rcs-card-body`,style:s===void 0?void 0:{padding:w(s)},children:u}),i&&(0,m.jsx)(`div`,{className:`rcs-card-footer`,children:i})]})}function k(e){let{direction:t=`horizontal`,size:n=`sm`,align:r,justify:i,wrap:a=!1,split:o,children:s,className:c,style:l,id:u}=e,d=w(n),f=p.Children.toArray(s);return(0,m.jsx)(`div`,{id:u,className:h(`rcs-space`,t===`vertical`&&`rcs-space--vertical`,a&&`rcs-space--wrap`,c),style:{gap:d,alignItems:r,justifyContent:i,flexDirection:t===`vertical`?`column`:`row`,...l},children:f.map((e,t)=>(0,m.jsxs)(p.Fragment,{children:[e,o&&te.key===_),y=(e,t)=>{t||(d||g(e),o?.(e))};return(0,m.jsxs)(`div`,{id:u,"data-scrollable":s||void 0,className:h(`rcs-tabs`,`rcs-tabs--${i}`,`rcs-tabs--${a}`,c),style:l,children:[(0,m.jsx)(`div`,{className:`rcs-tabs-nav`,"data-scrollable":s||void 0,role:`tablist`,children:t.map(e=>(0,m.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e.key===_,disabled:e.disabled,"data-active":e.key===_||void 0,className:`rcs-tabs-tab`,onClick:()=>y(e.key,e.disabled),children:[e.icon&&(0,m.jsx)(`span`,{"aria-hidden":!0,children:e.icon}),(0,m.jsx)(`span`,{children:e.label}),e.badge&&(0,m.jsx)(`span`,{style:{marginLeft:4},children:e.badge})]},e.key))}),v?.content&&(0,m.jsx)(`div`,{className:`rcs-tabs-content`,role:`tabpanel`,children:v.content})]})}function F(e){let{items:t,selectedKeys:n,defaultSelectedKeys:r,mode:i=`vertical`,onSelect:a,className:o,style:s,id:c}=e,l=n!==void 0,[u,d]=p.useState(r??[]),f=l?n:u;return(0,m.jsx)(`div`,{id:c,role:`menu`,className:h(`rcs-menu`,i===`horizontal`&&`rcs-menu--horizontal`,o),style:s,children:t.map((e,t)=>{if(`type`in e&&e.type===`separator`)return(0,m.jsx)(`div`,{className:`rcs-menu-separator`,role:`separator`},`sep-${t}`);if(`type`in e&&e.type===`label`)return(0,m.jsx)(`div`,{className:`rcs-menu-label`,children:e.label},`lbl-${t}`);let n=e;return(0,m.jsxs)(`div`,{role:`menuitem`,className:`rcs-menu-item`,"data-selected":f.includes(n.key)||void 0,"data-destructive":n.destructive||void 0,"data-disabled":n.disabled||void 0,"aria-disabled":n.disabled||void 0,onClick:()=>{n.disabled||(l||d([n.key]),a?.(n.key))},children:[n.icon&&(0,m.jsx)(`span`,{"aria-hidden":!0,children:n.icon}),(0,m.jsx)(`span`,{children:n.label}),n.badge&&(0,m.jsx)(`span`,{style:{marginLeft:`auto`},children:n.badge}),n.shortcut&&(0,m.jsx)(`span`,{className:`rcs-menu-item-shortcut`,children:n.shortcut})]},n.key)})})}function I(e){let{items:t,separator:n=`/`,maxItems:r,className:i,style:a,id:o}=e,s=t;return r&&t.length>r&&(s=[t[0],{label:`…`},...t.slice(t.length-(r-2))]),(0,m.jsx)(`nav`,{id:o,"aria-label":`Breadcrumb`,className:h(`rcs-breadcrumb`,i),style:a,children:s.map((e,t)=>{let r=t===s.length-1,i=e.href?(0,m.jsxs)(`a`,{href:e.href,onClick:e.onClick,children:[e.icon&&(0,m.jsx)(`span`,{"aria-hidden":!0,style:{marginRight:4},children:e.icon}),e.label]}):e.onClick?(0,m.jsx)(`button`,{type:`button`,onClick:e.onClick,style:{background:`none`,border:0,padding:0,color:`inherit`,cursor:`pointer`,font:`inherit`},children:e.label}):(0,m.jsx)(`span`,{children:e.label});return(0,m.jsxs)(p.Fragment,{children:[(0,m.jsx)(`span`,{className:r?`rcs-breadcrumb-item--last`:void 0,children:i}),!r&&(0,m.jsx)(`span`,{className:`rcs-breadcrumb-sep`,"aria-hidden":!0,children:n})]},t)})})}var L={info:`ⓘ`,success:`✓`,warning:`⚠`,danger:`✕`};function R(e){let{severity:t,title:n,children:r,closable:i=!1,icon:a,action:o,onClose:s,className:c,style:l,id:u}=e;return(0,m.jsxs)(`div`,{id:u,role:`alert`,className:h(`rcs-alert`,`rcs-alert--${t}`,c),style:l,children:[a!==!1&&(0,m.jsx)(`span`,{className:`rcs-alert-icon`,"aria-hidden":!0,children:a??L[t]}),(0,m.jsxs)(`div`,{className:`rcs-alert-body`,children:[n&&(0,m.jsx)(`div`,{className:`rcs-alert-title`,children:n}),r&&(0,m.jsx)(`div`,{className:`rcs-alert-content`,children:r}),o&&(0,m.jsx)(`div`,{className:`rcs-alert-action`,children:o})]}),i&&(0,m.jsx)(`button`,{type:`button`,className:`rcs-alert-close`,"aria-label":`Dismiss`,onClick:s,children:`×`})]})}function z(e,t){p.useEffect(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t])}function B(e){let{open:t,title:n,description:r,size:i=`md`,closeOnEsc:a=!0,closeOnBackdrop:o=!0,footer:s,children:c,onClose:l,className:u,style:d,id:f}=e;return z(t&&a,l),t?(0,m.jsx)(`div`,{className:`rcs-modal-backdrop`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":n?`${f??`modal`}-title`:void 0,onClick:e=>{o&&e.target===e.currentTarget&&l()},children:(0,m.jsxs)(`div`,{id:f,className:h(`rcs-modal`,`rcs-modal--${i}`,u),style:d,children:[(n||r)&&(0,m.jsxs)(`div`,{className:`rcs-modal-header`,children:[n&&(0,m.jsx)(`h2`,{id:`${f??`modal`}-title`,className:`rcs-modal-title`,children:n}),r&&(0,m.jsx)(`div`,{className:`rcs-modal-desc`,children:r})]}),(0,m.jsx)(`div`,{className:`rcs-modal-body`,children:c}),s&&(0,m.jsx)(`div`,{className:`rcs-modal-footer`,children:s})]})}):null}function V(e){let{open:t,title:n,description:r,placement:i=`right`,width:a=360,closeOnEsc:o=!0,closeOnBackdrop:s=!0,footer:c,children:l,onClose:u,className:d,style:f,id:p}=e;if(z(t&&o,u),!t)return null;let g=typeof a==`number`?`${a}px`:a,_={...f};return i===`left`||i===`right`?_.width=g:_.height=g,(0,m.jsx)(`div`,{className:`rcs-modal-backdrop`,role:`dialog`,"aria-modal":`true`,style:{alignItems:i===`top`?`flex-start`:i===`bottom`?`flex-end`:`stretch`,justifyItems:i===`left`?`flex-start`:i===`right`?`flex-end`:`stretch`,padding:0},onClick:e=>{s&&e.target===e.currentTarget&&u()},children:(0,m.jsxs)(`div`,{id:p,className:h(`rcs-drawer`,`rcs-drawer--${i}`,d),style:_,children:[(n||r)&&(0,m.jsxs)(`div`,{className:`rcs-modal-header`,children:[n&&(0,m.jsx)(`h2`,{className:`rcs-modal-title`,children:n}),r&&(0,m.jsx)(`div`,{className:`rcs-modal-desc`,children:r})]}),(0,m.jsx)(`div`,{className:`rcs-modal-body`,style:{flex:1,overflow:`auto`},children:l}),c&&(0,m.jsx)(`div`,{className:`rcs-modal-footer`,children:c})]})})}function H(e){let{value:t,indeterminate:n=!1,variant:r=`linear`,size:i=`md`,tone:a=`neutral`,showValue:o=!1,className:s,style:c,id:l}=e,u=Math.max(0,Math.min(100,t));if(r===`circular`){let e=i===`lg`?24:i===`sm`?14:18,t=i===`lg`?3:2,n=2*Math.PI*e,r=u/100*n;return(0,m.jsx)(`span`,{id:l,className:h(`rcs-progress`,s),style:c,role:`progressbar`,"aria-valuenow":u,children:(0,m.jsxs)(`svg`,{width:e*2+t*2,height:e*2+t*2,children:[(0,m.jsx)(`circle`,{cx:e+t,cy:e+t,r:e,stroke:`var(--bg-3)`,strokeWidth:t,fill:`none`}),(0,m.jsx)(`circle`,{cx:e+t,cy:e+t,r:e,stroke:a===`danger`?`var(--danger)`:a===`warning`?`var(--warning)`:`var(--bg-inverse)`,strokeWidth:t,fill:`none`,strokeDasharray:`${r} ${n}`,strokeLinecap:`round`,transform:`rotate(-90 ${e+t} ${e+t})`,style:{transition:`stroke-dasharray 0.3s var(--ease-out-quart)`}})]})})}return(0,m.jsxs)(`div`,{id:l,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":n?void 0:u,className:h(`rcs-progress`,`rcs-progress--${i}`,s),style:c,"data-tone":a,"data-indeterminate":n||void 0,children:[(0,m.jsx)(`div`,{className:`rcs-progress-track`,children:(0,m.jsx)(`div`,{className:`rcs-progress-fill`,style:{width:`${u}%`}})}),o&&(0,m.jsxs)(`div`,{className:`rcs-progress-value`,children:[Math.round(u),`%`]})]})}function U(e){let{variant:t=`rect`,width:n,height:r,lines:i,animated:a=!0,className:o,style:s,id:c}=e;return t===`text`&&i&&i>1?(0,m.jsx)(`span`,{id:c,className:o,style:{display:`block`,...s},children:Array.from({length:i},(e,t)=>(0,m.jsx)(`span`,{className:h(`rcs-skeleton`,`rcs-skeleton--text`),"data-animated":a||void 0,style:{width:t===i-1?`60%`:`100%`,marginBottom:6,height:12}},t))}):(0,m.jsx)(`span`,{id:c,className:h(`rcs-skeleton`,`rcs-skeleton--${t}`,o),"data-animated":a||void 0,style:{width:n??(t===`circle`?32:`100%`),height:r??(t===`circle`?32:t===`text`?12:60),...s}})}function W(e){let{size:t=`md`,tone:n=`neutral`,label:r,className:i,style:a,id:o}=e;return(0,m.jsxs)(`span`,{id:o,className:h(`rcs-spin`,`rcs-spin--${t}`,i),style:a,"data-tone":n,role:`status`,children:[(0,m.jsx)(`span`,{className:`rcs-spin-glyph`,"aria-hidden":!0}),r&&(0,m.jsx)(`span`,{children:r})]})}function G(e){let{content:t,placement:n=`top`,delay:r=100,children:i,className:a,style:o,id:s}=e,[c,l]=p.useState(!1),u=p.useRef(null),d=()=>{u.current&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>l(!0),r)},f=()=>{u.current&&window.clearTimeout(u.current),l(!1)};return(0,m.jsxs)(`span`,{id:s,className:h(`rcs-tooltip`,a),style:o,onMouseEnter:d,onMouseLeave:f,onFocus:d,onBlur:f,children:[i,c&&(0,m.jsx)(`span`,{className:`rcs-tooltip-bubble`,"data-placement":n,role:`tooltip`,children:t})]})}var K=[],q=new Set;function J(){for(let e of q)e([...K])}var Y={show(e){let t=e.id??_(`toast`),n={...e,id:t};K.push(n),J();let r=e.duration??4e3;return r>0&&window.setTimeout(()=>Y.dismiss(t),r),t},dismiss(e){let t=K.findIndex(t=>t.id===e);t>=0&&(K.splice(t,1)[0].onDismiss?.(),J())},async promise(e,t){let n=Y.show({severity:`info`,title:t.loading,duration:0});try{let r=await e;return Y.dismiss(n),Y.show({severity:`success`,title:t.success}),r}catch(e){throw Y.dismiss(n),Y.show({severity:`danger`,title:t.error}),e}}};function X(){let[e,t]=p.useState([]);return p.useEffect(()=>(q.add(t),()=>{q.delete(t)}),[]),(0,m.jsx)(`div`,{className:`rcs-toast-region`,"aria-live":`polite`,"aria-atomic":`false`,children:e.map(e=>(0,m.jsxs)(`div`,{className:h(`rcs-toast`,`rcs-toast--${e.severity??`info`}`),role:`status`,children:[(0,m.jsx)(`span`,{className:`rcs-toast-icon`,"aria-hidden":!0,children:L[e.severity??`info`]}),(0,m.jsxs)(`div`,{style:{flex:1},children:[(0,m.jsx)(`div`,{className:`rcs-toast-title`,children:e.title}),e.description&&(0,m.jsx)(`div`,{className:`rcs-toast-desc`,children:e.description})]}),e.action&&(0,m.jsx)(`button`,{className:`rcs-toast-action`,onClick:()=>{e.action.onClick(),Y.dismiss(e.id)},children:e.action.label}),(0,m.jsx)(`button`,{className:`rcs-input-clear`,"aria-label":`Dismiss`,onClick:()=>Y.dismiss(e.id),children:`×`})]},e.id))})}function Z(e){let{columns:t,data:n,rowKey:r,density:i=`default`,bordered:a=!1,striped:o=!1,stickyHeader:s=!1,loading:c=!1,empty:l=`No data`,selection:u=`none`,selectedKeys:d,onSelectionChange:f,onSort:g,onRowClick:_,className:v,style:y,id:b,"data-testid":x}=e,[S,C]=p.useState(null),[w,T]=p.useState(`asc`),E=e=>typeof r==`function`?r(e):e[r],D=e=>{if(!e.sortable)return;let t=`asc`;S===e.key&&(t=w===`asc`?`desc`:`asc`),C(e.key),T(t),g?.(e.key,t)},O=e=>{if(!(!f||u===`none`))if(u===`single`)f([e]);else{let t=new Set(d??[]);t.has(e)?t.delete(e):t.add(e),f(Array.from(t))}};return(0,m.jsx)(`div`,{id:b,"data-testid":x,className:h(`rcs-table-wrap`,v),style:y,children:(0,m.jsxs)(`table`,{className:`rcs-table`,"data-density":i,"data-bordered":a||void 0,"data-striped":o||void 0,"data-sticky-header":s||void 0,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[u!==`none`&&(0,m.jsx)(`th`,{style:{width:36},children:u===`multi`&&(0,m.jsx)(`input`,{type:`checkbox`,checked:!!d?.length&&d.length===n.length,onChange:e=>f?.(e.target.checked?n.map(E):[])})}),t.map(e=>(0,m.jsx)(`th`,{className:h(e.sortable&&`rcs-table-sortable`,e.align===`right`&&`rcs-table-align-right`,e.align===`center`&&`rcs-table-align-center`),style:{width:e.width},"data-sort":S===e.key?w:void 0,onClick:()=>D(e),children:e.title},e.key))]})}),(0,m.jsx)(`tbody`,{children:c?(0,m.jsx)(`tr`,{children:(0,m.jsx)(`td`,{colSpan:t.length+(u===`none`?0:1),className:`rcs-table-empty`,children:`Loading…`})}):n.length===0?(0,m.jsx)(`tr`,{children:(0,m.jsx)(`td`,{colSpan:t.length+(u===`none`?0:1),className:`rcs-table-empty`,children:l})}):n.map((e,n)=>{let r=E(e),i=d?.includes(r);return(0,m.jsxs)(`tr`,{"data-selected":i||void 0,onClick:()=>_?.(e,n),children:[u!==`none`&&(0,m.jsx)(`td`,{onClick:e=>e.stopPropagation(),children:(0,m.jsx)(`input`,{type:u===`multi`?`checkbox`:`radio`,checked:!!i,onChange:()=>O(r)})}),t.map(t=>{let r=t.dataKey?e[t.dataKey]:void 0,i=t.render?t.render(r,e,n):r;return(0,m.jsx)(`td`,{className:h(t.align===`right`&&`rcs-table-align-right`,t.align===`center`&&`rcs-table-align-center`),children:i},t.key)})]},r)})})]})})}function Q(e){let{label:t,value:n,unit:r,delta:i,sparkline:a,className:o,style:s,id:c}=e;return(0,m.jsxs)(`div`,{id:c,className:h(`rcs-stat`,o),style:s,children:[(0,m.jsx)(`div`,{className:`rcs-stat-label`,children:t}),(0,m.jsxs)(`div`,{className:`rcs-stat-value`,children:[(0,m.jsx)(`span`,{children:n}),r&&(0,m.jsx)(`span`,{className:`rcs-stat-unit`,children:r})]}),i&&(0,m.jsxs)(`span`,{className:`rcs-stat-delta`,"data-tone":i.tone??`neutral`,children:[i.direction===`up`?`↑`:`↓`,i.value,`%`]}),a&&a.length>1&&(0,m.jsx)(ee,{data:a})]})}function ee({data:e}){let t=Math.min(...e),n=Math.max(...e)-t||1;return(0,m.jsx)(`svg`,{viewBox:`0 0 80 24`,className:`rcs-stat-spark`,preserveAspectRatio:`none`,children:(0,m.jsx)(`polyline`,{points:e.map((r,i)=>`${i/(e.length-1)*80},${24-(r-t)/n*24}`).join(` `),fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`})})}function te(e){let{items:t,mode:n=`left`,className:r,style:i,id:a}=e;return(0,m.jsx)(`div`,{id:a,className:h(`rcs-timeline`,r),style:i,"data-mode":n,children:t.map(e=>(0,m.jsxs)(`div`,{className:`rcs-timeline-item`,"data-tone":e.tone??`neutral`,children:[(0,m.jsx)(`div`,{className:`rcs-timeline-marker`,"aria-hidden":!0}),(0,m.jsxs)(`div`,{className:`rcs-timeline-content`,children:[(0,m.jsx)(`div`,{className:`rcs-timeline-title`,children:e.title}),e.description&&(0,m.jsx)(`div`,{className:`rcs-timeline-desc`,children:e.description}),e.time&&(0,m.jsx)(`span`,{className:`rcs-timeline-time`,children:e.time})]})]},e.key))})}function ne(e){let{title:t,subtitle:n,breadcrumbs:r,tabs:i,actions:a,badge:o,avatar:s,back:c,size:l=`md`,inlineSubtitle:u,backInline:d,className:f,style:p,id:g}=e,_=c&&!d,v=c&&d;return(0,m.jsxs)(`div`,{id:g,className:h(`rcs-page-header`,`rcs-page-header--${l}`,f),"data-inline-subtitle":u||void 0,"data-back-inline":d||void 0,style:p,children:[_&&(0,m.jsxs)(`button`,{type:`button`,className:`rcs-page-header-back`,onClick:c.onClick,children:[`← `,c.label??`Back`]}),r&&r.length>0&&(0,m.jsx)(`div`,{style:{marginBottom:8},children:(0,m.jsx)(I,{items:r})}),(0,m.jsxs)(`div`,{className:`rcs-page-header-row`,children:[(0,m.jsxs)(`div`,{className:`rcs-page-header-title`,children:[v&&(0,m.jsx)(`button`,{type:`button`,"aria-label":c.label??`Back`,className:`rcs-page-header-back-inline`,onClick:c.onClick,children:`←`}),s,(0,m.jsxs)(`div`,{className:`rcs-page-header-title-text`,children:[(0,m.jsxs)(`h1`,{children:[t,o&&(0,m.jsx)(`span`,{style:{marginLeft:8},children:o})]}),n&&(0,m.jsx)(`div`,{className:`rcs-page-header-subtitle`,children:n})]})]}),a&&(0,m.jsx)(`div`,{className:`rcs-page-header-actions`,children:a})]}),i&&i.length>0&&(0,m.jsx)(`div`,{className:`rcs-page-header-tabs`,children:(0,m.jsx)(P,{items:i,variant:`line`})})]})}function re(e){let{header:t,sidebar:n,footer:r,sidebarWidth:i=240,sidebarCollapsible:a,children:o,className:s,style:c,id:l}=e;return(0,m.jsxs)(`div`,{id:l,className:h(`rcs-app-shell`,s),style:{"--rcs-sidebar-w":`${i}px`,...c},children:[t&&(0,m.jsx)(`header`,{className:`rcs-app-shell-header`,children:t}),(0,m.jsxs)(`div`,{className:`rcs-app-shell-body`,"data-has-sidebar":!!n||void 0,children:[n&&(0,m.jsx)(`aside`,{className:`rcs-app-shell-sidebar`,children:n}),(0,m.jsx)(`main`,{className:`rcs-app-shell-main`,children:o})]}),r&&(0,m.jsx)(`footer`,{className:`rcs-app-shell-footer`,children:r})]})}var ie=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),$=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),ae={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},oe=(0,p.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>(0,p.createElement)(`svg`,{ref:c,...ae,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:$(`lucide`,i),...s},[...o.map(([e,t])=>(0,p.createElement)(e,t)),...Array.isArray(a)?a:[a]])),se=(e,t)=>{let n=(0,p.forwardRef)(({className:n,...r},i)=>(0,p.createElement)(oe,{ref:i,iconNode:t,className:$(`lucide-${ie(e)}`,n),...r}));return n.displayName=`${e}`,n},ce={overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,minWidth:0,display:`block`};function le({text:e,style:t}){return(0,m.jsx)(`span`,{title:e,style:{...ce,...t},children:e})}var ue={coarse:`(max-width: 768px), (pointer: coarse)`,tablet:`(max-width: 960px)`,desktop:`(min-width: 961px)`,wide:`(min-width: 1281px)`};function de(e){let[t,n]=(0,p.useState)(()=>typeof window>`u`||typeof window.matchMedia!=`function`?!1:window.matchMedia(e).matches);return(0,p.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let t=window.matchMedia(e),r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}export{_ as A,k as C,b as D,v as E,u as M,o as N,y as O,c as P,N as S,S as T,G as _,re as a,O as b,Z as c,V as d,B as f,X as g,W as h,se as i,f as j,h as k,te as l,U as m,ue as n,ne as o,H as p,le as r,Q as s,de as t,R as u,F as v,x as w,A as x,P as y}; \ No newline at end of file diff --git a/internal/ui/dist/index.html b/internal/ui/dist/index.html deleted file mode 100644 index f6359e0..0000000 --- a/internal/ui/dist/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - OtelContext - - - - - -
- - diff --git a/internal/ui/ui.go b/internal/ui/ui.go index 1b1d9d8..fc5850a 100644 --- a/internal/ui/ui.go +++ b/internal/ui/ui.go @@ -40,7 +40,13 @@ func (s spaFS) Open(name string) (fs.File, error) { return s.FS.Open("index.html") } -//go:embed static/* dist +// The built UI is generated at release time (scripts/release.sh) and is not +// committed; only internal/ui/dist/.gitkeep is tracked. The `all:` prefix +// embeds that dotfile so a source-only checkout still compiles. A plain +// `go build` therefore serves no SPA at "/" until the UI is built — release +// tags carry the real dist so `go install @` is UI-complete. +// +//go:embed static/* all:dist var content embed.FS type Server struct { diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 0000000..169beda --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +# +# scripts/release.sh — cut a release tag whose git tree contains the built UI. +# +# Why this exists +# --------------- +# The binary embeds the React UI via `//go:embed all:dist` in internal/ui, but +# the built dist is intentionally NOT committed to main (main is source-only; +# only internal/ui/dist/.gitkeep is tracked). `go install @` only +# compiles Go — it never runs vite — so for an installed binary to be +# UI-complete, the *tagged commit* must carry the built dist. +# +# This script builds the UI, creates a DETACHED release commit that includes +# internal/ui/dist, tags it, and pushes ONLY the tag. main is left untouched — +# the release commit is reachable solely through the tag, so no build artifact +# ever lands on the branch. +# +# Usage: +# scripts/release.sh vX.Y.Z[-pre] # build + push tag +# scripts/release.sh vX.Y.Z[-pre] --release # also create a GitHub pre-release +# +set -euo pipefail + +VER="${1:-}" +if [[ ! "$VER" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?$ ]]; then + echo "usage: scripts/release.sh vX.Y.Z[-pre] [--release]" >&2 + exit 2 +fi +MAKE_RELEASE="${2:-}" + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT" + +# --- Preconditions ----------------------------------------------------------- +branch="$(git rev-parse --abbrev-ref HEAD)" +[ "$branch" = "main" ] || { echo "error: must be on main (currently '$branch')" >&2; exit 1; } +git diff --quiet && git diff --cached --quiet || { echo "error: working tree not clean" >&2; exit 1; } +git fetch origin main --tags --quiet +[ "$(git rev-parse HEAD)" = "$(git rev-parse origin/main)" ] || { echo "error: local main is not in sync with origin/main" >&2; exit 1; } +if git rev-parse -q --verify "refs/tags/$VER" >/dev/null 2>&1 || git ls-remote --exit-code --tags origin "$VER" >/dev/null 2>&1; then + echo "error: tag $VER already exists (local or remote)" >&2 + exit 1 +fi + +base="$(git rev-parse HEAD)" +# Always restore main to its source-only state, even on failure. +cleanup() { git reset --hard --quiet "$base"; git clean -fdq -- internal/ui/dist >/dev/null 2>&1 || true; } +trap cleanup EXIT + +# --- Build the UI ------------------------------------------------------------ +echo "▸ building UI (npm ci && npm run build)…" +( cd ui && npm ci && npm run build ) +[ -f internal/ui/dist/index.html ] || { echo "error: UI build produced no dist/index.html" >&2; exit 1; } +touch internal/ui/dist/.gitkeep # vite emptyOutDir wipes it; keep the placeholder + +# --- Sanity: the binary compiles with the freshly built dist embedded -------- +echo "▸ verifying the binary embeds the UI…" +go build -o /tmp/otelctx-release-check . && rm -f /tmp/otelctx-release-check + +# --- Detached release commit carrying the built dist ------------------------- +echo "▸ creating release commit + tag $VER…" +git add -f internal/ui/dist +git commit -q -m "release: $VER (built UI embedded; not merged to main)" +git tag -a "$VER" -m "$VER" + +# --- Push ONLY the tag (its commit + dist travel with it; main stays clean) --- +git push origin "refs/tags/$VER" +echo "✓ pushed tag $VER -> $(git rev-parse --short "$VER")" + +# (the EXIT trap now restores main to the source-only state) + +# --- Optional GitHub pre-release -------------------------------------------- +if [ "$MAKE_RELEASE" = "--release" ]; then + prev="$(git describe --tags --abbrev=0 "${VER}^" 2>/dev/null || true)" + range="${prev:+${prev}..}${VER}" + notes="$(git log --pretty='- %s' "$range" 2>/dev/null | grep -vE '^- release:' || true)" + gh release create "$VER" --prerelease --title "$VER" --notes \ +"Install (UI embedded): +\`\`\` +go install github.com/RandomCodeSpace/otelcontext@$VER +\`\`\` + +### Changes +$notes" + echo "✓ created GitHub pre-release $VER" +fi