vscode-behavior3 2.1.3 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -138
- package/build.d.ts +5 -0
- package/dist/build-cli.js +80 -2290
- package/dist/extension.js +392 -2330
- package/dist/webview/assets/editor-466vlAsX.js +8 -0
- package/dist/webview/assets/editor-CTBBjkkm.css +1 -0
- package/dist/webview/assets/graph-vendor-ww5KcpJ-.js +151 -0
- package/dist/webview/assets/rolldown-runtime-BYbx6iT9.js +1 -0
- package/dist/webview/assets/ui-vendor-CpXf__no.js +249 -0
- package/dist/webview/assets/vendor-Ctok02TG.js +61 -0
- package/dist/webview/images/pic.png +0 -0
- package/dist/webview/index.html +6 -2
- package/dist/webview/locales/en.json +6 -0
- package/dist/webview/locales/zh.json +6 -0
- package/package.json +73 -21
- package/package.nls.json +6 -3
- package/package.nls.zh-cn.json +6 -3
- package/webview/shared/b3build-model.d.ts +22 -2
- package/webview/shared/b3type.ts +1 -2
- package/dist/webview/assets/editor-Ko79XsIi.css +0 -1
- package/dist/webview/assets/editor-RJ_NkY97.js +0 -534
- package/dist/webview/assets/worker-B9qc9nkC.js +0 -13
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-BYbx6iT9.js";import{A as t,C as n,D as r,E as i,M as a,N as o,O as s,S as c,T as l,_ as u,a as d,b as f,d as p,f as m,g as h,h as g,i as _,j as v,k as y,l as b,m as x,n as S,o as C,p as ee,r as w,s as T,t as E,u as te,v as ne,w as re,x as ie,y as ae}from"./ui-vendor-CpXf__no.js";import{a as oe,c as se,d as ce,f as D,i as le,l as ue,n as de,o as fe,p as O,r as pe,s as k,t as me,u as he}from"./graph-vendor-ww5KcpJ-.js";import{a as ge,c as _e,d as ve,f as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as A,r as Te,s as Ee,t as De,u as Oe}from"./vendor-Ctok02TG.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 j=e(o()),ke=e(a()),M=ye(),Ae=(0,j.createContext)({nodeJsonVisible:!1,toggleNodeJsonVisible:()=>void 0}),je=({children:e})=>{let[t,n]=(0,j.useState)(!1);return(0,M.jsx)(Ae.Provider,{value:{nodeJsonVisible:t,toggleNodeJsonVisible:()=>n(e=>!e)},children:e})},Me=()=>(0,j.useContext)(Ae),Ne={about:`About Behavior3`,actuaSize:`Actual Size`,actualSize:`Actual Size`,add:`Add`,alertNewVersion:`This file is created by a newer version of Behavior3({{version}}), please upgrade to the latest version.`,batch:`Batch Script`,batchCompleted:`Batch completed`,batchFailed:`Batch failed, more information can be found in the console.`,build:`Build`,buildCompleted:`Build completed`,buildFailed:`Build failed, more information can be found in the console.`,cancel:`Cancel`,compact:`Compact`,console:`Console`,copy:`Copy`,createProject:`Create Project`,checkExpr:`Check expression`,cut:`Cut`,delete:`Delete`,deleteNode:`Delete Node`,devTools:`Toggle Developer Tools`,donotSave:`Don't Save`,duplicate:`Duplicate`,editSubtree:`Edit Subtree`,fieldRequired:`Field '{{field}}' is required`,forceReload:`Force Reload`,fullscreen:`Toggle Full Screen`,hide:`Hide Behavior3`,hideOthers:`Hide Others`,insertNode:`Insert Node`,jumpNode:`Jump Node`,language:`Language`,moveToTrash:`Move to Trash`,newFile:`New File...`,newFolder:`New Folder...`,newWindow:`New Window`,nodeDefinition:`NODES`,normal:`Normal`,open:`Open...`,openProject:`Open Project`,paste:`Paste`,quit:`Quit Behavior3`,recent:`Recent`,redo:`Redo`,reload:`Reload`,reset:`Reset`,"reset.confirm":`Reset to original value?`,"reset.defaultConfirm":`Reset to default value?`,rename:`Rename...`,replace:`Replace`,reportIssue:`Report Issue`,revealFileOnMac:`Reveal in Finder`,revealFileOnWindows:`Reveal in File Explorer`,save:`Save`,saveAll:`Save All`,saveAs:`Save As...`,saveAsSubtree:`Save As Subtree`,searchFile:`Search File`,searchNode:`Search Node`,selectAll:`Select All`,services:`Services`,setupBuildScript:`Setup Build Script`,start:`Start`,undo:`Undo`,unhide:`Show All`,zoomIn:`Zoom In`,zoomOut:`Zoom Out`,"menu.edit":`Edit`,"menu.file":`File`,"menu.view":`View`,"menu.window":`Window`,"menu.help":`Help`,"workspace.saveAllOnClose":`Do you want to save the changes to the following {{count}} files?`,"workspace.saveOnClose":`Do you want to save the changes you made to '{{name}}'?`,"workspace.reloadFile":`'{{name}}' has changed, do you want to reload now?`,"explorer.deleteFile":`Are you sure you want delete '{{name}}'?`,"explorer.deleteFolder":`Are you sure you want delete '{{name}}' and its contents?`,"explorer.replaceFile":`Are you sure you want replace '{{name}}'?`,"explorer.restoreFileInfo":`You can restore this file from the Trash.`,"explorer.title":`Explorer`,"tree.overview":`Overview`,"tree.name":`Tree name`,"tree.desc":`Tree desc`,"tree.export":`Export`,"tree.prefix":`ID prefix`,"tree.group":`Enable Node Grouping`,"tree.group.placeholder":`Select node groups`,"tree.vars":`Define Variables`,"tree.vars.local":`Local Variables`,"tree.vars.add":`Add Variable`,"tree.vars.name":`name`,"tree.vars.invalidName":`Invalid variable name`,"tree.vars.desc":`description`,"tree.vars.imports":`Import Variables`,"tree.vars.subtree":`Subtree Variables`,"tree.import.add":`Add Import`,"tree.custom":`Custom Data`,"tree.custom.add":`Add Entry`,"tree.custom.key":`key`,"tree.custom.value":`value`,"tree.custom.type.string":`String value`,"tree.custom.type.number":`Number value`,"tree.custom.type.boolean":`Boolean value`,"tree.custom.type.invalid":`Invalid custom value`,"regnode.input":`Input: `,"regnode.output":`Output: `,"regnode.args":`Args: `,"regnode.mark":`Mark: `,"regnode.subtree":`Subtree: `,"node.args":`Const arguments`,"node.children.unlimited":`Unlimited`,"node.children":`Num children`,"node.debug":`Debug`,"node.deleteRootNodeDenied":`Unable to delete the root node`,"node.dropDenied":`This node position is denied to drop the node`,"node.desc":`Node desc`,"node.disabled":`Disabled`,"node.editSubtreeDenied":`Unable to edit the subtree node`,"node.editFailed":`Node '{{name}}' edit failed`,"node.group":`Node group`,"node.groupNotEnabled":`One of '{{group}}' node group is not enabled in current file`,"node.id":`Node id`,"node.inputVariable":`Input variables`,"node.invalidChildren":`Invalid number of children`,"node.invalidExpression":`Invalid expression`,"node.invalidValue":`Invalid value`,"node.invalidVariableName":`Invalid variable name, should start with a letter or underscore`,"node.name":`Node name`,"node.noNodeSelected":`No node selected`,"node.notFound":`Node '{{name}}' not found`,"node.oneof.error":`Only one is allowed between input '{{input}}' and argument '{{desc}}({{arg}})'`,"node.oneof.inputNotfound":`Input '{{input}}' not found`,"node.outputVariable":`Output variables`,"node.pasteDataError":`Paste data error`,"node.rootNodeAsSubtree":`Root node cann't be save as subtree`,"node.subtree":`Subtree`,"node.subtreeMissing":`Subtree file is missing: {{path}}`,"node.subtreeInvalid":`Subtree file is invalid: {{path}}`,"node.subtreeCyclic":`Subtree reference is cyclic: {{path}}`,"node.subtreeOpenFailed":`Failed to open subtree: file not found or unreadable ({{path}})`,"node.subtreePathError":`You should save the subtree inside the current workspace`,"node.subtreeSaveRootError":`Root node cann't be save as subtree`,"node.subtreeSaveSuccess":`Saved and converted to subtree node: {{path}}`,"node.moveSubtreeDenied":`Cannot move nodes inside a subtree`,"node.dropSubtreeInternalDenied":`Cannot drop onto a subtree internal node`,"node.moveRootDenied":`Cannot move the root node`,"node.dropAroundRootDenied":`Cannot place a node before or after the root`,"node.addChildToSubtreeRefDenied":`Cannot add child nodes to a subtree reference`,"node.moveIntoDescendantDenied":`Cannot move a node into its own descendant`,"node.type":`Node type`,"node.undefinedVariable":`Variable '{{variable}}' is not defined`,"node.jsonData":`JSON Data`,"node.unknown.title":`Unknown Node`,"node.unknownType":`Unknown`,"node.resolutionError":`Resolution Error`,"node.unknown.desc":`New node`,"build.success":`Build completed.`,"build.failed":`Build failed.`,"editor.loading":`Loading editor...`,"editor.externalChangeConflict":`External file change detected while the document has unsaved edits.`,"editor.reloadFromDisk":`Reload`,"editor.dismissConflict":`Dismiss`,"editor.newerVersionEditDenied":`This file is created by a newer version of Behavior3({{version}}). Please upgrade to the latest version.`,"inspector.noActiveDocument":`Open a Behavior3 editor to inspect and edit the active tree.`,"inspector.embeddedModeNotice":`Inspector is configured to appear inside the Behavior3 editor.`,"inspector.embeddedToolbar.build":`Build Behavior Tree`,"inspector.embeddedToolbar.toggleEditorMode":`Toggle Editor Mode`,"inspector.embeddedToolbar.toggleInspectorNodeJson":`Toggle Raw Node JSON`,"inspector.embeddedToolbar.createProject":`Create Project`,"inspector.embeddedToolbar.createTree":`Create Behavior Tree`,"mutation.invalidJsonPath":`Invalid JSON path: {{path}}`,"mutation.missingSelectedNode":`No selected node is available for this mutation.`,"mutation.selectedNodeMismatch":`The selected node changed before the mutation was applied.`,"mutation.missingTargetNode":`The target node could not be found.`,"mutation.missingSourceNode":`The source node could not be found.`,"mutation.missingSubtreeOriginal":`Missing subtree original snapshot for this mutation.`,"mutation.missingDetachedSubtreeRoot":`Missing detached subtree snapshot for this mutation.`,"mutation.moveRootDenied":`Cannot move the root node.`,"mutation.dropAroundRootDenied":`Cannot drop before or after the root node.`,"mutation.addChildToSubtreeRefDenied":`Cannot add a child directly to a subtree reference.`,"mutation.moveIntoDescendantDenied":`Cannot move a node into its own descendant.`,"mutation.deleteRootNodeDenied":`Cannot delete the root node.`,"mutation.editSubtreeDenied":`Cannot edit structure on a subtree reference.`,"mutation.saveSelectedAsSubtreeRootDenied":`The root node cannot be saved as a subtree.`,"mutation.saveSelectedAsSubtreeMissingTarget":`The target node could not be saved as a subtree.`,"mutation.saveSelectedAsSubtreePostSaveMissingTarget":`The target node could not be found after saving the subtree.`,"runtime.nodeCheckRuntimeHasErrors":`Checker runtime has errors.`,"runtime.invalidSavedSubtreePath":`Host returned an invalid saved subtree path.`,"runtime.unsupportedDocumentMutation":`Unsupported document mutation.`,"override.resetTitle":`Reset this override?`,"form.enterJsonArray":`Enter JSON array`,"form.enterJsonValue":`Enter JSON value`,"form.unset":`Unset`,"form.true":`True`,"form.false":`False`,"validation.jsonArray":`{{name}} must be a JSON array`,"validation.integer":`{{field}} must be an integer`,"validation.number":`{{field}} must be a number`,"validation.missingOneofInput":`Missing input slot for oneof '{{input}}'`,"validation.oneof":`Only one of '{{left}}' and '{{right}}' can be set`,"validation.invalidJsonPath":`Path must be a workdir-relative .json file: {{path}}`,"validation.variableDescriptionRequired":`Variable description is required`,"validation.customKeyRequired":`Custom key is required`,"validation.customKeyDuplicate":`Custom key '{{key}}' is duplicated`,"validation.customValueInvalid":`Custom value must be a string, number, or boolean`},Pe={about:`关于 Behavior3`,actualSize:`实际大小`,add:`添加`,alertNewVersion:`此文件由新版本 Behavior3({{version}}) 创建,请升级到最新版本。`,batch:`批处理脚本`,batchCompleted:`批处理完成`,batchFailed:`批处理出现错误,详情请查看控制台!`,build:`构建`,buildCompleted:`构建完成`,buildFailed:`构建出现错误,详情请查看控制台!`,cancel:`取消`,compact:`紧凑`,console:`控制台`,checkExpr:`检查表达式`,copy:`复制`,createProject:`新建项目`,cut:`剪切`,delete:`删除`,deleteNode:`删除节点`,devTools:`切换开发者工具`,donotSave:`不保存`,duplicate:`生成副本`,editSubtree:`编辑子树`,fieldRequired:`字段“{{field}}”必填`,forceReload:`强制重新加载`,fullscreen:`切换全屏`,hide:`隐藏 Behavior3`,hideOthers:`隐藏其它`,insertNode:`插入节点`,jumpNode:`跳转节点`,language:`语言`,moveToTrash:`移至回收站`,newFile:`新建行为树...`,newFolder:`新建目录...`,newWindow:`新建窗口`,nodeDefinition:`节点定义`,normal:`正常`,open:`打开...`,openProject:`打开项目`,paste:`粘贴`,quit:`退出 Behavior3`,recent:`最近打开`,redo:`重做`,reload:`重新加载`,reset:`重置`,"reset.confirm":`重置为原始值?`,"reset.defaultConfirm":`重置为默认值?`,rename:`重命名...`,replace:`替换`,reportIssue:`问题反馈`,revealFileOnMac:`在 Finder 中显示`,revealFileOnWindows:`在文件管理器中打开`,save:`保存`,saveAll:`保存全部`,saveAs:`另存为...`,saveAsSubtree:`另存为子树`,searchFile:`搜索文件`,searchNode:`搜索节点`,selectAll:`全选`,services:`服务`,setupBuildScript:`设置构建脚本`,start:`开始`,undo:`撤销`,unhide:`显示所有`,zoomIn:`放大`,zoomOut:`缩小`,"menu.file":`文件`,"menu.edit":`编辑`,"menu.view":`视图`,"menu.window":`窗口`,"menu.help":`帮助`,"workspace.saveAllOnClose":`你需要保存对以下 {{count}} 个文件的修改吗?`,"workspace.saveOnClose":`你需要保存对文件 {{name}} 的修改吗?`,"workspace.reloadFile":`文件 {{name}} 发生改变,你需要重新加载吗?`,"explorer.deleteFile":`你确定要删除文件 '{{name}}'?`,"explorer.deleteFolder":`你确定要删除目录 '{{name}}'?`,"explorer.replaceFile":`你确定要替换文件 '{{name}}'?`,"explorer.restoreFileInfo":`你可以从回收站恢复此文件。`,"explorer.title":`资源浏览`,"tree.overview":`概况`,"tree.name":`行为树`,"tree.desc":`说明`,"tree.export":`导出`,"tree.prefix":`标识前缀`,"tree.group":`启用节点分组`,"tree.group.placeholder":`选择节点分组`,"tree.vars":`定义变量`,"tree.vars.local":`本地变量`,"tree.vars.add":`添加变量`,"tree.vars.name":`变量名`,"tree.vars.invalidName":`变量名不合法`,"tree.vars.desc":`变量说明`,"tree.vars.imports":`导入变量`,"tree.vars.subtree":`子树变量`,"tree.import.add":`添加导入`,"tree.custom":`自定义数据`,"tree.custom.add":`添加条目`,"tree.custom.key":`键`,"tree.custom.value":`值`,"tree.custom.type.string":`字符串值`,"tree.custom.type.number":`数字值`,"tree.custom.type.boolean":`布尔值`,"tree.custom.type.invalid":`非法的自定义值`,"regnode.input":`输入:`,"regnode.output":`输出:`,"regnode.args":`参数:`,"regnode.mark":`备注:`,"regnode.subtree":`子树:`,"node.args":`常量参数`,"node.children.unlimited":`无限制`,"node.children":`子节点数量`,"node.debug":`调试`,"node.deleteRootNodeDenied":`不能删除根节点`,"node.dropDenied":`此节点位置不允许放置拖拽的节点`,"node.desc":`节点说明`,"node.disabled":`禁用`,"node.editSubtreeDenied":`不能编辑子树节点`,"node.editFailed":`节点 {{name}} 编辑失败`,"node.group":`节点分组`,"node.groupNotEnabled":`节点分组 “{{group}}” 任意一个未在当前文件中启用`,"node.id":`节点标识`,"node.inputVariable":`输入变量`,"node.invalidChildren":`子节点数量不合法`,"node.invalidExpression":`表达式不合法`,"node.invalidValue":`无效的值`,"node.invalidVariableName":`变量名必须以字母或下划线开头`,"node.name":`节点名称`,"node.noNodeSelected":`未选择任务节点`,"node.notFound":`节点 “{{name}}” 不存在`,"node.oneof.error":`输入项 “{{input}}” 和参数 “{{desc}}({{arg}})” 之中,只能选择设置其中之一`,"node.oneof.inputNotfound":`输入项“{{input}}”不存在`,"node.outputVariable":`输出变量`,"node.pasteDataError":`粘贴数据出错`,"node.rootNodeAsSubtree":`根节点不能保存为子树`,"node.subtree":`子树`,"node.subtreeMissing":`子树文件缺失:{{path}}`,"node.subtreeInvalid":`子树文件无效:{{path}}`,"node.subtreeCyclic":`子树引用出现循环:{{path}}`,"node.subtreeOpenFailed":`打开子树失败:文件不存在或不可读({{path}})`,"node.subtreePathError":`子树必须保存在当前工作区的目录内`,"node.subtreeSaveRootError":`根节点不能保存为子树`,"node.subtreeSaveSuccess":`已保存并转换为子树节点:{{path}}`,"node.moveSubtreeDenied":`不能移动子树内部节点`,"node.dropSubtreeInternalDenied":`不能拖放到子树内部节点`,"node.moveRootDenied":`不能移动根节点`,"node.dropAroundRootDenied":`不能将节点放到根节点之前或之后`,"node.addChildToSubtreeRefDenied":`不能向子树引用添加子节点`,"node.moveIntoDescendantDenied":`不能将节点移动到自己的后代节点中`,"node.type":`节点类型`,"node.undefinedVariable":`变量 “{{variable}}” 未定义`,"node.jsonData":`JSON 数据`,"node.unknown.title":`未知节点`,"node.unknownType":`未知`,"node.resolutionError":`解析错误`,"node.unknown.desc":`新建节点`,"build.success":`构建完成。`,"build.failed":`构建失败。`,"editor.loading":`正在加载编辑器...`,"editor.externalChangeConflict":`检测到外部文件变更,当前文档还有未保存修改。`,"editor.reloadFromDisk":`重新载入`,"editor.dismissConflict":`忽略`,"editor.newerVersionEditDenied":`此文件由新版本 Behavior3({{version}}) 创建,请升级到最新版本后再编辑。`,"inspector.noActiveDocument":`打开一个 Behavior3 编辑器后,这里会显示当前行为树的 Inspector,并支持直接编辑。`,"inspector.embeddedModeNotice":`Inspector 当前配置为在 Behavior3 编辑器内部显示。`,"inspector.embeddedToolbar.build":`构建行为树`,"inspector.embeddedToolbar.toggleEditorMode":`切换编辑器模式`,"inspector.embeddedToolbar.toggleInspectorNodeJson":`切换原始节点 JSON`,"inspector.embeddedToolbar.createProject":`新建项目`,"inspector.embeddedToolbar.createTree":`新建行为树`,"mutation.invalidJsonPath":`无效的 JSON 路径: {{path}}`,"mutation.missingSelectedNode":`当前没有可用于提交此修改的选中节点。`,"mutation.selectedNodeMismatch":`当前选中节点已变化,请重试。`,"mutation.missingTargetNode":`未找到目标节点,请重试。`,"mutation.missingSourceNode":`未找到源节点,请重试。`,"mutation.missingSubtreeOriginal":`缺少 subtree 原始节点快照,请重试。`,"mutation.missingDetachedSubtreeRoot":`缺少用于解绑 subtree 引用的快照,请重试。`,"mutation.moveRootDenied":`不能移动根节点。`,"mutation.dropAroundRootDenied":`不能围绕根节点插入。`,"mutation.addChildToSubtreeRefDenied":`不能直接向 subtree 引用添加子节点。`,"mutation.moveIntoDescendantDenied":`不能移动到自己的后代下。`,"mutation.deleteRootNodeDenied":`不能删除根节点。`,"mutation.editSubtreeDenied":`不能在 subtree 引用上直接修改结构。`,"mutation.saveSelectedAsSubtreeRootDenied":`根节点不能另存为 subtree。`,"mutation.saveSelectedAsSubtreeMissingTarget":`未找到可另存为 subtree 的目标节点。`,"mutation.saveSelectedAsSubtreePostSaveMissingTarget":`提交 subtree 保存结果时未找到目标节点。`,"runtime.nodeCheckRuntimeHasErrors":`checker 运行时存在错误。`,"runtime.invalidSavedSubtreePath":`宿主返回了无效的 subtree 保存路径。`,"runtime.unsupportedDocumentMutation":`不支持此文档修改。`,"override.resetTitle":`重置此覆盖?`,"form.enterJsonArray":`输入 JSON 数组`,"form.enterJsonValue":`输入 JSON 值`,"form.unset":`未设置`,"form.true":`是`,"form.false":`否`,"validation.jsonArray":`{{name}} 必须是 JSON 数组`,"validation.integer":`{{field}} 必须是整数`,"validation.number":`{{field}} 必须是数字`,"validation.missingOneofInput":`缺少 oneof 输入项 “{{input}}”`,"validation.oneof":`“{{left}}” 和 “{{right}}” 只能设置其中之一`,"validation.invalidJsonPath":`路径必须是工作目录内的相对 .json 文件:{{path}}`,"validation.variableDescriptionRequired":`变量说明必填`,"validation.customKeyRequired":`自定义 key 必填`,"validation.customKeyDuplicate":`自定义 key “{{key}}” 重复了`,"validation.customValueInvalid":`自定义值必须是字符串、数字或布尔值`},Fe=[`en`,`zh`],Ie=e=>(e??``).toLowerCase().startsWith(`zh`)?`zh`:`en`;xe.use(Se).init({returnNull:!1,initImmediate:!1,lng:typeof document<`u`&&document.documentElement.lang?Ie(document.documentElement.lang):typeof navigator<`u`&&navigator.language?Ie(navigator.language):`en`,fallbackLng:`en`,supportedLngs:[...Fe],interpolation:{escapeValue:!1},react:{useSuspense:!1},resources:{zh:{translation:Pe},en:{translation:Ne}}});var Le=async e=>{let t=Ie(e);return xe.resolvedLanguage!==t&&await xe.changeLanguage(t),typeof document<`u`&&(document.documentElement.lang=t===`zh`?`zh-CN`:`en`),t},N=xe,Re=e(_e()),ze=Ee(),P=navigator.platform.toUpperCase().indexOf(`MAC`)>=0,F=e=>(e.indexOf(`ctrl`)>=0&&P&&(e=e.replace(`ctrl`,ze.Key.Meta)),e.toLowerCase()),Be=(e,t,n,r)=>(r||={},r.target=t,r.exactMatch=!0,(0,Re.default)(e,(e,t)=>!e.repeat&&n(e,t),r)),I={Backspace:ze.Key.Backspace,CloseEditor:F(`ctrl.w`),CloseAllOtherEditors:F(`ctrl.shift.w`),Copy:F(`ctrl.c`),Cut:F(`ctrl.x`),Delete:ze.Key.Delete,Duplicate:F(`ctrl.d`),Enter:ze.Key.Enter,Escape:ze.Key.Escape,F2:ze.Key.F2,Insert:ze.Key.Insert,JumpNode:F(`ctrl.g`),MacDelete:P?F(`ctrl.backspace`):``,Paste:F(`ctrl.v`),Redo:F(P?`shift.ctrl.z`:`ctrl.y`),Replace:F(`shift.ctrl.v`),Save:F(`ctrl.s`),SearchTree:F(`ctrl.p`),SearchNode:F(`ctrl.f`),SelectAll:F(`ctrl.a`),Undo:F(`ctrl.z`)},Ve=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%2024%2024'%20height='200px'%20width='200px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill='none'%20stroke-width='2'%20d='M1,23%20L4,20%20L1,23%20Z%20M20,4%20L23,1%20L20,4%20Z%20M9,11%20L12,8%20L9,11%20Z%20M13,15%20L16,12%20L13,15%20Z%20M10,5%20L19,14%20L20,13%20C22,11%2024.0533047,8.00000006%2020,4%20C15.9466953,-5.91784286e-08%2013,2%2011,4%20L10,5%20Z%20M4,11%20L5,10%20L14,19%20L13,20%20C11.0000005,22%207.9999999,24.0873857%204,20%20C9.84858655e-08,15.9126143%202,13%204,11%20Z'%3e%3c/path%3e%3c/svg%3e`,He=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20width='200'%20height='200'%3e%3cdefs%3e%3cpath%20d='M196.55%2017.95Q196.55%200%20178.65%200H136.2q-17.95%200-17.95%2017.95v2.6h-78.5Q23%2021%2022.65%2037.1v27.85h-4.7Q0%2064.95%200%2082.9v32.05q0%2017.95%2017.95%2017.95h4.7v29.55q.2%2016.5%2017.9%2016.5h77.7v3.15q0%2017.9%2017.95%2017.9h42.45q17.9%200%2017.9-17.9v-22.65q0-17.95-17.9-17.95H136.2q-17.95%200-17.95%2017.95V162h-77.7q-.7%200-.9-.1v-29H50q17.95%200%2017.95-17.95v-6.4h50.3v2.65q0%2017.9%2017.95%2017.9h42.45q17.9%200%2017.9-17.9V88.55q0-17.95-17.9-17.95H136.2q-17.95%200-17.95%2017.95v3h-50.3V82.9q0-17.95-17.95-17.95H39.65V37.7q.15-.2.6-.2h78v3.1q0%2017.9%2017.95%2017.9h42.45q17.9%200%2017.9-17.9V17.95M179.6%2040.6q0%20.9-.95.9H136.2q-.95%200-.95-.9V17.95q0-.95.95-.95h42.45q.95%200%20.95.95V40.6m-.95%2047q.95%200%20.95.95v22.65q0%20.95-.95.95H136.2q-.95%200-.95-.95V88.55q0-.95.95-.95h42.45m.95%2094.5q0%20.95-.95.95H136.2q-.95%200-.95-.95v-22.65q0-.95.95-.95h42.45q.95%200%20.95.95v22.65M17%2082.9q0-.95.95-.95H50q.95%200%20.95.95v32.05q0%20.95-.95.95H17.95q-.95%200-.95-.95V82.9z'%20id='prefix__a'/%3e%3c/defs%3e%3cuse%20xlink:href='%23prefix__a'/%3e%3c/svg%3e`,Ue=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%2024%2024'%20height='1em'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill='none'%20d='M0%200h24v24H0z'%3e%3c/path%3e%3cpath%20d='M11.07%2012.85c.77-1.39%202.25-2.21%203.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69%200-2.52%201.28-2.87%202.34L6.54%206.96C7.25%204.83%209.18%203%2011.99%203c2.35%200%203.96%201.07%204.78%202.41.7%201.15%201.11%203.3.03%204.9-1.2%201.77-2.35%202.31-2.97%203.45-.25.46-.35.76-.35%202.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14%2020c0%201.1-.9%202-2%202s-2-.9-2-2%20.9-2%202-2%202%20.9%202%202z'%3e%3c/path%3e%3c/svg%3e`,We=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%20512%20512'%20height='200px'%20width='200px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M511.988%20288.9c-.478%2017.43-15.217%2031.1-32.653%2031.1H424v16c0%2021.864-4.882%2042.584-13.6%2061.145l60.228%2060.228c12.496%2012.497%2012.496%2032.758%200%2045.255-12.498%2012.497-32.759%2012.496-45.256%200l-54.736-54.736C345.886%20467.965%20314.351%20480%20280%20480V236c0-6.627-5.373-12-12-12h-24c-6.627%200-12%205.373-12%2012v244c-34.351%200-65.886-12.035-90.636-32.108l-54.736%2054.736c-12.498%2012.497-32.759%2012.496-45.256%200-12.496-12.497-12.496-32.758%200-45.255l60.228-60.228C92.882%20378.584%2088%20357.864%2088%20336v-16H32.666C15.23%20320%20.491%20306.33.013%20288.9-.484%20270.816%2014.028%20256%2032%20256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758%200-45.255%2012.498-12.497%2032.758-12.497%2045.256%200L141.255%20160h229.489l54.627-54.627c12.498-12.497%2032.758-12.497%2045.256%200%2012.496%2012.497%2012.496%2032.758%200%2045.255L424%20197.255V256h56c17.972%200%2032.484%2014.816%2031.988%2032.9zM257%200c-61.856%200-112%2050.144-112%20112h224C369%2050.144%20318.856%200%20257%200z'%3e%3c/path%3e%3c/svg%3e`,Ge=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%20512%20512'%20height='1em'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill='none'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='48'%20d='M200.66%20352H144a96%2096%200%200%201%200-192h55.41m113.18%200H368a96%2096%200%200%201%200%20192h-56.66m-142.27-96h175.86'%3e%3c/path%3e%3c/svg%3e`,Ke=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%2024%2024'%20height='200px'%20width='200px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1%2012C1%205.925%205.925%201%2012%201s11%204.925%2011%2011-4.925%2011-11%2011S1%2018.075%201%2012Zm16.333-4.167a.825.825%200%200%200-1.166-1.166l-9.5%209.5a.825.825%200%200%200%201.166%201.166Z'%3e%3c/path%3e%3c/svg%3e`,qe=`data:image/svg+xml,%3csvg%20stroke='currentColor'%20fill='currentColor'%20stroke-width='0'%20viewBox='0%200%2016%2016'%20height='1em'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.938%202.016A.13.13%200%200%201%208.002%202a.13.13%200%200%201%20.063.016.15.15%200%200%201%20.054.057l6.857%2011.667c.036.06.035.124.002.183a.2.2%200%200%201-.054.06.1.1%200%200%201-.066.017H1.146a.1.1%200%200%201-.066-.017.2.2%200%200%201-.054-.06.18.18%200%200%201%20.002-.183L7.884%202.073a.15.15%200%200%201%20.054-.057m1.044-.45a1.13%201.13%200%200%200-1.96%200L.165%2013.233c-.457.778.091%201.767.98%201.767h13.713c.889%200%201.438-.99.98-1.767z'%3e%3c/path%3e%3cpath%20d='M7.002%2012a1%201%200%201%201%202%200%201%201%200%200%201-2%200M7.1%205.995a.905.905%200%201%201%201.8%200l-.35%203.507a.552.552%200%200%201-1.1%200z'%3e%3c/path%3e%3c/svg%3e`,Je=`data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1603437207465'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='868'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cdefs%3e%3cstyle%20type='text/css'%3e%3c/style%3e%3c/defs%3e%3cpath%20d='M85.312%2085.312V384H384V85.312H85.312zM0%200h469.312v469.312H0V0z%20m0%20554.688h469.312V1024H0V554.688zM85.312%20640v298.688H384V640H85.312zM554.688%200H1024v469.312H554.688V0zM640%2085.312V384h298.688V85.312H640zM554.688%20554.688H1024V1024H554.688V554.688zM640%20640v298.688h298.688V640H640z'%20fill='%23000000'%20p-id='869'%3e%3c/path%3e%3c/svg%3e`,Ye=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2038.4%2048.65%20Q%2035.7%2046%2032%2046%2028.35%2046%2025.6%2048.65%2023%2051.35%2023%2055%2023%2058.85%2025.6%2061.35%2028.25%2064%2032%2064%2035.75%2064%2038.4%2061.35%2041%2058.75%2041%2055%2041%2051.4%2038.4%2048.65%20M%2035.5%2058.6%20Q%2034.1%2060%2032%2060%2029.95%2060%2028.45%2058.6%2027%2057.15%2027%2055%2027%2052.9%2028.45%2051.45%2030%2050%2032%2050%2034.05%2050%2035.5%2051.45%2037%2052.95%2037%2055%2037%2057.1%2035.5%2058.6%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.6%2025.7%20Q%2023%2028.3%2023%2032%2023%2035.8%2025.6%2038.4%2028.3%2041%2032%2041%2035.75%2041%2038.4%2038.4%2041%2035.75%2041%2032%2041%2028.4%2038.4%2025.7%2035.7%2023%2032%2023%2028.3%2023%2025.6%2025.7%20M%2032%2027%20Q%2034.1%2027%2035.5%2028.5%2037%2030%2037%2032%2037%2034.15%2035.5%2035.55%2034.1%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.15%2027%2032%2027%2029.95%2028.45%2028.5%2029.95%2027%2032%2027%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2038.4%202.7%20Q%2035.7%200%2032%200%2028.3%200%2025.6%202.7%2023%205.3%2023%209%2023%2012.85%2025.6%2015.35%2028.25%2018%2032%2018%2035.75%2018%2038.4%2015.35%2041%2012.75%2041%209%2041%205.4%2038.4%202.7%20M%2035.5%205.5%20Q%2037%207%2037%209%2037%2011.15%2035.5%2012.55%2034.1%2014%2032%2014%2029.9%2014%2028.45%2012.55%2027%2011.15%2027%209%2027%206.95%2028.45%205.5%2029.95%204%2032%204%2034.1%204%2035.5%205.5%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_0_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_1_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_2_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3c/svg%3e`,Xe=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2013.95%2027.05%20Q%2011.9%2025%209%2025%206.1%2025%204.05%2027.05%202%2029.1%202%2032%202%2034.95%204.05%2036.95%206.1%2039%209%2039%2011.9%2039%2013.95%2036.95%2016%2034.9%2016%2032%2016%2029.1%2013.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3c/svg%3e`,Ze=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2036.95%2027.05%20Q%2034.9%2025%2032%2025%2029.1%2025%2027.05%2027.05%2025%2029.1%2025%2032%2025%2034.95%2027.05%2036.95%2029.1%2039%2032%2039%2034.9%2039%2036.95%2036.95%2039%2034.9%2039%2032%2039%2029.1%2036.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3c/svg%3e`,Qe=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2013.95%2027.05%20Q%2011.9%2025%209%2025%206.1%2025%204.05%2027.05%202%2029.1%202%2032%202%2034.95%204.05%2036.95%206.1%2039%209%2039%2011.9%2039%2013.95%2036.95%2016%2034.9%2016%2032%2016%2029.1%2013.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2036.95%2027.05%20Q%2034.9%2025%2032%2025%2029.1%2025%2027.05%2027.05%2025%2029.1%2025%2032%2025%2034.95%2027.05%2036.95%2029.1%2039%2032%2039%2034.9%2039%2036.95%2036.95%2039%2034.9%2039%2032%2039%2029.1%2036.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_4_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_4_FILL'/%3e%3c/g%3e%3c/svg%3e`,$e=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2059.95%2027.05%20Q%2057.9%2025%2055%2025%2052.1%2025%2050.05%2027.05%2048%2029.1%2048%2032%2048%2034.95%2050.05%2036.95%2052.1%2039%2055%2039%2057.9%2039%2059.95%2036.95%2062%2034.9%2062%2032%2062%2029.1%2059.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3c/svg%3e`,et=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2013.95%2036.95%20Q%2016%2034.9%2016%2032%2016%2029.1%2013.95%2027.05%2011.9%2025%209%2025%206.1%2025%204.05%2027.05%202%2029.1%202%2032%202%2034.95%204.05%2036.95%206.1%2039%209%2039%2011.9%2039%2013.95%2036.95%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2012.55%2028.45%20Q%2014%2029.95%2014%2032%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2028.45%20Q%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%204.05%2042.05%20Q%202%2044.1%202%2047%202%2049.9%204.05%2051.95%206.1%2054%209%2054%2011.9%2054%2013.95%2051.95%2016%2049.9%2016%2047%2016%2044.05%2013.95%2042.05%2011.9%2040%209%2040%206.1%2040%204.05%2042.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_4_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%209%2038%20Q%205.3%2038%202.65%2040.6%200%2043.25%200%2047%200%2050.7%202.65%2053.35%205.3%2056%209%2056%2012.75%2056%2015.35%2053.35%2018%2050.7%2018%2047%2018%2043.25%2015.35%2040.6%2012.75%2038%209%2038%20M%204%2047%20Q%204%2044.9%205.45%2043.45%206.95%2042%209%2042%2011.1%2042%2012.55%2043.45%2014%2044.9%2014%2047%2014%2049.05%2012.55%2050.55%2011.1%2052%209%2052%206.95%2052%205.45%2050.55%204%2049.05%204%2047%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%201,%20-1,%200,%2064,0.5)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%201.0555572509765625,%20-1.0555572509765625,%200,%2066.3,0.5)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%201.0555572509765625,%20-1.0555572509765625,%200,%2066.3,-1.8)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%20-15,63.5)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1.0555572509765625,%201.0555572509765625,%200,%20-17.1,63.5)%20'%3e%3cuse%20xlink:href='%23Layer0_4_FILL'/%3e%3c/g%3e%3c/svg%3e`,tt=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2036.95%2027.05%20Q%2034.9%2025%2032%2025%2029.1%2025%2027.05%2027.05%2025%2029.1%2025%2032%2025%2034.95%2027.05%2036.95%2029.1%2039%2032%2039%2034.9%2039%2036.95%2036.95%2039%2034.9%2039%2032%2039%2029.1%2036.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2059.95%2027.05%20Q%2057.9%2025%2055%2025%2052.1%2025%2050.05%2027.05%2048%2029.1%2048%2032%2048%2034.95%2050.05%2036.95%2052.1%2039%2055%2039%2057.9%2039%2059.95%2036.95%2062%2034.9%2062%2032%2062%2029.1%2059.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_4_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_4_FILL'/%3e%3c/g%3e%3c/svg%3e`,nt=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2013.95%2027.05%20Q%2011.9%2025%209%2025%206.1%2025%204.05%2027.05%202%2029.1%202%2032%202%2034.95%204.05%2036.95%206.1%2039%209%2039%2011.9%2039%2013.95%2036.95%2016%2034.9%2016%2032%2016%2029.1%2013.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2018%2032%20Q%2018%2028.3%2015.35%2025.65%2012.7%2023%209%2023%205.25%2023%202.65%2025.65%200%2028.3%200%2032%200%2035.75%202.65%2038.4%205.25%2041%209%2041%2012.7%2041%2015.35%2038.4%2018%2035.75%2018%2032%20M%2014%2032%20Q%2014%2034.1%2012.55%2035.55%2011.05%2037%209%2037%206.9%2037%205.45%2035.55%204%2034.1%204%2032%204%2029.95%205.45%2028.45%206.9%2027%209%2027%2011.05%2027%2012.55%2028.45%2014%2029.95%2014%2032%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2036.95%2027.05%20Q%2034.9%2025%2032%2025%2029.1%2025%2027.05%2027.05%2025%2029.1%2025%2032%2025%2034.95%2027.05%2036.95%2029.1%2039%2032%2039%2034.9%2039%2036.95%2036.95%2039%2034.9%2039%2032%2039%2029.1%2036.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_3_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.65%2025.65%20Q%2023%2028.3%2023%2032%2023%2035.75%2025.65%2038.4%2028.25%2041%2032%2041%2035.7%2041%2038.35%2038.4%2041%2035.75%2041%2032%2041%2028.3%2038.35%2025.65%2035.7%2023%2032%2023%2028.25%2023%2025.65%2025.65%20M%2035.55%2035.55%20Q%2034.05%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.1%2027%2032%2027%2029.95%2028.45%2028.45%2029.9%2027%2032%2027%2034.05%2027%2035.55%2028.45%2037%2029.95%2037%2032%2037%2034.1%2035.55%2035.55%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_4_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2059.95%2027.05%20Q%2057.9%2025%2055%2025%2052.1%2025%2050.05%2027.05%2048%2029.1%2048%2032%2048%2034.95%2050.05%2036.95%2052.1%2039%2055%2039%2057.9%2039%2059.95%2036.95%2062%2034.9%2062%2032%2062%2029.1%2059.95%2027.05%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_5_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2048.65%2025.65%20Q%2046%2028.3%2046%2032%2046%2035.75%2048.65%2038.4%2051.25%2041%2055%2041%2058.7%2041%2061.35%2038.4%2064%2035.75%2064%2032%2064%2028.3%2061.35%2025.65%2058.7%2023%2055%2023%2051.25%2023%2048.65%2025.65%20M%2051.45%2028.45%20Q%2052.9%2027%2055%2027%2057.05%2027%2058.55%2028.45%2060%2029.95%2060%2032%2060%2034.1%2058.55%2035.55%2057.05%2037%2055%2037%2052.9%2037%2051.45%2035.55%2050%2034.1%2050%2032%2050%2029.95%2051.45%2028.45%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_2_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_3_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_4_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%200,%20-1,%201,%200,%200,64)%20'%3e%3cuse%20xlink:href='%23Layer0_5_FILL'/%3e%3c/g%3e%3c/svg%3e`,L=(e,t)=>{if(typeof document>`u`)return t;for(let t of[document.body,document.documentElement]){if(!t)continue;let n=getComputedStyle(t).getPropertyValue(e).trim();if(n)return n}return t},rt=(e,t)=>{let n=L(e,`${t}`),r=Number(n);return Number.isFinite(r)?r:t},it=(e,t)=>L(e,t),at=()=>({collapseBg:`#ffffff`,collapseBorder:`#666666`,collapseText:`#666666`,divider:L(`--b3-node-divider`,`#666666`),dragSource:L(`--b3-drag-source`,`#ffa500`),dropChild:L(`--b3-drop-child`,`#ff4d4f`),focusColor:L(`--b3-node-focus-color`,`#ffab00`),focusOpacity:rt(`--b3-node-focus-opacity`,.45),grayBorder:L(`--b3-node-gray-border`,`#30363d`),grayFill:L(`--b3-node-gray-fill`,`#0d1117`),grayRail:L(`--b3-node-gray-rail`,`#30363d`),grayText:L(`--b3-node-gray-text`,`#666666`),highlightBg:L(`--b3-node-highlight-bg`,`#0d1117`),highlightText:L(`--b3-node-highlight-text`,`#ffffff`),idStroke:L(`--b3-node-id-stroke`,`#000000`),idText:L(`--b3-node-id-text`,`#ffffff`),nodeBg:L(`--b3-node-content-bg`,`#ffffff`),nodeText:L(`--b3-node-text`,`#111827`),overrideBar:L(`--b3-override-bar`,`#d39a21`),subtreeOutline:L(`--b3-subtree-outline`,`#a5b1be`)}),ot={Action:`#1769dd`,Composite:`#34d800`,Condition:`#f72585`,Decorator:`#b2eb35`,Error:`#ff0000`,Other:`#707070`},st={Action:Ve,Composite:He,Condition:Ue,Decorator:Ge,Error:qe,Other:Je},ct={0:Ye,1:Xe,2:Ze,3:Qe,4:$e,5:et,6:tt,7:nt},lt=e(we()),R=(e,t)=>JSON.stringify(e)===JSON.stringify(t),ut=e=>{if(e!=null)try{return lt.default.stringify(e)}catch{return String(e)}},dt=e=>typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):ut(e)??``,ft=class{constructor(e){this.data=[],this._indentCount=0,this._indent=e}get indentCount(){return this._indentCount}indent(){this._indentCount+=this._indent}unindent(){this._indentCount-=this._indent}padding(){this._indent>0&&this.data.push(` `.repeat(this._indentCount))}linefeed(){this._indent>0&&this.data.push(`
|
|
2
|
+
`)}writeLine(e){this.padding(),this.data.push(e),this.linefeed()}writeLines(e){for(let t of e.split(`
|
|
3
|
+
`))this.writeLine(t)}writeString(e){this.data.push(e)}toString(){return this.data.join(``)}},pt=e=>e.replaceAll(`\r
|
|
4
|
+
`,`
|
|
5
|
+
`).replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
|
|
6
|
+
`,`\\n`).replaceAll(` `,`\\t`).replaceAll(`\r`,`\\r`).replaceAll(`\b`,`\\b`).replaceAll(`\f`,`\\f`),mt=(e,t,n)=>{let r=e,i=Object.keys(r).filter(e=>!e.startsWith(`!`)&&(!n||!n[e])&&(!t||t(r[e]))),a=[],o=[];for(let e of i){let t=Number(e);!isNaN(t)&&isFinite(t)?a.push(e):o.push(e)}return a.sort((e,t)=>Number(e)-Number(t)||e.localeCompare(t)),o.sort((e,t)=>e.localeCompare(t)),[...a,...o]},ht=(e,t)=>e===(e|0)?e.toFixed(0):e.toFixed(t).replace(/\.?0+$/,``),gt=(e,t)=>{let n=[];t??={},t.indent=Math.max(t.indent??4,0),t.precision=t.precision??10;let r=new ft(t.indent),i={format:`json`,indent:t.indent,precision:t.precision,buffer:r,writeValue:a,writeArray:s,writeObject:o};function a(e){typeof e==`number`?r.writeString(ht(e,i.precision)):typeof e==`boolean`?r.writeString(e.toString()):e===null?r.writeString(`null`):e===void 0?r.writeString(`undefined`):typeof e==`string`?(r.writeString(`"`),r.writeString(pt(e)),r.writeString(`"`)):Array.isArray(e)?s(e):typeof e!=`object`||!e||e===void 0?a(e):Array.isArray(e)?s(e):o(e)}function o(e){if(n.length>256)throw Error(`json stringify stack overflow: ${n.join(`->`)}`);if(e[`!stringify`]){e[`!stringify`](e,i);return}let t=mt(e,e=>e!==void 0,e[`!ignore`]),o=i.indent>0?` `:``;r.writeString(`{`),r.linefeed(),r.indent();for(let i=0;i<t.length;i++){let s=t[i],c=e[s];n.push(s),r.padding(),r.writeString(`"${s}":${o}`),a(c),i<t.length-1&&r.writeString(`,`),r.linefeed(),n.pop()}r.unindent(),r.padding(),r.writeString(`}`)}function s(e){if(e[`!stringify`]){e[`!stringify`](e,i);return}r.writeString(`[`),r.linefeed(),r.indent();for(let t=0;t<e.length;t++){let n=e[t];r.padding(),a(n),t<e.length-1&&r.writeString(`,`),r.linefeed()}r.unindent(),r.padding(),r.writeString(`]`)}return a(e),r.toString()},_t=`12px`,vt=`13px`,yt=`sans-serif`,bt=e=>e>0?e*18:0,xt=(e,t)=>({highlightTop:e+18+1,nextSectionTop:e+bt(t),textTop:e+18}),St=null,Ct=new Map,wt=new Map,Tt=e=>({fontSize:e??vt,fontFamily:yt}),Et=(e,t)=>{let{fontSize:n,fontFamily:r}=Tt(t),i=`${e}-${n}-${r}`,a=Ct.get(i);if(a!==void 0)return a;if(St||=typeof document>`u`?null:document.createElement(`canvas`).getContext(`2d`),!St){let t=Number.parseFloat(n)||13;return e.length*t*.62}St.font=`${n} ${r}`,St.wordSpacing=`0px`,St.letterSpacing=`0px`;let o=St.measureText(e).width;return Ct.set(i,o),o},Dt=e=>e===`,`||e===`;`||e===` `||e===` `||e===`
|
|
7
|
+
`||e===`\r`||e===`)`||e===`]`||e===`}`||e===`,`||e===`;`||e===`、`,Ot=(e,t)=>{if(t>=e.length)return e.length;let n=Math.max(1,Math.floor(t*.55));for(let r=t;r>=n;--r)if(Dt(e[r-1]??``))return r;return t},kt=(e,t,n)=>{let r=`${e}-${t}-${n??``}`,i=wt.get(r);if(i)return i;let a=[],o=e;for(;o.length>0;){let e=0,r=o.length;for(;e<r;){let i=Math.floor((e+r+1)/2);Et(o.slice(0,i),n)<=t?e=i:r=i-1}if(e>0){let t=Ot(o,e),n=o.slice(0,t).trimEnd();a.push(n||o.slice(0,t)),o=o.slice(t).trimStart();continue}a.push(o.slice(0,1)),o=o.slice(1)}return wt.set(r,a),a},At=(e,t,n)=>{let r=kt(e,t,n);return r.length>1?`${r[0].slice(0,-1)}...`:r[0]??``},jt=(e,t,n)=>{let r=kt(e,t,n);return{str:r.join(`
|
|
8
|
+
`),line:r.length}},Mt=e=>e.argsText?jt(`${N.t(`regnode.args`)}${e.argsText}`,206,_t):{str:``,line:0},Nt=e=>{let t=e.inputs.map(e=>e.label).filter(Boolean);return t.length===0?{str:``,line:0}:jt(`${N.t(`regnode.input`)}${ut(t)??`[]`}`,206,_t)},Pt=e=>{let t=e.outputs.map(e=>e.label).filter(Boolean);return t.length===0?{str:``,line:0}:jt(`${N.t(`regnode.output`)}${ut(t)??`[]`}`,206,_t)},Ft=e=>{let t=52;e.subtreePath&&(t+=bt(1));let n=Mt(e);n.line>0&&(t+=bt(n.line));let r=Nt(e);r.line>0&&(t+=bt(r.line));let i=Pt(e);return i.line>0&&(t+=bt(i.line)),{width:260,height:Math.max(52,t)}},It=()=>{let e=at();return{dragsrc:{"drag-src":{visibility:`visible`}},dragup:{"drag-up":{visibility:`visible`}},dragdown:{"drag-down":{visibility:`visible`}},dragright:{"drag-right":{visibility:`visible`}},focused:{"focus-halo":{visibility:`visible`}},highlightargs:{"args-bg":{visibility:`visible`},"args-text":{fill:e.highlightText}},highlightinput:{"input-bg":{visibility:`visible`},"input-text":{fill:e.highlightText}},highlightoutput:{"output-bg":{visibility:`visible`},"output-text":{fill:e.highlightText}},highlightgray:{collapse:{opacity:.45},"desc-text":{fill:e.grayText},debug:{opacity:.45},disabled:{opacity:.45},icon:{opacity:.45},"id-text":{fill:e.grayText,stroke:e.idStroke},"input-text":{fill:e.grayText},"key-shape":{fill:e.grayFill,stroke:e.grayBorder},"name-bg":{fill:e.grayRail},"name-line":{stroke:e.divider},"name-text":{fill:e.grayText},"override-bar":{opacity:.45},"output-text":{fill:e.grayText},"path-text":{fill:e.grayText},status:{opacity:.45},"args-text":{fill:e.grayText}},selected:{"selection-halo":{visibility:`visible`}}}},Lt=`b3-tree-node`,Rt=28,zt=40,Bt=4,Vt=e=>Math.max(18,e*18-2),Ht=!1,Ut=class extends le{constructor(...e){super(...e),this.width=260,this.height=52,this.radius=Bt,this.accent=ot.Other,this.contentY=Rt,this.states=[],this.palette=at()}getKeyStyle(e){let t=super.getKeyStyle(e);return t&&(t.x=0,t.y=0),t}getHaloStyle(e){let t=super.getHaloStyle(e);return t&&(t.x=0,t.y=0),t}drawSelectionHalo(e){this.upsert(`selection-halo`,D,{x:-6,y:-6,width:this.width+12,height:this.height+12,lineWidth:6,radius:this.radius+6,stroke:this.accent,strokeOpacity:.28,fill:this.accent,fillOpacity:0,visibility:`hidden`},e)}drawFocusHalo(e){this.upsert(`focus-halo`,D,{x:-8,y:-8,width:this.width+16,height:this.height+16,lineWidth:4,radius:this.radius+8,stroke:this.palette.focusColor,strokeOpacity:this.palette.focusOpacity,fill:this.palette.focusColor,fillOpacity:0,visibility:`hidden`},e)}drawBackground(e,t){let n={...e,size:[this.width,this.height],lineWidth:2,radius:this.radius};this.applyStyle(`key-shape`,n),this.drawKeyShape(n,t)}drawNameBackground(e){this.upsert(`name-bg`,D,{width:zt,height:this.height,fill:this.accent,radius:[this.radius,0,0,this.radius]},e),this.upsert(`name-line`,ce,{d:[[`M`,46,23],[`L`,this.width-40,23]],stroke:this.palette.divider,lineWidth:1},e)}drawIdText(e){this.upsert(`id-text`,O,{fill:this.palette.idText,fontSize:20,lineHeight:20,lineWidth:2,stroke:this.palette.idStroke,text:this.node.renderedIdLabel,textAlign:`right`,textBaseline:`top`,x:-3,y:this.height/2-8},e)}drawTypeIcon(e){this.upsert(`icon`,he,{x:5,y:this.height/2-16,height:30,opacity:1,width:30,src:this.node.icon?.trim()||st[this.node.nodeStyleKind]},e)}drawStatusIcon(e){this.upsert(`status`,he,{x:this.width-18,y:3,height:20,opacity:1,width:20,src:ct[this.node.statusBits]??`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='64px'%20height='64px'%20viewBox='0%200%2064%2064'%3e%3cdefs%3e%3cg%20id='Layer0_0_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2038.4%2048.65%20Q%2035.7%2046%2032%2046%2028.35%2046%2025.6%2048.65%2023%2051.35%2023%2055%2023%2058.85%2025.6%2061.35%2028.25%2064%2032%2064%2035.75%2064%2038.4%2061.35%2041%2058.75%2041%2055%2041%2051.4%2038.4%2048.65%20M%2035.5%2058.6%20Q%2034.1%2060%2032%2060%2029.95%2060%2028.45%2058.6%2027%2057.15%2027%2055%2027%2052.9%2028.45%2051.45%2030%2050%2032%2050%2034.05%2050%2035.5%2051.45%2037%2052.95%2037%2055%2037%2057.1%2035.5%2058.6%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2025.6%2025.7%20Q%2023%2028.3%2023%2032%2023%2035.8%2025.6%2038.4%2028.3%2041%2032%2041%2035.75%2041%2038.4%2038.4%2041%2035.75%2041%2032%2041%2028.4%2038.4%2025.7%2035.7%2023%2032%2023%2028.3%2023%2025.6%2025.7%20M%2032%2027%20Q%2034.1%2027%2035.5%2028.5%2037%2030%2037%2032%2037%2034.15%2035.5%2035.55%2034.1%2037%2032%2037%2029.9%2037%2028.45%2035.55%2027%2034.15%2027%2032%2027%2029.95%2028.45%2028.5%2029.95%2027%2032%2027%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_2_MEMBER_0_MEMBER_0_MEMBER_0_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%2038.4%202.7%20Q%2035.7%200%2032%200%2028.3%200%2025.6%202.7%2023%205.3%2023%209%2023%2012.85%2025.6%2015.35%2028.25%2018%2032%2018%2035.75%2018%2038.4%2015.35%2041%2012.75%2041%209%2041%205.4%2038.4%202.7%20M%2035.5%205.5%20Q%2037%207%2037%209%2037%2011.15%2035.5%2012.55%2034.1%2014%2032%2014%2029.9%2014%2028.45%2012.55%2027%2011.15%2027%209%2027%206.95%2028.45%205.5%2029.95%204%2032%204%2034.1%204%2035.5%205.5%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_0_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_1_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%201,0)%20'%3e%3cuse%20xlink:href='%23Layer0_2_MEMBER_0_MEMBER_0_MEMBER_0_FILL'/%3e%3c/g%3e%3c/svg%3e`},e)}drawDebugIcon(e){this.upsert(`debug`,he,{x:this.width-30,y:4,height:16,opacity:1,width:16,src:We,visibility:this.node.debug?`visible`:`hidden`},e)}drawDisabledIcon(e){this.upsert(`disabled`,he,{x:this.width-30-(this.node.debug?18:0),y:4,height:16,opacity:1,width:16,src:Ke,visibility:this.node.disabled?`visible`:`hidden`},e)}drawOverrideBar(e){this.upsert(`override-bar`,D,{x:this.width-17,y:1,width:16,height:this.height-2,fill:this.palette.overrideBar,lineWidth:2,opacity:1,radius:[0,this.radius-1,this.radius-1,0],visibility:this.node.hasOverride?`visible`:`hidden`},e)}drawNameText(e){this.upsert(`name-text`,O,{fill:this.palette.nodeText,fontSize:14,fontWeight:`bolder`,text:this.node.title,textBaseline:`top`,x:46,y:P?3:2},e)}drawDescText(e){let t=this.node.subtitle?At(`${N.t(`regnode.mark`)}${this.node.subtitle}`,206,`12px`):``;this.upsert(`desc-text`,O,{fill:this.palette.nodeText,fontSize:12,fontWeight:`bolder`,lineHeight:18,text:t,textBaseline:`top`,x:46,y:this.contentY,visibility:t?`visible`:`hidden`},e)}drawArgsText(e){let{str:t,line:n}=Mt(this.node),r=xt(this.contentY,n);this.upsert(`args-bg`,D,{x:44,y:r.highlightTop,width:210,height:Vt(n),fill:this.palette.highlightBg,radius:this.radius,visibility:`hidden`},e),this.upsert(`args-text`,O,{fill:this.palette.nodeText,fontSize:12,fontWeight:`normal`,lineHeight:18,text:t,textBaseline:`top`,x:46,y:r.textTop,visibility:t?`visible`:`hidden`},e),this.contentY=r.nextSectionTop}drawInputText(e){let{str:t,line:n}=Nt(this.node),r=xt(this.contentY,n);this.upsert(`input-bg`,D,{fill:this.palette.highlightBg,height:Vt(n),radius:this.radius,visibility:`hidden`,width:210,x:44,y:r.highlightTop},e),this.upsert(`input-text`,O,{fill:this.palette.nodeText,fontSize:12,fontWeight:`normal`,lineHeight:18,text:t,textBaseline:`top`,x:46,y:r.textTop,visibility:t?`visible`:`hidden`},e),this.contentY=r.nextSectionTop}drawOutputText(e){let{str:t,line:n}=Pt(this.node),r=xt(this.contentY,n);this.upsert(`output-bg`,D,{fill:this.palette.highlightBg,height:Vt(n),radius:this.radius,visibility:`hidden`,width:210,x:44,y:r.highlightTop},e),this.upsert(`output-text`,O,{fill:this.palette.nodeText,fontSize:12,fontWeight:`normal`,lineHeight:18,text:t,textBaseline:`top`,x:46,y:r.textTop,visibility:t?`visible`:`hidden`},e),this.contentY=r.nextSectionTop}drawSubtreeText(e){let t=!!this.node.subtreePath&&this.id!==`1`,n=t?At(`${N.t(`regnode.subtree`)}${this.node.subtreePath}`,206,`12px`):``,r=xt(this.contentY,+!!n);this.upsert(`subtree`,D,{x:-10,y:-10,width:this.width+20,height:this.height+20,stroke:this.palette.subtreeOutline,lineWidth:3,lineDash:[10,5],radius:this.radius,visibility:t?`visible`:`hidden`},e),this.upsert(`path-text`,O,{fill:this.palette.nodeText,fontSize:12,lineHeight:18,text:n,textBaseline:`top`,x:46,y:r.textTop,visibility:n?`visible`:`hidden`},e),this.contentY=r.nextSectionTop}drawCollapseBadge(e,t){this.upsert(`collapse`,oe,{backgroundFill:this.palette.collapseBg,backgroundHeight:14,backgroundLineWidth:1,backgroundRadius:7,backgroundStroke:this.palette.collapseBorder,backgroundWidth:14,cursor:`pointer`,fill:this.palette.collapseText,fontSize:16,opacity:1,text:e.collapsed?`+`:`-`,textAlign:`center`,textBaseline:`middle`,visibility:this.node.childKeys.length>0?`visible`:`hidden`,x:this.width,y:this.height/2},t)}drawDragShapes(e){this.upsert(`drag-src`,D,{width:this.width,height:this.height,lineWidth:0,fillOpacity:.8,fill:this.palette.dragSource,radius:this.radius,visibility:`hidden`},e),this.upsert(`drag-up`,D,{width:this.width,height:this.height/2,lineWidth:2,stroke:this.palette.dropChild,strokeOpacity:.8,fill:this.palette.dropChild,fillOpacity:.8,radius:[this.radius,this.radius,0,0],visibility:`hidden`},e),this.upsert(`drag-down`,D,{y:this.height/2,width:this.width,height:this.height/2,lineWidth:2,stroke:this.palette.dropChild,strokeOpacity:.8,fill:this.palette.dropChild,fillOpacity:.8,radius:[0,0,this.radius,this.radius],visibility:`hidden`},e),this.upsert(`drag-right`,D,{x:this.width/2,width:this.width/2,height:this.height,lineWidth:2,stroke:this.palette.dropChild,strokeOpacity:.8,fill:this.palette.dropChild,fillOpacity:.8,radius:[0,this.radius,this.radius,0],visibility:`hidden`},e)}render(e,t){let n=this.context.model.getNodeLikeDatum(this.id).data;this.node=n.vm,this.palette=at(),this.width=n.width,this.height=n.height,this.accent=this.node.accentColor??ot[this.node.nodeStyleKind]??ot.Other,this.contentY=Rt,this.states=this.context.graph.getElementState(this.id),this.resetStyle(),!(!e||!t)&&(e.fill=this.palette.nodeBg,e.stroke=this.accent,this.drawSelectionHalo(t),this.drawFocusHalo(t),this.drawBackground(e,t),this.drawNameBackground(t),this.drawOverrideBar(t),this.drawNameText(t),this.drawTypeIcon(t),this.drawStatusIcon(t),this.drawDebugIcon(t),this.drawDisabledIcon(t),this.drawDescText(t),this.drawArgsText(t),this.drawInputText(t),this.drawOutputText(t),this.drawSubtreeText(t),this.drawDragShapes(t),this.drawCollapseBadge(e,t),this.drawIdText(t))}upsert(e,t,n,r,i){return this.applyStyle(e,n),super.upsert(e,t,n,r,i)}applyStyle(e,t){if(!t)return;let n=this.attributes[e]??{};for(let e in n)t[e]=n[e]}resetStyle(){let e=this.context.graph.getOptions().node?.state;if(!e)return;let t=new Set;Object.keys(e).forEach(n=>{for(let r in e[n])t.add(r)}),this.states.forEach(n=>{let r=e[n];if(r)for(let e in r)t.delete(e)});for(let e of t)this.attributes[e]=void 0}},Wt=()=>{Ht||=(pe(fe.NODE,Lt,Ut),!0)},Gt=e=>e,Kt=(e,t)=>{e.setNode(t)},qt=(e,t)=>{e.setEdge(t)},Jt=e=>{let t=e;return!!(t?.rendered&&!t?.destroyed)},Yt=e=>{let t=e;if(!t?.rendered||t.destroyed||!t.context?.viewport||!t.getPosition||!t.getZoom)return null;try{let[e,n]=t.getPosition(),r=t.getZoom();return[e,n,r].every(e=>Number.isFinite(e))?{zoom:r,x:e,y:n}:null}catch{return null}},Xt=e=>{let t=e.target?.id;return typeof t==`string`||typeof t==`number`?String(t):null},Zt=e=>{let t=e.canvas,n=t?.x,r=t?.y;return typeof n!=`number`||typeof r!=`number`||!Number.isFinite(n)||!Number.isFinite(r)?null:[n,r]},Qt=e=>{let t=e.data?.vm?.ref.displayId;return typeof t==`string`||typeof t==`number`?t:null},$t=e=>e,en=e=>{let t=e?.data;return!t||typeof t.width!=`number`||typeof t.height!=`number`||!t.vm?null:t},tn=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),nn=(e,t)=>e.structuralStableId===t.structuralStableId&&e.sourceStableId===t.sourceStableId&&e.sourceTreePath===t.sourceTreePath&&tn(e.subtreeStack,t.subtreeStack),rn=(e,t)=>e.some(e=>nn(e,t)),an=(e,t)=>t?e.filter(e=>t.nodes.some(t=>nn(t.ref,e))):[],on=(e,t)=>rn(e,t)?e.filter(e=>!nn(e,t)):[...e,t],sn=(e,t)=>e.nodes.find(e=>e.ref.instanceKey===t)??null,cn=(e,t)=>{let n=[],r=sn(e,t);for(;r?.parentKey;){let t=sn(e,r.parentKey);if(!t)break;n.push(t.ref),r=t}return n},ln=(e,t,n)=>{if(!t||e.length===0)return[...e];let r=cn(t,n);return r.length===0?[...e]:e.filter(e=>!r.some(t=>nn(e,t)))},un=(e,t)=>rn(t,e.ref)?[]:e.childKeys,dn=(e,t)=>{let n=e??null;for(;n;){if(n.className===t)return!0;n=n.parentElement??null}return!1},fn=(e,t)=>dn(e.originalTarget,t)||dn(e.target,t),pn=1,mn=(e,t,n)=>Math.min(n,Math.max(t,e)),hn=e=>{let t=e.deltaY===0?e.deltaX:e.deltaY;return!Number.isFinite(t)||t===0?null:1+mn(-t,-50,50)*pn/100},gn=e=>{let{event:t,isEnabled:n,getOrigin:r,zoomTo:i}=e;if(!n())return;let a=hn(t);a&&(t.preventDefault(),t.stopPropagation(),i(a,r()))},_n={zoom:1,x:0,y:0},vn=[{key:`right`,placement:`right`},{key:`left`,placement:`left`}],yn=()=>({type:Lt,style:{ports:vn},state:Gt(It())}),bn=()=>({type:`cubic-horizontal`,style:{lineWidth:2,stroke:it(`--b3-graph-edge`,`#A3B1BF`)}}),xn=e=>e.zoom===_n.zoom&&e.x===_n.x&&e.y===_n.y,Sn=e=>e===`before`?`dragup`:e===`after`?`dragdown`:e===`child`?`dragright`:null,Cn=e=>{let t=Qt(e),n=Number(t??e.id);return Number.isFinite(n)?n:2**53-1},wn=(e,t)=>{let n=Cn(e)-Cn(t);return n===0?String(e.id).localeCompare(String(t.id)):n},Tn=class{constructor(){this.container=null,this.handlers=null,this.graph=null,this.resizeObserver=null,this.resizeRestoreFrame=null,this.model=null,this.selection={selectedNodeKey:null},this.highlights={activeVariableNames:[],variableHits:{}},this.search={query:``,mode:`content`,caseSensitive:!1,focusOnly:!0,resultKeys:[],activeResultIndex:0},this.focusedNodeKey=null,this.viewport={..._n},this.dragIntent={sourceKey:null,targetKey:null,position:null},this.collapsedNodeRefs=[],this.suppressTransformSync=!1,this.handleGraphTransform=()=>{this.suppressTransformSync||!this.graph||this.syncViewportFromGraph()},this.applyWheelZoom=async(e,t)=>{!this.graph||!this.isGraphRendered()||(await this.graph.zoomTo(this.graph.getZoom()*e,!1,t),this.syncViewportFromGraph())},this.handleNativeWheel=e=>{gn({event:e,isEnabled:()=>!!(this.graph&&this.isGraphRendered()),getOrigin:()=>this.getWheelViewportOrigin(e),zoomTo:(e,t)=>this.applyWheelZoom(e,t)})},this.handleCanvasClick=()=>{this.handlers?.onCanvasSelected()},this.handleNodeContextMenu=e=>{let t=Xt(e);if(!t)return;let n=this.getNodeVM(t);n&&this.handlers?.onNodeSelected(n.ref,{via:`contextMenu`})},this.handleNodeClick=e=>{let t=Xt(e);if(!t)return;let n=this.getNodeVM(t);if(!n)return;if(fn(e,`collapse`)){this.handleCollapseToggle(n);return}let r=!1;if(fn(e,`input-text`)){let e=n.inputs.map(e=>e.variable).filter(e=>!!e);e.length>0&&(r=!0,this.handlers?.onVariableHotspotClicked(n.ref,{kind:`input`,variableNames:e}))}else if(fn(e,`output-text`)){let e=n.outputs.map(e=>e.variable).filter(e=>!!e);e.length>0&&(r=!0,this.handlers?.onVariableHotspotClicked(n.ref,{kind:`output`,variableNames:e}))}this.handlers?.onNodeSelected(n.ref,{via:`click`,clearVariableFocus:!r})},this.handleNodeDoubleClick=e=>{let t=Xt(e);if(!t)return;let n=this.getNodeVM(t);n&&this.handlers?.onNodeDoubleClicked(n.ref)},this.handleNodeDragStart=e=>{let t=Xt(e);if(!t)return;let n=this.getNodeVM(t);!n||n.subtreeNode||(this.dragIntent={sourceKey:t,targetKey:null,position:null},this.refreshNodeStates())},this.handleNodeDragEnd=()=>{this.clearDragIntent()},this.handleNodeDragEnter=e=>{if(!this.dragIntent.sourceKey)return;let t=Xt(e);!t||t===this.dragIntent.sourceKey||this.updateDragIntent(t,this.dragIntent.position)},this.handleNodeDragLeave=e=>{let t=Xt(e);!t||t===this.dragIntent.sourceKey||this.dragIntent.targetKey===t&&this.updateDragIntent(null,null)},this.handleNodeDrag=e=>{if(!this.graph||!this.dragIntent.sourceKey||!this.dragIntent.targetKey)return;let t=this.dragIntent.targetKey,n=en(this.graph.getNodeData(t));if(!n)return;let r=this.graph.getElementPosition(t),i=Zt(e);if(!r||!i)return;let a=i[0]-r[0],o=i[1]-r[1],s=a>n.width/2?`child`:o>n.height/2?`after`:`before`;this.updateDragIntent(t,s)},this.handleNodeDrop=async e=>{if(!this.dragIntent.sourceKey||!this.dragIntent.position)return;let t=this.dragIntent.targetKey??Xt(e),n=this.dragIntent.sourceKey,r=this.dragIntent.position;if(this.clearDragIntent(),!t||n===t)return;let i=this.getNodeVM(n),a=this.getNodeVM(t);!i||!a||await this.handlers?.onDropCommitted({source:i.ref,target:a.ref,position:r})}}syncThemeOptions(){this.graph&&(Kt(this.graph,yn()),qt(this.graph,bn()))}getWheelViewportOrigin(e){let t=this.container;if(!t)return;let n=t.getBoundingClientRect();return[e.clientX-n.left,e.clientY-n.top]}isGraphRendered(){return Jt(this.graph)}readViewportFromGraph(){return Yt(this.graph)}readViewportAnchorCandidate(e){if(!this.graph?.hasNode(e))return null;let t=this.getNodeVM(e);if(!t)return null;try{let n=this.graph.getElementPosition(e),r=this.graph.getViewportByCanvas(n),i=r[0],a=r[1];return!Number.isFinite(i)||!Number.isFinite(a)?null:{ref:t.ref,viewportPosition:[i,a]}}catch{return null}}readViewportAnchor(e,t){if(!e||!this.graph||!this.isGraphRendered())return null;let n=[],r=e;for(;r;){let e=this.readViewportAnchorCandidate(r);if(!e&&!t?.skipMissingCandidates)break;e&&n.push(e),r=this.getNodeVM(r)?.parentKey??null}return n.length>0?{candidates:n}:null}readViewportCenterAnchor(){if(!this.graph||!this.model||!this.isGraphRendered())return null;let e=this.container?.clientWidth??0,t=this.container?.clientHeight??0;if(e<=0||t<=0)return null;let n=[e/2,t/2],r=null;for(let e of this.model.nodes){let t=e.ref.instanceKey;if(this.graph.hasNode(t))try{let e=this.graph.getElementPosition(t),i=this.graph.getViewportByCanvas(e),a=Math.hypot(i[0]-n[0],i[1]-n[1]);(!r||a<r.distance)&&(r={nodeKey:t,distance:a})}catch{}}return r?this.readViewportAnchor(r.nodeKey):null}resolveViewportAnchorCandidate(e){for(let t of e.candidates){let e=this.model?.nodes.find(e=>nn(e.ref,t.ref));if(e?.ref.instanceKey&&this.graph?.hasNode(e.ref.instanceKey))return{candidate:t,nodeKey:e.ref.instanceKey}}return null}async applyAnchorViewportCompensation(e){let t=e?this.resolveViewportAnchorCandidate(e):null;if(!e||!t||!this.graph||!this.isGraphRendered()||!this.graph.hasNode(t.nodeKey))return;let n=0,r=0;try{let e=this.graph.getElementPosition(t.nodeKey),i=this.graph.getViewportByCanvas(e);n=t.candidate.viewportPosition[0]-i[0],r=t.candidate.viewportPosition[1]-i[1]}catch{return}if(!(Math.abs(n)<.01&&Math.abs(r)<.01)){this.suppressTransformSync=!0;try{await this.graph.translateBy([n,r],!1),this.syncViewportFromGraph()}finally{this.suppressTransformSync=!1}}}getNodeVM(e){return this.model?.nodes.find(t=>t.ref.instanceKey===e)??null}async handleCollapseToggle(e){let t=this.readViewportAnchor(e.ref.instanceKey);this.collapsedNodeRefs=on(this.collapsedNodeRefs,e.ref),await this.renderGraphData(t)}async ensureNodeVisible(e){if(!this.graph||!this.model||this.graph.hasNode(e))return;let t=ln(this.collapsedNodeRefs,this.model,e);if(t.length===this.collapsedNodeRefs.length)return;let n=this.readViewportAnchor(e,{skipMissingCandidates:!0});this.collapsedNodeRefs=t,await this.renderGraphData(n)}getNodeDatum(e){let t=Ft(e);return{vm:e,width:t.width,height:t.height}}getNodeStates(e){let t=[],n=e.ref.instanceKey,r=this.highlights.variableHits[n]??[],i=this.highlights.activeVariableNames.length>0&&r.length===0,a=this.search.focusOnly&&this.search.query.length>0&&!this.search.resultKeys.includes(n);if(this.selection.selectedNodeKey===n&&t.push(`selected`),this.focusedNodeKey===n&&t.push(`focused`),(i||a)&&t.push(`highlightgray`),r.includes(`args`)&&t.push(`highlightargs`),r.includes(`input`)&&t.push(`highlightinput`),r.includes(`output`)&&t.push(`highlightoutput`),this.dragIntent.sourceKey===n&&t.push(`dragsrc`),this.dragIntent.targetKey===n){let e=Sn(this.dragIntent.position);e&&t.push(e)}return t}refreshNodeStates(){if(!(!this.graph||!this.model||!this.isGraphRendered()))for(let e of this.model.nodes)this.graph.hasNode(e.ref.instanceKey)&&this.graph.setElementState(e.ref.instanceKey,this.getNodeStates(e))}buildTreeDatum(e){let t=this.getNodeVM(e);if(!t)return null;let n=this.getNodeDatum(t),r=rn(this.collapsedNodeRefs,t.ref),i=un(t,this.collapsedNodeRefs);return{id:e,nodeData:{id:t.ref.instanceKey,type:Lt,data:$t(n),style:{size:[n.width,n.height],cursor:`pointer`,collapsed:r,draggable:!t.subtreeNode,ports:vn},children:i,depth:t.depth},children:i.map(e=>this.buildTreeDatum(e)).filter(e=>!!e)}}buildGraphData(e){let t=this.buildTreeDatum(e.rootKey);return t?me(t,{getNodeData:e=>e.nodeData,getEdgeData:(e,t)=>({id:`${e.id}->${t.id}`,source:e.id,sourcePort:`right`,target:t.id,targetPort:`left`}),getChildren:e=>e.children??[]}):null}async rerenderWithStableViewport(e){if(this.graph){if(!e){await this.graph.render();return}this.suppressTransformSync=!0;try{this.isGraphRendered()||await this.graph.render(),await this.graph.zoomTo(1,!1),await this.graph.translateTo([0,0],!1),await this.graph.render(),await this.applyViewportSnapshot(e)}finally{this.suppressTransformSync=!1}}}async renderGraphData(e=null){if(!this.graph)return;if(this.cancelPendingResizeRestore(),!this.model||this.model.nodes.length===0){await this.graph.clear();return}let t=this.buildGraphData(this.model);if(!t){await this.graph.clear();return}let n={...this.viewport};await this.graph.clear(),this.graph.setData(t),await this.rerenderWithStableViewport(n),await this.applyAnchorViewportCompensation(e),xn(this.viewport)&&this.syncViewportFromGraph(),this.refreshNodeStates()}async applyViewportSnapshot(e){if(!this.graph||!this.isGraphRendered()){this.viewport={...e};return}await this.graph.zoomTo(e.zoom,!1),await this.graph.translateTo([e.x,e.y],!1),this.viewport={...e}}async applyViewport(e){if(this.graph){if(!this.isGraphRendered()){this.viewport={...e};return}this.suppressTransformSync=!0;try{await this.applyViewportSnapshot(e)}finally{this.suppressTransformSync=!1}}}scheduleResizeViewportRestore(e,t){this.cancelPendingResizeRestore(),this.resizeRestoreFrame=window.requestAnimationFrame(()=>{this.resizeRestoreFrame=null,(async()=>{await this.applyViewport(e),await this.applyAnchorViewportCompensation(t)})()})}cancelPendingResizeRestore(){this.resizeRestoreFrame!=null&&(window.cancelAnimationFrame(this.resizeRestoreFrame),this.resizeRestoreFrame=null)}syncViewportFromGraph(){let e=this.readViewportFromGraph();e&&(this.viewport=e)}updateDragIntent(e,t){this.dragIntent.targetKey===e&&this.dragIntent.position===t||(this.dragIntent={...this.dragIntent,targetKey:e,position:t},this.refreshNodeStates())}clearDragIntent(){let e=this.dragIntent.sourceKey!==null||this.dragIntent.targetKey!==null||this.dragIntent.position!==null;this.dragIntent={sourceKey:null,targetKey:null,position:null},e&&this.refreshNodeStates()}async mount(e,t){this.container=e,this.handlers=t,Wt();let n=new de({container:e,animation:!1,zoomRange:[.25,2],behaviors:[`drag-canvas`],node:yn(),edge:bn(),layout:{type:`compact-box`,direction:`LR`,sortBy:wn,getHeight:e=>Number(e.data?.height??52),getWidth:e=>Number(e.data?.width??260),getVGap:()=>10,getHGap:()=>30}});n.on(ue.CLICK,this.handleCanvasClick),n.on(k.CONTEXT_MENU,this.handleNodeContextMenu),n.on(k.CLICK,this.handleNodeClick),n.on(k.DBLCLICK,this.handleNodeDoubleClick),n.on(k.DRAG_START,this.handleNodeDragStart),n.on(k.DRAG_END,this.handleNodeDragEnd),n.on(k.DRAG_ENTER,this.handleNodeDragEnter),n.on(k.DRAG_LEAVE,this.handleNodeDragLeave),n.on(k.DRAG,this.handleNodeDrag),n.on(k.DROP,this.handleNodeDrop),n.on(se.AFTER_TRANSFORM,this.handleGraphTransform),e.addEventListener(`wheel`,this.handleNativeWheel,{passive:!1}),this.graph=n,this.resizeObserver=new ResizeObserver(e=>{let t=e[0];if(!t||!this.graph)return;let n={...this.viewport},r=this.readViewportCenterAnchor(),i=Math.max(1,Math.round(t.contentRect.width)),a=Math.max(1,Math.round(t.contentRect.height));this.graph.resize(i,a),this.viewport={...n},this.scheduleResizeViewportRestore(n,r)}),this.resizeObserver.observe(e),await this.renderGraphData()}unmount(){this.cancelPendingResizeRestore(),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.container?.removeEventListener(`wheel`,this.handleNativeWheel),this.graph?.destroy(),this.graph=null,this.container=null,this.handlers=null,this.clearDragIntent()}async render(e,t){let n=t?.anchorNodeKey?this.readViewportAnchor(t.anchorNodeKey,{skipMissingCandidates:!0})??this.readViewportCenterAnchor():this.readViewportCenterAnchor();this.model=e,this.collapsedNodeRefs=an(this.collapsedNodeRefs,e),this.clearDragIntent(),this.syncThemeOptions(),await this.renderGraphData(n)}pickNearestNodeAnchor(e,t){let n=this.readViewportAnchorCandidate(e);if(!n)return null;let r=null,i=new Set;for(let a of t){if(a===e||i.has(a))continue;i.add(a);let t=this.readViewportAnchorCandidate(a);if(!t)continue;let o=Math.hypot(t.viewportPosition[0]-n.viewportPosition[0],t.viewportPosition[1]-n.viewportPosition[1]);(!r||o<r.distance)&&(r={nodeKey:a,distance:o})}return r?.nodeKey??null}async applySelection(e){this.selection=e,this.refreshNodeStates()}async applyHighlights(e){this.highlights=e,this.refreshNodeStates()}async applySearch(e){this.search=e,(!e.query||e.resultKeys.length===0)&&(this.focusedNodeKey=null),this.refreshNodeStates()}async focusNode(e){this.focusedNodeKey=e,await this.ensureNodeVisible(e),this.refreshNodeStates(),this.graph?.hasNode(e)&&this.isGraphRendered()&&(await this.graph.focusElement(e,!1),this.syncViewportFromGraph())}async restoreViewport(e){this.viewport={...e},await this.applyViewport(e)}getViewport(){return{...this.viewport}}},En=()=>new Tn,Dn=e=>({success:!1,error:`Host request '${e}' timed out`}),On={readFile:{resultType:`readFileResult`,createTimeoutResponse:()=>({content:null}),resolveResult:e=>({content:e.content})},saveSubtree:{resultType:`saveSubtreeResult`,createTimeoutResponse:()=>Dn(`saveSubtree`),resolveResult:e=>({success:e.success,error:e.error})},saveSubtreeAs:{resultType:`saveSubtreeAsResult`,createTimeoutResponse:()=>({savedPath:null,error:`Host request 'saveSubtreeAs' timed out`}),resolveResult:(e,t)=>{let n=e.savedPath?t.parseWorkdirRelativeJsonPath(e.savedPath):null;return{savedPath:n,error:e.error??(e.savedPath&&!n?`Host returned an invalid saved subtree path`:void 0)}}},saveDocument:{resultType:`saveDocumentResult`,createTimeoutResponse:()=>Dn(`saveDocument`),resolveResult:e=>({success:e.success,error:e.error})},revertDocument:{resultType:`revertDocumentResult`,createTimeoutResponse:()=>Dn(`revertDocument`),resolveResult:e=>({success:e.success,error:e.error})},mutateDocument:{resultType:`mutateDocumentResult`,createTimeoutResponse:()=>Dn(`mutateDocument`),resolveResult:e=>({success:e.success,error:e.error})},validateNodeChecks:{resultType:`validateNodeChecksResult`,createTimeoutResponse:()=>({diagnostics:[],error:`Host request 'validateNodeChecks' timed out`}),resolveResult:e=>({diagnostics:e.diagnostics,error:e.error})}},kn=Object.fromEntries(Object.entries(On).map(([e,t])=>[t.resultType,e])),An=e=>On[e].createTimeoutResponse(),jn=e=>e.type in kn,Mn=(e,t)=>{let n=kn[e.type],r=On[n];return{requestId:e.requestId,type:n,value:r.resolveResult(e,t)}};function Nn(){return{log:console.log.bind(console),debug:console.debug.bind(console),info:console.info.bind(console),warn:console.warn.bind(console),error:console.error.bind(console)}}Nn();var Pn=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,Fn=/^[a-zA-Z]:[\\/]/,In=e=>e.replace(/\\/g,`/`),z=e=>{if(typeof e!=`string`)return null;let t=e.trim();if(!t||t.includes(`\0`)||t.startsWith(`/`)||t.startsWith(`\\`)||Fn.test(t)||Pn.test(t))return null;let n=In(t);for(;n.startsWith(`./`);)n=n.slice(2);return!n||n.startsWith(`/`)||n.endsWith(`/`)||n.split(`/`).some(e=>!e||e===`.`||e===`..`)||!n.toLowerCase().endsWith(`.json`)?null:n},Ln=e=>{let t=z(e);if(!t)throw Error(`Invalid workdir-relative JSON path: ${e}`);return t},Rn=e=>({path:Ln(e.path),vars:e.vars.map(e=>({name:e.name,desc:e.desc??``})),depends:[]}),zn=e=>({instanceKey:String(e.instanceKey??``),displayId:String(e.displayId??``),structuralStableId:String(e.structuralStableId??``),sourceStableId:String(e.sourceStableId??``),sourceTreePath:e.sourceTreePath===null||e.sourceTreePath===void 0?null:Ln(String(e.sourceTreePath)),subtreeStack:Array.isArray(e.subtreeStack)?e.subtreeStack.map(e=>Ln(String(e))):[]}),Bn=e=>e.kind===`tree`?{kind:`tree`}:{kind:`node`,ref:zn(e.ref)},Vn=e=>({content:e.content,documentSession:e.documentSession,selection:Bn(e.selection),syncKind:e.syncKind}),Hn=e=>{let t={checkExpr:e.checkExpr,subtreeEditable:e.subtreeEditable,language:e.language,theme:e.theme,inspectorMode:e.inspectorMode,nodeColors:e.nodeColors};return{filePath:e.filePath,workdir:e.workdir,content:e.content,nodeDefs:e.nodeDefs,allFiles:(e.allFiles??[]).map(Ln),settings:t,documentSession:e.documentSession,selection:Bn(e.selection)}},Un=e=>{let t={};for(let n of e.usingVars)t[n.name]={name:n.name,desc:n.desc??``};return{usingVars:t,allFiles:e.allFiles?.map(Ln),importDecls:(e.importDecls??[]).map(Rn),subtreeDecls:(e.subtreeDecls??[]).map(Rn)}},Wn=acquireVsCodeApi(),Gn=new Map,Kn=3e4,qn=0,Jn=()=>{qn=(qn+1)%(2**53-1);let e=qn.toString(36),t=globalThis.crypto?.randomUUID?.();return t?`req-${e}-${t}`:`req-${Date.now().toString(36)}-${e}`},Yn=e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.stack??e.message;try{if(e&&typeof e==`object`)return JSON.stringify(e)}catch{}return String(e)},Xn=e=>e instanceof Error?e.stack??e.message:Yn(e),B=e=>{Wn.postMessage(e)},Zn=(e,t,n=Jn(),r=Kn)=>{let i=window.setTimeout(()=>{let t=Gn.get(n);t?.type===e&&(Gn.delete(n),t.resolve(An(e)))},r);return Gn.set(n,{type:e,timeout:i,resolve:t}),n},Qn=(e,t,n)=>{let r=Gn.get(e);if(r?.type!==t)return!1;let i=r;return Gn.delete(e),window.clearTimeout(i.timeout),i.resolve(n),!0},$n=()=>{for(let[e,t]of Gn)Gn.delete(e),window.clearTimeout(t.timeout),t.resolve(An(t.type))};Nn(),(()=>{let e=e=>(...t)=>{B({type:`webviewLog`,level:e,message:t.map(Yn).join(` `)})};return{log:e(`log`),info:e(`info`),warn:e(`warn`),error:e(`error`),debug:e(`debug`)}})();var er={parseWorkdirRelativeJsonPath:z},tr=()=>({connect(e){let t=(e,t)=>{B({type:`webviewLog`,level:`error`,message:`[webview:${e}] ${Xn(t)}`})},n=t=>{if(jn(t)){let e=Mn(t,er);Qn(e.requestId,e.type,e.value);return}switch(t.type){case`init`:e({type:`init`,payload:Hn(t)});return;case`documentSnapshotChanged`:e({type:`documentSnapshotChanged`,snapshot:Vn(t.snapshot)});return;case`relayFocusVariable`:e({type:`focusVariable`,names:t.names});return;case`relayFocusNode`:e({type:`focusNode`,target:zn(t.target)});return;case`varDeclLoaded`:e({type:`varDeclLoaded`,payload:Un(t)});return;case`themeChanged`:e({type:`themeChanged`,theme:t.theme});return;case`subtreeFileChanged`:e({type:`subtreeFileChanged`});return;case`inspectorContextCleared`:e({type:`inspectorContextCleared`});return;case`toggleInspectorNodeJson`:e({type:`toggleInspectorNodeJson`});return;case`settingLoaded`:e({type:`settingLoaded`,nodeDefs:t.nodeDefs,settings:t.settings});return;case`buildResult`:e({type:`buildResult`,success:t.success,message:t.message});return}},r=e=>{try{n(e.data)}catch(e){t(`message`,e)}},i=e=>{t(`error`,e.error??e.message)},a=e=>{t(`unhandledrejection`,e.reason)};return window.addEventListener(`message`,r),window.addEventListener(`error`,i),window.addEventListener(`unhandledrejection`,a),()=>{window.removeEventListener(`message`,r),window.removeEventListener(`error`,i),window.removeEventListener(`unhandledrejection`,a),$n()}},sendReady(){B({type:`ready`})},undo(){B({type:`undo`})},redo(){B({type:`redo`})},mutateDocument(e){return new Promise(t=>{B({type:`mutateDocument`,requestId:Zn(`mutateDocument`,t),mutation:e})})},selectTree(){B({type:`selectTree`})},selectNode(e){B({type:`selectNode`,target:e})},requestFocusVariable(e){B({type:`requestFocusVariable`,names:e})},sendRequestSetting(){B({type:`requestSetting`})},sendBuild(e){B({type:`build`,buildScriptDebug:e?.buildScriptDebug})},executeInspectorHostCommand(e){B({type:`runInspectorCommand`,command:e})},validateNodeChecks(e,t,n){return new Promise(r=>{B({type:`validateNodeChecks`,requestId:Zn(`validateNodeChecks`,r),content:e,treePath:t,nodes:n})})},saveDocument(){return new Promise(e=>{B({type:`saveDocument`,requestId:Zn(`saveDocument`,e)})})},revertDocument(){return new Promise(e=>{B({type:`revertDocument`,requestId:Zn(`revertDocument`,e)})})},readFile(e,t){return new Promise(n=>{B({type:`readFile`,requestId:Zn(`readFile`,n),path:e,openIfSubtree:t?.openIfSubtree,openSelection:t?.openSelection})})},saveSubtree(e,t){return new Promise(n=>{B({type:`saveSubtree`,requestId:Zn(`saveSubtree`,n),path:e,content:t})})},saveSubtreeAs(e,t){return new Promise(n=>{B({type:`saveSubtreeAs`,requestId:Zn(`saveSubtreeAs`,n),content:e,suggestedBaseName:t})})},log(e,t){B({type:`webviewLog`,level:e,message:t})}}),nr=`2.2.0`,rr=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],ir=e=>e.startsWith(`int`),ar=e=>e.startsWith(`float`),or=e=>e.startsWith(`string`),sr=e=>e.startsWith(`bool`),cr=e=>e.startsWith(`expr`),lr=e=>e.startsWith(`json`),ur=e=>e.options!==void 0,dr=e=>{let t=e.type.toLocaleLowerCase().toString();return t.startsWith(`action`)?`Action`:t.startsWith(`composite`)?`Composite`:t.startsWith(`decorator`)?`Decorator`:t.startsWith(`condition`)?`Condition`:`Other`},fr=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`,pr=ge(fr,10),mr=e=>{let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0},hr=e=>{let t=mr(e),n=``;for(let r=0;r<10;r+=1)t=Math.imul(t^t>>>16,2246822519)>>>0,t^=mr(`${e}:${r}`),n+=fr[t%62];return n},gr=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_r=(e,t)=>e&&gr(e,t.name)?e[t.name]:t.default,vr=(e,t)=>e?.args?.find(e=>e.name===t)??null,yr=e=>{let t=vr(e.nodeDef,e.argName);return!R(t?_r(e.currentArgs,t):e.currentArgs?.[e.argName],t?_r(e.originalArgs,t):e.originalArgs?.[e.argName])},br=(e,t,n)=>{let r=new Set;return Object.keys(e??{}).forEach(e=>r.add(e)),Object.keys(t??{}).forEach(e=>r.add(e)),n?.args?.forEach(e=>r.add(e.name)),[...r]},xr=(e,t,n)=>(e.desc??``)!==(t.desc??``)||!R(e.input??[],t.input??[])||!R(e.output??[],t.output??[])||!!e.debug!=!!t.debug||!!e.disabled!=!!t.disabled?!0:br(e.args,t.args,n).some(r=>yr({argName:r,currentArgs:e.args,originalArgs:t.args,nodeDef:n})),Sr=e=>new Map(e.map(e=>[e.name,e])),Cr=e=>{let t=new Set;for(let n of e)for(let e of n.group??[])t.add(e);return Array.from(t).sort()},V=(e,t)=>t?e.get(t)??null:null,wr=e=>e.replace(/\.\.\.$/,``).replace(/\?/g,``),H=(e,t,n)=>{let r=e??``,i=r.includes(`?`),a=r.endsWith(`...`)&&(t&&n!==void 0?n===t.length-1:!0);return{raw:r,label:wr(r),required:!i,variadic:a}},Tr=e=>e.type.match(/^\w+/)[0],U=e=>e.type.includes(`[]`),W=e=>e.type.includes(`?`),Er=e=>{let t=e.options;if(Array.isArray(t))return t},Dr=(e,t)=>{if(!ur(e))return;let n=Er(e);if(!n?.length)return;let r=n.find(e=>!e.match);return r?r.source:n.find(e=>Object.entries(e.match).every(([e,n])=>{let r=n,i=t[e];return Array.isArray(r)&&r.includes(i)}))?.source},Or=(e,t,n)=>{let r=t;U(e)&&Array.isArray(r)&&r.length===0&&(r=void 0),r=r===void 0?``:r;let i=n??``;return r!==``&&i===``||r===``&&i!==``},kr=null;function Ar(){if(!kr)throw Error(`[b3fs] Node fs not set. Extension build must call setFs(require('fs')) first.`);return kr}var jr=e=>e.replace(/\\/g,`/`),Mr=e=>{let t=jr(e),n=/^([A-Za-z]:)(?:\/|$)/.exec(t),r=n?`${n[1]}/`:t.startsWith(`/`)?`/`:``,i=r?t.slice(r.length):t;return{root:r,absolute:!!r,parts:i.split(`/`).filter(e=>e.length>0)}},Nr=(e,t)=>{let n=[];for(let r of e)if(r!==`.`){if(r===`..`){n.length&&n[n.length-1]!==`..`?n.pop():t||n.push(r);continue}n.push(r)}return n},Pr=(e,t,n=`.`)=>e?e+t.join(`/`):t.join(`/`)||n,G=e=>{let t=Mr(e),n=Nr(t.parts,t.absolute);return Pr(t.root,n)},Fr=e=>G(e),Ir=e=>Mr(e).absolute,Lr=e=>{let t=Mr(G(e)),n=Nr(t.parts,t.absolute);return n.pop(),Pr(t.root,n,`.`)},Rr=(e,t)=>{let n=G(e).replace(/\/+$/,``),r=n.slice(n.lastIndexOf(`/`)+1);return t&&r.endsWith(t)?r.slice(0,-t.length):r},zr=e=>{let t=Rr(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n)},Br=e=>Rr(e,zr(e)),Vr=(...e)=>G(e.filter(e=>e.length>0).join(`/`)),Hr={basename:Rr,basenameWithoutExt:Br,dirname:Lr,extname:zr,isAbsolute:Ir,join:Vr,lsdir:(e,t)=>Ar().readdirSync(e,{encoding:`utf8`,recursive:t}).map(t=>Fr(Vr(e,t))).sort(),normalize:G,posixPath:Fr,relative:(e,t)=>{let n=Mr(G(e)),r=Mr(G(t));if(n.root.toLowerCase()!==r.root.toLowerCase())return G(t);let i=Nr(n.parts,n.absolute),a=Nr(r.parts,r.absolute),o=0;for(;o<i.length&&i[o]===a[o];)o+=1;let s=i.slice(o).map(()=>`..`),c=a.slice(o);return[...s,...c].join(`/`)||``},resolve:(...e)=>{let t=``;for(let n of e)n&&(t=Ir(n)?n:Vr(t,n));return G(t)}},Ur=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Wr=(e,t)=>{if(!Ur(e))throw Error(`${t} must be an object`);return e},Gr=e=>typeof e==`string`?e:void 0,Kr=(e,t)=>{if(typeof e!=`string`||!e.trim())throw Error(`${t} must be a non-empty string`);return e},qr=(e,t)=>{if(e===void 0)return[];if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{if(typeof e!=`string`)throw Error(`${t}[${n}] must be a string`);return e})},Jr=(e,t)=>qr(e,t).map((e,n)=>{let r=z(e);if(!r)throw Error(`${t}[${n}] must be a workdir-relative .json path`);return r}),Yr=(e,t)=>{if(e===void 0)return[];if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=Wr(e,`${t}[${n}]`);return{name:Kr(r.name,`${t}[${n}].name`),desc:Gr(r.desc)??``}})},Xr=(e,t)=>{if(e===void 0)return{};let n=Wr(e,t),r={};for(let[e,i]of Object.entries(n)){let n=Wr(i,`${t}.${e}`),a=n.args;if(a!==void 0&&!Ur(a))throw Error(`${t}.${e}.args must be an object`);r[e]={desc:Gr(n.desc),input:n.input===void 0?void 0:qr(n.input,`${t}.${e}.input`),output:n.output===void 0?void 0:qr(n.output,`${t}.${e}.output`),args:a?{...a}:void 0,debug:typeof n.debug==`boolean`?n.debug:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0}}return r},Zr=e=>{if(e===void 0)return{};let t=Wr(e,`tree file custom`),n={};for(let[e,r]of Object.entries(t)){if(typeof r==`string`||typeof r==`number`||typeof r==`boolean`){n[e]=r;continue}if(r&&typeof r==`object`){n[e]=r;continue}throw Error(`tree file custom.${e} must be a string, number, boolean, or object`)}return n},Qr=(e,t,n)=>typeof e.uuid==`string`&&e.uuid?e.uuid:typeof e.$id==`string`&&e.$id?e.$id:n?hr(`${n}:${t}`):pr(),$r=(e,t,n)=>{let r=Wr(e,t),i=r.args;if(i!==void 0&&!Ur(i))throw Error(`${t}.args must be an object`);let a=r.children;if(a!==void 0&&!Array.isArray(a))throw Error(`${t}.children must be an array`);return{uuid:Qr(r,t,n),id:r.id===void 0?``:String(r.id),name:Kr(r.name,`${t}.name`),desc:Gr(r.desc),args:i?{...i}:void 0,input:(()=>{let e=qr(r.input,`${t}.input`);return e.length>0?e:void 0})(),output:(()=>{let e=qr(r.output,`${t}.output`);return e.length>0?e:void 0})(),children:a?.map((e,r)=>$r(e,`${t}.children[${r}]`,n))??[],debug:typeof r.debug==`boolean`?r.debug:void 0,disabled:typeof r.disabled==`boolean`?r.disabled:void 0,path:(()=>{if(r.path===void 0||r.path===``)return;let e=z(r.path);if(!e)throw Error(`${t}.path must be a workdir-relative .json path`);return e})(),$status:typeof r.$status==`number`&&Number.isFinite(r.$status)?r.$status:void 0}},ei=(e,t)=>{let n=Wr(e,`tree file`),r=n.overrides===void 0?n.$override:n.overrides,i=n.variables,a=i===void 0?void 0:Wr(i,`tree file variables`);return{version:Kr(n.version,`tree file version`),name:Kr(n.name,`tree file name`),prefix:Gr(n.prefix)??``,desc:Gr(n.desc),export:typeof n.export==`boolean`?n.export:void 0,group:qr(n.group,`tree file group`),variables:{imports:Jr(a?.imports??n.import,a?`tree file variables.imports`:`tree file import`),locals:Yr(a?.locals??n.vars,a?`tree file variables.locals`:`tree file vars`)},custom:Zr(n.custom),root:$r(n.root,`tree file root`,t?.stableIdSeed),overrides:Xr(r,`tree file overrides`)}},ti=(e,t)=>ei(JSON.parse(e),t),ni=(e,t,n=0)=>{let r=(e,n)=>{if(t(e,n)===!1)return!1;if(e.children){for(let t of e.children)if(r(t,n+1)===!1)return!1}};r(e,n)},ri=e=>!!e.path&&e.id!==`1`,ii=(e,t=!0)=>{let n=e,r={uuid:n.uuid||n.$id||pr(),id:e.id,name:e.name,desc:e.desc?.trim()||void 0,path:e.path,debug:e.debug||void 0,disabled:e.disabled||void 0};if(e.input){r.input=[];for(let t of e.input)r.input.push(t??``)}if(e.output){r.output=[];for(let t of e.output)r.output.push(t??``)}if(e.args){let t={};for(let n in e.args){let r=e.args[n];r!==void 0&&(t[n]=r)}Object.keys(t).length>0&&(r.args=t)}if(e.children?.length&&!ri(e)&&t){r.children=[];for(let t of e.children)r.children.push(ii(t))}return r},ai=e=>{if(!e||typeof e!=`object`)return!1;let t=e;if(!t.uuid||t.$id)return!0;if(t.children){for(let e of t.children)if(ai(e))return!0}return!1},oi=e=>JSON.parse(JSON.stringify(e)),si=e=>oi(e),ci=(e,t)=>({version:nr,name:t,desc:e.desc?.trim()||void 0,prefix:e.prefix??``,export:e.export,group:e.group??[],variables:{imports:e.variables?.imports??[],locals:e.variables?.locals??[]},root:ii(e.root),custom:e.custom??{},overrides:e.overrides??{}}),li=(e,t)=>gt(ci(e,t),{indent:2}),ui=(e,t)=>ti(e,t),di=(e,t)=>{let n=ui(e,t?{stableIdSeed:t.replace(/\\/g,`/`)}:void 0);return t&&(n.name=Hr.basenameWithoutExt(t)),ci(n,n.name)},fi=e=>li(e,e.name),pi=(e,t,n=null,r=0)=>{t(e,n,r);for(let n of e.children??[])pi(n,t,e,r+1)},mi=(e,t)=>{let n=null;return pi(e,e=>{!n&&e.uuid===t&&(n=e)}),n},hi=e=>{let t=new Set;return pi(e,e=>{e.path&&t.add(e.path)}),Array.from(t)},gi=e=>{try{let t=JSON.parse(e);return ai(t.root)||t.$override!==void 0||t.import!==void 0||t.vars!==void 0}catch{return!1}},_i=async e=>{let t={},n=new Set,r=async i=>{let a=z(i);if(!a||n.has(a))return;n.add(a);let o=await e.readContent(a);if(o===null){t[a]=null;return}try{let n=gi(o),i=di(o,a);t[a]=i,await e.onTreeLoaded?.({path:a,tree:i,content:o,needsWriteback:n});for(let e of hi(i.root))await r(e)}catch{t[a]={error:`invalid-subtree`}}};for(let t of hi(e.root))await r(t);return t},vi=(e,t)=>{let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<3;e+=1){let t=n[e]??0,i=r[e]??0;if(t>i)return 1;if(t<i)return-1}return 0},yi=e=>{e.setState(e=>({...e,alertReload:!1,pendingExternalContent:null}))},bi=(e,t)=>{e.setState(e=>({...e,dirty:t.dirty,alertReload:t.alertReload,pendingExternalContent:t.pendingExternalContent}))},xi=()=>({persistedTree:null,dirty:!1,alertReload:!1,pendingExternalContent:null}),Si=()=>ve(()=>xi()),Ci=e=>!!(e&&Object.keys(e).length>0),wi=e=>/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(e)&&!rr.includes(e),Ti=e=>e.split(/[^a-zA-Z0-9_.'"]/).map(e=>e.split(`.`)[0]).filter(e=>wi(e)),Ei=(e,t,n)=>{if(!e)return null;if(!wi(e))return{code:`invalid-variable-name`,field:n,variable:e};let r=Ci(t)?t:null;return r&&!r[e]?{code:`undefined-variable`,field:n,variable:e}:null},Di=(e,t,n)=>{let r=Ci(t)?t:null;for(let t of e)if(t){for(let e of Ti(t))if(r&&!r[e])return{code:`undefined-variable`,field:`args`,variable:e};if(n)try{if(!new be(t).dryRun())return{code:`invalid-expression`,field:`args`,expression:t}}catch{return{code:`invalid-expression`,field:`args`,expression:t}}}return null},Oi=e=>e.desc||e.name,ki=(e,t,n)=>{let r=H(e?.[n]??``,e,n);return!r.variadic&&r.required&&!(t?.[n]??``)},Ai=(e,t)=>W(e)?!1:sr(e.type)?t==null||t===`__unset__`:U(e)?!Array.isArray(t)||t.length===0:t==null?!0:typeof t==`string`?t.trim().length===0:!1,ji=(e,t,n)=>({code:`invalid-arg-value`,argName:e.name,label:Oi(e),expected:t,value:n}),Mi=e=>({code:`unknown-arg-type`,argName:e.name,label:Oi(e),type:e.type}),Ni=(e,t)=>({code:`invalid-arg-option`,argName:e.name,label:Oi(e),value:t}),Pi=(e,t)=>{if(!W(e))return!1;if(t===void 0)return!0;let n=Tr(e);return t===``&&(or(n)||cr(n)||lr(n))},Fi=(e,t,n,r)=>{if(Pi(e,t))return[];let i=[],a=Tr(e);if(ar(a)?typeof t==`number`&&Number.isFinite(t)||i.push(ji(e,`number`,t)):ir(a)?Number.isInteger(t)||i.push(ji(e,`integer`,t)):or(a)?typeof t!=`string`&&i.push(ji(e,`string`,t)):cr(a)?typeof t!=`string`&&i.push(ji(e,`expr`,t)):lr(a)?(t===void 0||t===``)&&i.push(ji(e,`json`,t)):sr(a)?typeof t!=`boolean`&&i.push(ji(e,`boolean`,t)):i.push(Mi(e)),r&&ur(e)){let r=!!Dr(e,n)?.find(e=>e.value===t),a=t===void 0&&W(e);r||a||i.push(Ni(e,t))}return i},Ii=e=>{let{arg:t,value:n,args:r={},validateOptions:i=!0}=e;return Ai(t,n)?[{code:`required-arg`,argName:t.name,label:Oi(t)}]:U(t)?n===void 0||Array.isArray(n)&&n.length===0?[]:Array.isArray(n)?n.flatMap(e=>Fi(t,e,r,i)):[ji(t,`array`,n)]:Fi(t,n,r,i)},Li=e=>{let{node:t,def:n,usingVars:r,usingGroups:i,checkExpr:a}=e,o=[];if(t.resolutionError)return o;if(!n)return o.push({code:`missing-node-def`,nodeName:t.name}),o;if(n.group){let e=Array.isArray(n.group)?n.group:[n.group];e.some(e=>i?.[e])||o.push({code:`group-not-enabled`,nodeName:t.name,groups:e})}for(let e of t.input??[]){let t=Ei(e,r,`input`);t&&o.push(t)}for(let e of t.output??[]){let t=Ei(e,r,`output`);t&&o.push(t)}for(let e of n.args??[]){let n=t.args?.[e.name];if(Ai(e,n)){o.push({code:`required-arg`,argName:e.name,label:Oi(e)});continue}if(!cr(e.type)||!n)continue;let i=Di((Array.isArray(n)?n:[n]).filter(e=>typeof e==`string`),r,a);i&&o.push(i)}if(n.children!==void 0&&n.children!==-1){let e=t.children?.filter(e=>!e.disabled).length??0;e!==n.children&&o.push({code:`invalid-children`,expected:n.children,actual:e})}for(let e=0;e<(n.input?.length??0);e+=1){let r=H(n.input?.[e]??``,n.input,e);if(r.variadic)break;ki(n.input,t.input,e)&&o.push({code:`required-input`,index:e,label:r.label})}for(let e=0;e<(n.output?.length??0);e+=1){let r=H(n.output?.[e]??``,n.output,e);if(r.variadic)break;ki(n.output,t.output,e)&&o.push({code:`required-output`,index:e,label:r.label})}return o},Ri={Composite:`#34d800`,Decorator:`#b2eb35`,Condition:`#f72585`,Action:`#1769dd`,Other:`#707070`,Error:`#ff0000`},zi=e=>dt(e),Bi=(e,t,n)=>n?e.includes(t):e.toLowerCase().includes(t.toLowerCase()),Vi=(e,t)=>e?.trim()||t?.trim()||void 0,Hi=(e,t)=>!e.subtreeNode||!e.subtreeOriginal?!1:xr(e,e.subtreeOriginal,t),Ui=(e,t,n,r)=>{let i=Sr(t),a=[],o=[];for(let t of e.nodeOrder){let s=e.nodesByInstanceKey[t],c=V(i,s.name),l=r?.nodeCheckDiagnostics?.[s.ref.instanceKey]??[],u=Li({node:s,def:c,usingVars:r?.usingVars??null,usingGroups:r?.usingGroups??null,checkExpr:r?.checkExpr??!1}).length>0||l.length>0,d=s.resolutionError||u?`Error`:c?dr(c):`Error`,f=d===`Error`?n?.[d]??Ri[d]:c?.color?.trim()||n?.[d]||Ri[d];a.push({ref:s.ref,parentKey:s.parentKey,childKeys:s.childKeys,depth:s.depth,renderedIdLabel:s.renderedIdLabel,title:s.name,subtitle:Vi(s.desc,c?.desc),typeLabel:c?.type??(s.resolutionError?N.t(`node.resolutionError`):N.t(`node.unknownType`)),icon:c?.icon,nodeStyleKind:d,accentColor:f,debug:!!s.debug,disabled:!!s.disabled,hasOverride:Hi(s,c),subtreeNode:s.subtreeNode,subtreePath:s.path,statusBits:(s.$status??0)&7,inputs:(s.input??[]).map(e=>({label:e,variable:e||void 0})),outputs:(s.output??[]).map(e=>({label:e,variable:e||void 0})),argsText:s.args&&Object.keys(s.args).length>0?ut(s.args):void 0});for(let e of s.childKeys)o.push({key:`${t}->${e}`,sourceKey:t,targetKey:e})}return{rootKey:e.rootKey,nodes:a,edges:o}},Wi=(e,t,n)=>{let r=Sr(t),i={};if(n.length===0)return{activeVariableNames:[],variableHits:{}};for(let t of e.nodeOrder){let a=e.nodesByInstanceKey[t],o=[];(a.input??[]).some(e=>e&&n.includes(e))&&o.push(`input`),(a.output??[]).some(e=>e&&n.includes(e))&&o.push(`output`);let s=V(r,a.name);for(let e of s?.args??[]){if(!cr(e.type))continue;let t=a.args?.[e.name];if((Array.isArray(t)?t:[t]).some(e=>typeof e==`string`&&Ti(e).some(e=>n.includes(e)))){o.push(`args`);break}}o.length>0&&(i[t]=o)}return{activeVariableNames:[...n],variableHits:i}},Gi=(e,t,n)=>{if(!n||!t.query)return{...t,resultKeys:[],activeResultIndex:0};let r=[];for(let n of e.nodeOrder){let i=e.nodesByInstanceKey[n],a=!1;a=t.mode===`id`?i.ref.displayId===t.query:[i.name,i.desc??``,i.path??``,...i.input??[],...i.output??[],...Object.values(i.args??{}).flatMap(e=>Array.isArray(e)?e.map(zi):[zi(e)])].some(e=>Bi(e,t.query,t.caseSensitive)),a&&r.push(n)}return{...t,resultKeys:r,activeResultIndex:r.length===0?0:Math.min(t.activeResultIndex,r.length-1)}},Ki=e=>e.graph?Gi(e.graph,{query:e.query,mode:e.mode,caseSensitive:e.caseSensitive,focusOnly:e.focusOnly,resultKeys:[],activeResultIndex:e.activeResultIndex},e.tree):{query:e.query,mode:e.mode,caseSensitive:e.caseSensitive,focusOnly:e.focusOnly,resultKeys:[],activeResultIndex:0},K=function(e){return e[e.SUCCESS=2]=`SUCCESS`,e[e.FAILURE=1]=`FAILURE`,e[e.RUNNING=0]=`RUNNING`,e[e.SUCCESS_ZERO=5]=`SUCCESS_ZERO`,e[e.FAILURE_ZERO=4]=`FAILURE_ZERO`,e}(K||{}),qi=(e,t)=>{t&&(t.desc!==void 0&&(e.desc=t.desc),t.input!==void 0&&(e.input=t.input),t.output!==void 0&&(e.output=t.output),t.args!==void 0&&(e.args={...e.args??{},...t.args}),t.debug!==void 0&&(e.debug=t.debug),t.disabled!==void 0&&(e.disabled=t.disabled))},Ji=(e,t)=>{if(t?.args?.length){e.args||={};for(let n of t.args)e.args[n.name]===void 0&&n.default!==void 0&&(e.args[n.name]=n.default)}},Yi=(e,t,n)=>{let r=si(e);for(let n of[...t].reverse())qi(r,n.overrides[e.uuid]);let i=si(r);return qi(r,n[e.uuid]),{value:r,subtreeOriginal:i}},Xi=e=>!!(e&&typeof e==`object`&&`error`in e),Zi=(e,t)=>{let n=0;return t.get(e)?.status?.forEach(e=>{switch(e){case`success`:n|=1<<K.SUCCESS;break;case`failure`:n|=1<<K.FAILURE;break;case`running`:n|=1<<K.RUNNING;break}}),n},Qi=(e,t)=>{let n=t>>K.SUCCESS&1,r=t>>K.FAILURE&1;return n===0&&(e|=1<<K.SUCCESS_ZERO),r===0&&(e|=1<<K.FAILURE_ZERO),e|=t,e},$i=(e,t,n,r)=>{let i=r.get(t);if(!i?.status?.length)return e|n;let a=n>>K.SUCCESS&1,o=n>>K.FAILURE&1,s=n>>K.RUNNING&1,c=n>>K.SUCCESS_ZERO&1,l=n>>K.FAILURE_ZERO&1;return i.status.forEach(t=>{switch(t){case`!success`:e|=o<<K.SUCCESS;break;case`!failure`:e|=a<<K.FAILURE;break;case`|success`:e|=a<<K.SUCCESS;break;case`|failure`:e|=o<<K.FAILURE;break;case`|running`:e|=s<<K.RUNNING;break;case`&success`:c?e&=~(1<<K.SUCCESS):e|=a<<K.SUCCESS;break;case`&failure`:l?e&=~(1<<K.FAILURE):e|=o<<K.FAILURE;break}}),e},ea=(e,t,n)=>{let r=Zi(e,n);if(t.length===0)return r;let i=0;for(let e of t)e!==void 0&&(i=Qi(i,e));return $i(r,e,i,n)},ta=e=>{let t=Sr(e.nodeDefs),n=(r,i)=>{let a=r.path?z(r.path):void 0,o=a?i.subtreeStack.includes(a):!1,s=a&&!o?e.subtreeSources[a]:void 0,c=s&&!Xi(s)?s:null,l=!!(a&&c),u=r,d,f=i.sourceTreePath,p,m=i.overrideSourceChain;if(r.path&&!a)d=`invalid-subtree`;else if(a&&o)d=`cyclic-subtree`;else if(Xi(s))d=`invalid-subtree`;else if(a&&!c)d=`missing-subtree`;else if(l&&c){let t=a;if(!t)throw Error(`unreachable subtree path state`);u=si(c.root),u.path=t,f=t,m=[...i.overrideSourceChain,c];let n=Yi(u,m,e.persistedTree.overrides);u=n.value,p=n.subtreeOriginal}else if(i.sourceTreePath){f=i.sourceTreePath;let t=Yi(u,i.overrideSourceChain,e.persistedTree.overrides);u=t.value,p=t.subtreeOriginal}else u=si(u);let h=t.get(u.name)??null;Ji(u,h),p&&Ji(p,h);let g=l&&c?{subtreeStack:[...i.subtreeStack,a],overrideSourceChain:[...i.overrideSourceChain,c],sourceTreePath:a,insideExternalSubtree:!0}:i.sourceTreePath?{subtreeStack:[...i.subtreeStack],overrideSourceChain:m,sourceTreePath:i.sourceTreePath,insideExternalSubtree:!0}:{subtreeStack:[],overrideSourceChain:[],sourceTreePath:null,insideExternalSubtree:!1},_=(l&&c?c.root.children??[]:d||a&&!c?[]:u.children??[]).map(e=>n(e,g));return u.children=_.map(e=>e.data),u.$status=ea(u.name,_.filter(e=>!e.data.disabled).map(e=>e.data.$status),t),{data:u,children:_,structuralStableId:r.uuid,sourceStableId:u.uuid,sourceTreePath:f??null,subtreeStack:l?[...i.subtreeStack,a]:[...i.subtreeStack],subtreeNode:i.insideExternalSubtree,subtreeEditable:!i.insideExternalSubtree||e.subtreeEditable,subtreeOriginal:p,resolutionError:d}};return n(e.persistedTree.root,{subtreeStack:[],overrideSourceChain:[],sourceTreePath:null,insideExternalSubtree:!1})},na=(e,t)=>{let n={},r=[],i={},a=1,o=(e,s,c)=>{let l=String(a);a+=1;let u=l,d=e.children.map(e=>o(e,u,c+1));return e.subtreeNode||(i[e.structuralStableId]=l),n[u]={ref:{instanceKey:u,displayId:l,structuralStableId:e.structuralStableId,sourceStableId:e.sourceStableId,sourceTreePath:e.sourceTreePath,subtreeStack:[...e.subtreeStack]},parentKey:s,childKeys:d,depth:c,renderedIdLabel:`${t}${l}`,name:e.data.name,desc:e.data.desc,args:e.data.args,input:e.data.input,output:e.data.output,children:e.data.children,debug:e.data.debug,disabled:e.data.disabled,path:e.data.path,$status:e.data.$status,subtreeNode:e.subtreeNode,subtreeEditable:e.subtreeEditable,subtreeOriginal:e.subtreeOriginal,resolutionError:e.resolutionError},r.push(u),u};return{graph:{rootKey:o(e,null,0),nodesByInstanceKey:n,nodeOrder:r},mainTreeDisplayIdsByStableId:i}},ra=e=>na(ta({persistedTree:e.persistedTree,subtreeSources:e.subtreeSources,nodeDefs:e.nodeDefs,subtreeEditable:e.subtreeEditable}),e.persistedTree.prefix??``),ia=()=>({open:!1,mode:`content`,query:``,caseSensitive:!1,focusOnly:!0,results:[],index:0}),aa=(e,t)=>{e.setState(e=>({...e,search:{...e.search,...t}}))},oa=e=>{e.setState(e=>({...e,search:ia()}))},sa=()=>({activeVariableNames:[],selectionVisualHint:null,search:ia()}),ca=()=>ve(()=>sa()),la=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),ua=e=>{if(e.length===0)return null;let t={};for(let n of e)t[n]=!0;return t},da=e=>{let t=null,n=0,r=null,i=null,a=t=>{e.appHooks.getMessage().error(t)},o=t=>{e.appHooks.getMessage().success(t)},s=t=>V(Sr(e.workspaceStore.getState().nodeDefs),t),c=t=>{e.selectionStore.setState(e=>({...e,...t(e)}))},l=t=>{e.graphUiStore.setState(e=>({...e,...t(e)}))},u=()=>{let t=e.workspaceStore.getState().filePath;return{selectedTree:t?{filePath:t}:null,selectedNodeKey:null,selectedNodeRef:null,selectedNodeSnapshot:null}},d=n=>{let r=e.documentStore.getState().persistedTree;if(!r||!t)return null;let i=t.nodesByInstanceKey[n];if(!i)return null;let a=i.ref.sourceTreePath===null&&!i.subtreeNode?mi(r.root,i.ref.structuralStableId):null,o=i.subtreeNode?D(i.args):a?.args?D(a.args):void 0;return{ref:i.ref,data:{uuid:i.ref.sourceStableId,id:i.ref.displayId,name:i.name,desc:i.desc,args:o,input:i.input,output:i.output,debug:i.debug,disabled:i.disabled,path:i.path},effectiveArgs:i.args?oi(i.args):void 0,prefix:r.prefix,activeChildCount:i.childKeys.reduce((e,n)=>{let r=t?.nodesByInstanceKey[n];return e+(r&&!r.disabled?1:0)},0),disabled:!i.subtreeEditable,subtreeNode:i.subtreeNode,subtreeEditable:i.subtreeEditable,subtreeOriginal:i.subtreeOriginal,resolutionError:i.resolutionError}},f=e=>{if(!t)return null;let n=t.nodesByInstanceKey[e];return n?{selectedTree:null,selectedNodeKey:n.ref.instanceKey,selectedNodeRef:n.ref,selectedNodeSnapshot:d(n.ref.instanceKey)}:null},p=e=>({selectedTree:null,selectedNodeKey:null,selectedNodeRef:e,selectedNodeSnapshot:null}),m=(e,t)=>e.sourceTreePath===t.sourceTreePath&&la(e.subtreeStack,t.subtreeStack),h=e=>{if(!t)return null;let n=t.nodesByInstanceKey[e.instanceKey];if(n&&n.ref.structuralStableId===e.structuralStableId&&n.ref.sourceStableId===e.sourceStableId&&m(n.ref,e))return n;let r=Object.values(t.nodesByInstanceKey);return r.find(t=>t.ref.structuralStableId===e.structuralStableId&&t.ref.sourceStableId===e.sourceStableId&&m(t.ref,e))||r.find(t=>t.ref.sourceStableId===e.sourceStableId&&m(t.ref,e))||r.find(t=>t.ref.structuralStableId===e.structuralStableId&&m(t.ref,e))||(e.sourceTreePath===null&&e.subtreeStack.length===0?r.find(t=>t.ref.structuralStableId===e.structuralStableId)??null:null)},g=e=>{let t=h(e);return t?f(t.ref.instanceKey)??{}:p(e)},_=()=>e.graphUiStore.getState().activeVariableNames.length===0?!1:(l(()=>({activeVariableNames:[]})),!0),v=()=>{c(()=>u())},y=()=>{l(e=>e.selectionVisualHint?{selectionVisualHint:null}:{})},b=()=>e.graphUiStore.getState().selectionVisualHint??{selectedNodeKey:e.selectionStore.getState().selectedNodeKey},x=async t=>{l(()=>({selectionVisualHint:{selectedNodeKey:t}})),await e.graphAdapter.applySelection({selectedNodeKey:t})},S=e=>{r=e},C=()=>{let e=r;return r=null,e},ee=()=>{e.graphUiStore.setState(()=>sa())},w=async()=>{if(!i||!t)return!1;let n=h(i);return n?(i=null,await e.graphAdapter.focusNode(n.ref.instanceKey),!0):!1},T=e=>{if(y(),e.kind===`tree`){v();return}c(()=>p(e.ref))},E=e=>{if(y(),e.kind===`tree`){v();return}c(()=>g(e.ref))},te=async e=>{i=e,await w()},ne=()=>{let n=e.selectionStore.getState().selectedNodeRef;return!n||!t?null:t.nodesByInstanceKey[n.instanceKey]??null},re=e=>!!(e?.subtreeNode||e?.path),ie=e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`invalid clipboard node`);let t=e;if(typeof t.name!=`string`||!t.name.trim())throw Error(`invalid clipboard node`);let n={uuid:typeof t.uuid==`string`&&t.uuid?t.uuid:typeof t.$id==`string`&&t.$id?t.$id:pr(),id:typeof t.id==`string`?t.id:``,name:t.name,desc:typeof t.desc==`string`?t.desc:void 0,args:t.args&&typeof t.args==`object`&&!Array.isArray(t.args)?oi(t.args):void 0,input:Array.isArray(t.input)?t.input.map(e=>String(e??``)):void 0,output:Array.isArray(t.output)?t.output.map(e=>String(e??``)):void 0,children:Array.isArray(t.children)?t.children.map(e=>ie(e)):void 0,debug:typeof t.debug==`boolean`?t.debug:void 0,disabled:typeof t.disabled==`boolean`?t.disabled:void 0,path:typeof t.path==`string`&&t.path.trim()?z(t.path)??void 0:void 0};return n.path&&(n.children=void 0),n},ae=async()=>{try{let e=await navigator.clipboard.readText();return e.trim()?ie(JSON.parse(e)):null}catch(t){return e.hostAdapter.log(`warn`,`[v2] clipboard read failed: ${String(t)}`),a(N.t(`node.pasteDataError`)),null}},oe=(e,n)=>{if(!t)return!1;let r=t.nodesByInstanceKey[n];for(;r?.parentKey;){if(r.parentKey===e)return!0;r=t.nodesByInstanceKey[r.parentKey]}return!1},se=(e,n)=>{let r=(e,i)=>{if(!t)return null;let a=t.nodesByInstanceKey[e];if(!a)return null;let o={uuid:i?a.ref.structuralStableId:a.ref.sourceStableId,id:a.ref.displayId,name:a.name,desc:a.desc,args:a.args?oi(a.args):void 0,input:a.input?[...a.input]:void 0,output:a.output?[...a.output]:void 0,debug:a.debug,disabled:a.disabled,path:i&&n?.clearPathOnRoot?void 0:a.path,children:void 0};return a.childKeys.length>0&&(o.children=a.childKeys.map(e=>r(e,!1)).filter(e=>!!e)),o};return r(e,!0)},ce=()=>{let t=e.documentStore.getState().persistedTree;return t?fi(t):null},D=e=>e?oi(e):void 0,le=(e,t)=>{let n=Sr(t),r=[];for(let t of e.nodeOrder){let i=e.nodesByInstanceKey[t];V(n,i.name)?.args?.some(e=>e.checker?.trim())&&r.push({instanceKey:i.ref.instanceKey,treePath:i.ref.sourceTreePath,node:{uuid:i.ref.sourceStableId,id:i.renderedIdLabel,name:i.name,desc:i.desc,args:D(i.args),input:i.input?[...i.input]:void 0,output:i.output?[...i.output]:void 0,debug:i.debug,disabled:i.disabled,path:i.path,children:[]}})}return r},ue=async(t,r)=>{let i=ce(),a=r.filePath,o=le(t,r.nodeDefs),s=++n;if(!i||!a||o.length===0)return e.workspaceStore.setState(e=>({...e,nodeCheckDiagnostics:{}})),{};let c=await e.hostAdapter.validateNodeChecks(i,a,o);if(s!==n)return e.workspaceStore.getState().nodeCheckDiagnostics;c.error&&e.hostAdapter.log(`warn`,`[v2] node check validation failed: ${c.error}`);let l={};for(let e of c.diagnostics)(l[e.instanceKey]||=[]).push(e);return e.workspaceStore.setState(e=>({...e,nodeCheckDiagnostics:l})),l},de=t=>{let n=e.workspaceStore.getState().filePath||void 0;try{return fi(di(t,n))}catch{return null}},fe=e=>{let t=ce();return t?de(e)===t:!1},O=async()=>{if(!t)return;e.selectionStore.getState();let n=e.graphUiStore.getState(),r=e.workspaceStore.getState();await e.graphAdapter.applySelection(b());let i=Wi(t,r.nodeDefs,n.activeVariableNames);await e.graphAdapter.applyHighlights(i);let a=Ki({graph:t,query:n.search.query,mode:n.search.mode,caseSensitive:n.search.caseSensitive,focusOnly:n.search.focusOnly,activeResultIndex:n.search.index,tree:e.documentStore.getState().persistedTree});aa(e.graphUiStore,{results:a.resultKeys,index:a.activeResultIndex}),await e.graphAdapter.applySearch(a)},pe=async()=>{let n=e.selectionStore.getState();if(!t||!n.selectedNodeRef){await e.graphAdapter.applySelection({selectedNodeKey:null});return}let r=h(n.selectedNodeRef);if(!r){c(()=>g(n.selectedNodeRef)),await e.graphAdapter.applySelection({selectedNodeKey:null});return}c(()=>f(r.ref.instanceKey)??{}),await e.graphAdapter.applySelection({selectedNodeKey:r.ref.instanceKey})},k=async n=>{let r=e.documentStore.getState().persistedTree,i=e.workspaceStore.getState();if(!r)return;let a=ra({persistedTree:r,subtreeSources:i.subtreeSources,nodeDefs:i.nodeDefs,subtreeEditable:i.settings.subtreeEditable});t=a.graph;let o=await ue(a.graph,i),s=C();await e.graphAdapter.render(Ui(a.graph,i.nodeDefs,i.settings.nodeColors,{usingVars:i.usingVars,usingGroups:i.usingGroups,checkExpr:i.settings.checkExpr,nodeCheckDiagnostics:o}),s?{anchorNodeKey:s}:void 0),n?.preserveSelection?await pe():await e.graphAdapter.applySelection({selectedNodeKey:e.selectionStore.getState().selectedNodeKey}),await O(),await w()},me=async()=>{let t=e.documentStore.getState().persistedTree;if(!t)return;let n=await _i({root:t.root,readContent:async t=>(await e.hostAdapter.readFile(t)).content});e.workspaceStore.setState(e=>({...e,subtreeSources:n}))},he=t=>{e.documentStore.setState(e=>({...e,persistedTree:t})),e.workspaceStore.setState(e=>({...e,usingGroups:ua(t.group)}))};return{deps:e,getResolvedGraph:()=>t,notifyError:a,notifySuccess:o,getNodeDef:s,clearActiveVariableFocus:_,getCurrentGraphSelectionKey:()=>b().selectedNodeKey,showSelectionVisualHint:x,setNextGraphRenderAnchor:S,resetGraphUiState:ee,stageHostSelectionState:T,applyHostSelectionState:E,revealNode:te,getSelectedResolvedNode:ne,isSubtreeStructureLocked:re,readClipboardNode:ae,isDescendantInstance:oe,buildPersistedNodeFromResolved:se,applyVisualState:O,rebuildGraph:k,syncReachableSubtreeSources:me,getSerializedCurrentTree:ce,matchesCurrentDocumentSnapshot:fe,applyDocumentTree:async(e,t)=>{if(he(e),t?.syncSubtreeSources!==!1&&await me(),t?.rebuildGraph!==!1){await k({preserveSelection:t?.preserveSelection??!0});return}t?.applyVisualState&&await O()}}},fa=e=>{let{deps:t}=e;return{async initFromHost(n){let r=di(n.content,n.filePath);t.workspaceStore.setState(e=>({...e,filePath:n.filePath,workdir:n.workdir,nodeDefs:n.nodeDefs,groupDefs:Cr(n.nodeDefs),allFiles:n.allFiles,settings:n.settings,usingGroups:ua(r.group)})),e.resetGraphUiState(),e.stageHostSelectionState(n.selection),await e.applyDocumentTree(r,{preserveSelection:!0}),bi(t.documentStore,n.documentSession)},async applyDocumentSnapshot(n){bi(t.documentStore,n.documentSession);let r=e.matchesCurrentDocumentSnapshot(n.content);if(!r&&n.syncKind===`reload`&&e.resetGraphUiState(),r){e.applyHostSelectionState(n.selection),await e.applyVisualState();return}e.stageHostSelectionState(n.selection);let i=t.workspaceStore.getState().filePath||void 0,a=di(n.content,i);await e.applyDocumentTree(a,{preserveSelection:!0})},async applyNodeDefs(n){t.workspaceStore.setState(e=>({...e,nodeDefs:n,groupDefs:Cr(n)})),await e.rebuildGraph({preserveSelection:!0})},async applyHostVars(n){let r=t.workspaceStore.getState(),i=n.allFiles??r.allFiles,a=!R(r.usingVars,n.usingVars),o=!R(r.allFiles,i),s=!R(r.importDecls,n.importDecls),c=!R(r.subtreeDecls,n.subtreeDecls);!a&&!o&&!s&&!c||(t.workspaceStore.setState(e=>({...e,usingVars:n.usingVars,allFiles:n.allFiles??e.allFiles,importDecls:n.importDecls,subtreeDecls:n.subtreeDecls})),a&&await e.rebuildGraph({preserveSelection:!0}))},async markSubtreeChanged(){await e.syncReachableSubtreeSources(),await e.rebuildGraph({preserveSelection:!0})},async dismissReloadConflict(){yi(t.documentStore)},async undo(){t.hostAdapter.undo()},async redo(){t.hostAdapter.redo()},async refreshGraph(t){await e.rebuildGraph({preserveSelection:t?.preserveSelection??!0})},async saveDocument(){let n=t.documentStore.getState().persistedTree;if(!n)return;if(vi(n.version,`2.2.0`)>0){t.hostAdapter.log(`warn`,`[v2] refusing to save newer file version: ${n.version}`);return}let r=await t.hostAdapter.saveDocument();r.success||e.notifyError(r.error??`Save failed`)},async revertDocument(){let n=await t.hostAdapter.revertDocument();n.success||e.notifyError(n.error??`Revert failed`)},async buildDocument(e){t.hostAdapter.sendBuild(e)}}},pa=e=>{let{hasDocument:t,intent:n,source:r,target:i,isDescendant:a}=e;return!t||!r||!i?{allowed:!1,reason:`missing-context`}:r.ref.instanceKey===i.ref.instanceKey?{allowed:!1,reason:`same-node`}:r.subtreeNode?{allowed:!1,reason:`move-subtree-denied`}:i.subtreeNode?{allowed:!1,reason:`drop-subtree-internal-denied`}:r.parentKey===null?{allowed:!1,reason:`move-root-denied`}:(n.position===`before`||n.position===`after`)&&i.parentKey===null?{allowed:!1,reason:`drop-around-root-denied`}:n.position===`child`&&i.ref.sourceTreePath!==null&&!i.subtreeNode?{allowed:!1,reason:`add-child-to-subtree-ref-denied`}:a(r.ref.instanceKey,i.ref.instanceKey)?{allowed:!1,reason:`move-into-descendant-denied`}:{allowed:!0}},q=async(e,t)=>{let n=await e.deps.hostAdapter.mutateDocument(t);return n.success||e.notifyError(n.error??`Document mutation failed`),n},ma=(e,t)=>{let n=e.deps.selectionStore.getState().selectedNodeSnapshot,r=n?{data:si(n.data),subtreeNode:n.subtreeNode,subtreeOriginal:n.subtreeOriginal?si(n.subtreeOriginal):void 0}:t.currentNodeSnapshot,i=r?.data.path&&!t.data.path?e.buildPersistedNodeFromResolved(t.target.instanceKey,{clearPathOnRoot:!0})??void 0:t.detachedSubtreeRoot;return{...t,currentNodeSnapshot:r,detachedSubtreeRoot:i}},ha=(e,t)=>e.getResolvedGraph()?.nodesByInstanceKey[t]??null,ga=e=>({instanceKey:e.sourceStableId,displayId:``,structuralStableId:e.sourceStableId,sourceStableId:e.sourceStableId,sourceTreePath:null,subtreeStack:[]}),_a=(e,t)=>{let n=t.parentKey;if(!n)return null;let r=[...(e.getResolvedGraph()?.nodesByInstanceKey[n]?.childKeys??[]).filter(e=>e!==t.ref.instanceKey),n];return e.deps.graphAdapter.pickNearestNodeAnchor?.(t.ref.instanceKey,r)??n},va=e=>{switch(e){case`move-subtree-denied`:return N.t(`node.moveSubtreeDenied`);case`drop-subtree-internal-denied`:return N.t(`node.dropSubtreeInternalDenied`);case`move-root-denied`:return N.t(`node.moveRootDenied`);case`drop-around-root-denied`:return N.t(`node.dropAroundRootDenied`);case`add-child-to-subtree-ref-denied`:return N.t(`node.addChildToSubtreeRefDenied`);case`move-into-descendant-denied`:return N.t(`node.moveIntoDescendantDenied`);case`missing-context`:case`same-node`:return null}},ya=(e,t)=>{let n=e.deps.documentStore.getState().persistedTree,r=ha(e,t.source.instanceKey),i=ha(e,t.target.instanceKey),a=pa({hasDocument:!!n,intent:t,source:r,target:i,isDescendant:(t,n)=>e.isDescendantInstance(t,n)});if(!a.allowed){let e=va(a.reason);if(e)throw Error(e);return!1}return!0},ba=e=>{let{deps:t}=e,n=async(n,r)=>{let i=z(n);if(!i){e.notifyError(N.t(`validation.invalidJsonPath`,{path:n}));return}(await t.hostAdapter.readFile(i,{openIfSubtree:!0,openSelection:r?.openSelection})).content===null&&e.notifyError(N.t(`node.subtreeOpenFailed`,{path:i}))};return{async updateTreeMeta(n){t.documentStore.getState().persistedTree&&await q(e,{type:`updateTreeMeta`,payload:n})},async updateNode(n){t.documentStore.getState().persistedTree&&await q(e,{type:`updateNode`,payload:ma(e,n)})},async performDrop(t){if(ya(e,t)){e.setNextGraphRenderAnchor(t.target.instanceKey);try{(await q(e,{type:`performDrop`,payload:t})).success||e.setNextGraphRenderAnchor(null)}catch(t){throw e.setNextGraphRenderAnchor(null),t}}},async copyNode(){let n=e.getSelectedResolvedNode();if(!n){e.notifyError(N.t(`node.noNodeSelected`));return}let r=e.buildPersistedNodeFromResolved(n.ref.instanceKey,{clearPathOnRoot:!0});if(r)try{await navigator.clipboard.writeText(gt(r,{indent:2}))}catch(e){t.hostAdapter.log(`warn`,`[v2] clipboard write failed: ${String(e)}`)}},async pasteNode(){let t=e.getSelectedResolvedNode();if(!t){e.notifyError(N.t(`node.noNodeSelected`));return}if(e.isSubtreeStructureLocked(t)){e.notifyError(N.t(`node.editSubtreeDenied`));return}let n=await e.readClipboardNode();n&&await q(e,{type:`pasteNode`,payload:{target:t.ref,snapshot:n}})},async insertNode(){let t=e.getSelectedResolvedNode();if(!t){e.notifyError(N.t(`node.noNodeSelected`));return}if(e.isSubtreeStructureLocked(t)){e.notifyError(N.t(`node.editSubtreeDenied`));return}e.setNextGraphRenderAnchor(t.ref.instanceKey);try{(await q(e,{type:`insertNode`,payload:{target:t.ref}})).success||e.setNextGraphRenderAnchor(null)}catch(t){throw e.setNextGraphRenderAnchor(null),t}},async replaceNode(){let t=e.getSelectedResolvedNode();if(!t){e.notifyError(N.t(`node.noNodeSelected`));return}if(e.isSubtreeStructureLocked(t)){e.notifyError(N.t(`node.editSubtreeDenied`));return}let n=await e.readClipboardNode();n&&await q(e,{type:`replaceNode`,payload:{target:t.ref,snapshot:n}})},async deleteNode(){let t=e.getSelectedResolvedNode();if(!t)return;if(t.parentKey===null){e.notifyError(N.t(`node.deleteRootNodeDenied`));return}if(t.subtreeNode){e.notifyError(N.t(`node.editSubtreeDenied`));return}let n=_a(e,t);e.setNextGraphRenderAnchor(n);try{(await q(e,{type:`deleteNode`,payload:{target:t.ref}})).success||e.setNextGraphRenderAnchor(null)}catch(t){throw e.setNextGraphRenderAnchor(null),t}},openSubtreePath:n,async openSelectedSubtree(r){let i=r??t.selectionStore.getState().selectedNodeRef,a=e.getResolvedGraph();if(!i||!a)return;let o=a.nodesByInstanceKey[i.instanceKey],s=i.subtreeStack.length>0?i.subtreeStack[i.subtreeStack.length-1]:void 0,c=o?.path??s;c&&await n(c,{openSelection:ga(i)})},async saveSelectedAsSubtree(){let t=e.getSelectedResolvedNode();if(!t){e.notifyError(N.t(`node.noNodeSelected`));return}if(t.parentKey===null){e.notifyError(N.t(`node.subtreeSaveRootError`));return}if(e.isSubtreeStructureLocked(t)){e.notifyError(N.t(`node.editSubtreeDenied`));return}let n=e.buildPersistedNodeFromResolved(t.ref.instanceKey,{clearPathOnRoot:!0});if(!n)return;let r=n.name?.trim()||`subtree`;await q(e,{type:`saveSelectedAsSubtree`,payload:{target:t.ref,subtreeRoot:n,suggestedBaseName:r}})}}},xa=e=>{let{deps:t}=e,n={async selectTree(){let n=e.clearActiveVariableFocus(),r=e.getCurrentGraphSelectionKey()!==null;t.hostAdapter.selectTree(),!(!n&&!r)&&(r&&await e.showSelectionVisualHint(null),n&&await e.applyVisualState())},async selectNode(n,r){let i=e.getResolvedGraph();if(!i)return;let a=i.nodesByInstanceKey[n];if(!a)return;let o=!!r?.clearVariableFocus&&e.clearActiveVariableFocus(),s=e.getCurrentGraphSelectionKey()!==a.ref.instanceKey;t.hostAdapter.selectNode(a.ref),s&&await e.showSelectionVisualHint(a.ref.instanceKey),o&&await e.applyVisualState()},async revealNode(t){await e.revealNode(t)},async focusVariable(n){t.graphUiStore.setState(e=>({...e,activeVariableNames:[...n]})),await e.applyVisualState()},async openSearch(n){aa(t.graphUiStore,{open:!0,mode:n}),await e.applyVisualState()},async updateSearch(r){aa(t.graphUiStore,{query:r,index:0}),await e.applyVisualState();let{results:i}=t.graphUiStore.getState().search;i.length>0&&(await n.selectNode(i[0],{force:!0}),await t.graphAdapter.focusNode(i[0]))},async nextSearchResult(){let r=t.graphUiStore.getState().search;if(r.results.length===0)return;let i=(r.index+1)%r.results.length;aa(t.graphUiStore,{index:i}),await e.applyVisualState();let a=t.graphUiStore.getState().search.results[i];a&&(await n.selectNode(a,{force:!0}),await t.graphAdapter.focusNode(a))},async prevSearchResult(){let r=t.graphUiStore.getState().search;if(r.results.length===0)return;let i=(r.index+r.results.length-1)%r.results.length;aa(t.graphUiStore,{index:i}),await e.applyVisualState();let a=t.graphUiStore.getState().search.results[i];a&&(await n.selectNode(a,{force:!0}),await t.graphAdapter.focusNode(a))}};return n},Sa=e=>{let t=da(e);return{...fa(t),...xa(t),...ba(t)}},Ca=()=>({selectedTree:null,selectedNodeKey:null,selectedNodeRef:null,selectedNodeSnapshot:null}),wa=()=>ve(()=>Ca()),Ta=()=>{if(typeof document>`u`)return`dark`;let e=document.body?.classList;return e?.contains(`vscode-light`)||e?.contains(`vscode-high-contrast-light`)?`light`:e?.contains(`vscode-dark`)||e?.contains(`vscode-high-contrast`)?`dark`:window.matchMedia?.(`(prefers-color-scheme: light)`)?.matches?`light`:`dark`},Ea=e=>{typeof document>`u`||(document.documentElement.setAttribute(`data-theme`,e),document.body?.setAttribute(`data-theme`,e))},Da=e=>e===`inspector-sidebar`?`inspector-sidebar`:`editor`,Oa=()=>typeof window>`u`?`editor`:Da(window.__B3_WEBVIEW_KIND__),ka=(e,t)=>{e.setState(e=>({...e,settings:{...e.settings,theme:t},themeVersion:e.themeVersion+1}))},Aa=(e,t)=>{e.setState(e=>({...e,settings:{...e.settings,...t}}))},ja=()=>({filePath:``,workdir:``,nodeDefs:[],groupDefs:[],allFiles:[],settings:{checkExpr:!0,subtreeEditable:!0,language:`zh`,theme:Ta(),inspectorMode:`sidebar`},themeVersion:0,usingVars:null,usingGroups:null,importDecls:[],subtreeDecls:[],subtreeSources:{},nodeCheckDiagnostics:{}}),Ma=()=>ve(()=>ja()),Na=e(T()),Pa=e(C()),Fa=e=>Ie(e)===`zh`?Pa.default:Na.default,Ia=e=>Error(`${e} is not available before the Ant Design app hooks are bound`),La=()=>{let e=null;return{bind(t){e=t},reset(){e=null},getMessage(){if(!e)throw Ia(`message`);return e.message},getNotification(){if(!e)throw Ia(`notification`);return e.notification},getModal(){if(!e)throw Ia(`modal`);return e.modal}}},Ra=(e=Oa())=>{let t=Si(),n=Ma(),r=wa(),i=ca(),a=tr(),o=En(),s=La();return{webviewKind:e,documentStore:t,workspaceStore:n,selectionStore:r,graphUiStore:i,controller:Sa({documentStore:t,workspaceStore:n,selectionStore:r,graphUiStore:i,hostAdapter:a,graphAdapter:o,appHooks:s}),graphAdapter:o,hostAdapter:a,appHooks:s}},za=(0,j.createContext)(null),Ba=({runtime:e,children:t})=>(0,M.jsx)(za.Provider,{value:e,children:t}),J=()=>{let e=(0,j.useContext)(za);if(!e)throw Error(`V2 runtime is not available`);return e},Va=()=>J().webviewKind,Ha=e=>Oe(J().documentStore,e),Y=e=>Oe(J().workspaceStore,e),Ua=e=>Oe(J().selectionStore,e),Wa=e=>Oe(J().graphUiStore,e),Ga=()=>({theme:Y(e=>e.settings.theme),language:Y(e=>e.settings.language),hasDocument:Ha(e=>e.persistedTree!==null)}),Ka=()=>{let{webviewKind:e}=J();return{theme:Y(e=>e.settings.theme),language:Y(e=>e.settings.language),themeVersion:Y(e=>e.themeVersion),webviewKind:e}},qa=e=>e.documentPresent?e.selectedNode?`node`:e.selectedNodeRef?`node-pending`:`tree`:`skeleton`,Ja=(e,t)=>!!(e||(t?.subtreeStack.length??0)>0),Ya=(0,j.createContext)({readOnly:!1}),Xa=({children:e,readOnly:t=!1})=>(0,M.jsx)(Ya.Provider,{value:{readOnly:t},children:e}),Za=()=>(0,j.useContext)(Ya),Qa=(e,t)=>String(t?.label??``).toUpperCase().includes(e.toUpperCase()),$a=e=>e.closest(`.b3-inspector`)??document.body,eo=({active:e,onReset:t,children:n})=>{let{t:r}=A(),{readOnly:i}=Za();return!e||i?(0,M.jsx)(M.Fragment,{children:n}):(0,M.jsxs)(`div`,{className:`b3-override-bar`,children:[(0,M.jsx)(ee,{title:r(`override.resetTitle`),okText:r(`reset`),cancelText:r(`cancel`),placement:`right`,onConfirm:t,getPopupContainer:$a,children:(0,M.jsx)(`div`,{className:`b3-override-rail`})}),n]})},X=({children:e})=>(0,M.jsx)(ie,{className:`b3-section-divider`,titlePlacement:`start`,orientation:`horizontal`,children:(0,M.jsx)(`h4`,{className:`b3-section-title`,children:e})}),to=({text:e,required:t})=>(0,M.jsxs)(`span`,{className:`b3-form-label`,children:[(0,M.jsxs)(`span`,{className:`b3-form-label-text`,children:[t?(0,M.jsx)(`span`,{className:`b3-form-required-mark`,children:`*`}):null,e]}),(0,M.jsx)(`span`,{className:`b3-form-label-colon`,children:`:`})]}),Z=(e,t=!1)=>({label:(0,M.jsx)(to,{text:e,required:t}),colon:!1,htmlFor:void 0}),no=Z,ro=({value:e,disabled:t=!1,onChange:n,onRemove:r,onSubmit:i,onFocusVariable:a})=>{let{t:o}=A(),[s,c]=(0,j.useState)(e??{name:``,desc:``});(0,j.useEffect)(()=>{c(e??{name:``,desc:``})},[e]);let l=()=>{n?.(s),i?.()};return(0,M.jsxs)(u,{gap:4,align:`start`,className:`b3-var-row`,children:[(0,M.jsxs)(ae.Compact,{block:!0,className:`b3-var-row-compact`,children:[(0,M.jsxs)(`div`,{className:`b3-var-counter`,onClick:()=>{s.name&&a?.(s.name)},children:[(0,M.jsx)(d,{}),(0,M.jsx)(`span`,{children:s.count??0})]}),(0,M.jsx)(g,{disabled:t,value:s.name,placeholder:o(`tree.vars.name`),onChange:e=>c(t=>({...t,name:e.target.value})),onBlur:l}),(0,M.jsx)(g,{disabled:t,value:s.desc,placeholder:o(`tree.vars.desc`),onChange:e=>c(t=>({...t,desc:e.target.value})),onBlur:l})]}),t?(0,M.jsx)(`div`,{className:`b3-row-spacer`}):(0,M.jsx)(E,{className:`b3-inline-remove`,onClick:r})]})},io=new Map,ao=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),oo=(e,t)=>e.structuralStableId===t.structuralStableId&&e.sourceStableId===t.sourceStableId&&e.sourceTreePath===t.sourceTreePath&&ao(e.subtreeStack,t.subtreeStack),so=(e,t)=>({...e,ref:t,effectiveArgs:e.effectiveArgs?{...e.effectiveArgs}:void 0,data:{...e.data,id:t.displayId}}),co=(e,t)=>!e||!t||!oo(e.ref,t)?null:so(e.snapshot,t),lo=(e,t,n)=>{io.set(e,{ref:t,snapshot:so(n,t)})},uo=(e,t)=>e?co(io.get(e),t):null,fo=(e,t,n)=>{let r=V(n,t.name);r&&(t.input?.forEach(t=>{t&&(e[t]=(e[t]??0)+1)}),t.output?.forEach(t=>{t&&(e[t]=(e[t]??0)+1)}),r.args?.forEach(n=>{if(!cr(Tr(n)))return;let r=t.args?.[n.name];(Array.isArray(r)?r:[r]).forEach(t=>{typeof t!=`string`||!t||Ti(t).forEach(t=>{e[t]=(e[t]??0)+1})})}))},po=(e,t)=>{let n={};if(!e)return n;for(let r of e.nodeOrder){let i=e.nodesByInstanceKey[r];i&&fo(n,i,t)}return n},mo=e=>{if(!e.document)return{};let t=ra({persistedTree:e.document,subtreeSources:e.subtreeSources,nodeDefs:e.nodeDefs,subtreeEditable:e.subtreeEditable}).graph;return po(t,e.nodeDefMap)},ho=(e,t,n)=>{let r=[],i=new Set;return Ci(e)?(Object.values(e).forEach(e=>{i.has(e.name)||(i.add(e.name),r.push({label:`${e.name} (${e.desc})`,value:e.name}))}),r):(t&&ni(t,e=>{let t=V(n,e.name),a=t?.input?.length&&t.input.length>0?H(t.input[t.input.length-1]??``,t.input,t.input.length-1):null,o=t?.output?.length&&t.output.length>0?H(t.output[t.output.length-1]??``,t.output,t.output.length-1):null;e.input?.forEach((e,n)=>{if(!e||i.has(e))return;let o=t?.input?.length&&n>=t.input.length&&a?.variadic?t.input[t.input.length-1]:t?.input?.[n]??`input`;i.add(e),r.push({label:`${e} (${H(o).label})`,value:e})}),e.output?.forEach((e,n)=>{if(!e||i.has(e))return;let a=t?.output?.length&&n>=t.output.length&&o?.variadic?t.output[t.output.length-1]:t?.output?.[n]??`output`;i.add(e),r.push({label:`${e} (${H(a).label})`,value:e})})}),r)},go=()=>{let e=Ha(e=>e.persistedTree),t=Ha(e=>e.alertReload),n=Ha(e=>e.pendingExternalContent),r=Y(e=>e.filePath),i=Ua(e=>e.selectedNodeRef);return{document:e,alertReload:t,pendingExternalContent:n,selectedNode:Ua(e=>e.selectedNodeSnapshot)??uo(r,i),selectedNodeRef:i}},_o=()=>{let e=Ha(e=>e.persistedTree),t=Y(e=>e.filePath),n=Ua(e=>e.selectedNodeRef),r=Ua(e=>e.selectedNodeSnapshot),i=r??uo(t,n),a=Y(e=>e.nodeDefs),o=Y(e=>e.usingVars),s=Y(e=>e.usingGroups),c=Y(e=>e.allFiles),l=Y(e=>e.settings.checkExpr),u=Y(e=>e.nodeCheckDiagnostics);return{document:e,selectedNode:i,pendingSelectedNodeSnapshot:!r&&!!(n&&i),nodeDefs:a,usingVars:o,usingGroups:s,allFiles:c,checkExpr:l,nodeCheckDiagnostics:u}},vo=()=>({document:Ha(e=>e.persistedTree),nodeDefs:Y(e=>e.nodeDefs),groupDefs:Y(e=>e.groupDefs),allFiles:Y(e=>e.allFiles),importDecls:Y(e=>e.importDecls),subtreeDecls:Y(e=>e.subtreeDecls),subtreeSources:Y(e=>e.subtreeSources),subtreeEditable:Y(e=>e.settings.subtreeEditable)}),yo=e=>{let{document:t,selectedNode:n,pendingSelectedNodeSnapshot:r,nodeDefs:i,usingVars:a,usingGroups:o,allFiles:s,checkExpr:c,nodeCheckDiagnostics:l}=_o(),u=(0,j.useMemo)(()=>Sr(i),[i]),d=(0,j.useMemo)(()=>ho(a,t?.root??null,u),[a,t?.root,u]),f=h.useWatch(`name`,e),p=(f??n?.data.name??``).trim()||n?.data.name||``,m=V(u,p),g=n?.disabled??!1,_=m?.args??[],v=n?.subtreeOriginal;return{document:t,selectedNode:n,pendingSelectedNodeSnapshot:r,nodeDefs:i,usingVars:a,usingGroups:o,allFiles:s,checkExpr:c,nodeCheckDiagnostics:n?l[n.ref.instanceKey]??[]:[],nodeDefMap:u,variableOptions:d,watchedName:f,effectiveName:p,nodeDef:m,fieldEditDisabled:g,title:m?.desc||p,structuredArgs:_,hasStructuredArgs:_.length>0,shouldShowRawNodeJson:m===null,subtreeOriginal:v,canShowOverride:!!(n?.subtreeNode&&v)}},bo=e=>{let{document:t,nodeDefs:n,groupDefs:r,allFiles:i,importDecls:a,subtreeDecls:o,subtreeSources:s,subtreeEditable:c}=vo(),l=(0,j.useMemo)(()=>Sr(n),[n]),u=(0,j.useMemo)(()=>mo({document:t,subtreeSources:s,nodeDefs:n,nodeDefMap:l,subtreeEditable:c}),[t,s,n,l,c]);return{document:t,nodeDefs:n,groupDefs:r,allFiles:i,importDecls:a,subtreeDecls:o,nodeDefMap:l,variableUsageCount:u,currentImportRefs:h.useWatch(`importRefs`,e)??[],subtreeRows:(0,j.useMemo)(()=>o.map(e=>({...e,vars:e.vars.map(e=>({...e,count:u[e.name]??0}))})),[o,u]),importDeclByPath:(0,j.useMemo)(()=>{let e=new Map;return a.forEach(t=>{e.set(t.path,t.vars.map(e=>({...e,count:u[e.name]??0})))}),e},[a,u])}},xo=e=>{switch(e.code){case`invalid-variable-name`:return N.t(`node.invalidVariableName`);case`undefined-variable`:return N.t(`node.undefinedVariable`,{variable:e.variable});case`invalid-expression`:return N.t(`node.invalidExpression`);case`group-not-enabled`:return N.t(`node.groupNotEnabled`,{group:e.groups.join(`, `)});case`required-arg`:return N.t(`fieldRequired`,{field:e.label});case`required-input`:case`required-output`:return N.t(`fieldRequired`,{field:e.label});case`custom-arg-check`:return`${e.argName}: ${e.message}`;case`invalid-arg-value`:return e.expected===`integer`?N.t(`validation.integer`,{field:e.label}):e.expected===`number`?N.t(`validation.number`,{field:e.label}):e.expected===`array`?N.t(`validation.jsonArray`,{name:e.argName}):N.t(`node.invalidValue`);case`invalid-arg-option`:case`unknown-arg-type`:return N.t(`node.invalidValue`);case`invalid-children`:return N.t(`node.invalidChildren`);case`missing-node-def`:return N.t(`node.notFound`,{name:e.nodeName});default:return N.t(`node.invalidValue`)}},So=R,Co=e=>e?e.children===void 0||e.children===-1?N.t(`node.children.unlimited`):String(e.children):`-`,wo=(e,t)=>{let n=Ei(e,t,`input`);return n?xo(n):null},To=(e,t,n)=>{let r=Di(e,t,n);return r?xo(r):null},Eo=(e,t)=>{let n=Tr(e),r=W(e);return U(e)?ur(e)?Array.isArray(t)?t:t===void 0?r?[]:void 0:[]:t===void 0?r?``:void 0:JSON.stringify(t,null,2):sr(n)?t===void 0?r?!1:void 0:t:ur(e)?t??(r?`__unset__`:void 0):lr(n)?t===void 0?r?``:void 0:JSON.stringify(t,null,2):t===void 0?r?``:void 0:t},Do=(e,t)=>{let n=Tr(e);if(t==null)return;if(U(e)){if(ur(e)){let n=Array.isArray(t)?t:[];return n.length===0&&W(e)?void 0:n}let n=String(t).trim();if(!n)return W(e)?void 0:[];let r=JSON.parse(n);if(!Array.isArray(r))throw Error(N.t(`validation.jsonArray`,{name:e.name}));return r}if(sr(n))return t===`__unset__`?void 0:!!t;if(ur(e))return t===`__unset__`?void 0:t;if(ir(n)||ar(n))return t===``?W(e)?void 0:t:Number(t);if(lr(n)){let n=String(t).trim();return n?JSON.parse(n):W(e)?void 0:{}}let r=String(t);if(!(!r.trim()&&W(e)))return r},Oo=e=>{let{arg:t,rawValue:n,usingVars:r,checkExpr:i}=e,a=Tr(t),o=Do(t,n);if(o===void 0)return null;let s=Ii({arg:t,value:o,args:{[t.name]:o},validateOptions:!1});return s.length?xo(s[0]):cr(a)?To((Array.isArray(o)?o:[o]).filter(e=>typeof e==`string`),r,i):null},ko=/^[\[{'"0-9+\-.]/,Ao=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/,jo=e=>e.startsWith(`"`)||e.startsWith(`'`),Mo=e=>{let t=e??``,n=t.trim();if(!n)return``;if(n===`true`)return!0;if(n===`false`)return!1;if(Ao.test(n)){let e=Number(n);if(!Number.isFinite(e))throw Error(`invalid tree custom value`);return e}if(jo(n)){let e;try{e=lt.default.parse(n)}catch{throw Error(`invalid tree custom value`)}if(typeof e!=`string`)throw Error(`invalid tree custom value`);return e}if(n.startsWith(`{`)||n.startsWith(`[`)||ko.test(n))throw Error(`invalid tree custom value`);return t},No=e=>{try{let t=Mo(e);return typeof t==`boolean`?`boolean`:typeof t==`number`?`number`:`string`}catch{return`invalid`}},Po=e=>{let t={};for(let n of e??[]){let e=n.key?.trim();e&&(t[e]=Mo(n.value))}return t},Fo=(e,t)=>!!(e&&t&&oo(e.ref,t.ref)),Q=e=>({name:e.data.name,desc:e.data.desc,path:e.data.path,debug:e.data.debug?!0:void 0,disabled:e.data.disabled?!0:void 0,input:e.data.input?[...e.data.input]:void 0,output:e.data.output?[...e.data.output]:void 0,args:e.data.args?{...e.data.args}:void 0}),Io=(e,t)=>!Fo(e,t)||!e?`replace`:e.data.name===t.data.name?`patch`:`patch-and-clear-scoped-fields`,Lo=e=>e.readOnly?!0:e.pendingSelectedNodeSnapshot?!Fo(e.previousSelectedNode,e.nextSelectedNode):!1,Ro=e=>e.effectiveArgs??e.data.args,zo=(e,t)=>({...Q(e),name:t}),Bo=(e,t,n,r)=>{if(!e?.length)return t;let i=e.map((n,r)=>Uo(t,r,H(e[r]??``,e,r).variadic));return i[r]=(Array.isArray(n)?n:[])[r],Wo(e,i,t)},Vo=(e,t,n,r,i)=>{if(!i){let i=Do(n,r.args?.[n.name]),a=e?.[n.name],o=t?.[n.name];if(So(i,a)||So(i,o)&&So(a,void 0))return e}let a={...e??{}},o=Do(n,r.args?.[n.name]);return o===void 0?delete a[n.name]:a[n.name]=o,Object.keys(a).length>0?a:void 0},Ho=(e,t)=>{if(!e||!(t in e))return e;let n={...e};return delete n[t],Object.keys(n).length>0?n:void 0},Uo=(e,t,n)=>n?e?.slice(t)??[]:e?.[t]??``,Wo=(e,t,n)=>{if(!e?.length)return n;let r=Array.isArray(t)?t:[],i=[];return e.forEach((t,n)=>{let a=r[n];if(H(e[n]??``,e,n).variadic){let e=Array.isArray(a)?a:[];i.push(...e.filter(e=>typeof e==`string`))}else i.push(typeof a==`string`?a:``)}),i},Go=(e,t,n)=>{let r=Ro(t);return{id:`${t.ref.displayId} (${t.data.uuid})`,type:e?.type??n,children:Co(e),group:e?.group??[],name:t.data.name,desc:t.data.desc??e?.desc??``,path:t.data.path??``,debug:!!t.data.debug,disabled:!!t.data.disabled,args:Object.fromEntries((e?.args??[]).map(e=>[e.name,Eo(e,r?.[e.name])]).filter(([,e])=>e!==void 0)),inputSlots:(e?.input??[]).map((n,r)=>Uo(t.data.input,r,H(e?.input?.[r]??``,e?.input,r).variadic)),outputSlots:(e?.output??[]).map((n,r)=>Uo(t.data.output,r,H(e?.output?.[r]??``,e?.output,r).variadic)),rawNodeJson:JSON.stringify(t.data??{},null,2)}},Ko=(e,t)=>({name:e.name,desc:e.desc??``,prefix:e.prefix??``,export:e.export!==!1,group:e.group,vars:e.variables.locals.map(e=>({...e,count:t[e.name]??0})),importRefs:e.variables.imports.map(e=>({path:e})),customRows:Object.entries(e.custom).map(([e,t])=>({key:e,value:dt(t)}))}),qo=e=>({desc:e.desc?.trim()||void 0,prefix:e.prefix??``,export:e.export!==!1,group:e.group??[],variables:{imports:(e.importRefs??[]).map(e=>e.path?.trim()).filter(e=>!!e),locals:(e.vars??[]).filter(e=>e.name?.trim()).map(e=>({name:e.name.trim(),desc:e.desc.trim()}))}}),Jo=e=>{window.setTimeout(()=>{e()},0)},Yo=new Set,Xo=e=>{let t=e.catch(()=>void 0).finally(()=>{Yo.delete(t)});Yo.add(t)},Zo=async()=>{for(;Yo.size>0;)await Promise.allSettled([...Yo])},Qo=async()=>{let e=document.activeElement;e instanceof HTMLElement&&e!==document.body&&e.blur(),await new Promise(e=>{window.setTimeout(e,0)}),await new Promise(e=>{window.setTimeout(e,0)}),await Zo()},$o=(e,t)=>[[e,t]];function es({form:e,runtime:t,selectedNode:n,nodeDef:r,subtreeOriginal:i,fieldEditDisabled:a,effectiveReadOnly:o,canShowOverride:s}){let c=e=>{if(!r)return null;let t=H(r.input?.[e]??``,r.input,e).label;return r.args?.find(e=>e.oneof===t)??null},l=e=>{let t=c(e);return t?[...$o(`inputSlots`,e),[`args`,t.name]]:$o(`inputSlots`,e)},u=e=>{let t=[[`args`,e.name]];if(!e.oneof||!r?.input)return t;let n=r.input.findIndex((t,n)=>H(t,r.input,n).label===e.oneof);return n>=0&&t.push([`inputSlots`,n]),t},d=async(r,i)=>{if(o)return;if(r.length>0)try{await e.validateFields(r,{recursive:!0})}catch{return}let a=e.getFieldsValue(!0);try{Xo(t.controller.updateNode({target:n.ref,data:i(a)}))}catch(e){t.hostAdapter.log(`warn`,`[v2] node form submit failed: ${String(e)}`)}},f=(e,t)=>{Jo(()=>{d(e,t)})},p=()=>{f([`name`],e=>zo(n,String(e.name??n.data.name).trim()||n.data.name))},m=()=>{f([`desc`],e=>({...Q(n),desc:e.desc?.trim()||void 0}))},h=()=>{f([`debug`],e=>({...Q(n),debug:e.debug?!0:void 0}))},g=()=>{f([`disabled`],e=>({...Q(n),disabled:e.disabled?!0:void 0}))},_=()=>{f([`path`],e=>({...Q(n),path:n.subtreeNode||a?n.data.path:e.path?.trim()||void 0}))},v=(e,t,n,r=!1)=>s?r?!So(e?.slice(n)??[],t?.slice(n)??[]):(e?.[n]??``)!==(t?.[n]??``):!1,y=(e,t=!1)=>v(n.data.input,i?.input,e,t),b=(e,t=!1)=>v(n.data.output,i?.output,e,t),x=e=>s&&yr({argName:e,currentArgs:n.data.args,originalArgs:i?.args,nodeDef:r}),S=e=>{f(l(e),t=>({...Q(n),input:Bo(r?.input,n.data.input,t.inputSlots,e)}))},C=e=>{f($o(`outputSlots`,e),t=>({...Q(n),output:Bo(r?.output,n.data.output,t.outputSlots,e)}))},ee=t=>{f(u(t),r=>({...Q(n),args:Vo(n.data.args,Ro(n),t,r,e.isFieldTouched([`args`,t.name]))}))},w=(t,n,r,i=!1)=>{if(e.setFieldValue([t,r],Uo(n,r,i)),t===`inputSlots`){S(r);return}C(r)};return{relatedArgForInput:c,commitName:p,commitDesc:m,commitDebug:h,commitDisabled:g,commitPath:_,isInputOverridden:y,isOutputOverridden:b,isArgOverridden:x,resetInputField:(e,t=!1)=>{w(`inputSlots`,i?.input,e,t)},resetOutputField:(e,t=!1)=>{w(`outputSlots`,i?.output,e,t)},resetArgField:t=>{e.setFieldValue([`args`,t.name],Eo(t,i?.args?.[t.name])),f([[`args`,t.name]],e=>({...Q(n),args:Vo(n.data.args,Ro(n),t,e,!0)}))},resetArgToDefault:t=>{e.setFields([{name:[`args`,t.name],value:Eo(t,t.default),touched:!1,errors:[],warnings:[]}]),f([],()=>({...Q(n),args:Ho(n.data.args,t.name)}))},resetDesc:()=>{e.setFieldValue(`desc`,i?.desc??``),m()},resetDebug:()=>{e.setFieldValue(`debug`,!!i?.debug),h()},resetDisabled:()=>{e.setFieldValue(`disabled`,!!i?.disabled),g()},commitInputField:S,commitOutputField:C,commitArgField:ee}}var{TextArea:ts}=g,ns=({form:e,arg:t,nodeDef:n,currentArgValue:r,usingVars:a,checkExpr:o,nodeCheckDiagnostics:s,disabled:c,showDefaultReset:l,onCommit:d,onQueueCommit:_,onResetToDefault:v})=>{let{t:y}=A(),b=h.useWatch(`args`,e)??{},x=Tr(t),S=(0,j.useMemo)(()=>Dr(t,b)??[],[t,b]),C=!W(t),w={...Z(t.desc||t.name,C),required:C},T=(e,n)=>!l||c?(0,M.jsx)(h.Item,{...w,name:[`args`,t.name],valuePropName:n,rules:[{validator:E}],children:e}):(0,M.jsx)(h.Item,{...w,required:C,children:(0,M.jsxs)(u,{gap:4,align:`start`,className:`b3-field-with-action`,children:[(0,M.jsx)(`div`,{className:`b3-field-with-action-control`,children:(0,M.jsx)(h.Item,{noStyle:!0,name:[`args`,t.name],valuePropName:n,rules:[{validator:E}],children:e})}),(0,M.jsx)(ee,{title:y(`reset.defaultConfirm`),okText:y(`reset`),cancelText:y(`cancel`),placement:`right`,onConfirm:v,getPopupContainer:$a,children:(0,M.jsx)(m,{className:`b3-inline-reset`,title:y(`reset`),onMouseDown:e=>e.preventDefault()})})]})}),E=async(i,c)=>{let l=Ai(t,c);if(l&&!C)return;if(l&&C)throw Error(y(`fieldRequired`,{field:t.desc||t.name}));let u=c;(U(t)||lr(x))&&(u=Do(t,c));let d=Oo({arg:t,rawValue:c,usingVars:a,checkExpr:o});if(d)throw Error(d);if(t.oneof){let r=n.input?.findIndex((e,r)=>H(e,n.input,r).label===t.oneof)??-1;if(r<0)throw Error(y(`validation.missingOneofInput`,{input:t.oneof}));let i=e.getFieldValue([`inputSlots`,r]);if(!Or(t,u,i))throw Error(y(`validation.oneof`,{left:t.name,right:t.oneof}))}let f=s.find(e=>e.argName===t.name);if(f&&So(u,r))throw Error(f.message)};return sr(x)?T((0,M.jsx)(p,{disabled:c,onChange:_}),`checked`):ur(t)?T((0,M.jsx)(i,{mode:U(t)?`multiple`:void 0,disabled:c,allowClear:!C,showSearch:!0,onChange:_,onBlur:d,options:S.map(e=>({label:`${e.name} (${String(e.value)})`,value:e.value})),filterOption:Qa})):U(t)||lr(x)?T((0,M.jsx)(ts,{autoSize:{minRows:1},disabled:c,placeholder:U(t)?y(`form.enterJsonArray`):y(`form.enterJsonValue`),onBlur:d})):ir(x)||ar(x)?T((0,M.jsx)(f,{style:{width:`100%`},disabled:c,precision:ir(x)?0:void 0,onBlur:d})):or(x)?T((0,M.jsx)(ts,{autoSize:{minRows:1},disabled:c,onBlur:d})):T((0,M.jsx)(g,{disabled:c,onBlur:d}))},rs=({form:e,nodeDef:t,args:n,effectiveArgs:r,usingVars:i,checkExpr:a,nodeCheckDiagnostics:o,fieldEditDisabled:s,isOverridden:c,onReset:l,onResetToDefault:u,onCommit:d,onQueueCommit:f})=>{let{t:p}=A();return n.length===0?null:(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:p(`node.args`)}),n.map(n=>(0,M.jsx)(eo,{active:c(n.name),onReset:()=>l(n),children:(0,M.jsx)(ns,{form:e,arg:n,nodeDef:t,currentArgValue:r?.[n.name],usingVars:i,checkExpr:a,nodeCheckDiagnostics:o,disabled:s,showDefaultReset:n.default!==void 0,onCommit:()=>d(n),onQueueCommit:()=>f(n),onResetToDefault:()=>u(n)})},`arg-${n.name}`))]})},is=({form:e,fieldName:t,slotDefs:r,slot:i,index:a,usingVars:o,variableOptions:s,fieldEditDisabled:d,isOverridden:f,onReset:p,onCommit:m,onQueueCommit:g,getRelatedArg:_})=>{let{t:v}=A(),y=H(i,r,a),b=y.label,x=y.variadic,S=_?.(a)??null,C=async(t,n)=>{let r=wo(n,o);if(r)throw Error(r);if(S&&!Or(S,e.getFieldValue([`args`,S.name]),n))throw Error(v(`validation.oneof`,{left:S.name,right:b}))};return x?(0,M.jsx)(eo,{active:f(a,!0),onReset:()=>p(a,!0),children:(0,M.jsx)(h.Item,{...Z(b,y.required),children:(0,M.jsx)(h.List,{name:[t,a],children:(e,{add:t,remove:r},{errors:i})=>(0,M.jsxs)(`div`,{className:`b3-list-block`,children:[e.map(e=>(0,M.jsxs)(u,{gap:4,align:`start`,children:[(0,M.jsx)(h.Item,{name:e.name,style:{width:`100%`,marginBottom:2},validateTrigger:[`onChange`,`onBlur`],rules:[{validator:C}],children:(0,M.jsx)(l,{disabled:d,options:s,filterOption:Qa,onBlur:m})}),(0,M.jsx)(E,{className:`b3-inline-remove`,onClick:()=>{r(e.name),g()}})]},e.key)),(0,M.jsxs)(h.Item,{style:{marginBottom:0,marginTop:4},children:[(0,M.jsx)(n,{type:`dashed`,block:!0,icon:(0,M.jsx)(c,{}),onClick:()=>t(``),children:v(`add`)}),(0,M.jsx)(h.ErrorList,{errors:i})]})]})})})}):(0,M.jsx)(eo,{active:f(a),onReset:()=>p(a),children:(0,M.jsx)(h.Item,{...Z(b,y.required),name:[t,a],rules:[{required:y.required,message:v(`fieldRequired`,{field:b})},{validator:C}],children:(0,M.jsx)(l,{disabled:d,options:s,filterOption:Qa,onBlur:m})})})},as=({form:e,title:t,fieldName:n,slotDefs:r,usingVars:i,variableOptions:a,fieldEditDisabled:o,isOverridden:s,onReset:c,onCommit:l,onQueueCommit:u,getRelatedArg:d})=>r?.length?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:t}),r.map((t,f)=>(0,M.jsx)(is,{form:e,fieldName:n,slotDefs:r,slot:t,index:f,usingVars:i,variableOptions:a,fieldEditDisabled:o,isOverridden:s,onReset:c,onCommit:()=>l(f,H(t,r,f).variadic),onQueueCommit:()=>u(f,H(t,r,f).variadic),getRelatedArg:d},`${n}-${f}`))]}):null,{TextArea:os}=g,ss=({selectedNode:e,nodeDefs:t,nodeDef:n,nodeDefMap:r,usingGroups:a,allFiles:o,fieldEditDisabled:s,readOnly:c,canShowOverride:u,showNodeDoc:d,subtreeOriginal:f,onCommitName:m,onQueueCommitName:_,onCommitDesc:v,onQueueCommitDebug:y,onQueueCommitDisabled:b,onCommitPath:x,onQueueCommitPath:S,onResetDesc:C,onResetDebug:ee,onResetDisabled:w})=>{let{t:T}=A(),E=()=>{switch(e.resolutionError){case`missing-subtree`:return T(`node.subtreeMissing`,{path:e.data.path??``});case`invalid-subtree`:return T(`node.subtreeInvalid`,{path:e.data.path??``});case`cyclic-subtree`:return T(`node.subtreeCyclic`,{path:e.data.path??``});default:return null}};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(h.Item,{...Z(T(`node.id`)),children:(0,M.jsxs)(ae.Compact,{block:!0,className:`b3-node-identity-field`,children:[(0,M.jsx)(g,{disabled:!0,value:e.ref.displayId,title:e.ref.displayId,className:`b3-node-identity-id`,style:{width:`${Math.max(String(e.ref.displayId).length+2,5)}ch`}}),(0,M.jsx)(g,{disabled:!0,value:e.data.uuid,title:e.data.uuid,className:`b3-node-identity-uuid`,style:{width:`100%`}})]})}),(0,M.jsx)(h.Item,{...Z(T(`node.type`)),name:`type`,children:(0,M.jsx)(g,{disabled:!0})}),n?.group?.length?(0,M.jsx)(h.Item,{...Z(T(`node.group`)),name:`group`,rules:[{validator:async()=>{if(!n.group?.some(e=>a?.[e]))throw Error(T(`node.groupNotEnabled`,{group:n.group}))}}],children:(0,M.jsx)(i,{mode:`multiple`,disabled:!0,options:n.group.map(e=>({label:e,value:e}))})}):null,(0,M.jsx)(h.Item,{...Z(T(`node.children`)),name:`children`,rules:[{validator:async()=>{if(n?.children!==void 0&&n.children!==-1&&e.activeChildCount!==n.children)throw Error(T(`node.invalidChildren`))}}],children:(0,M.jsx)(g,{disabled:!0})}),(0,M.jsx)(h.Item,{...Z(T(`node.name`)),name:`name`,rules:[{validator:async(t,n)=>{let i=String(n??``).trim();if(!i)throw Error(T(`node.notFound`,{name:e.data.name}));if(i!==e.data.name&&!V(r,i))throw Error(T(`node.notFound`,{name:i||e.data.name}))}}],children:(0,M.jsx)(l,{disabled:c||s,options:t.map(e=>({label:`${e.name} (${e.desc})`,value:e.name})),filterOption:Qa,onBlur:m,onSelect:_})}),(0,M.jsx)(eo,{active:u&&(e.data.desc??``)!==(f?.desc??``),onReset:C,children:(0,M.jsx)(h.Item,{...Z(T(`node.desc`)),name:`desc`,children:(0,M.jsx)(os,{autoSize:{minRows:1},disabled:c||s,onBlur:v})})}),(0,M.jsx)(eo,{active:u&&!!e.data.debug!=!!f?.debug,onReset:ee,children:(0,M.jsx)(h.Item,{...no(T(`node.debug`)),name:`debug`,valuePropName:`checked`,children:(0,M.jsx)(p,{disabled:c||s&&!e.data.path,onChange:y})})}),(0,M.jsx)(eo,{active:u&&!!e.data.disabled!=!!f?.disabled,onReset:w,children:(0,M.jsx)(h.Item,{...no(T(`node.disabled`)),name:`disabled`,valuePropName:`checked`,children:(0,M.jsx)(p,{disabled:c||s&&!e.data.path,onChange:b})})}),(0,M.jsx)(h.Item,{...Z(T(`node.subtree`)),name:`path`,rules:[{validator:async()=>{let e=E();if(e)throw Error(e)}}],children:(0,M.jsx)(l,{disabled:c||s||e.subtreeNode,options:o.map(e=>({label:e,value:e})),filterOption:Qa,onBlur:x,onSelect:S})}),d&&n?.doc?(0,M.jsx)(Te,{className:`b3-markdown`,children:n.doc}):null]})},cs=({visible:e})=>{let{t}=A();return e?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:t(`node.jsonData`)}),(0,M.jsx)(h.Item,{name:`rawNodeJson`,className:`b3-node-json-form-item`,children:(0,M.jsx)(os,{autoSize:{minRows:12,maxRows:24},className:`b3-node-json-view`,readOnly:!0})})]}):null},ls=()=>{let e=J(),{t}=A(),{readOnly:r}=Za(),{nodeJsonVisible:i}=Me(),[a]=h.useForm(),{selectedNode:o,pendingSelectedNodeSnapshot:s,nodeDefs:c,usingVars:l,usingGroups:u,allFiles:d,checkExpr:f,nodeCheckDiagnostics:p,nodeDefMap:m,variableOptions:g,nodeDef:_,fieldEditDisabled:v,structuredArgs:y,hasStructuredArgs:b,shouldShowRawNodeJson:x,subtreeOriginal:C,canShowOverride:ee}=yo(a),w=(0,j.useRef)(null),T=Lo({readOnly:r,pendingSelectedNodeSnapshot:s,previousSelectedNode:w.current,nextSelectedNode:o}),E=o?Io(w.current,o):`replace`,te=()=>{a.setFieldValue(`args`,{}),a.setFieldValue(`inputSlots`,[]),a.setFieldValue(`outputSlots`,[])};if((0,j.useEffect)(()=>{if(!o){w.current=null;return}let e=Go(V(m,o.data.name),o,t(`node.unknownType`));E===`replace`?(a.resetFields(),te()):E===`patch-and-clear-scoped-fields`&&te(),a.setFieldsValue(e),w.current=o},[a,m,o,t]),(0,j.useEffect)(()=>{if(!o)return;let e=String(a.getFieldValue(`name`)??o.data.name).trim();if(!e||e===o.data.name)return;let n=Go(_,o,t(`node.unknownType`));a.setFieldValue(`args`,{}),a.setFieldValue(`inputSlots`,[]),a.setFieldValue(`outputSlots`,[]),a.resetFields([`type`,`children`,`group`]),a.setFieldsValue({type:n.type,children:n.children,group:n.group,args:n.args,inputSlots:n.inputSlots,outputSlots:n.outputSlots})},[a,_,o,t]),(0,j.useEffect)(()=>{if(!o||T)return;let e=window.setTimeout(()=>{a.validateFields({recursive:!0}).catch(()=>void 0)},100);return()=>window.clearTimeout(e)},[f,a,p,_,T,o,u,l]),!o)return null;let ne=x||i,{relatedArgForInput:re,commitName:ie,commitDesc:ae,commitDebug:oe,commitDisabled:se,commitPath:ce,isInputOverridden:D,isOutputOverridden:le,isArgOverridden:ue,resetInputField:de,resetOutputField:fe,resetArgField:O,resetArgToDefault:pe,resetDesc:k,resetDebug:me,resetDisabled:he,commitInputField:ge,commitOutputField:_e,commitArgField:ve}=es({form:a,runtime:e,selectedNode:o,nodeDef:_,subtreeOriginal:C,fieldEditDisabled:v,effectiveReadOnly:T,canShowOverride:ee}),ye=Ja(o.data.path,o.ref);return(0,M.jsx)(`div`,{className:`b3-inspector-content`,children:(0,M.jsxs)(h,{form:a,className:`b3-inspector-form`,labelCol:{flex:`110px`,xs:{flex:`110px`}},wrapperCol:{flex:`1 1 0%`,xs:{flex:`1 1 0%`}},labelAlign:`right`,requiredMark:!1,children:[(0,M.jsx)(ss,{selectedNode:o,nodeDefs:c,nodeDef:_,nodeDefMap:m,usingGroups:u,allFiles:d,fieldEditDisabled:v,readOnly:T,canShowOverride:ee,showNodeDoc:!ne,subtreeOriginal:C,onCommitName:ie,onQueueCommitName:ie,onCommitDesc:ae,onQueueCommitDebug:oe,onQueueCommitDisabled:se,onCommitPath:ce,onQueueCommitPath:ce,onResetDesc:k,onResetDebug:me,onResetDisabled:he}),(0,M.jsx)(as,{form:a,title:t(`node.inputVariable`),fieldName:`inputSlots`,slotDefs:ne?void 0:_?.input,usingVars:l,variableOptions:g,fieldEditDisabled:T||v,isOverridden:D,onReset:de,onCommit:ge,onQueueCommit:ge,getRelatedArg:re}),!ne&&b&&_?(0,M.jsx)(rs,{form:a,nodeDef:_,args:y,effectiveArgs:Ro(o),usingVars:l,checkExpr:f,nodeCheckDiagnostics:p,fieldEditDisabled:T||v,isOverridden:ue,onReset:O,onResetToDefault:pe,onCommit:ve,onQueueCommit:ve}):(0,M.jsx)(cs,{visible:ne}),(0,M.jsx)(as,{form:a,title:t(`node.outputVariable`),fieldName:`outputSlots`,slotDefs:ne?void 0:_?.output,usingVars:l,variableOptions:g,fieldEditDisabled:T||v,isOverridden:le,onReset:fe,onCommit:_e,onQueueCommit:_e}),ye?(0,M.jsx)(n,{type:`primary`,htmlType:`button`,block:!0,icon:(0,M.jsx)(S,{}),className:`b3-node-subtree-button`,onClick:()=>void e.controller.openSelectedSubtree(o.ref),children:t(`editSubtree`)}):null]},o.ref.instanceKey)})},{TextArea:us}=g,ds=e=>{switch(e){case`number`:return`symbol-numeric`;case`boolean`:return`symbol-boolean`;case`invalid`:return`error`;default:return`symbol-string`}},fs=({groupDefs:e,readOnly:t,commitFields:n,queueCommitFields:r})=>{let{t:a}=A();return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(h.Item,{...Z(a(`tree.name`)),name:`name`,children:(0,M.jsx)(g,{disabled:!0})}),(0,M.jsx)(h.Item,{...Z(a(`tree.desc`)),name:`desc`,children:(0,M.jsx)(us,{autoSize:{minRows:1},disabled:t,onBlur:()=>n([`desc`])})}),(0,M.jsx)(h.Item,{...Z(a(`tree.prefix`)),name:`prefix`,children:(0,M.jsx)(g,{disabled:t,onBlur:()=>n([`prefix`])})}),(0,M.jsx)(h.Item,{...no(a(`tree.export`)),name:`export`,valuePropName:`checked`,children:(0,M.jsx)(p,{disabled:t,onChange:()=>r([`export`])})}),e.length>0?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:a(`tree.group`)}),(0,M.jsx)(h.Item,{name:`group`,children:(0,M.jsx)(i,{mode:`multiple`,disabled:t,placeholder:a(`tree.group.placeholder`),options:e.map(e=>({label:e,value:e})),onChange:()=>r([`group`])})})]}):null]})},ps=({onFocusVariable:e,readOnly:t,commitVars:r,queueCommitVars:i})=>{let{t:a}=A();return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:a(`tree.vars.local`)}),(0,M.jsx)(h.List,{name:`vars`,children:(r,{add:o,remove:s},{errors:l})=>(0,M.jsxs)(`div`,{className:`b3-list-block`,children:[r.map(n=>(0,M.jsx)(h.Item,{name:n.name,style:{marginBottom:2},validateTrigger:[`onChange`,`onBlur`],rules:[{validator:async(e,t)=>{if(!t?.name||!wi(t.name))throw Error(a(`tree.vars.invalidName`));if(!t.desc?.trim())throw Error(a(`validation.variableDescriptionRequired`))}}],children:(0,M.jsx)(ro,{disabled:t,onSubmit:i,onRemove:()=>{s(n.name),i()},onFocusVariable:t?void 0:e})},n.key)),(0,M.jsxs)(h.Item,{style:{marginBottom:0,marginTop:4},children:[(0,M.jsx)(n,{type:`dashed`,block:!0,disabled:t,icon:(0,M.jsx)(c,{}),onClick:()=>o({name:``,desc:``}),children:a(`tree.vars.add`)}),(0,M.jsx)(h.ErrorList,{errors:l})]})]})})]})},ms=({rows:e,onOpenSubtree:t,onFocusVariable:n,readOnly:r})=>{let{t:i}=A();return e.length===0?null:(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:i(`tree.vars.subtree`)}),(0,M.jsx)(`div`,{className:`b3-list-block`,children:e.map(e=>(0,M.jsxs)(`div`,{className:`b3-decl-group`,children:[(0,M.jsxs)(u,{gap:4,align:`center`,className:`b3-subtree-path-row`,children:[(0,M.jsx)(h.Item,{style:{flex:1,marginBottom:0},children:(0,M.jsx)(g,{value:e.path,disabled:!0})}),r?null:(0,M.jsx)(S,{className:`b3-inline-action`,onClick:()=>t(e.path)})]}),(0,M.jsx)(`div`,{className:`b3-decl-vars`,children:e.vars.map(t=>(0,M.jsx)(ro,{value:t,disabled:!0,onFocusVariable:r?void 0:n},`${e.path}:${t.name}`))})]},e.path))})]})},hs=({allFiles:e,currentImportRefs:t,importDeclByPath:r,onFocusVariable:i,readOnly:a,commitImportRefs:o,queueCommitImportRefs:s})=>{let{t:d}=A();return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:d(`tree.vars.imports`)}),(0,M.jsx)(h.List,{name:`importRefs`,children:(f,{add:p,remove:m},{errors:g})=>(0,M.jsxs)(`div`,{className:`b3-list-block`,children:[f.map(n=>{let c=t[n.name]?.path?.trim()??``,d=c?r.get(c)??[]:[];return(0,M.jsxs)(`div`,{className:`b3-decl-group`,children:[(0,M.jsxs)(u,{gap:4,align:`center`,className:`b3-subtree-path-row`,children:[(0,M.jsx)(h.Item,{name:[n.name,`path`],style:{flex:1,marginBottom:0},children:(0,M.jsx)(l,{disabled:a,options:e.map(e=>({label:e,value:e})),filterOption:Qa,onBlur:o,onSelect:s})}),a?null:(0,M.jsx)(E,{className:`b3-inline-remove-compact`,onClick:()=>{m(n.name),s()}})]}),(0,M.jsx)(`div`,{className:`b3-decl-vars`,children:d.map(e=>(0,M.jsx)(ro,{value:e,disabled:!0,onFocusVariable:a?void 0:i},`${c}:${e.name}`))})]},n.key)}),(0,M.jsxs)(h.Item,{style:{marginBottom:0,marginTop:4},children:[(0,M.jsx)(n,{type:`dashed`,block:!0,disabled:a,icon:(0,M.jsx)(c,{}),onClick:()=>p({path:``}),children:d(`tree.import.add`)}),(0,M.jsx)(h.ErrorList,{errors:g})]})]})})]})},gs=({value:e,disabled:t=!1,onChange:n,onRemove:r,onSubmit:i})=>{let{t:a}=A(),[o,s]=j.useState(e??{key:``,value:``}),c=No(o.value),l=(()=>{switch(c){case`number`:return a(`tree.custom.type.number`);case`boolean`:return a(`tree.custom.type.boolean`);case`invalid`:return a(`tree.custom.type.invalid`);default:return a(`tree.custom.type.string`)}})();(0,j.useEffect)(()=>{s(e??{key:``,value:``})},[e]);let d=()=>{n?.(o),i?.()};return(0,M.jsxs)(u,{gap:4,align:`start`,className:`b3-var-row`,children:[(0,M.jsxs)(ae.Compact,{block:!0,className:`b3-var-row-compact`,children:[(0,M.jsx)(re,{title:l,children:(0,M.jsx)(`div`,{className:`b3-custom-type-badge is-${c}`,children:(0,M.jsx)(`span`,{className:`codicon codicon-${ds(c)}`,"aria-hidden":`true`})})}),(0,M.jsx)(g,{disabled:t,value:o.key,placeholder:a(`tree.custom.key`),onChange:e=>s(t=>({...t,key:e.target.value})),onBlur:d}),(0,M.jsx)(g,{disabled:t,value:o.value,placeholder:a(`tree.custom.value`),onChange:e=>s(t=>({...t,value:e.target.value})),onBlur:d})]}),t?(0,M.jsx)(`div`,{className:`b3-row-spacer`}):(0,M.jsx)(E,{className:`b3-inline-remove`,onClick:r})]})},_s=({form:e,readOnly:t,queueCommitCustomRows:r})=>{let{t:i}=A();return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(X,{children:i(`tree.custom`)}),(0,M.jsx)(h.List,{name:`customRows`,children:(a,{add:o,remove:s},{errors:l})=>(0,M.jsxs)(`div`,{className:`b3-list-block`,children:[a.map(n=>(0,M.jsx)(h.Item,{name:n.name,style:{marginBottom:2},validateTrigger:[`onChange`,`onBlur`],rules:[{validator:async(t,n)=>{let r=n?.key?.trim();if(!r)throw Error(i(`validation.customKeyRequired`));if((e.getFieldValue(`customRows`)??[]).filter(e=>e?.key?.trim()===r).length>1)throw Error(i(`validation.customKeyDuplicate`,{key:r}));try{Po([{key:r,value:n?.value??``}])}catch{throw Error(i(`validation.customValueInvalid`))}}}],children:(0,M.jsx)(gs,{disabled:t,onSubmit:r,onRemove:()=>{s(n.name),r()}})},n.key)),(0,M.jsxs)(h.Item,{style:{marginBottom:0,marginTop:4},children:[(0,M.jsx)(n,{type:`dashed`,block:!0,disabled:t,icon:(0,M.jsx)(c,{}),onClick:()=>o({key:``,value:``}),children:i(`tree.custom.add`)}),(0,M.jsx)(h.ErrorList,{errors:l})]})]})})]})},vs=()=>{let e=J(),t=Va(),{readOnly:n}=Za(),[r]=h.useForm(),{document:i,groupDefs:a,allFiles:o,variableUsageCount:s,currentImportRefs:c,subtreeRows:l,importDeclByPath:u}=bo(r);if((0,j.useEffect)(()=>{i&&r.setFieldsValue(Ko(i,s))},[i,r,s]),!i)return null;let d=n=>{if(t===`inspector-sidebar`){e.hostAdapter.requestFocusVariable([n]);return}e.controller.focusVariable([n])},f=t=>{e.controller.openSubtreePath(t)},p=async t=>{if(n)return;try{await r.validateFields(t,{recursive:!0})}catch{return}let a=r.getFieldsValue(!0),o=qo(Ko(i,s));switch(t[0]){case`desc`:o.desc=a.desc?.trim()||void 0;break;case`prefix`:o.prefix=a.prefix??``;break;case`export`:o.export=a.export!==!1;break;case`group`:o.group=a.group??[];break;case`vars`:o.variables.locals=(a.vars??[]).filter(e=>e.name?.trim()).map(e=>({name:e.name.trim(),desc:e.desc.trim()}));break;case`importRefs`:o.variables.imports=(a.importRefs??[]).map(e=>e.path?.trim()).filter(e=>!!e);break;case`customRows`:o.custom=Po(a.customRows??[]);break;default:return}Xo(e.controller.updateTreeMeta(o))},m=e=>{Jo(()=>{p(e)})};return(0,M.jsx)(`div`,{className:`b3-inspector-content`,children:(0,M.jsxs)(h,{form:r,className:`b3-inspector-form`,labelCol:{flex:`110px`,xs:{flex:`110px`}},wrapperCol:{flex:`1 1 0%`,xs:{flex:`1 1 0%`}},labelAlign:`right`,requiredMark:!1,children:[(0,M.jsx)(fs,{groupDefs:a,readOnly:n,commitFields:p,queueCommitFields:m}),(0,M.jsx)(ps,{onFocusVariable:d,readOnly:n,commitVars:()=>void p([`vars`]),queueCommitVars:()=>m([`vars`])}),(0,M.jsx)(ms,{rows:l,onOpenSubtree:f,onFocusVariable:d,readOnly:n}),(0,M.jsx)(hs,{allFiles:o,currentImportRefs:c,importDeclByPath:u,onFocusVariable:d,readOnly:n,commitImportRefs:()=>void p([`importRefs`]),queueCommitImportRefs:()=>m([`importRefs`])}),(0,M.jsx)(_s,{form:r,readOnly:n,queueCommitCustomRows:()=>m([`customRows`])})]})})},ys=()=>(0,M.jsxs)(`div`,{className:`b3-inspector-skeleton-row`,children:[(0,M.jsx)(s.Input,{active:!0,size:`small`,className:`b3-inspector-skeleton-label`}),(0,M.jsx)(s.Input,{active:!0,size:`small`,block:!0,className:`b3-inspector-skeleton-field`})]}),bs=()=>(0,M.jsx)(`div`,{className:`b3-inspector b3-inspector-skeleton`,children:(0,M.jsx)(xs,{})}),xs=()=>(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`div`,{className:`b3-inspector-header`,children:(0,M.jsx)(s.Input,{active:!0,size:`small`,className:`b3-inspector-skeleton-title`})}),(0,M.jsxs)(`div`,{className:`b3-inspector-content b3-inspector-skeleton-content`,children:[(0,M.jsx)(ys,{}),(0,M.jsx)(ys,{}),(0,M.jsx)(ys,{}),(0,M.jsx)(s.Input,{active:!0,size:`small`,className:`b3-inspector-skeleton-section`}),(0,M.jsx)(ys,{}),(0,M.jsx)(ys,{})]})]}),Ss=({pendingExternalContent:e,onReload:r,onDismiss:i})=>{let{t:a}=A();return(0,M.jsx)(t,{type:`warning`,showIcon:!0,title:a(`editor.externalChangeConflict`),className:`b3-inspector-banner`,action:(0,M.jsxs)(u,{gap:8,children:[(0,M.jsx)(n,{size:`small`,type:`primary`,disabled:!e,onClick:r,children:a(`editor.reloadFromDisk`)}),(0,M.jsx)(n,{size:`small`,onClick:i,children:a(`editor.dismissConflict`)})]})})},Cs=[{command:`behavior3.build`,titleKey:`inspector.embeddedToolbar.build`,codicon:`build`},{command:`behavior3.toggleEditorMode`,titleKey:`inspector.embeddedToolbar.toggleEditorMode`,codicon:`edit-code`},{command:`behavior3.toggleInspectorNodeJson`,titleKey:`inspector.embeddedToolbar.toggleInspectorNodeJson`,codicon:`code`},{command:`behavior3.createProject`,titleKey:`inspector.embeddedToolbar.createProject`,codicon:`new-folder`}],ws=()=>{let e=J(),{t}=A();return(0,M.jsx)(`div`,{className:`b3-inspector-header b3-inspector-header-embedded`,children:(0,M.jsxs)(`div`,{className:`b3-inspector-header-row b3-inspector-header-toolbar-row`,children:[(0,M.jsx)(b.Text,{className:`b3-inspector-header-title`,children:`BEHAVIOR3`}),(0,M.jsx)(u,{align:`center`,gap:2,className:`b3-inspector-toolbar-actions`,children:Cs.map(r=>(0,M.jsx)(re,{title:t(r.titleKey),children:(0,M.jsx)(n,{type:`text`,size:`small`,className:`b3-inspector-toolbar-button`,icon:(0,M.jsx)(`span`,{className:`codicon codicon-${r.codicon} b3-inspector-toolbar-codicon`,"aria-hidden":`true`}),"aria-label":t(r.titleKey),onClick:()=>e.hostAdapter.executeInspectorHostCommand(r.command)})},r.command))})]})})},Ts=()=>{let e=J(),{document:t,alertReload:n,pendingExternalContent:r,selectedNode:i,selectedNodeRef:a}=go(),o=Y(e=>e.settings.inspectorMode),s=qa({documentPresent:!!t,selectedNode:i,selectedNodeRef:a});return s===`skeleton`?(0,M.jsx)(bs,{}):(0,M.jsxs)(`div`,{className:`b3-inspector`,children:[o===`embedded`?(0,M.jsx)(ws,{}):null,n?(0,M.jsx)(Ss,{pendingExternalContent:r,onReload:()=>void e.controller.revertDocument(),onDismiss:()=>void e.controller.dismissReloadConflict()}):null,s===`node`?(0,M.jsx)(ls,{}):null,s===`node-pending`?(0,M.jsx)(`div`,{className:`b3-inspector-skeleton`,children:(0,M.jsx)(xs,{})}):null,s===`tree`?(0,M.jsx)(vs,{}):null]})},Es=e=>{if(!(typeof document>`u`))for(let t of[document.body,document.documentElement]){if(!t)continue;let n=getComputedStyle(t).getPropertyValue(e).trim();if(n)return n}},$=(e,t)=>{for(let t of e){let e=Es(t);if(e)return e}return t},Ds=(e,t)=>{let n=$(e,`${t}px`),r=Number.parseFloat(n);return Number.isFinite(r)?r:t},Os=e=>Math.max(26,Math.round(e*2+2)),ks=(e,t)=>{let n=e===`dark`,r=t===`inspector-sidebar`;return{elevatedBg:$(r?[`--vscode-sideBarSectionHeader-background`,`--vscode-editorWidget-background`,`--vscode-sideBar-background`]:[`--vscode-editorWidget-background`,`--vscode-sideBarSectionHeader-background`,`--vscode-sideBar-background`],n?`#161b22`:`#f6f8fa`),inputBg:$([`--vscode-input-background`,`--vscode-editorWidget-background`,`--vscode-sideBar-background`],n?`#161b22`:`#ffffff`),inputBorder:$([`--vscode-input-border`,`--vscode-panel-border`,`--vscode-sideBar-border`],n?`#30363d`:`#d0d7de`),overlayBg:$([`--vscode-editorWidget-background`,`--vscode-quickInput-background`,`--vscode-input-background`,`--vscode-sideBarSectionHeader-background`,`--vscode-sideBar-background`],n?`#161b22`:`#ffffff`),overlayBorder:$([`--vscode-editorWidget-border`,`--vscode-widget-border`,`--vscode-input-border`,`--vscode-panel-border`,`--vscode-sideBar-border`],n?`#30363d`:`#d0d7de`),panelBorder:$(r?[`--vscode-sideBarSectionHeader-border`,`--vscode-sideBar-border`,`--vscode-panel-border`,`--vscode-editorWidget-border`]:[`--vscode-sideBar-border`,`--vscode-panel-border`,`--vscode-editorWidget-border`],n?`#30363d`:`#d0d7de`),text:$([`--vscode-foreground`],n?`#e6edf3`:`#1f2328`),textSecondary:$([`--vscode-descriptionForeground`,`--vscode-foreground`],n?`#8b949e`:`#57606a`),textTertiary:$([`--vscode-disabledForeground`,`--vscode-descriptionForeground`],n?`#6e7681`:`#6e7781`),textLink:$([`--vscode-textLink-foreground`,`--vscode-focusBorder`,`--vscode-button-background`],n?`#58a6ff`:`#0969da`),focusBorder:$([`--vscode-focusBorder`,`--vscode-textLink-foreground`,`--vscode-button-background`],n?`#2f81f7`:`#0969da`),buttonBg:$([`--vscode-button-background`,`--vscode-textLink-foreground`],n?`#238636`:`#0969da`),buttonFg:$([`--vscode-button-foreground`,`--vscode-editor-background`],`#ffffff`),buttonHoverBg:$([`--vscode-button-hoverBackground`,`--vscode-button-background`],n?`#2ea043`:`#1f6feb`),listHoverBg:$([`--vscode-list-hoverBackground`,`--vscode-toolbar-hoverBackground`,`--vscode-editorHoverWidget-background`],n?`#30363d`:`#eaeef2`),listSelectedBg:$([`--vscode-list-activeSelectionBackground`,`--vscode-list-inactiveSelectionBackground`,`--vscode-button-background`],n?`#2f81f7`:`#0969da`),listSelectedFg:$([`--vscode-list-activeSelectionForeground`,`--vscode-button-foreground`,`--vscode-foreground`],`#ffffff`),error:$([`--vscode-errorForeground`,`--vscode-inputValidation-errorForeground`],n?`#f85149`:`#cf222e`),warning:$([`--vscode-editorWarning-foreground`,`--vscode-problemsWarningIcon-foreground`,`--vscode-notificationsWarningIcon-foreground`],n?`#d29922`:`#9a6700`)}},As=e=>`0 0 0 1px ${e}`,js=e=>`0 0 0 1px ${e}`,Ms=(e,t)=>{let n=ks(e,t),r=Ds([`--vscode-font-size`,`--vscode-editor-font-size`],13),i=Os(r);return{cssVar:{},algorithm:e===`dark`?te.darkAlgorithm:te.defaultAlgorithm,token:{fontSize:r,controlHeight:i,controlHeightSM:Math.max(22,i-4),controlHeightLG:i+4,colorPrimary:n.buttonBg,colorInfo:n.buttonBg,colorLink:n.textLink,colorError:n.error,colorWarning:n.warning,colorBgElevated:n.elevatedBg,colorBorder:n.panelBorder,colorBorderDisabled:n.panelBorder,colorBorderSecondary:n.panelBorder,colorText:n.text,colorTextSecondary:n.textSecondary,colorTextTertiary:n.textTertiary,colorTextPlaceholder:n.textTertiary,colorFillTertiary:n.listHoverBg,boxShadowSecondary:`none`,borderRadius:4},components:{Tree:{borderRadius:0},Tabs:{horizontalMargin:`0`},Layout:{headerColor:n.text,lightTriggerColor:n.text},Input:{colorBgContainer:n.inputBg,colorBorder:n.inputBorder,addonBg:n.elevatedBg,activeBg:n.inputBg,hoverBg:n.inputBg,hoverBorderColor:n.focusBorder,activeBorderColor:n.focusBorder,activeShadow:As(n.focusBorder),errorActiveShadow:As(n.error),warningActiveShadow:As(n.warning)},InputNumber:{colorBgContainer:n.inputBg,colorBorder:n.inputBorder,addonBg:n.elevatedBg,activeBg:n.inputBg,hoverBg:n.inputBg,hoverBorderColor:n.focusBorder,activeBorderColor:n.focusBorder,activeShadow:As(n.focusBorder),errorActiveShadow:As(n.error),warningActiveShadow:As(n.warning),handleBg:n.inputBg,handleBorderColor:n.panelBorder,handleHoverColor:n.focusBorder},Select:{colorBgContainer:n.inputBg,colorBgElevated:n.overlayBg,colorBorder:n.inputBorder,boxShadowSecondary:js(n.overlayBorder),selectorBg:n.inputBg,clearBg:n.inputBg,hoverBorderColor:n.focusBorder,activeBorderColor:n.focusBorder,activeOutlineColor:n.focusBorder,optionSelectedBg:n.listSelectedBg,optionSelectedColor:n.listSelectedFg,optionSelectedFontWeight:500,optionActiveBg:n.listHoverBg,multipleItemBg:n.listHoverBg,multipleItemBorderColor:n.panelBorder,multipleSelectorBgDisabled:n.elevatedBg,multipleItemColorDisabled:n.textTertiary,multipleItemBorderColorDisabled:n.panelBorder},Button:{defaultShadow:`none`,primaryShadow:`none`,dangerShadow:`none`,defaultColor:n.text,defaultBorderColor:n.panelBorder,defaultHoverBg:n.listHoverBg,defaultHoverColor:n.text,defaultHoverBorderColor:n.focusBorder,defaultActiveBg:n.listHoverBg,defaultActiveColor:n.text,defaultActiveBorderColor:n.focusBorder,primaryColor:n.buttonFg,solidTextColor:n.buttonFg,textTextColor:n.text,textTextHoverColor:n.text,textTextActiveColor:n.text,textHoverBg:n.listHoverBg,linkHoverBg:`transparent`},Form:{labelColor:n.textSecondary,labelRequiredMarkColor:n.error},Dropdown:{motionDurationMid:`0.1s`}}}},Ns=(e,t=0,n=`editor`)=>Ms(e,n),Ps=new Set([`textbox`,`combobox`,`searchbox`,`spinbutton`]),Fs=(e,t)=>typeof e.tagName==`string`&&e.tagName.toUpperCase()===t,Is=e=>{let t=e.getAttribute?.(`role`)?.toLowerCase();return!!(t&&Ps.has(t))},Ls=e=>!!e.closest?.([`.ant-select`,`.ant-select-dropdown`,`.ant-picker`,`.ant-picker-dropdown`,`.ant-input-number`,`.ant-input-affix-wrapper`,`.ant-mentions`,`.ant-mentions-dropdown`].join(`,`)),Rs=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return Fs(t,`INPUT`)||Fs(t,`TEXTAREA`)||!!t.isContentEditable||Is(t)||Ls(t)},zs=()=>({selectedNode:Ua(e=>e.selectedNodeSnapshot),selectedNodeRef:Ua(e=>e.selectedNodeRef),searchOpen:Wa(e=>e.search.open),rootStableId:Ha(e=>e.persistedTree?.root.uuid??null)}),Bs=(...e)=>e.filter(Boolean).join(` `),Vs=({focusToken:e,onClose:t})=>{let r=J(),{t:i}=A(),a=Wa(e=>e.search),o=(0,j.useRef)(null);if((0,j.useEffect)(()=>{if(!a.open)return;let e=requestAnimationFrame(()=>{o.current?.focus()});return()=>cancelAnimationFrame(e)},[e,a.mode,a.open]),!a.open)return null;let s=()=>{r.controller.updateSearch(a.query)};return(0,M.jsx)(u,{className:`b3-search-overlay`,children:(0,M.jsxs)(u,{className:`b3-search-box`,children:[(0,M.jsx)(g,{ref:o,size:`small`,className:`b3-search-input`,value:a.query,placeholder:a.mode===`id`?i(`jumpNode`):i(`searchNode`),onChange:e=>{r.controller.updateSearch(e.target.value)},onKeyDownCapture:e=>{e.code===I.Enter?(e.preventDefault(),r.controller.nextSearchResult()):(e.ctrlKey||e.metaKey)&&e.code===`KeyF`?(e.preventDefault(),r.controller.openSearch(`content`)):(e.ctrlKey||e.metaKey)&&e.code===`KeyG`&&(e.preventDefault(),r.controller.openSearch(`id`)),e.stopPropagation()},suffix:(0,M.jsxs)(u,{gap:2,className:`b3-search-suffix`,children:[a.mode===`id`?null:(0,M.jsx)(n,{type:`text`,size:`small`,className:Bs(`b3-search-filter`,a.caseSensitive&&`b3-search-filter-selected`),icon:(0,M.jsx)(De,{style:{width:`18px`,height:`18px`}}),onClick:()=>{aa(r.graphUiStore,{caseSensitive:!a.caseSensitive}),s()}}),(0,M.jsx)(n,{type:`text`,size:`small`,className:Bs(`b3-search-filter`,a.focusOnly&&`b3-search-filter-selected`),icon:(0,M.jsx)(Ce,{}),onClick:()=>{aa(r.graphUiStore,{focusOnly:!a.focusOnly}),s()}})]})},a.mode),(0,M.jsx)(`div`,{className:`b3-search-counter`,children:a.results.length>0?`${a.index+1}/${a.results.length}`:``}),a.mode===`id`?null:(0,M.jsx)(n,{icon:(0,M.jsx)(_,{}),type:`text`,size:`small`,style:{width:`30px`},disabled:a.results.length===0,onClick:()=>void r.controller.nextSearchResult()}),a.mode===`id`?null:(0,M.jsx)(n,{icon:(0,M.jsx)(w,{}),type:`text`,size:`small`,style:{width:`30px`},disabled:a.results.length===0,onClick:()=>void r.controller.prevSearchResult()}),(0,M.jsx)(n,{icon:(0,M.jsx)(v,{}),type:`text`,size:`small`,style:{width:`30px`},onClick:()=>{oa(r.graphUiStore),r.controller.updateSearch(``),t?.()}})]})})},Hs={[I.Copy]:`copy`,[I.Replace]:`replace`,[I.Paste]:`paste`,[I.Insert]:`insert`,[I.Enter]:`insert`,[I.Delete]:`delete`,[I.Backspace]:`delete`,[I.Undo]:`undo`,[I.Redo]:`redo`},Us=()=>{let e=J(),{message:t}=r.useApp(),{t:n}=A(),i=e.graphAdapter,a=(0,j.useRef)(null),o=(0,j.useRef)(null),[s,c]=(0,j.useState)(0),{selectedNode:l,selectedNodeRef:d,searchOpen:f,rootStableId:p}=zs(),m=!!(l?.subtreeNode||l?.data.path),h=!!(l&&p&&d?.structuralStableId&&d.structuralStableId===p),g=Ja(l?.data.path,d),_=(0,j.useMemo)(()=>{let e=(e,t)=>(0,M.jsxs)(u,{justify:`space-between`,gap:24,style:{minWidth:180},children:[(0,M.jsx)(`span`,{children:e}),(0,M.jsx)(`span`,{children:t??``})]}),t=e=>(0,M.jsx)(`span`,{className:`codicon codicon-${e} b3-context-menu-icon`,"aria-hidden":`true`}),r=(t,n,r,i,a)=>({key:t,icon:r,label:e(n,i),disabled:a});return[r(`copy`,n(`copy`),t(`copy`),P?`⌘+C`:`Ctrl+C`,!l),r(`paste`,n(`paste`),t(`files`),P?`⌘+V`:`Ctrl+V`,!l||m),r(`replace`,n(`replace`),t(`replace-all`),P?`⇧+⌘+V`:`Ctrl+Shift+V`,!l||m),r(`insert`,n(`insertNode`),t(`insert`),P?`⏎`:`Enter`,!l||m),r(`delete`,n(`deleteNode`),t(`trash`),P?`⌫`:`Delete`,!l||l.subtreeNode||h),g?r(`openSubtree`,n(`editSubtree`),t(`folder-opened`)):null,r(`saveAsSubtree`,n(`saveAsSubtree`),t(`save-as`),void 0,!l||m||h)].filter(Boolean)},[g,h,l,m,n]),v=async t=>{switch(t){case`copy`:await e.controller.copyNode();break;case`paste`:await e.controller.pasteNode();break;case`replace`:await e.controller.replaceNode();break;case`insert`:await e.controller.insertNode();break;case`delete`:await e.controller.deleteNode();break;case`openSubtree`:await e.controller.openSelectedSubtree();break;case`saveAsSubtree`:await e.controller.saveSelectedAsSubtree();break;default:break}};return Be([I.SearchNode,I.JumpNode],null,(t,n)=>{Rs(t.target)||(t.preventDefault(),t.stopPropagation(),c(e=>e+1),e.controller.openSearch(n===I.JumpNode?`id`:`content`))}),Be([I.Copy,I.Replace,I.Paste,I.Insert,I.Enter,I.Delete,I.Backspace,I.Undo,I.Redo],null,(t,n)=>{if(Rs(t.target))return;t.preventDefault(),t.stopPropagation();let r=Hs[n];if(r)switch(r){case`copy`:e.controller.copyNode();break;case`paste`:e.controller.pasteNode();break;case`replace`:e.controller.replaceNode();break;case`insert`:e.controller.insertNode();break;case`delete`:e.controller.deleteNode();break;case`undo`:e.controller.undo();break;case`redo`:e.controller.redo();break;default:break}}),(0,j.useEffect)(()=>{let n=a.current;if(n)return i.mount(n,{onCanvasSelected:()=>void e.controller.selectTree(),onNodeSelected:(t,n)=>void e.controller.selectNode(t.instanceKey,{force:n?.force,clearVariableFocus:n?.clearVariableFocus}),onNodeDoubleClicked:t=>void e.controller.openSelectedSubtree(t),onVariableHotspotClicked:(t,n)=>void e.controller.focusVariable(n.variableNames),onDropCommitted:async n=>{try{await e.controller.performDrop(n)}catch(e){t.error(e instanceof Error?e.message:String(e))}}}),()=>i.unmount()},[i,t,e.controller]),(0,M.jsxs)(`div`,{ref:o,className:`b3-graph-shell`,tabIndex:-1,children:[f?(0,M.jsx)(Vs,{focusToken:s,onClose:()=>o.current?.focus({preventScroll:!0})}):null,(0,M.jsx)(ne,{menu:{items:_,onClick:({key:e})=>void v(String(e))},trigger:[`contextMenu`],children:(0,M.jsx)(`div`,{ref:a,className:`b3-graph`,tabIndex:-1})})]})},Ws=()=>{let e=J(),t=r.useApp();return(0,j.useLayoutEffect)(()=>(e.appHooks.bind({message:t.message,modal:t.modal,notification:t.notification}),()=>{e.appHooks.reset()}),[t.message,t.modal,t.notification,e]),null},{Content:Gs,Sider:Ks}=x,qs=()=>{let e=J(),{message:t}=r.useApp(),{toggleNodeJsonVisible:n}=Me(),{t:i}=A(),{theme:a,language:o,hasDocument:s}=Ga(),c=Y(e=>e.settings.inspectorMode);return(0,j.useEffect)(()=>{let r=t=>{ka(e.workspaceStore,t)},i=e=>{let n=e.message.trim()||N.t(e.success?`build.success`:`build.failed`);e.success?t.success(n):t.error(n)},a=e.hostAdapter.connect(t=>{switch(t.type){case`init`:(async()=>{await Le(t.payload.settings.language),await e.controller.initFromHost(t.payload)})();return;case`documentSnapshotChanged`:e.controller.applyDocumentSnapshot(t.snapshot);return;case`focusVariable`:e.controller.focusVariable(t.names);return;case`focusNode`:e.controller.revealNode(t.target);return;case`themeChanged`:r(t.theme),e.controller.refreshGraph({preserveSelection:!0});return;case`settingLoaded`:(async()=>{t.settings?.language&&await Le(t.settings.language),Aa(e.workspaceStore,t.settings??{}),await e.controller.applyNodeDefs(t.nodeDefs)})();return;case`varDeclLoaded`:e.controller.applyHostVars(t.payload);return;case`subtreeFileChanged`:e.controller.markSubtreeChanged();return;case`inspectorContextCleared`:return;case`toggleInspectorNodeJson`:if(!e.selectionStore.getState().selectedNodeRef)return;n();return;case`buildResult`:i(t);return}});return e.hostAdapter.sendReady(),a},[t,e]),(0,j.useEffect)(()=>{let t=()=>{if(typeof document>`u`||document.visibilityState!==`visible`)return;let t=e.graphUiStore.getState().selectionVisualHint?.selectedNodeKey??e.selectionStore.getState().selectedNodeKey;if(t){e.controller.selectNode(t,{force:!0});return}e.selectionStore.getState().selectedTree&&e.controller.selectTree()},n=()=>{document.visibilityState===`visible`&&t()};return window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,n),()=>{window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,n)}},[e]),(0,j.useLayoutEffect)(()=>{Ea(a)},[a]),(0,j.useEffect)(()=>{Le(o)},[o]),(0,M.jsx)(x,{className:`b3-shell`,children:(0,M.jsxs)(x,{className:`b3-body`,children:[(0,M.jsx)(Gs,{className:`b3-content`,children:s?(0,M.jsx)(Us,{}):(0,M.jsx)(u,{className:`b3-loading`,justify:`center`,align:`center`,children:(0,M.jsx)(b.Text,{type:`secondary`,children:i(`editor.loading`)})})}),c===`embedded`?(0,M.jsx)(Ks,{width:380,className:`b3-sider b3-sider-embedded`,children:(0,M.jsx)(Xa,{children:(0,M.jsx)(Ts,{})})}):null]})})},Js=()=>{let{theme:e,language:t,themeVersion:n,webviewKind:i}=Ka();return(0,M.jsx)(y,{locale:Fa(t),theme:Ns(e,n,i),children:(0,M.jsx)(r,{style:{height:`100%`},children:(0,M.jsxs)(je,{children:[(0,M.jsx)(Ws,{}),(0,M.jsx)(qs,{})]})})})},Ys=e=>{e.documentStore.setState(()=>xi()),e.selectionStore.setState(()=>Ca()),e.graphUiStore.setState(()=>sa()),e.workspaceStore.setState(e=>({...ja(),settings:e.settings,themeVersion:e.themeVersion}))},Xs=()=>{let e=document.activeElement;e instanceof HTMLElement&&e!==document.body&&e.blur()},Zs=async(e,t)=>{await Le(t.settings.language),await e.controller.initFromHost(t)},Qs=(e,t)=>{e.workspaceStore.setState(e=>({...e,usingVars:t.usingVars,allFiles:t.allFiles??e.allFiles,importDecls:t.importDecls,subtreeDecls:t.subtreeDecls}))},$s=e=>{let{selectedNodeRef:t}=e.selectionStore.getState();return t?{kind:`node`,ref:t}:{kind:`tree`}},ec=e=>{e.graphUiStore.setState(e=>({...e,activeVariableNames:[]})),Xs(),window.setTimeout(()=>{Xs(),window.setTimeout(()=>{Xs()},0)},0)},tc=(e,t)=>!R($s(e),t),nc=()=>{let e=J(),{toggleNodeJsonVisible:t}=Me(),n=(0,j.useRef)(null);return(0,j.useEffect)(()=>{let r=t=>{let n=t??e.workspaceStore.getState().filePath,{selectedNodeRef:r,selectedNodeSnapshot:i}=e.selectionStore.getState();!n||!r||!i||lo(n,r,i)},i=e.hostAdapter.connect(i=>{switch(i.type){case`init`:(async()=>{n.current=i.payload.filePath;let t=tc(e,i.payload.selection);await Zs(e,i.payload),r(i.payload.filePath),t&&ec(e)})();return;case`documentSnapshotChanged`:(async()=>{let t=tc(e,i.snapshot.selection);await e.controller.applyDocumentSnapshot(i.snapshot),r(n.current),t&&ec(e)})();return;case`varDeclLoaded`:Qs(e,i.payload);return;case`settingLoaded`:(async()=>{i.settings?.language&&await Le(i.settings.language),e.workspaceStore.setState(e=>({...e,nodeDefs:i.nodeDefs,groupDefs:Cr(i.nodeDefs),settings:{...e.settings,...i.settings}}))})();return;case`themeChanged`:e.workspaceStore.setState(e=>({...e,settings:{...e.settings,theme:i.theme},themeVersion:e.themeVersion+1}));return;case`inspectorContextCleared`:n.current=null,Ys(e);return;case`toggleInspectorNodeJson`:t();return;case`subtreeFileChanged`:case`buildResult`:return}});return e.hostAdapter.sendReady(),i},[e]),null},rc=()=>{let e=J(),{t}=A(),n=Y(e=>e.settings.theme),r=Y(e=>e.settings.inspectorMode),i=Ha(e=>e.persistedTree!==null);return(0,j.useLayoutEffect)(()=>{Ea(n)},[n]),(0,j.useEffect)(()=>{let t=t=>{if(t.defaultPrevented||!i||t.isComposing)return;if((t.metaKey||t.ctrlKey)&&!t.altKey&&t.code===`KeyS`){t.preventDefault(),t.stopPropagation(),(async()=>{await Qo(),await e.controller.saveDocument()})();return}let n=(t.metaKey||t.ctrlKey)&&!t.altKey&&!t.shiftKey&&t.code===`KeyZ`,r=(t.metaKey||t.ctrlKey)&&!t.altKey&&(P&&t.shiftKey&&t.code===`KeyZ`||!P&&!t.shiftKey&&t.code===`KeyY`);!n&&!r||Rs(t.target)||(t.preventDefault(),t.stopPropagation(),(async()=>{await Qo(),n?await e.controller.undo():await e.controller.redo()})())};return window.addEventListener(`keydown`,t,!0),()=>{window.removeEventListener(`keydown`,t,!0)}},[i,e]),r===`embedded`?(0,M.jsx)(u,{className:`b3-inspector-empty`,justify:`center`,align:`center`,children:(0,M.jsx)(b.Text,{type:`secondary`,children:t(`inspector.embeddedModeNotice`)})}):i?(0,M.jsx)(Xa,{children:(0,M.jsx)(Ts,{})}):(0,M.jsx)(u,{className:`b3-inspector-empty`,justify:`center`,align:`center`,children:(0,M.jsx)(b.Text,{type:`secondary`,children:t(`inspector.noActiveDocument`)})})},ic=()=>{let{theme:e,language:t,themeVersion:n,webviewKind:i}=Ka();return(0,M.jsx)(y,{locale:Fa(t),theme:Ns(e,n,i),children:(0,M.jsx)(r,{style:{height:`100%`},children:(0,M.jsxs)(je,{children:[(0,M.jsx)(Ws,{}),(0,M.jsx)(nc,{}),(0,M.jsx)(rc,{})]})})})},ac=({runtime:e})=>(0,M.jsx)(j.StrictMode,{children:(0,M.jsx)(Ba,{runtime:e,children:(0,M.jsx)(ic,{})})}),oc=Oa(),sc=Ra(oc);document.documentElement.setAttribute(`data-webview-kind`,oc),document.body?.setAttribute(`data-webview-kind`,oc),Ea(Ta()),ke.createRoot(document.getElementById(`root`)).render(oc===`inspector-sidebar`?(0,M.jsx)(ac,{runtime:sc}):(0,M.jsx)(j.StrictMode,{children:(0,M.jsx)(Ba,{runtime:sc,children:(0,M.jsx)(Js,{})})}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
html,body,#root{width:100%;height:100%;margin:0;padding:0}body{color:var(--ant-color-text);overflow:hidden}body[data-webview-kind=inspector-sidebar]{--b3-inspector-sidebar-min-width:300px;--b3-inspector-form-label-width:110px}body[data-theme=dark]{--b3-panel-border:var(--vscode-sideBar-border,var(--vscode-panel-border,#30363d));--b3-panel-title:var(--vscode-sideBarTitle-foreground,var(--vscode-foreground,#e6edf3));--b3-graph-bg:var(--vscode-editor-background,#010409);--b3-graph-edge:#a3b1bf;--b3-text-muted:var(--vscode-descriptionForeground,#8b949e);--b3-filter-hover-bg:var(--vscode-list-hoverBackground,#30363d);--b3-filter-selected-bg:var(--vscode-list-activeSelectionBackground,#2f81f7);--b3-filter-selected-hover-bg:var(--vscode-list-inactiveSelectionBackground,var(--vscode-list-activeSelectionBackground,#388bfd));--b3-search-bg:var(--vscode-editorWidget-background,var(--vscode-input-background,#161b22));--b3-search-border-accent:var(--vscode-focusBorder,#f78166);--b3-search-shadow:#0000005c;--b3-override-bar:#d39a21;--b3-node-content-bg:#fff;--b3-node-text:#111827;--b3-node-muted:#4b5563;--b3-node-divider:#666;--b3-node-highlight-bg:#0d1117;--b3-node-highlight-text:#fff;--b3-node-gray-fill:#0d1117;--b3-node-gray-border:#30363d;--b3-node-gray-rail:#30363d;--b3-node-gray-text:#666;--b3-node-id-text:var(--vscode-editorLineNumber-activeForeground,#fff);--b3-node-id-stroke:#000;--b3-node-selection-base:var(--vscode-editor-background,#24303d);--b3-node-selection-strength:58%;--b3-node-focus-ring:#ffab0038;--b3-node-focus-color:var(--vscode-focusBorder,#ffab00);--b3-node-focus-opacity:.45;--b3-node-variable-hover-bg:var(--vscode-list-hoverBackground,#1769dd14);--b3-node-variable-active-hover-bg:#ffffff24;--b3-subtree-outline:var(--vscode-descriptionForeground,var(--vscode-panel-border,#a5b1be));--b3-warning-text:var(--vscode-errorForeground,#b42318);--b3-drop-before:var(--vscode-editorWarning-foreground,#faad14);--b3-drop-child:var(--vscode-errorForeground,#ff4d4f);--b3-drag-source:var(--vscode-list-dropBackground,orange);--b3-collapse-bg:var(--vscode-editorWidget-background,#fff);--b3-collapse-border:var(--vscode-panel-border,#666);--b3-collapse-text:var(--vscode-descriptionForeground,#666)}body[data-theme=light]{--b3-panel-border:var(--vscode-sideBar-border,var(--vscode-panel-border,#d0d7de));--b3-panel-title:var(--vscode-sideBarTitle-foreground,var(--vscode-foreground,#1f2328));--b3-graph-bg:var(--vscode-editor-background,#f6f8fa);--b3-graph-edge:#a3b1bf;--b3-text-muted:var(--vscode-descriptionForeground,#57606a);--b3-filter-hover-bg:var(--vscode-list-hoverBackground,#eaeef2);--b3-filter-selected-bg:var(--vscode-list-activeSelectionBackground,#0969da);--b3-filter-selected-hover-bg:var(--vscode-list-inactiveSelectionBackground,var(--vscode-list-activeSelectionBackground,#1f6feb));--b3-search-bg:var(--vscode-editorWidget-background,var(--vscode-input-background,#fff));--b3-search-border-accent:var(--vscode-focusBorder,#0969da);--b3-search-shadow:#1f232826;--b3-override-bar:#d39a21;--b3-node-content-bg:#fff;--b3-node-text:#111827;--b3-node-muted:#4b5563;--b3-node-divider:#666;--b3-node-highlight-bg:#0d1117;--b3-node-highlight-text:#fff;--b3-node-gray-fill:#0d1117;--b3-node-gray-border:#30363d;--b3-node-gray-rail:#30363d;--b3-node-gray-text:#666;--b3-node-id-text:var(--vscode-editorLineNumber-activeForeground,var(--vscode-foreground,#1f2328));--b3-node-id-stroke:#fff;--b3-node-selection-base:var(--vscode-editor-background,#fff);--b3-node-selection-strength:38%;--b3-node-focus-ring:#bf870047;--b3-node-focus-color:var(--vscode-focusBorder,#9a6700);--b3-node-focus-opacity:.5;--b3-node-variable-hover-bg:var(--vscode-list-hoverBackground,#0969da1a);--b3-node-variable-active-hover-bg:#ffffff2e;--b3-subtree-outline:var(--vscode-descriptionForeground,var(--vscode-panel-border,#6e7781));--b3-warning-text:var(--vscode-errorForeground,#cf222e);--b3-drop-before:var(--vscode-editorWarning-foreground,#9a6700);--b3-drop-child:var(--vscode-errorForeground,#cf222e);--b3-drag-source:var(--vscode-list-dropBackground,#fb8500);--b3-collapse-bg:var(--vscode-editorWidget-background,#fff);--b3-collapse-border:var(--vscode-panel-border,#8c959f);--b3-collapse-text:var(--vscode-descriptionForeground,#57606a)}body[data-webview-kind=inspector-sidebar][data-theme=dark]{--b3-panel-border:var(--vscode-sideBarSectionHeader-border,var(--vscode-sideBar-border,#2b2b2b));--b3-panel-title:var(--vscode-sideBarTitle-foreground,var(--vscode-foreground,#ccc))}body[data-webview-kind=inspector-sidebar][data-theme=light]{--b3-panel-border:var(--vscode-sideBarSectionHeader-border,var(--vscode-sideBar-border,#e5e5e5));--b3-panel-title:var(--vscode-sideBarTitle-foreground,var(--vscode-foreground,#3c3c3c))}.b3-shell{height:100%}.b3-body{flex-direction:row;flex:1;min-height:0;display:flex}.b3-content{background:var(--b3-graph-bg);flex:1 1 0;width:0;min-height:0;padding:0;overflow:hidden}.b3-sider{border-left:1px solid var(--b3-panel-border);overflow:hidden}.b3-sider-embedded.ant-layout-sider{max-width:460px;height:100%;background:0 0!important;min-width:320px!important}.b3-sider-embedded>.ant-layout-sider-children{background:0 0;height:100%}.b3-inspector{--b3-inspector-font-size:var(--vscode-font-size,13px);--b3-inspector-control-height:max(26px, calc(var(--b3-inspector-font-size) * 2 + 2px));--ant-font-size:var(--b3-inspector-font-size);height:100%;font-size:var(--b3-inspector-font-size);flex-direction:column;display:flex}.b3-inspector-empty{text-align:center;height:100%;font-size:var(--vscode-font-size,13px);padding:20px 16px}.b3-inspector-header{border-bottom:1px solid var(--b3-panel-border);padding:12px}.b3-inspector-header-row{min-width:0}.b3-inspector-header-embedded{padding:8px 10px 8px 12px}.b3-inspector-header-toolbar-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.b3-inspector-header-title.ant-typography{letter-spacing:.04em;min-width:0;margin:0}.b3-inspector-toolbar-actions{flex:none}.b3-inspector-toolbar-button.ant-btn{width:24px;min-width:24px;height:24px;color:var(--vscode-icon-foreground,var(--ant-color-icon));padding:0}.b3-inspector-toolbar-codicon{justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.b3-inspector-toolbar-button.ant-btn:not(:disabled):not(.ant-btn-disabled):hover,.b3-inspector-toolbar-button.ant-btn:not(:disabled):not(.ant-btn-disabled):focus-visible{background:var(--vscode-toolbar-hoverBackground,var(--ant-color-fill-tertiary));color:var(--vscode-icon-foreground,var(--ant-color-icon))}.b3-inspector-banner{margin:12px 12px 0}.b3-inspector-header .ant-typography{color:var(--b3-panel-title);font-size:18px;font-weight:600;line-height:1.35}.b3-inspector-content{--b3-inspector-content-padding:16px;min-height:0;padding:var(--b3-inspector-content-padding);flex:1;overflow:auto}.b3-inspector-skeleton-content{flex-direction:column;gap:10px;display:flex}.b3-inspector-skeleton-title.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-title .ant-skeleton-input{width:120px}.b3-inspector-skeleton-row{grid-template-columns:var(--b3-inspector-form-label-width,110px) minmax(0, 1fr);align-items:center;column-gap:8px;display:grid}.b3-inspector-skeleton-label.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-label .ant-skeleton-input{justify-self:end;width:72px}.b3-inspector-skeleton-field.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-field .ant-skeleton-input{width:100%}.b3-inspector-skeleton-section.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-section .ant-skeleton-input{width:96px;margin-top:4px}.b3-inspector-form .ant-form-item{margin-bottom:6px}.b3-inspector-form .ant-form-item-label{min-width:var(--b3-inspector-form-label-width,110px);max-width:var(--b3-inspector-form-label-width,110px);flex:0 0 var(--b3-inspector-form-label-width,110px);padding-right:0}.b3-inspector-form .ant-form-item-label>label{width:100%;height:auto;min-height:var(--b3-inspector-control-height);color:var(--ant-color-text);justify-content:flex-end;align-items:flex-start;line-height:1.35}.b3-form-label{width:100%;min-width:0;max-width:100%;padding-top:calc((var(--b3-inspector-control-height) - 1.35em) / 2);justify-content:flex-end;align-items:flex-start;display:inline-flex}.b3-form-label-text{text-align:right;white-space:normal;word-break:break-word;overflow-wrap:anywhere;flex:auto;min-width:0}.b3-form-required-mark{color:var(--ant-color-error);margin-right:4px}.b3-form-label-colon{white-space:nowrap;flex:none;padding-left:2px}.b3-inspector-form .ant-form-item-control{min-width:0}.b3-inspector-form .ant-form-item-control-input,.b3-inspector-form .ant-form-item-control-input-content{width:100%;min-width:0}.b3-node-identity-field.ant-space-compact{width:100%}.b3-node-identity-field .ant-space-compact-item,.b3-node-identity-field .b3-node-identity-uuid{min-width:0}.b3-node-identity-field .b3-node-identity-id{flex:none}.b3-node-identity-field .b3-node-identity-uuid{flex:auto}.b3-node-identity-field .ant-input[disabled]{color:var(--ant-color-text-tertiary);-webkit-text-fill-color:var(--ant-color-text-tertiary);background:var(--ant-color-bg-container-disabled)}.b3-node-identity-field .b3-node-identity-id.ant-input[disabled]{text-align:center;background:var(--ant-color-fill-tertiary)}.b3-node-json-form-item .ant-form-item-row{display:block}.b3-node-json-view.ant-input{font-family:var(--vscode-editor-font-family,ui-monospace, "SFMono-Regular", "Cascadia Mono", "Fira Code", monospace);font-size:var(--vscode-editor-font-size,var(--b3-inspector-font-size));resize:vertical;line-height:1.5}.b3-inspector-form .ant-form-item-explain{word-break:break-word;font-size:1em}.b3-inspector-form .b3-section-divider.ant-divider-horizontal.ant-divider-with-text{margin-bottom:0}.b3-inspector-form .b3-section-divider+.ant-form-item,.b3-inspector-form .b3-section-divider+.b3-list-block,.b3-inspector-form .b3-section-divider+.b3-override-bar{margin-top:6px}.b3-section-title{margin:0;font-size:1em;font-weight:600}.b3-inspector-form .ant-select,.b3-inspector-form .ant-select-auto-complete,.b3-inspector-form .ant-input-number{width:100%}.b3-inspector-form .ant-select-disabled .ant-select-input,.b3-inspector-form .ant-select-disabled .ant-select-content-value,.b3-inspector-form .ant-select-disabled .ant-select-selection-item{color:var(--ant-color-text-tertiary)}.b3-list-block{flex-direction:column;row-gap:0;display:flex}.b3-inspector .ant-btn.ant-btn-dashed{background:0 0}.b3-inspector .ant-btn.ant-btn-dashed:not(:disabled):not(.ant-btn-disabled):hover,.b3-inspector .ant-btn.ant-btn-dashed:not(:disabled):not(.ant-btn-disabled):focus-visible{background:var(--ant-color-fill-tertiary)}.b3-decl-group{margin-bottom:5px}.b3-subtree-path-row{margin-bottom:6px}.b3-decl-vars{flex-direction:column;row-gap:2px;display:flex}.b3-var-row,.b3-var-row-compact{width:100%}.b3-var-counter{cursor:pointer;min-width:40px;max-width:40px;color:var(--ant-color-text-secondary);background:var(--ant-color-fill-tertiary);border:1px solid var(--ant-color-border);border-right:0;border-radius:6px 0 0 6px;justify-content:flex-start;align-items:center;gap:4px;padding:0 6px 0 5px;display:flex}.b3-custom-type-badge{min-width:40px;max-width:40px;color:var(--ant-color-text-secondary);background:var(--ant-color-fill-tertiary);border:1px solid var(--ant-color-border);cursor:help;-webkit-user-select:none;user-select:none;letter-spacing:.04em;border-right:0;border-radius:6px 0 0 6px;flex:0 0 40px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:flex}.b3-custom-type-badge .codicon{font-size:16px}.b3-custom-type-badge.is-string{color:var(--ant-color-blue-3)}.b3-custom-type-badge.is-number{color:var(--ant-color-gold-3)}.b3-custom-type-badge.is-boolean{color:var(--ant-color-green-3)}.b3-custom-type-badge.is-invalid{color:var(--ant-color-error)}.b3-inline-remove{margin-top:calc((var(--b3-inspector-control-height) - 1em) / 2);color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-remove:hover{color:var(--ant-color-error)}.b3-inline-remove-compact{color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-remove-compact:hover{color:var(--ant-color-error)}.b3-inline-action{color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-action:hover{color:var(--ant-color-text)}.b3-field-with-action{width:100%}.b3-field-with-action-control{flex:auto;min-width:0}.b3-inline-reset{margin-top:calc((var(--b3-inspector-control-height) - 1em) / 2);color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-reset:hover{color:var(--ant-color-text)}.b3-row-spacer{width:14px}.b3-node-subtree-button{margin-top:12px}.b3-override-bar{position:relative}.b3-override-rail{top:0;left:calc(-1 * var(--b3-inspector-content-padding,16px));cursor:pointer;background:var(--b3-override-bar);border-radius:0;width:6px;position:absolute;bottom:0}.b3-markdown{color:var(--ant-color-text-secondary);word-break:break-word;margin-bottom:12px;padding:0 4px;font-size:13px}.b3-markdown code{background:color-mix(in srgb, var(--ant-color-fill) 72%, transparent);white-space:break-spaces;border-radius:6px;padding:.15em .3em}body[data-webview-kind=inspector-sidebar] .b3-inspector{overflow:auto hidden}body[data-webview-kind=inspector-sidebar] .b3-inspector-header,body[data-webview-kind=inspector-sidebar] .b3-inspector-banner,body[data-webview-kind=inspector-sidebar] .b3-inspector-content,body[data-webview-kind=inspector-sidebar] .b3-inspector-skeleton-content{min-width:var(--b3-inspector-sidebar-min-width)}body[data-webview-kind=inspector-sidebar] .b3-inspector-form.ant-form:not(.ant-form-inline) .ant-form-item{flex-wrap:nowrap}body[data-webview-kind=inspector-sidebar] .b3-inspector-form.ant-form:not(.ant-form-inline) .ant-form-item .ant-form-item-label{margin:0!important;padding:0!important}body[data-webview-kind=inspector-sidebar] .b3-inspector-form .ant-form-item:last-child{margin-bottom:0!important}body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.ant-form-item,body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.b3-list-block,body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.b3-override-bar{margin-top:4px}.b3-search-overlay{z-index:100;justify-content:flex-end;width:100%;padding:10px 10px 0 0;position:absolute;top:0;right:0}.b3-search-box{border-left:3px solid var(--b3-search-border-accent);background:var(--b3-search-bg);box-shadow:0 0 8px 2px var(--b3-search-shadow);border-radius:4px;align-items:center;padding:4px 10px}.b3-search-input{width:220px}.b3-search-input.ant-input-affix-wrapper.ant-input-affix-wrapper-sm{border-radius:2px;padding-top:1px;padding-bottom:1px}.b3-search-suffix{align-items:center}.b3-search-counter{min-width:40px;color:var(--b3-text-muted);padding:0 10px 0 5px}.b3-search-filter:hover{background-color:var(--b3-filter-hover-bg)!important}.b3-search-filter-selected{background-color:var(--b3-filter-selected-bg)!important}.b3-search-filter-selected:hover{background-color:var(--b3-filter-selected-hover-bg)!important}.b3-graph-shell{width:100%;height:100%;min-height:0;position:relative}.b3-context-menu-icon{justify-content:center;align-items:center;width:22px;line-height:1;display:inline-flex}.b3-context-menu-icon.codicon[class*=codicon-]{font:15px/1 codicon}.b3-graph{cursor:grab;-webkit-user-select:none;user-select:none;background:var(--b3-graph-bg);width:100%;height:100%;min-height:0;position:relative}.b3-graph.is-panning{cursor:grabbing}.b3-graph-viewport{width:100%;height:100%;position:relative;overflow:hidden}.b3-graph-world{transform-origin:0 0;position:absolute;top:0;left:0}.b3-graph-edges{pointer-events:none;shape-rendering:geometricprecision;position:absolute;inset:0;overflow:visible}.b3-graph-edges path{fill:none;stroke:var(--b3-graph-edge)}.b3-graph-nodes{position:absolute;inset:0}.b3-graph-node{--b3-node-scale:1;box-sizing:border-box;position:absolute;top:0;left:0;overflow:visible}.b3-node-floating-id{top:calc(50% + 2px * var(--b3-node-scale));right:calc(100% + 3px * var(--b3-node-scale));z-index:1;color:var(--b3-node-id-text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:calc(20px * var(--b3-node-scale));white-space:nowrap;pointer-events:none;transform:translateY(-50%) scale(calc(1 / var(--b3-node-scale)));transform-origin:100%;text-shadow:0 0 1px var(--b3-node-id-stroke), 0 1px 0 var(--b3-node-id-stroke), 1px 0 0 var(--b3-node-id-stroke), -1px 0 0 var(--b3-node-id-stroke), 0 -1px 0 var(--b3-node-id-stroke);font-weight:700;line-height:1;position:absolute}.b3-node-floating-id.is-gray{color:var(--b3-node-gray-text)}.b3-node{--b3-node-accent:#707070;box-sizing:border-box;width:calc(100% * var(--b3-node-scale));height:calc(100% * var(--b3-node-scale));isolation:isolate;transform:scale(calc(1 / var(--b3-node-scale)));transform-origin:0 0;border-width:calc(2px * var(--b3-node-scale));border-style:solid;border-color:var(--b3-node-accent);border-radius:calc(4px * var(--b3-node-scale));background:var(--b3-node-accent);transition:border-color .12s,box-shadow .12s,opacity .15s;position:relative;overflow:visible}.b3-node:before{content:"";z-index:-1;opacity:0;border-radius:calc(14px * var(--b3-node-scale));pointer-events:none;background:0 0;transition:opacity .12s,box-shadow .12s;position:absolute;inset:0;box-shadow:0 0 #0000}.b3-node:after{content:"";opacity:0;pointer-events:none;transition:opacity .12s;position:absolute;inset:0}.b3-node:hover,.b3-node.is-selected{box-shadow:none}.b3-node.is-selected:before{opacity:1;box-shadow:0 0 0 calc(10px * var(--b3-node-scale)) color-mix(in srgb, var(--b3-node-accent) var(--b3-node-selection-strength), var(--b3-node-selection-base))}.b3-node.is-focused{box-shadow:0 0 0 calc(3px * var(--b3-node-scale)) var(--b3-node-focus-ring)}.b3-node.is-drag-source{opacity:.7}.b3-node.is-drop-before,.b3-node.is-drop-after{border-color:var(--b3-drop-before)}.b3-node.is-drop-child{border-color:var(--b3-drop-child)}.b3-node.is-drop-before:after,.b3-node.is-drop-after:after,.b3-node.is-drop-child:after{opacity:1}.b3-node.is-drop-before:after{background:color-mix(in srgb, var(--b3-drop-before) 22%, transparent);inset:0 0 50%}.b3-node.is-drop-after:after{background:color-mix(in srgb, var(--b3-drop-before) 22%, transparent);inset:50% 0 0}.b3-node.is-drop-child:after{background:color-mix(in srgb, var(--b3-drop-child) 24%, transparent);inset:0 0 0 50%}.b3-node.is-gray{opacity:.45}.b3-node.has-var-hit{box-shadow:none}.b3-node .ant-card-body{padding:0}.b3-node-shell{box-sizing:border-box;grid-template-columns:calc(40px * var(--b3-node-scale)) minmax(0, 1fr);height:100%;min-height:calc(60px * var(--b3-node-scale));border-radius:calc(2px * var(--b3-node-scale));display:grid;overflow:hidden}.b3-node-icon-rail{background:0 0;justify-content:center;align-items:center;display:flex}.b3-node-icon{width:calc(30px * var(--b3-node-scale));height:calc(30px * var(--b3-node-scale));object-fit:contain;pointer-events:none}.b3-node-content{box-sizing:border-box;background:var(--b3-node-content-bg);border-radius:0 calc(2px * var(--b3-node-scale)) calc(2px * var(--b3-node-scale)) 0;min-width:0;height:100%;padding:calc(2px * var(--b3-node-scale)) calc(8px * var(--b3-node-scale)) calc(6px * var(--b3-node-scale)) calc(6px * var(--b3-node-scale))}.b3-node-header{justify-content:space-between;align-items:flex-start;gap:calc(4px * var(--b3-node-scale));min-height:calc(20px * var(--b3-node-scale));display:flex}.b3-node-title{color:var(--b3-node-text);font-size:calc(14px * var(--b3-node-scale));font-weight:700;line-height:calc(20px * var(--b3-node-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.b3-node-header-icons{align-items:flex-start;gap:calc(2px * var(--b3-node-scale));flex:none;display:flex}.b3-node-flag-icon{width:calc(16px * var(--b3-node-scale));height:calc(16px * var(--b3-node-scale));object-fit:contain;margin-top:calc(4px * var(--b3-node-scale));pointer-events:none}.b3-node-status-icon{width:calc(20px * var(--b3-node-scale));height:calc(20px * var(--b3-node-scale));object-fit:contain;margin-top:calc(3px * var(--b3-node-scale));pointer-events:none;flex:none}.b3-node-divider{height:calc(1px * var(--b3-node-scale));margin:0 0 calc(5px * var(--b3-node-scale));background:var(--b3-node-divider)}.b3-node-detail-row{min-width:0;color:var(--b3-node-text);font-size:calc(12px * var(--b3-node-scale));line-height:calc(20px * var(--b3-node-scale));border-radius:calc(4px * var(--b3-node-scale));align-items:flex-start;gap:0;margin:0;padding:0;display:flex}.b3-node-detail-row.is-active{color:var(--b3-node-highlight-text);background:var(--b3-node-highlight-bg)}.b3-node-detail-row.is-subtle{color:var(--b3-node-muted)}.b3-node-detail-row.is-warning{color:var(--b3-warning-text)}.b3-node-detail-row.is-mark{font-weight:700}.b3-node-detail-label{color:inherit;flex:none;font-weight:400}.b3-node-detail-value{word-break:break-word;flex:1;min-width:0}.b3-node-detail-row.is-active .b3-node-detail-label,.b3-node-detail-row.is-active .b3-node-detail-value,.b3-node-detail-row.is-active .b3-node-json-punctuation{color:inherit}.b3-node-detail-row.is-mark .b3-node-detail-value{text-overflow:ellipsis;white-space:nowrap;word-break:normal;font-weight:700;overflow:hidden}.b3-node-detail-row.is-mark .b3-node-detail-label{font-weight:700}.b3-node-detail-row.is-subtle .b3-node-detail-label{color:var(--b3-node-muted)}.b3-node-detail-row.is-warning .b3-node-detail-label{color:var(--b3-warning-text)}.b3-node-variable-button{color:inherit;font:inherit;font-weight:inherit;line-height:inherit;border-radius:calc(2px * var(--b3-node-scale));cursor:pointer;background:0 0;border:0;margin:0;padding:0}.b3-node-variable-button:hover{color:inherit;background:var(--b3-node-variable-hover-bg)}.b3-node-variable-button.is-active{color:inherit;font-weight:inherit}.b3-node-detail-row.is-active .b3-node-variable-button:hover{background:var(--b3-node-variable-active-hover-bg)}.b3-node-json-punctuation{color:inherit}.b3-node.is-composite{--b3-node-accent:#34d800}.b3-node.is-decorator{--b3-node-accent:#b2eb35}.b3-node.is-condition{--b3-node-accent:#f72585}.b3-node.is-action{--b3-node-accent:#1769dd}.b3-node.is-other{--b3-node-accent:#707070}.b3-node.is-error{--b3-node-accent:red}.b3-loading{height:100%}
|